Đồ án tốt nghiệp Đại học
Mục Lục MỤC LỤC
KẾT LUẬN.................................................................................................................67
Học viện công nghệ bưu chính viễn thông
i
Đồ án tốt nghiệp Đại học
Danh Mục Hình Vẽ
DANH MỤC HÌNH VẼ Hình 1.1: MPLS và mô hình tham chiếu OSI..........................................................1 Hình 1.2: So sánh giữa chuyển tiếp IP và chuyển tiếp MPLS................................2 Hình 1.3: Miền MPLS................................................................................................3 Hình 1.4: Đường lên và đường xuống LSR...............................................................3 Hình 1.5: Lớp chuyển tiếp tương đương trong MPLS......................4 Hình 1.6: Ngăn xếp nhãn.........................................................................................4 Hình 1.7: Đường chuyển mạch nhãn LSP.................................................................5 Hình 1.8: Phân cấp LSP trong MPLS........................................................................6 Hình 1.9: Gói IP đi qua mạng MPLS.........................................................................6 Hình 1.10: Định dạng một thực thể trong ngăn xếp nhãn MPLS..........................7 Hình 1.11: Tiêu đề shim được đệm vào giữa tiêu đề lớp 2 và lớp 3.................8 Hình 1.12: Nhãn trong chế độ ATM..................................................................8 Hình 1.13: Đóng gói có nhãn trên liên kết ATM.......................................................9 Hình 1.14: Cấu trúc của LER và transit-LSR............................................10 Hình 1.15: Một NHLFE.............................................................................................11 Hình 1.16: Bên trong mặt phẳng chuyển tiếp MPLS.............................................13 Hình 1.17: Định tuyến ràng buộc.........................................................................14 Hình 1.18: Phân phối nhãn không cần yêu cầu .................................................15 Hình 1.19: Phân phối nhãn gắn kết Nhãn-FEC..............................16 Hình 1.20: Duy trì nhãn tự do..........................................................................16 Hình 1.21: Duy trì nhãn bảo thủ....................................................................17 Hình 1.22: Điều khiển độc lập...................................................................................18 Hình 1.23: Điều khiển tuần tự..................................................................................18 Hình 1.24: Vùng hoạt động của LDP.......................................................................18 Hình 1.25: Trao đổi thông điệp LDP.................................................................19 Hình 1.26: LDP Hearder..........................................................................................20 Hình 1.28: LDP chế độ điều khiển theo yêu cầu.....................................................23 Hình 1.29: Thiết lập LSP và CR-LD.................................................................25 Hình 1.30: Thiết lập LSP với RSVP-TE....................................................28 Hình 1.31: Nội dung bản tin BGP Update....................................................30 Hình 1.32: BGP phân phối nhãn qua nhiều Autonomous System....31 Hình 2.1: Nhiều luồng cho mỗi lớp lưu lượng.....................................36 Hình 2.2: Hàng đợi CQ..............................................................................................36 Hình 2.3: Hàng đợi PQ........................................................................................37 Hình 2.4: Giải thuật thùng dò.................................................................37 Hình 2.5: Giải thuật thùng token.................................................................38 Hình 2.6: Mô hình xếp chồng.................................................................................39 Hình 2.7: Băng thông khả dụng ứng với từng mức ưu tiên..................44 Hình 2.8: Xem xét các ràng buộc khống chế.........................................46 Hình 2.9: Xem xét tài nguyên khả dụng..................................................................47 Hình 2.10: Chọn đường tốt nhất...............................................................................47 Hình 2.11: Mô hình MAKAM.............................................................................50 Hình 2.12: Mô hình Haskin..............................................................................51 Hình 2.13: Mô hình Shortest-Dynamic......................................52 Hình 2.14: Mô hình Simple_Dynamic.....................................................53 Hình 3.1: Tổng quan về NS dưới góc độ người dùng.......................................55 Hình 3.2: Luồng các sự kiện cho file Tcl chạy trong NS ..............................56 Hình 3.3: Kiến trúc của NS-2....................................................................................57 Học viện công nghệ bưu chính viễn thông
i
Đồ án tốt nghiệp Đại học
Danh Mục Hình Vẽ
Hình 3.4: C++ và OTcl: Sự đối ngẫu......................................................57 Hình 3.5: TclCL hoạt động như liên kết giữa A và B.................................58 Hình 3.6: Mô hình mạng ...................................................................................59 Hình 3.7: Lịch trình mô phỏng ............................................................................60 Hình 3.8: Đồ thị Xgraph...............................................................................61 Hình 3.9: Báo hiệu thiết lập đường làm việc và bảo vệ..........................................62 Hình 3.10: Sử đường làm việc ER=1_3_5_7_9.......................................................63 Hình 3.11: Phát hiện lỗi ............................................................................................63 Hình 3.12: Chuyển sang đường bảo vệ....................................................................64 Hình 3.13: Lỗi đã được khôi phục............................................................................64 Hình 3.14: Chuyển lưu lượng trở lại đường làm việc.............................................65 Hình 3.15: Kết thúc quá trình truyền gói................................................................65
Học viện công nghệ bưu chính viễn thông
ii
Đồ án tốt nghiệp Đại học
Thuật Ngữ Viết Tắt
THUẬT NGỮ VIẾT TẮT ARP
Address Resolution Protocol
Giao thức phân giải địa chỉ
ATM
Asynchronous Transfer Mode
Truyền dẫn không đồng bộ
BGP
Border Gateway Protocol
Giao thức cổng đường biên
CLIP
Classical IP
IP trên ATM
CR
Constrained Routing
Định tuyến cưỡng bức
CR-LDP
Constrained Routing - LDP
Định tuyến cưỡng bức - LDP
CR-LSP
Constrained Routing - LSP
Định tuyến cưỡng bức - LSP
CSPF
Constrained Shortest Path First
SPF cưỡng bức
DiffServ
Differentiated Service
Các dịch vụ được phân biệt
ER
Explicit Routing
Định tuyến hiện
FEC
Fowarding Equivalent Class
Lớp chuyển tiếp tương đương
FR
Frame Relay
Chuyển tiếp khung
GMPLS
Generalized Multiprotocol Label Switching
Chuyển mạch nhãn đa giao thức tổng quát.
IETF
Internet Engineering Task Force
Nhóm tác vụ kỹ thuật Internet
IP
Internet Protocol
Giao thức Internet
IPOA
IP over ATM
IP trên ATM
LAN
Local Area Network
Mạng cục bộ
LANE
LAN Emulation
Mô phỏng LAN
LDP
Label Distribution Protocol
Giao thức phân bổ nhãn
LER
Label Edge Router
Bộ định tuyến biên nhãn
LIB
Label Information Base
Cơ sở thông tin nhãn
LIS
Logical IP Subnet
Mạng con IP logic
LSFT
Label Switching Forwarding Table
Bảng chuyển tiếp nhãn
LSP
Label Switched Path
Đường dẫn chuyển mạch nhãn
LSR
Label Switch Router
Bộ định tuyến chuyển mạch nhãn
MG
Media Gateway
Cổng đa phương tiện
MPLS
Multiprotocol Label Switching
Chuyển mạch nhãn đa giao thức
NHRP
Next Hop Resolution Protocol
Giao thức phân giải chặng kế tiếp
Học viện công nghệ bưu chính viễn thông
i
Đồ án tốt nghiệp Đại học
Thuật Ngữ Viết Tắt
OSPF
Open Shortest Path First
Giao thức đường đi ngắn nhất đầu tiên
PPP
Point to Point Protocol
Giao thức điểm - điểm
PSTN
Public Switch Telephone Network
Mạng thoại chuyển mạch công cộng
QoS
Quality of Service
Chất lượng dịch vụ
RESV
Resevation
Bản tin dành trước
RFC
Request For Comment
Yêu cầu ý kiến
RSVP
Resource Resevation Protocol
Giao thức dành trước tài nguyên
SG
Signaling Gateway
Cổng báo hiệu
SLA
Service Level Agreement
Thoả thuận mức dịch vụ
SNMP
Simple Network Management Protocol
Giao thức quản lý mạng đơn
SONET
Synchronous Optical Network
Mạng truyền dẫn quang đổng bộ
SPF
Shortest Path First
Đường đi ngắn nhất đầu tiên
STM
Synchronous Transmission Mode
Chế độ truyền dẫn đồng bộ
SVC
Signaling Virtual Circuit
Kênh ảo báo hiệu
TCP
Transission Control Protocol
Giao thức điều khiển truyền dẫn
TGW
Traffic Gateway
Cổng lưu lượng
TLV
Type-Leng-Value
Kiểu-Chiều dài-Giá trị
ToS
Type of Service
Kiểu dịch vụ
TTL
Time To Live
Thời gian sống
UDP
User Datagram Protocol
Giao thức lược đồ dữ liệu
VC
Virtual Circuit
Kênh ảo
VCI
Virtual Circuit Identifier
Nhận dạng kênh ảo
VNPT
Vietnam Post&Telecommunications
Tổng công ty BCVT Việt Nam
VP
Virtual Path
Đường ảo
VPI
Virtual Path Identifier
Nhận dạng đường ảo
VPN
Virtual Private Network
Mạng riêng ảo
WAN
Wide Area Network
Mạng diện rộng
WFQ
Weighted Fair Queuing
Hàng đợi công bằng tải trọng
Học viện công nghệ bưu chính viễn thông
ii
Đồ án tốt nghiệp Đại học
Mở Đầu
MỞ ĐẦU Sự phát triển nhanh chóng các dịch vụ IP và sự bùng nổ Internet đã dẫn đến một loạt thay đổi trong nhận thức kinh doanh của các nhà khai thác. Lưu lượng lớn nhất hiện nay trên mạng trục là lưu lượng IP. Giao thức IP thống trị toàn bộ các giao thức lớp mạng, hệ quả là tất cả các xu hướng phát triển công nghệ lớp dưới đều hỗ trợ IP. Nhu cầu thị trường cấp bách cho mạng tốc độ cao với chi phí thấp là cơ sở cho một loạt các công nghệ mới ra đời, trong đó có MPLS. Những năm gần đây là khoảng thời gian mà công nghệ MPLS đã chứng minh được tính ứng dụng thực tiễn các tính năng vượt trội của nó so với các công nghệ chuyển mạch truyền thống khác như ATM. Tập đoàn bưu chính viễn thông Việt Nam đã lựa chọn IP/MPLS làm công nghệ cho lớp truyền tải mạng NGN đang triển khai trên phạm vi toàn quốc. Một trong những ưu điểm lớn nhất của MPLS là ở khả năng thực hiện kỹ thuật lưu lượng. Đây cũng là đối tượng nghiên cứu chính của đồ án tốt nghiệp này. Đề tài được tổ chức thành 3 chương với các nội dung chính như sau: Chương 1- Tổng quan về chuyển mạch nhãn đa giao thức: giới thiệu tổng quan công nghệ MPLS, các khái niệm cơ bản, kiến trúc chức năng và cơ chế hoạt động của MPLS, các kỹ thuật định tuyến được hỗ trợ bởi MPLS, chế độ báo hiệu và một số giao thức báo hiệu phân phối nhãn của MPLS. Chương 2- Kỹ thuật lưu lượng trong MPLS và cơ chế bảo vệ khôi phục đường: Trình bày các khái niệm và mục tiêu của kỹ thuật lưu lượng, khả năng và các cơ chế thực hiện kỹ thuật lưu lượng của MPLS. Nội dung tập trung vào vấn đề ánh xạ lưu lượng lên topology vật lý, tức là tính toán đường đi tốt nhất qua mạng của lưu lượng sao cho mạng hoạt động hiệu quả và tin cậy nhất. Các vấn đề bảo vệ khôi phục đường – một trong những nhiệm vụ của kỹ thuật lưu lượng cũng được trình bày trong chương này. Chương 3- Xây dựng chương trình mô phỏng MPLS-TE: Trình bày kết quả thực hiện mô phỏng MPLS-TE trên máy tính với phần mềm NS-2 để làm rõ cơ chế thực hiện kỹ thuật lưu lượng của MPLS. Mô hình bảo vệ khôi phục lưu lượng của MPLS cũng được mô phỏng trong phần này.
Học viện công nghệ bưu chính viễn thông
1
Đồ án tốt nghiệp Đại học
Mở Đầu
Em rất mong nhận được các ý kiến đóng góp của các thầy cô để hoàn thành thêm kiến thức trong lĩnh vực này. Qua đây, em xin gửi lời cám ơn đến TS Nguyễn Tiến Ban, giáo viên hướng dẫn đã giúp đỡ em trong suốt quá trình thực hiện đồ án này. Hà nội, tháng 11 năm 2008 Sinh viên
Đỗ Tiến Thành
Học viện công nghệ bưu chính viễn thông
2
Đồ án tốt nghiệp Đại học I
Chương
CHƯƠNG I TỔNG QUAN VỀ CHUYỂN MẠCH NHÃN ĐA GIAO THỨC 1.1 Giới thiệu MPLS là viết tắt của “Muti-Protocol Label Switching”. Thuật ngữ Muti-Protocol để nhấn mạnh rằng công nghệ này áp dụng cho được tất cả các giao thức lớp mạng chứ không phải chỉ riêng cho IP. MPLS hoạt động tốt trên bất kì các giao thức lớp liên kết nào. Đây là một công nghệ lai kết hợp những đặc tính tốt nhất của định tuyến lớp 3 (Layer 3 routing) và chuyển mạch lớp 2 (Layer 2 swithching) (hình 1.1). Trong mạng chuyển mạch kênh, tính thông minh chủ yếu tập trung ở mạng lõi (core). Tất cả những thiết bị thông minh đều đặt trong mạng lõi như các tổng đài toll, transit, MSC…Các thiết bị kém thông minh hơn thì đặt bên trong mạng biên(egde), ví dụ như các tổng đài nội hay, truy nhập…. Trong mạng gói IP, tính thông minh càng đưa ra biên thì mạng càng hoạt động tốt. Tất cả các bộ định tuyến đều phải làm hai nhiệm vụ là định tuyến và chuyển mạch. Đây là ưu điểm nhưng cũng là nhược điểm của IP. Quan điểm của MPLS là tính thông minh càng đưa ra biên thì mạng càng hoạt động tốt. Lý do là những thành phần ở mạng lõi phải chịu tải rất cao. Thành phần mạng lõi nên có độ thông minh thấp và năng lực chuyển tải cao. MPLS phân tách hai chức năng định tuyến và chuyển mạch: Các bộ định tuyến ở biên thực hiện định tuyến và gắn nhãn (label) cho gói. Còn các bộ định tuyến ở mạng lõi chỉ tập trung làm nhiệm vụ chuyển tiếp gói với tốc độ cao dựa vào nhãn. Tính thông minh được đẩy ra ngoài biên là một trong những ưu điểm lớn nhất của MPLS.
Hình 1.1: MPLS và mô hình tham chiếu OSI
Học viện công nghệ bưu chính viễn thông
1
Đồ án tốt nghiệp Đại học I
Chương
MPLS được xem như là một công nghệ lớp đệm (shim layer), nó nằm trên lớp 2 những dưới lớp 3 vì vậy đôi khi người ta còn gọi là lớp 2,5 (hình 1.2). Nguyên lý chung của MPLS là tất cả các gọi IP sẽ được gắn nhãn (label) và chuyển tiếp theo một đường dẫn LSP (Label Switch Path). Các bộ định tuyến trên đường dẫn chỉ căn cứ vào nội dung của nhãn để thực hiện quyết định chuyển tiếp gói mà không cần phải kiểm tra tiêu đề IP.
Hình 1.2: So sánh giữa chuyển tiếp IP và chuyển tiếp MPLS
1.2 Các khái niệm cơ bản trong MPLS 1.2.1 Miền MPLS RFC 3031 mô tả miền MPLS là “một tập các nút trong mạng thực hiện hoạt động định tuyến và chuyển tiếp MPLS”. Một miền MPLS thường được quản lý và điều khiển bởi một nhà quản trị. Miền MPLS được chia thành 2 phần: phần mạng lõi (core) và phần mạng biên (edge). Các nút thuộc miền MPLS được gọi là bộ định tuyến chuyển mạch nhãn LSR (Label Switch Router). Các nút ở phần mạng lõi được gọi là transit-LSR hay core-LSR (thường được gọi tắt là LSR). Các nút ở biên được gọi là bộ định tuyến biên nhãn LSR (Label Edge Router) (hình 1.3).
Học viện công nghệ bưu chính viễn thông
2
Đồ án tốt nghiệp Đại học I
Chương
Label Switching Router(core LSR) Label Edge Router (LER)
Hình 1.3: Miền MPLS Nếu một LER là nút đầu tiên trên đường đi của một gói xuyên qua miền MPLS thì nó được gọi là LER lối vào (ingress-LER), còn nếu là nút cuối cùng thì nó được gọi là LER lối ra (ergress-LER). Lưu ý là các thuật ngữ này chỉ được áp dụng tùy theo chiều của luồng lưu lượng trong mạng, do vậy một LER có thể là ingress-LER vừa là egress-LER tùy theo các luồng lưu lượng đang xét như hình 1.4. A là đường lên của B
B là đường xuống của A
C là đường xuống của B
Và là đường lên của C
Chiều luồng gói
Hình 1.4: Đường lên và đường xuống LSR Thuật ngữ bộ định tuyến đường lên LSR (LSR) và bộ định tuyến đường xuống LSR (downstream-LSR cũng được dùng, phụ thuộc vào chiều của luồng lưu lượng. Các tài liệu MPLS thường được dùng ký hiệu Ru để biểu thị cho upstream-LSR và dùng ký hiệu Rd để biểu thị cho downstream-LSR. 1.2.2 Lớp chuyển tiếp tương đương Lớp chuyển tiếp tương đương FEC (Forwarding Equitvalence Class) là một tập các gói được đối xử như nhau bởi một LSR. Như vậy, FEC là một nhóm các gói tin IP được chuyển tiếp trên cùng một đường chuyển mạch nhãn LSP, được đối xử theo cùng một cách thức và có thể ánh xạ vào một nhãn bởi một LSR cho dù chúng có thể khác nhau về thông tin tiêu đề lớp mạng. Hình 1.5 cho thấy các xử lý này.
Học viện công nghệ bưu chính viễn thông
3
Đồ án tốt nghiệp Đại học I
Chương
Hình 1.5: Lớp chuyển tiếp tương đương trong MPLS 1.2.3 Nhãn và ngăn xếp nhãn RFC 3031 định nghĩa nhãn là “một bộ nhận dạng có độ dài ngắn và cố định, mang theo ý nghĩa cục bộ dùng để nhận biết một FEC”. Nhãn được “dán” lên một gói để báo cho LSR biết gói này cần đi đâu. Phần nội dung nhãn có độ dài 20 bit không cấu trúc, như vậy số giá trị nhãn có thể có là 2^20 (hơn một triệu giá trị). Giá trị nhãn định nghĩa chỉ mục (index) để dùng trong bảng chuyển tiếp. Một gói lại có thể được “dán chồng” nhiều nhãn, các nhãn này chứa trong một nơi gọi là ngăn xếp nhãn (label ngăn xếp). Ngăn xếp nhãn là một tập hợp gồm một hoặc nhiều thực thể nhãn tổ chức theo nguyên tắc LIFO (hình 1.6). Tại mỗi chặng trong mạng chỉ xử lý nhãn hiện hành trên đỉnh ngăn xếp. Chính nhãn này sẽ được LSR sử dụng để chuyển tiếp gói. Đỉnh ngăn xếp
Đáy ngăn xếp
Thực thể ngăn xếp
Mức d
Thực thể ngăn xếp
Mức d-1
Thực thể ngăn xếp
Mức 2
Thực thể ngăn xếp
Mức 1
Hình 1.6: Ngăn xếp nhãn Nếu gói tin chưa có nhãn thì ngăn xếp nhãn là rỗng (độ sâu của ngăn xếp nhãn bằng 0). Nếu ngăn xếp có chiều sâu là d thì mức 1 sẽ là đáy ngăn xếp (bit S trong thực
Học viện công nghệ bưu chính viễn thông
4
Đồ án tốt nghiệp Đại học I
Chương
thể nhãn đặt lên 1) và mức d sẽ là đỉnh của ngăn xếp. Một thực thể nhãn có thể được đặt thêm vào (push) hoặc lấy ra (pop) khỏi ngăn xếp. 1.2.4 Hoán đổi nhãn Hoán đổi nhãn (Label Swapping) là cách dùng các thủ tục để chuyển tiếp gói. Để chuyển tiếp gói có nhãn, LSR kiểm ra nhãn trên đỉnh ngăn xếp và dùng ánh xạ ILM (Incoming Label Map) để ánh xạ nhãn tới một thực thể chuyển tiếp nhãn NHLFE (Next Hop Label Forwarding Entry). Sử dụng thông tin trong NHLFE, LSR xác định ra nơi để chuyển tiếp gói và thực hiện một tác vụ trên ngăn xếp nhãn. Rồi nó mã hóa ngăn xếp nhãn mới vào gói và chuyển gói đi. Chuyển tiếp gói chưa có nhãn cũng tương tự nhưng xảy ra ở ingress-LER. LER phải phân tích tiêu đề lớp mạng để xác định FEC rồi sử dụng ánh xạ FTN (FEC-toNHLFE) để ánh xạ FEC vào một NHLFE. 1.2.5 Đường chuyển mạch nhãn LSP Đường chuyển mạch nhãn LSP (Label Switched Path) là một đường nối giữa bộ định tuyến lối vào và bộ định tuyến lối ra, được thiết lập bởi các nút MPLS để chuyển các gói đi xuyên qua mạng. Đường dẫn của một LSP qua mạng được định nghĩa bởi sự chuyển đổi giá trị các nhãn ở các LSR dọc theo LSP bằng cách dùng thủ tục hoán đổi nhãn (hình 1.7). Khái niệm LSP tương tự như khái niệm mạch ảo (VC) trong ATM.
Hình 1.7: Đường chuyển mạch nhãn LSP Kiến trúc MPLS cho phép phân cấp các LSP, tương tự như ATM sử dụng VPI và các VCI để tạo ra các phân cấp kênh ảo (VC) nằm trong đường ảo (VP). Tuy nhiên ATM chỉ hỗ trợ 2 mức phân cấp, trong khi với MPLS thì số mức phân cấp cho phép rất lớn nhờ khả năng chứa được nhiều thực thể nhãn trong ngăn xếp nhãn. Về lý thuyết, giới hạn số lượng nhãn trong ngăn xếp phụ thuộc giá trị MTU (Maximum Transfer Unit) của các giao thức lớp liên kết được dùng dọc theo một LSP.
Học viện công nghệ bưu chính viễn thông
5
Đồ án tốt nghiệp Đại học I
Chương
Hình 1.8: Phân cấp LSP trong MPLS 1.2.6 Chuyển gói qua miền MPLS Sau đây là một ví dụ đơn giản minh họa quá trình truyền gói tin IP đi qua miền MPLS (hình 1.9). Gói tin IP khi đi từ ngoài mạng vào trong miền MPLS được bộ định tuyến A đóng vai trò là một ingress-LER sẽ gán nhãn có giá trị là 6 cho gói IP rồi chuyển tiếp đến bộ định tuyến B. Bộ định tuyến B dựa vào bảng hoán đổi nhãn để kiểm tra nhãn của gói tin. Gói tin thay đổi giá trị nhãn mới là 3 và chuyển tiếp tới bộ định tuyến C. Tại C, việc kiểm tra cũng tương tự như ở B và sẽ hoán đổi nhãn, gán cho gói tin một nhãn mới là 9 và tiếp tục được đưa đến bộ định tuyến D.
Hình 1.9: Gói IP đi qua mạng MPLS
Học viện công nghệ bưu chính viễn thông
6
Đồ án tốt nghiệp Đại học I
Chương
Bộ định tuyến D đóng vai trò egress-LSR sẽ kiểm tra trong bảng hoán đổi nhãn và gỡ bỏ nhãn 9 ra khỏi gói tin rồi định tuyến gói IP một cách bình thường đi ra khỏi miền MPLS. Với kiểu làm việc này thì các LSR trung gian như bộ định tuyến B và C sẽ không phải thực hiện kiểm tra toàn bộ tiêu đề IP của gói tin mà nó chỉ việc kiểm tra các giá trị của nhãn so với định tuyến IP truyền thống. Đường đi từ bộ định tuyến A đến bộ định tuyến D được gọi là đường chuyển mạch nhãn LSP. 1.2.7 Mã hóa ngăn xếp nhãn Khi nhãn được gắn lên gói, bản thân giá trị nhãn 20 bít sẽ được mã hóa cùng với một số thông tin cộng thêm để phụ trợ trong quá trình chuyển tiếp gói để hình thành một thực thể nhãn. Hình 1.10 minh họa định dạng thực thể nhãn trong ngăn xếp nhãn.
Hình 1.10: Định dạng một thực thể trong ngăn xếp nhãn MPLS Nhóm 32 bít ở hình trên là một thực thể trong ngăn xếp nhãn, trong đó phần giá trị nhãn thực sự chỉ có 20 bit. Tuy nhiên người ta thường gọi chung cho cả thực thể 32 bit nói trên là một nhãn. Vì vậy khi thảo luận về nhãn cần phân biệt là đang xem xét giá trị nhãn 20 bit hay nói về thực thể 32 bit trong ngăn xếp nhãn. Phần thông tin 12 bit cộng thêm gồm các trường sau đây: •
EXP (một số tài liệu gọi là CoS-Class of Service)-Gồm 3 bít, có thể là một hàm của trường TOS (Type of Service) hoặc Diffserv trong gói IP. Đa số các nhà sản xuất sử dụng các bit này để mang chỉ thị QoS, thường là copy trực tiếp từ các bit TOS trong gói tin IP. Khi gói MPLS vào hàng đợi, có thể sử dụng các bit EXP theo cách giống như các bit ưu tiên trong IP. •
S-Gồm 1 bit, chỉ thị đáy của ngăn xếp nhãn. Khi một nhãn nằm ở đáy ngăn xếp nhãn thì bít S đặt lên 1, còn các nhãn khác có bit S đặt về 0. Bit S là phương tiện để xác định đáy cuả ngăn xếp nhãn nằm ở đâu. •
TTL-Gồm 8 bit, thường là copy trực tiếp từ trường TTL của tiêu đề IP, được giảm đi 1 qua mỗi chặng để chặn lặp định tuyến giống như IP. Tuy nhiên, các bit TTL
Học viện công nghệ bưu chính viễn thông
7
Đồ án tốt nghiệp Đại học I
Chương
cũng có thể được đặt khác TTL trong gói IP, thường dùng khi nhà khai thác mạng muốn che giấu topology mạng MPLS. MPLS có thể hoạt động ở các chế độ: chế độ khung và chế độ tế bào. 1.2.7.1 Chế độ khung Các kỹ thuật lớp 2 như Ethernet, Token Ring, FDDI, PPP không có trường nào phù hợp trong tiêu đề của khung có thể mang nhãn. Vì vậy, ngăn xếp nhãn sẽ được chứa trong tiêu đề đệm (shim header). Tiêu đề shim được đệm vào giữa tiêu đề lớp liên kết và tiêu đề lớp mạng, như trong hình 1.11. Đỉnh ngăn xếp nằm liền sau tiêu đề lớp 2 và đáy ngăn xếp nằm liền trước tiêu đề lớp mạng.
Hình 1.11: Tiêu đề shim được đệm vào giữa tiêu đề lớp 2 và lớp 3 Bộ định tuyến gửi khung phải có cách để báo cho bộ định tuyến nhận biết rằng khung này có chứa tiêu đề shim, cách thức này khác nhau giữa các kỹ thuật lớp 2. Ethernet sử dụng cặp giá trị ethertype 0x8847 và 0x8848 để chỉ thị khung đang mang gói MPLS unicast và multicast tương ứng. PPP sử dụng NCP (Network Control Program) sửa đổi gọi là MPLSCP (MPLS Control Protocol) và đánh dấu tất cả các gói có chứa tiêu đề shim bằng giá trị 0x8281 trong trường PPP Protocol. 1.2.7.2 Chế độ tế bào
Hình 1.12: Nhãn trong chế độ ATM Chế độ tế bào được dùng khi ta có một mạng gồm các ATM-LSR (là các chuyển mạch ATM có hỗ trợ MPLS), trong đó nó sử dụng các giao thức phân phối nhãn MPLS để trao đổi thông tin VPI/VCI thay cho báo hiệu ATM. Nhãn được mã hóa trong trường gộp VPI/VCI, trong VPI hoặc VCI của tiêu đề tế bào ATM (RFC 3035). Học viện công nghệ bưu chính viễn thông
8
Đồ án tốt nghiệp Đại học I
Chương
Tế bào ATM gồm 5 byte tiêu đề và 48 byte trọng tải. Để chuyển tải gói tin có kích thước lớn hơn 48 byte từ lớp trên đưa xuống (ví dụ gói IP), ATM phải chia gói tin thành nhiều phần nhỏ hơn, việc này gọi là phân đoạn (frafmentation). Quá trình phân đoạn do lớp AAL (ATM Adaptation Layer) đảm trách. Cụ thể, AAL5 PDU sẽ được chia thành nhiều đoạn 48 byte, mỗi đoạn 48 byte này được thêm tiêu đề 5 byte để tạo ra một tế bào ATM.
Hình 1.13: Đóng gói có nhãn trên liên kết ATM Khi đóng gói có nhãn MPLS trên ATM, toàn bộ ngăn xếp nhãn được đặt trong AAL 5PDU. Giá trị thực sự của nhãn đỉnh được đặt trong trường VPI/VCI, hoặc đặt trong ngăn xếp nhãn phải chứa giá trị 0 (coi như thực thể “giữ chỗ”) và được bỏ qua khi nhận. Thực thể đỉnh do các nhãn phải chứa cả ở trong AAL5 PDU và tiêu đề ATM là để mở rộng độ sâu ngăn xếp nhãn. Khi các tế bào ATM đi đến cuối LSP, nó sẽ được tái hợp lại. Nếu có nhiều nhãn trong ngăn xếp nhãn, AAL5 PDU sẽ bị phân đoạn lần nữa và nhãn hiện hành trên đỉnh ngăn xếp sẽ được đặt vào trường VPI/VCI.
1.3 Cấu trúc trường chức năng MPLS 1.3.1 Kiến trúc một nút MPLS Hình 1.14 minh họa mặt phẳng điều khiển và chuyển tiếp của LSR và LER. Mặt phẳng điều khiển có chức năng định tuyến IP dùng để giao tiếp với các LSR, LER khác hoặc các bộ định tuyến IP thông thường bằng các giao thức định tuyến IP. Kết quả là một cơ sở thông tin định tuyến RIB (Routing Information Base) được tạo lập gồm các thông tin miêu tả các tuyến khả thi để tìm đến các tiền tố địa chỉ IP. LER sẽ sử dụng các thông tin này để xây dựng cơ sở thông tin chuyển tiếp FIB (Forwarding Information Base) trong mặt phẳng chuyển tiếp
Học viện công nghệ bưu chính viễn thông
9
Đồ án tốt nghiệp Đại học I
Chương
Mặt phẳng điểu khiển còn chức năng báo hiệu MPLS dùng để giao tiếp với các LSR khác bằng một giao thức phân phối nhãn. Kết quả một cơ sở thông tin nhãn LIB (Label Informationn Base) gồm các thông tin liên quan đến các gán kết nhãn đã được thương lượng với các bộ định tuyến MPLS khác. Thành phần báo hiệu MPLS nhận thông tin từ chức năng định tuyến IP và LIB để xây dựng cơ sở thông tin chuyển tiếp LFIB (Label Forwarding Information Base) trong mặt phẳng chuyển tiếp. Một LER có thể có chuyển tiếp các gói tin IP, gắn nhãn vào gói (label push), hoặc gỡ nhãn ra khỏi gói (label pop), trong khi đó một transit-LSR chỉ có khả năng chuyển tiếp gói có nhãn thêm hoặc bỏ bớt nhãn.
Hình 1.14: Cấu trúc của LER và transit-LSR 1.3.2 Mặt phẳng chuyển tiếp Mặt phẳng chuyển tiếp MPLS chịu trách nhiệm chuyển tiếp dữ liệu của người dùng. Nó sử dụng LFIB để thực hiện chuyển tiếp các gói có gắn nhãn căn cứ vào giá trị của nhãn nằm trên đỉnh ngăn xếp nhãn. 1.3.2.1 Cơ sở thông tin chuyển tiếp nhãn LFIB Trong mạng IP, quyết định chuyển tiếp gói được xác lập bằng cách thực hiện tra cứu địa chỉ đích trong bảng FIB để xác định chặng kế hoặc giao diện ra. Trong mạng MPLS, mỗi LSR duy trì một bảng LFIB riêng rẽ và tách biệt với FIB. Bảng LFIB có hai loại thực thể là ILM (incoming label map) và FTN (FEC-to-NHLFE). NHLFE (next hop label forwarding entry) là thực thể con chứa các trường như địa chỉ chặng kế, các tác vụ ngăn xếp nhãn, giao diện ra và thông tin tiêu đề lớp 2. ILM ánh xạ một nhãn đến một hoặc nhiều NHLFE. Nhãn trong gói đến sẽ dùng để chọn ra một thực thể ILM cụ thể nhằm xác dịnh NHLFE. Còn FTN ánh xạ mỗi FEC vào môt Học viện công nghệ bưu chính viễn thông
10
Đồ án tốt nghiệp Đại học I
Chương
hoặc nhiều NHLFE. Nhờ các thực thể FTN, gói chưa có nhãn được chuyển thành gói có nhãn. Như vậy, khi một gói không nhãn thuộc một FEC đi vào miền MPLS, ingressLER sẽ sử dụng một thực thể LFIB loại FTN để chuyển gói không nhãn thành gói có nhãn. Sau đó, tại các transit-LSR sử dụng một thực thể LFIB loại ILM để hoán đổi nhãn vào nhãn ra. Cuối cùng, tại engress-LER sử dụng một thực thể LFIB loại ILM để gỡ bỏ nhãn đến và chuyển tiếp gói không nhãn đến bộ định tuyến kế tiếp. 1.3.2.2 Thuật toán chuyển tiếp nhãn Các nút MPLS sử dụng giá trị nhãn trong các gói đến làm chỉ mục để tra bảng LFIB. Khi tìm thấy thực thể tương ứng với nhãn đến, nút MPLS thay thế nhãn trong gói bằng nhãn ra và gửi nó đi qua giao diện ra để đến chặng kế được đặc tả trong thực thể con NHLFE. Nếu thực thể con có chỉ định hàng đợi ra, nút MPLS sẽ đặt gói trên hàng đợi đã chỉ định. Trong trường hợp nút MPLS duy trì một LFIB riêng cho mỗi giao diện, nó sẽ dùng LFIB của giao diện mà gói đến để tra cứu chuyển tiếp gói. Nút MPLS có thể lấy định vị được các thông tin chuyển tiếp cần thiết trong LFIB chỉ trong một lần truy xuất bộ nhớ, tốc độ thực thi rất cao nhờ các chip ASIC. 1.3.2.3 NHLFE NHLFE (Next Hop Label Forwarding Entry) là thực thể con của ILM hoặc FTN, nó chứa các thông tin sau: •
Chặng ở chặng kế tiếp của gói.
•
Tác vụ sẽ được tiến hành trên ngăn xếp nhãn của gói như sau: Swap: Thay nhãn ở đỉnh ngăn xếp nhãn bằng một nhãn mới được
1)
chỉ định. 2)
Pop: Bóc một nhãn ra khỏi ngăn xếp.
3)
Push: Chồng thêm một nhãn vào trong ngăn xếp nhãn.
Nhãn vào
Cổng vào
Đích
0.54
3
138.43
Hoạt động
Nhãn ra LSP ID
Cổng ra
ID vào Giá trị Thay thế
0.81
1
10
2
Hình 1.15: Một NHLFE Ngoài ra, NHLFE cũng có thể chứa những thông tin sau: Học viện công nghệ bưu chính viễn thông
11
Đồ án tốt nghiệp Đại học I
Chương
•
Đóng gói lớp liên kết dữ liệu để sử dụng khi truyền gói
•
Cách thức mã hóa ngăn xếp nhãn khi truyền gói.
•
Bất kì các thông tin khác cần thiết để xử lí gói một cách chính xác.
1.3.3 Mặt phẳng điều khiển Nhiệm vụ của các giao thức trong mặt phẳng điều khiển là phân phối các thông tin cần thiết cho mỗi LER và LSR để cấu hình bảng FIB và LFIB. Trong một giao thức định tuyến sử dụng báo hiệu, bảng thông tin định tuyến RIB hoạt động kết hợp với một giao thức báo hiệu MPLS sử dụng bảng thông tin nhãn LIB để phân phối các nhãn. Việc phân tách mặt phẳng điều khiển và mặt phẳng chuyến tiếp cho phép cài đặt một giao thức điều khiển MPLS trên một ATM switch. Tại sao MPLS cần giao thức báo hiệu, trong khi các bộ định tuyến IP cổ điển chỉ cần định tuyến IP? Một lí do quan trọng phải dùng giao thức báo hiệu MPLS kết hợp với một giao thức định tuyến xuất phát từ sự cần thiết phải thực hiện định tuyến ràng buộc của đường chuyển mạch nhãn MPLS.
1.4 Hoạt động chuyển tiếp MPLS 1.4.1 Hoạt động trong mặt phẳng chuyển tiếp FEC là một tập con các gói căn cứ theo một số thông tin trong tiêu đề IP được dùng bởi FIB. Một FEC được dùng thường dựa theo luật “longest prefix match” trên địa chỉ IP đích. Ví dụ: các địa chỉ IP so trùng với 16 bit đầu có dạng “a.b.x.x” (trong đó x đại diện cho giá trị hợp lệ bất kì) được biểu diễn là “a.b/16” cho thực thể FEC đầu tiên trong bảng FIB. FEC còn có thể căn cứ bổ sung theo các trường khác trong tiêu đề IP như ToS hay Diffserv. FIB sử dụng FEC để xác định ra giao tiếp đi đến chặng kế cho các gói IP, cách thực hiện giống như các bộ định tuyến cổ điển. Cho các ví dụ từng hoạt động LFIB ở hình 1.16. Phần ILM của LFIB thao tác trên một gói có nhãn và ánh xạ một nhãn vào (incoming label) tới một tập các thực thể NHLFE. ILM được thể hiện trong hình bởi các cột IN-IF và IN-LBL, nhưng cũng có thể là một bảng riêng rẽ cho môt giao tiếp. FTN của FIB ánh xạ một FEC tới một tập hợp gồm một hoặc nhiều NHLFE. Như ví dụ trong hình, nhãn A được gắn (push) lên các gói IP thuộc FEC “d.e/16”. Lưu ý là ILM hoặc FTN có thể ánh xạ tới nhiều NHLFE, chẳng hạn để dùng trong cân bằng tải.
Học viện công nghệ bưu chính viễn thông
12
Đồ án tốt nghiệp Đại học I
Chương
. Hình 1.16: Bên trong mặt phẳng chuyển tiếp MPLS 1.4.2 Gỡ nhãn ở chặng áp cuối PHP Một tối ưu hóa quan trọng mà MPLS hỗ trợ là tránh việc tra cứu nhãn (label loopkup) phải xử lí ở egress-LER trong trường hợp một gói đi lên trên một LSP mà yêu cầu tra cứu IP (IP Lookup) tiếp ngay sau đó. Ở trong hình trên 1.16, một gói đến có nhãn A được gỡ nhãn (pop) và chuyển sang FIB để tra cứu tiếp trên tiêu đề IP.Để tránh việc xử lý phát sinh thêm này, MPLS định nghĩa một tiến trình gọi là gỡ nhãn trong chặng áp cuối PHP (penultimate hop pop), trong đó bộ định tuyến áp cuối trên LSP sẽ gỡ nhãn thay vì egress-LER phải làm việc đó. Nhờ vậy cắt giảm được việc xử lý ở các bộ định tuyến cuối cùng trên LSP.
1.5 Định tuyến trong MPLS MPLS hỗ trợ cả hai kỹ thuật định tuyến: định tuyến từng chặng (hop-by-hop) và định tuyến ràng buộc (constrain-based routing). Định tuyến từng chặng cho phép mỗi nút nhận dạng FEC và chọn chặng kế tiếp cho mỗi FEC một cách độc lập, giống như định tuyến trong mạng IP. Tuy nhiên, nếu muốn triển khai kỹ thuật lưu lượng với MPLS, bắt buộc phải sử dụng kiểu định tuyến ràng buộc. 1.5.1 Định tuyến ràng buộc Định tuyến ràng buộc là một phương tiện để thực hiện xử lý tự động hóa kỹ thuật lưu lượng, khắc phục được các hạn chế của định tuyến theo đích (destination-based routing). Nó xác định các tuyến không chỉ dựa trên topolgy mạng (thuật toán chọn đường ngắn nhất SPF) mà còn sử dụng các metric đặc thù khác như băng thông, trễ, cost
Học viện công nghệ bưu chính viễn thông
13
Đồ án tốt nghiệp Đại học I
Chương
và biến động trễ. Giải thuật chọn đường có khả năng tối ưu hóa theo một hoặc nhiều metric này, thông thường người ta dùng metric dựa trên số chặng và băng thông. Để đường được chọn có số chặng nhỏ nhất nhưng phải đảm bảo băng thông khả dụng trên tất cả cả chặng liên kết, quyết định cơ bản như sau: chọn đường ngắn nhất trong số tất cả các đường có băng thông khả dụng thỏa mãn yêu cầu.
Hình 1.17: Định tuyến ràng buộc Để minh họa hoạt động của định tuyến ràng buộc, xét cấu trúc mạng “con cá” kinh điển như hình 1.17. Giả sử rằng định tuyến ràng buộc sử dụng số chặng (hopcount) và băng thông khả dụng làm các metric. Lưu lượng 600 kbps được định tuyến trước tiên, sau đó là lưu lượng 500 kbps và 200 kbps. Cả 3 loại lưu lượng đều hướng đến cùng một lối vào bộ định tuyến. Ta thấy rằng :
Vì lưu lượng 600 kbps được định tuyến trước nên nó đi theo đường ngắn nhất là R8-R2-R3-R4-R5. Vì băng thông khả dụng là như nhau trên tất cả các chặng kênh (1mb), nên lưu lượng 600 kbps chiếm 60% băng thông.
Sau đó, vì băng thông khả dụng của đường ngắn nhất không đủ cho cả 2 lưu lượng 600 kbps và 500 kbps, nên lưu lượng 500 kbps được định tuyến đi theo đường mới qua R6 và R7 mặc dù nhiều hơn một chặng so với đường cũ.
Vì lưu lượng 200 kbps tiếp theo, vì vẫn còn băng thông khả dụng trên đường ngắn nhất nên đường này được chọn để chuyển lưu lượng 200 kbps. Định tuyến ràng buộc có 2 kiểu offline và online. Kiểu online cho phép các bộ định tuyến tính đường cho các LSP bất kỳ lúc nào. Trong kiểu offline, một server tính đường cho các LSP theo định kỳ (chu kỳ có thể được chọn bởi nhà quản trị, thường là vài giờ hoặc vài ngày). Các LSP được báo hiệu thiết lập theo các đường đã được chọn.
Học viện công nghệ bưu chính viễn thông
14
Đồ án tốt nghiệp Đại học I
Chương
1.5.2 Định tuyến tường minh Định tuyến tường minh (explicit routing) là một tập con của định tuyến ràng buộc trong đó sự ràng buộc là đối tượng tuyến tường minh ER. Tuyến tường minh ER là một danh sách các “nút trừu tường” (abstract node) mà một đường chuyển mạch nhãn ràng buộc CR-LSP phải đi qua. Nút trừu tượng có thể là một nút (địa chỉ IP) hoặc một nhóm nút. Nếu ER chỉ quy định một nhóm trong số các nút mà CR-LSP đi qua thì nó được gọi là tuyến tường minh thả lỏng. Ngược lại, nếu ER quy định toàn bộ các nút trên CR-LSP thì được gọi là tuyến tường minh nghiêm ngặt. CR-LSP được mã hóa như là một chuỗi các ER-Hop (chặng tường minh) chứa trong một số cấu trúc Type-Length-Value ràng buộc (constraint-based route TLV). Mỗi ER-Hop có thể xác định một nhóm các nút. CR-LSP khi đó bao gồm tất cả các nhóm nút đã được xác định theo thứ tự xuất hiện trong cấu trúc TLV. 1.6 Các chế độ báo hiệu MPLS 1.6.1 Chế độ phân phối nhãn MPLS cho phép hai chế độ hoạt động của các LSR để phân phối các ánh xạ nhãn, đó là phân phối không cần yêu cầu và phân phối theo yêu cầu. 1.6.1.1 Phân phối nhãn không cần yêu cầu Bộ định tuyến đường xuống LSR phân phối các gán kết nhãn đến bộ định tuyến đường lên LSR mà không cần có yêu cầu thực hiện việc liên kết nhãn. Nếu bộ định tuyến đường xuống chính là chặng kế đối với định tuyến IP cho một FEC cụ thể thì bộ định tuyến đường lên LSR có thể sử dụng kiểu kết nhãn này để chuyển tiếp các gói trong FEC đến bộ định tuyến đường xuống.
Hình 1.18: Phân phối nhãn không cần yêu cầu 1.6.1.2 Phân phối nhãn theo yêu cầu Bộ định tuyến đường lên LSR phải yêu cầu rõ ràng một gán kết nhãn cho một FEC cụ thể thì bộ định tuyến đường xuống mới phân phối. Trong phương thức này,
Học viện công nghệ bưu chính viễn thông
15
Đồ án tốt nghiệp Đại học I
Chương
đường xuống của bộ định tuyến không nhất thiết phải là chặng kế đối với định tuyến IP cho FEC đó, điều này rất quan trọng đối với các LSP định tuyến tường minh.
Hình 1.19: Phân phối nhãn gắn kết Nhãn-FEC 1.6.2 Chế độ duy trì nhãn Một bộ định tuyến đường lên LSR có thể nhận các gán kết cho cùng một FEC X từ nhiều bộ định tuyến đường xuống. Có hai chế độ duy trì các gán kết nhãn nhận được là duy trì nhãn tự do (liberal label retention) và duy trì nhãn bảo thủ (consvervative label retention). 1.6.2.1 Duy trì nhãn tự do Phía bộ định tuyến đường lên (LSR1) lưu giữ tất cả các gán kết nhãn nhận được, bất chấp việc bộ định tuyến đường xuống có phải là chặng kế đối với định tuyến IP hay không (hình 1.20). Ưu điểm chính của duy trì nhãn tự do là có thể phản ứng nhanh với sự thay đổi định tuyến vì các gán kết nhãn đã có sẵn. Nhược điểm là LSR phải duy trì nhiều gán kết nhãn không dùng và có thể gây ra lặp định tuyến tạm thời khi thay đổi định tuyến.
Hình 1.20: Duy trì nhãn tự do
Học viện công nghệ bưu chính viễn thông
16
Đồ án tốt nghiệp Đại học I
Chương
1.6.2.2 Duy trì nhãn bảo thủ Bộ định tuyến đường lên LSR hủy tất cả các gán kết nhãn khác, chỉ giữ lại gán kết nhãn gửi từ bộ định tuyến đường xuống đang là chặng kế hiện hành (hình 1.21). Chế độ này có ưu điểm là LSR chỉ cần duy trì số gán kết FEC-nhãn ít hơn, nhưng đáp ứng chậm khi thay đổi định tuyến vì gán kết nhãn mới phải được yêu cầu và phân phối lại. Đây là chế độ thích hợp cho các LSR chỉ hỗ trợ một số lượng nhãn hạn chế (như các chuyển mạch ATM).
Hình 1.21: Duy trì nhãn bảo thủ
1.6.3 Chế độ điều khiển LSP Khi một FEC ứng với một tiền tố địa chỉ được phân phối bởi định tuyến IP, việc thiết lập mối kết hợp giữa các gán kết nhãn tại một LSR có thể thực hiện theo hai cách sau đây: 1.6.3.1 Điều khiển độc lập Khi mỗi LSR nhận dạng ra một FEC thì nó quyết định gán kết ngay một nhãn cho FEC đó và công bố luôn gán kết cho các đối tác phân phối nhãn (label distribution peer). Điều này tương tự như định tuyến IP thông thường, ở đó mỗi bộ định tuyến ra quyết định độc lập về nơi cần chuyển gói đi. Điều khiển độc lập có ưu điểm là thiết lập nhanh vì việc kết nhãn diễn ra song song giữa nhiều cặp LSR và dòng lưu lượng có thể bắt đầu truyền mà không cần đợi cho tất cả các gán kết nhãn thiết lập xong.
Học viện công nghệ bưu chính viễn thông
17
Đồ án tốt nghiệp Đại học I
Chương
Hình 1.22: Điều khiển độc lập 1.6.3.2 Điều khiển tuần tự Một bộ định tuyến đường xuống thực hiện kết nhãn cho một FEC và thông báo gán kết đó chỉ nếu nó là LSR lỗi ra hoặc nếu nó nhận được một gán kết nhãn cho FEC đó từ bộ định tuyến hướng đường xuống của nó (hình 1.23). Việc thiết lập LSP tuần tự bắt đầu ở LSR lối ra và diễn ra nối tiếp theo hướng ngược về LSR lối vào. Các LSP định tuyến tường minh bắt buộc phải sử dụng kiểu điều khiển tuần tự và quá trình phân phối nhãn theo chuỗi có thứ tự sẽ tạo ra thời gian trễ trước khi dòng lưu lượng đi trên LSP có thể bắt đầu. Tuy nhiên, điều khiển tuần tự cũng cấp phương tiện tránh lặp và đạt được mức độ thu gom chắc chắn hơn.
Hình 1.23: Điều khiển tuần tự
1.7 Các giao thức hoạt đông 1.7.1 Giao thức LDP LDP (label distribution protocol) được chuẩn hóa trong RFC 3036, nó được thiết kế để thiết lập và duy trì các LSP định tuyến không ràng buộc. Vùng hoạt động của LDP có thể là giữa các LSR láng giềng (neighbor) trực tiếp hoặc gián tiếp (hình 1.24)
Hình 1.24: Vùng hoạt động của LDP 1.7.1.1 Hoạt động của LDP LDP có 4 chức năng chính là phát hiện LSR láng giếng (neighbor discovery), thiết lập và duy trì phiên, quảng bá nhãn và thông báo. Tương ứng với các chức năng trên, có 4 lớp thông điệp LDP sau đây: Học viện công nghệ bưu chính viễn thông
18
Đồ án tốt nghiệp Đại học I
Chương
•
Discovery: Để trao đổi định kỳ bản tin Hello nhằm loan báo và kiểm tra một LSR kết nối gián tiếp hoặc trực tiếp. •
Session: Để thiết lập, thương lượng các thông số cho việc khởi tạo, duy trì và chấm dứt các phiên ngang hàng LDP. Nhóm này bao gồm bản tin Initialization ,KeepAlive. •
Advertisement: Để tạo ra, thay đổi hoặc xóa các ánh xạ FEC tới nhãn. Nhóm này bao gồm bản tin Label Mapping, Label Withdrawal, Label Release, Label Request, Label Request Abort. •
Notification: Để truyền đạt các thông tin trạng thái, lỗi hoặc cảnh báo.
Các thông điệp Discovery được trao đổi trên UDP. Các kiểu thông điệp còn lại đòi hỏi phân phát tin cậy nên dùng TCP. Trường hợp hai LSR có kết nối lớp 2 trực tiếp thì thủ tục phát hiện neighbor trực tiếp như sau: • multicast.
Một LSR định kỳ gửi đi bản tin Hello tới các cổng UDP 646 địa chỉ
• Tất cả các LSR tiếp nhận bản tin Hello này trên cổng UDP. Đến một thời điểm nào đó LSR sẽ biết được tất cả các LSR khác mà nó kết nối trực tiếp. • Khi LSR nhận biết được địa chỉ của LSR khác bằng cơ chế này thì nó sẽ thiết lập kết nối TCP đến LSR đó. Khi đó phiên LDP được thiết lập giữa 2 LSR. Phiên LDP là phiên song hướng nên mỗi LSR ở hai đầu kết nối đều có thể yêu cầu và gửi liên kết nhãn.
Hình 1.25: Trao đổi thông điệp LDP
Học viện công nghệ bưu chính viễn thông
19
Đồ án tốt nghiệp Đại học I
Chương
Trong trường hợp hai LSR không có kết nối lớp 2 trực tiếp (neighbor gián tiếp) thì LSR định kỳ gửi bản tin Hello đến cổng UDP đã biết tại địa chỉ IP xác định được khai báo khi lập cấu hình. Đầu nhận bản tin này có thể trả lời lại bằng bản tin Hello khác và việc thiết lập các phiên LDP được thực hiện như trên. 1.7.1.2 Cấu trúc thông điệp LDP Trao đổi thông điệp LDP thực hiện bằng cách gửi các LDP-PDU (Protocol Data Unit) thông điệp qua các phiên LDP trên kết nối TCP. Mỗi LDP-PDU có thể mang một hoặc nhiều thông điệp, và các thông điệp này không nhất thiết phải có liên quan với nhau. Mỗi PDU của LDP bao gồm một tiêu đề LDP và theo sau là một hoặc nhiều thông điệp LDP. Phần tiêu đề LDP có dạng như hình 1.26:
Hình 1.26: LDP Hearder PDU Length (2 octet): số nguyên chỉ chiều dài của PDU theo octet, không tính trường Version và PDU Length. LDP Identifier (6 octet): xác định không gian nhãn được cấp phát. Bốn octet đầu là giá trị duy nhất toàn cục nhận dạng LSR, như địa chỉ IP (bộ định tuyến ID) được gán cho LSR. Hai octet sau xác định một không gian nhãn bên trong LSR. Hai octet này được set về 0 cho không gian nhãn “per-platform”. Tất cả các thông điệp LDP có cùng format như hình 1.27:
Hình 1.27: Format thông điệp LDP
Học viện công nghệ bưu chính viễn thông
20
Đồ án tốt nghiệp Đại học I
Chương
Bit U: bit unknown, luôn là 0 vì đặc tả LDP không có kiểu bản tin Unknown. Message Length : Chiều dài của các trường sau Message Length tính theo octet (gồm Message ID, các tham số bắt buộc và tùy chọn). Messafe ID đôi khi được dùng để liên kết một số bản tin với các bản tin khác, ví dụ một bản tin đáp ứng có cùng Message ID với bản tin yêu cầu tương ứng. Các tham số bắt buộc và tùy chọn phụ thuộc vào các loại bản tin được gửi, chúng thường dùng kiểu mã hóa TLV (Type-Length-Value). Nói chung, mọi thứ xuất hiện trong một thông điệp LDP có thể được mã hóa kiểu TLV, tuy nhiên đặc tả LDP không phải lúc nào cũng sử dụng lược đồ TLV. 1.7.1.3 Các bản tin LDP •
Hello: Được trao đổi trong suốt quá trình hoạt động LDP như trình bày ở
trên. •
Initialization: Được gửi khi bắt đầu một phiên LDP giữa 2 LSR để trao đổi các tham số, các tùy chọn cho phiên. Các tham số này bao gồm: •
Chế độ phân bổ nhãn.
•
Các giá trị bộ định thời
•
Phạm vi các nhãn sử dụng trong kênh giữa 2 LSR đó.
Cả 2 LSR đều có thể gửi các bản tin Initialization và LSR nhận sẽ trả lời bằng KeepAlive nếu các tham số được chấp nhận. Nếu có một tham số nào đó không được chấp nhận thì LSR trả lời thông báo có lỗi nếu phiên kết thúc. o
KeepAlive : Được gửi định kỳ khi không còn bản tin nào cần gửi
để đảm bảo cho mỗi thành phần LDP biết rằng thành phần LDP khác đang hoạt động tốt. Trường hợp không xuất hiện bản tin KeepAlive hay một số bản tin LDP khác trong khoảng thời gian nhất định thì LSR sẽ xác định đối tác LDP hỏng hoặc kết nối có sự cố và phiên LDP chấm dứt. o
Label Mapping : Được sử dụng để quảng bá gán kết giữa FEC và
nhãn. o
Label Withdrawal : Thực hiện quá trình ngược lại với bản tin Label
Mapping. Nó được sử dụng để xóa bỏ gán kết đã thực hiện trong Label Mapping. Bản tin này được sử dụng trong trường hợp :
Học viện công nghệ bưu chính viễn thông
21
Đồ án tốt nghiệp Đại học I
Chương
Khi có sự thay đổi trong bảng định tuyến (thay đổi tiền tố địa chỉ), lúc đó LSR không còn nhận ra FEC này nữa. trong FEC đó. o
Thay đổi trong cấu hình LSR làm tạm dừng việc chuyển nhãn các gói Label Release : Được sử dụng bởi LSR khi nhận được chuyển đổi
nhãn mà nó không cần thiết nữa. Điều đó thường xảy ra khi LSR giải phóng nhận thấy nút tiếp theo cho FEC không phải là LSR quảng bá liên kết nhãn/FEC đó. o
Label Request : Sử dụng trong chế độ hoạt động gán nhãn theo yêu
cầu, LSR sẽ yêu cầu gán nhãn LSR kế cận phía đường xuống bằng bản tin này. o
Label Request Abort : Nếu bản tin Label Request cần phải hủy bỏ
trước khi được chấp nhận (do nút kế tiếp trong FEC yêu cầu đã thay đổi), thì LSR yêu cầu sẽ loại bỏ yêu cầu trước đó bằng bản tin Label Request Abort. 1.7.1.4 LDP điều khiển độc lập và phân phối theo yêu cầu Ví dụ dưới đây (hình 1.28) minh họa việc sử dụng bản tin Label Request và Label Mapping. Trong các chế độ công bố nhãn theo yêu cầu và điều khiển độc lập. Trình tự thời gian trao đổi các bản tin LDP giữa các đối tác (peer) thiết lập một LSP từ bộ định tuyến lối vào R1 qua R2 rồi đến bộ định tuyến lối ra R3 cho một FEC có tiền tố “a.b/16”. R1 khởi tạo tiến trình bằng cách yêu cầu một nhãn cho FEC “a.b/16” từ chặng kế của nó R2. Vì sử dụng điều khiển độc lập nên R2 trả ngay một ánh xạ nhãn về cho R1 trước khi R2 nhận được ánh xạ nhãn từ phía đường xuống là R3. Cả R2 và R3 đáp ứng bằng bản tin Label Mapping, kết quả là trong FIB của R1 và LFB của R2, R3 có các thực thể gắn kết nhãn hình thành nên đường chuyển mạch nhãn LSP.
Học viện công nghệ bưu chính viễn thông
22
Đồ án tốt nghiệp Đại học I
Chương
Hình 1.28: LDP chế độ điều khiển theo yêu cầu LDP còn hỗ trợ các chế độ phân phối nhãn khác. Khi cấu hình ở chế độ công bố không cần yêu cầu (downstream unsolicited), các bộ định tuyến sẽ không dùng bản tin Label Request. Nếu điều khiển tuần tự (ordered control) được cấu hình trên mỗi giao diện, các yêu cầu nhãn sẽ làm cho các bản tin Label Mapping được trả về theo thứ tự từ R3 đến R2, rồi mới từ R2 về R1. Tổng quát, trong chế độ phân phối theo yêu cầu điều khiển tuần tự, ánh xạ nhãn diễn ra đầu tiên ở bộ định tuyến lối ra, rồi sau đó lần lượt ngược về đến bộ định tuyến lối vào. 1.7.2 Giao thức CR-LDP CR-LDP (constrain-based routing LDP) là giao thức mở rộng từ LDP (RFC 3212) nhằm hỗ trợ đặc biệt cho định tuyến ràng buộc, kỹ thuật lưu lượng và các hoạt động dự trữ tài nguyên. Các khả năng của CR-LDP tùy chọn bao gồm thương lượng các tham số lưu lượng như cấp phát băng thông, thiết lập và cầm giữ quyền ưu tiên. 1.7.2.1 Mở rộng cho định tuyến ràng buộc CR-LDP bổ sung thêm các đối tượng Type-Length-Value mới sau đây : •
Tuyến tường minh ER
•
Chặng tường minh ER-Hop
•
Các tham số lưu lượng
•
Sự lấn chiếm (Preemptions)
•
Nhận diện LSP (LSPID)
•
Gim tuyến (Route Pinning)
Học viện công nghệ bưu chính viễn thông
23
Đồ án tốt nghiệp Đại học I
•
Lớp tài nguyên (Resource Class)
•
CR-LSP FEC
Chương
Một số thủ tục mới cũng được bổ sung để hỗ trợ các chức năng cần thiết như: o
Báo hiệu đường (Path Signalling)
o
Định nghĩa các tham số lưu lượng
o
Quản lý LSP ( quyền ưu tiên, cam kết quản trị….)
CR-LDP sử dụng cơ chế gán nhãn theo yêu cầu và điều khiển tuần tự. Một LSP được thiết lập khi một chuỗi các bản tin Label Request lan truyền từ ingress-LSR đến egress-LSR, nếu đường được yêu cầu thỏa mãn các ràng buộc (ví dụ như đủ băng thông khả dụng), thì các nhãn mới được cấp phát và phân phối bởi một chuỗi các bản tin Label Mapping lan truyền ngược về ingress-LSR. Việc thiết lập một CR-LSP có thể thất bại vì nhiều lý do khác nhau và các lỗi sẽ được báo hiệu bằng bản tin Notification. 1.7.2.2 Thiết lập một CR-LSP Để thiết lập một LSP theo một con đường định trước, CR-LDP sử dụng đối tượng tuyến tường minh ER. ER được chứa trong các bản tin Label. Xét ví dụ trong hình 1.29. Giả sử LSR A muốn thiết lập một con đường tường minh là B-C-D. Để thực hiện việc này, LSR A xây dựng đối tượng ER chứa tuần tự 3 nút trừu tượng là LSR B, LSR C, LSR D. Mỗi nút được đại diện bằng một địa chỉ IP tiền tố. LSR A sau đó được xây dựng một bản tin Label Request có chứa đối tượng ER mới đã tạo. Khi bản tin được tạo xong, LSR A sẽ xem xét nút trừu tượng đầu tiên trong đối tượng ER là LSR B, tìm kết nối đến LSR B và gửi bản tin Label Request trên kết nối. Khu LSR B nhận bản tin Label Request, LSR B nhận thấy nó là nút trừu tượng đầu tiên trong đối tượng ER. LSR B sau đó tìm kiếm nút trừu tượng kế tiếp là LSR C và tìm kết nối đến LSR C. Sau đó LSR B thay đổi đối tượng ER và gửi bản tin Label Request đến LSR C, lúc này đối tượng ER chỉ gồm LSR C và LSR D. Việc điều khiển bản tin này tại LSR cũng tương tự như ở LSR B.
Học viện công nghệ bưu chính viễn thông
24
Đồ án tốt nghiệp Đại học I
Chương
Hình 1.29: Thiết lập LSP và CR-LD Khi bản tin đến LSR D, LSR D nhận thấy rằng nó là nút cuối cùng trong đối tượng ER. Vì vậy, LSR D tạo nên một bản tin Label Mapping và gửi nó đến LSR C. Bản tin này để cập nhật LFIB. Sau đó, LSR C gửi bản tin Label Mapping đến LSR B. Bản tin này cũng chứa nhãn mà LSR C đã quảng bá. Việc điều khiển bản tin Label Mapping ở LSR B hoàn toàn tương tự như ở LSR C. Cuối cùng, LSR A nhận được bản tin và LSP được thiết lập theo con đường định tuyến tường minh cho trước để mang thông tin về tài nguyên cần phải dữ trữ. 1.7.2.3 Tiến trình dự trữ tài nguyên .
Khi một nút CD-LDP nhận được một bản tin Label Request, nó gọi Admission
Control để kiểm tra xem nút này có các tài nguyên được yêu cầu không. Nếu có đủ tài nguyên khả dụng, Admission Control dự trữ nó bằng cách cập nhật bảng Resource. Sau đó bản tin Label Request được chuyển tiếp đến nút MPLS kề sau. Khi nút CR-LDP nhận bản tin Label Mapping, nó lưu thông tin nhãn và giao diện vào bảng LIB, lưu thông tin CR-LDP được yêu cầu vào bảng cơ sở thông tin tuyến tường minh ERB (Explicit Route information Base). Rồi nó gọi Resource Manager để taọ một bảng hàng đợi phục vụ cho CR-LSP được yêu cầu, và lưu Service ID của nó vào bảng ERB. Cuối cùng nó chuyển tiếp bản tin LSP Mapping tới nút MPLS kề trước. 1.7.3 Giao thức RSVP-TE RSVP có một số cơ chế cần thiết để thực hiện báo hiệu phân phối nhãn nhằm ràng buộc định tuyến. IETF đã chuyên hóa mở rộng kỹ thuật lưu lượng RSVP-TE, định nghĩa các ứng dụng của RSVP-TE như hỗ trợc phân phối nhãn theo yêu cầu để cấp phát tài nguyên cho các LSP định tuyến tường minh.
Học viện công nghệ bưu chính viễn thông
25
Đồ án tốt nghiệp Đại học I
Chương
1.7.3.1 Các bản tin thiết lập dự trữ RSVP RSVP sử dụng khái niệm dữ trữ ở đầu nhận. Trước tiên đầu gửi phát ra một bản tin PATH nhận diện một luồng và các đặc tính lưu lượng của nó. Bản tin PATH chứa một session-ID, sender-template, label-request, sender-Tspec và tùy chọn là đối tượng tuyến tường minh ERO (explicit route object). Session-ID chứa một địa chỉ IP đích đi kèm một nhận dạng hầm 16 bit (tunnel ID) để nhận diện một đường hầm LSP. Như đã trình bày ở chương trước, chỉ có ingress-LSP mới cần biết về FEC được gán vào một đường hầm LSP. Do đó, không giống như LDP, FEC ánh xạ vào đường hầm LSP công bố nhãn theo yêu cầu. Sender-template chứa địa chỉ IP của đầu gửi đi kèm với một LSP ID có hỗ trợ phương thức “make-before-breal” khi thay đổi đường đi của một đường hầm LSP. Đặc tính lưu lượng của Tspec sử dụng tốc độ đỉnh (peak rate), thùng token (token bucket) để định nghĩa tốc độ và kích thước bùng phát, đơn vị khống chế tối thiểu và kích thước gói tối đa. Khi bản tin PATH đi đến đích, bên nhận đáp ứng bằng một bản tin RESV nếu nó đồng ý khởi tao việc gán kết nhãn được yêu cầu trong bản tin PATH. Bản tin RESV được truyền về theo đường ngược chiều với bản tin PATH bằng cách dùng thông tin chặng kề trước trong bản tin PATH. RESV cũng chứa cùng sesion-ID như ở bản tin PATH tương ứng, đối tượng ghi tuyến tùy chọn (route record) và thông tin lệ thuộc kiểu dự trữ (reservation style). Kiểu FF (fixed filter) có một nhãn và Tspec được ấn định cho mỗi cặp sender-receiver. Kiểu SE (share explicit) ấn định một nhãn khác nhau cho mỗi sender, nhưng tất cả chúng ta phải áp dụng cùng một dữ trữ luồng rõ ràng. Đối tượng record-route ghi nhận tuyến đường thực tế được chọn bởi LSP bắt đầu từ lối ra dẫn ngược về lối vào. Nó có thể được một bộ định tuyến dùng để ghim một tuyến tường minh thả lỏng bằng cách copy tuyến ghi được trong một bản tin RESV sang đối tượng tuyến tường minh ERO trong một bản tin PATH được gửi theo chiều ngược lại. 1.7.3.2 Các bản Tear Down, Error và Hello của RSVP-TE RSVP-TE định nghĩa 2 bản tin dành cho việc giải tỏa LSP là PATH TEAR và RESV TEAR. Hai bản tin này được gửi theo chiều ngược lại bản tin PATH và RESV tương ứng. Bản tin TEAR xóa bỏ bất kỳ trạng thái đã cài đặt liên quan đến bản tin PATH hay RESV. Các bản tin TEAR cũng có thể dùng để xóa các trạng thái đáp ứng cho mỗi lỗi ở bước đầu tiên trong hoạt động định tuyến. Có các bản tin thông báo lỗi cho bản tin PATH và RESV cũng như bản tin RESV CONFIRMATION tùy chọn. Các bản tin lỗi cho biết có sự vi phạm chính sách, mã hóa bản tin hoạc một số sự cố khác. Ví dụ, khi một LSP thấy rằng nó không thể hỗ trợ Học viện công nghệ bưu chính viễn thông
26
Đồ án tốt nghiệp Đại học I
Chương
Tspec đặc tả trong một bản tin RESV, nó sẽ không chuyển tiếp bản tin RESV về cho phía đường lên, thay vào đó nó tạo ra một bản tin RESVERR gửi cho phía đường xuống để xóa bỏ nỗ lực thiết lập LSP. Tuyến tường minh và các tùy chọn tuyến ghi của RSVP-TE có một số các mã lỗi để phục vị cho việc debug. RFC 3209 định nghĩa bản tin Hello tùy chọn cho RSVP-TE, nó cho phép một LSR phát hiện một neighbor bị lỗi nhanh hơn khi so với RSVP làm mới tình trạng hoặc phát hiện lỗi đường truyền bằng một giao thức định tuyến IP. Điều này khá hữu ích trong việc tái định tuyến nhanh. 1.7.3.3 Thiết lập tuyến tường minh điều khiển tuần tự theo yêu cầu Hình 1.30 ví dụ việc trao đổi bản tin RSVP-TE sử dụng đối tượng tuyến tường minh ERO (expplicit route object) để cài đặt một LSP đi qua một con đường không phải là đường ngắn nhất. Bộ định tuyến R1 xác định rằng nó sẽ ấn định FEC “a.b/16” cho một đường hầm LSP, và nó tính ra một tuyến tường minh R4-R5-R3 để đi đến chặng kế cho FEC đó. R1 khởi tạo việc thiết lập LSP này bằng cách phát ra một bản tin PATH đến R4 với một ERO, Tspec, sender template (có chứa địa chỉ của sender) và một đối tượng label request. Mỗi bản tin RESV liên quan đến đường hầm LSP này đều mang session-ID và filter-spec nguyên thủy của sender R1 để giữ mối tương quan với nhau. Tiếp theo, R4 tiếp nhận yêu cầu này và gửi bản tin PATH đến bộ định tuyến kế tiếp ghi trong ERO là R5. Đến lượt mình, R5 gửi bản tin này đến lối ra của bộ định tuyến R3. Tại đích đến của bản tin PATH, R3 xác định rằng liên kết chặng R3-R5 có thể hỗ trợ cho yêu cầu và đó là chặng cuối cùng trên đường dẫn FEC “a.b/16”. R3 đáp ứng bằng bản tin RESV có chứa ERO, Tspec của dung lượng dự trữ, một filter spec thỏa mãn bên gửi, và gán một nhãn null ngầm (implicit null) cho chặng liên kết này. Theo thời RFC 3031, nhãn null là một quy ước được dùng trong phân phối nhãn cho phép lối ra của bộ định tuyến (ở đây là R3) báo hiệu cho đối tác đường lên của nó biết rằng đây là chặng áp cuối (penulitmate hop) của LSP, do vậy cần gỡ nhãn đỉnh của ngăn xếp. Tiếp theo, R5 thu nạp bản tin RESV ngược về R1. Đến lúc này, đường LSP được thiết lập xong và các gói có nhãn cho FEC “a.b/16” được chuyển tiếp qua đường hầm.
Học viện công nghệ bưu chính viễn thông
27
Đồ án tốt nghiệp Đại học I
Chương
Hình 1.30: Thiết lập LSP với RSVP-TE Khác với giao thức LDP, các bản tin RSVP-TE không mang FEC, vì chỉ duy nhát có R1 cần biết về ánh xạ giữa FEC và đường hầm LSP. 1.7.3.4 Giảm lượng overhead làm tươi RSVP RSVP là giao thức trạng thái mềm (soft-staste), tiến trình phát một bản tin PATH và bản tin RESV hồi đáp tương ứng phải được định kỳ làm tươi, thường khoảng 30s một lần. Phương pháp làm tươi này đề phòng các bản tin bị mất và trong trường hợp định tuyến từng chặng sẽ tự động chuyển dự trữ tài nguyên sang đường mới khi có bất kì thay đổi định tuyến IP. Tất nhiên, việc xử lý dành cho khởi tạo các bản tin PATH và RESV lớn hơn nhiều so với việc làm tươi trạng thái một bản tin đã nhận trước đó, tuy nhiên với một số lượng lớn các LSP thì việc xử lý và làm tươi có ảnh hưởng đáng kể đến hiệu năng. Một cách giải quyết là tăng chu kỳ làm tươi, nhưng cũng sẽ làm tăng độ trễ tế báo hiệu khi mất bản tin. RFC 2961 đặc tả một giải pháp cho hạn mức xử lý và vấn đề trễ báo hiệu. Cơ chế này bao gồm việc bó gọn bản tin để giảm tải xử lý, cũng như các cách để bộ định tuyến dễ dàng nhận dạng một bản tin không thay đổi lớn. Việc hồi báo bản tin cũng được bổ sung để chuyển tải tin cậy bản tin RSVP và xử lý trường hợp mất các bản tin PATH TEAR và RESV TEAR vì hai bản tin này không được làm tươi trong Học viện công nghệ bưu chính viễn thông
28
Đồ án tốt nghiệp Đại học I
Chương
hoạt đông RSVP. Cuối cùng, giải pháp này định nghĩa một bản tin tổng kết để làm tươi trạng thái mà không yêu cầu truyền toàn bộ bản tin làm tươi. Các cải tiến này nhằm làm giảm lượng overhead làm tươi của RSVP trong mạng MPLS. 1.7.4 Giao thức BGP 1.7.4.1 BGPv4 và mở rộng cho MPLS BGPv4 (boder gateway protocol) là một giao thức định tuyến để gán kết tập hợp các mạng cung cấp dịch vụ trên internet. Vì nó chỉ là giao thức sử dụng giữa các nhà cung cấp, RFC2017 đã mở rộng BGP hỗ trợ phân phối nhãn MPLS để có thể thiết lập các LSP liên mạng. BGP có một tập thuật ngữ riêng. Một khái niệm quan trọng là số AS (Autonomous System) duy nhất, được định nghĩa là một tập hợp bộ định tuyến thực hiện một chính sách định tuyến ngoại thống nhất có thể nhận thấy đối với bộ định tuyến của AS khác. BGP không truyền các thông tin topology nội giữa các AS, nó chỉ cung cấp các thông tin về các tiền tố địa chỉ mà có thể tìm đến hoặc đi quá giang qua đó. Sử dụng BGP giữa các bộ định tuyến biên (border) nội trong một AS được gọi là BGP nội (iBGP), còn sử dụng BGP giữa các bộ định tuyến trong các AS khác nhau được goi là BGP ngoại (eBGP). BGP chạy trên một phiên TCP vì nó cần độ tin cậy, phân phát đúng thứ tự. Nó có 3 phiên hoạt động: thiết lập phiên, trao đổi bản tin cập nhật, và chấm dứt phiên. Trong thiết lập phiên, các đối tác BGP (BGP peer) trong các AS lân cận trao đổi các bản tin OPEN có chứa AS number, một giá trị keep-alive timeout, và các tham số tùy chọn như nhận thực. Các BGP peer định kỳ trao đổi bản tin keep-alive, nếu phát hiện hết thời gian hiệu lực sẽ chấm dứt phiên. Sau khi thiết lập phiên, các BGP peer trao đổi các bản tin UPDATE có chứa các tiền tố địa chỉ có thể đến được hiện hành (reachability), được gọi là NLRI (Network Layer Reachability Information). Sau khi trao đổi đồng bộ khởi tạo, các thay đổi định tuyến gia tăng được liên lạc bằng bản tin UPDATE. Nội dung bản tin BGP UPDATE gồm 3 phần (hình 1.31): các tuyến thu hồi (withdrawn route), một danh sách các tiền tố địa chỉ NRLI, và một danh sách tùy chọn các thuộc tính liên quan. Các BGP peer tạo quyết định chính sách cục bộ khi xem xét công bố một NLRI với các thuộc tính đường được tùy chọn hay thu hồi thông cáo trước đó. Chính sách thường dùng là chọn NLRI có tiền tố địa chỉ đặc tả so trùng nhất, chọn một đường có số chặng AS ít nhất.
Học viện công nghệ bưu chính viễn thông
29
Đồ án tốt nghiệp Đại học I
Chương
Hình 1.31: Nội dung bản tin BGP Update Khi bản tin UPDATE chứa thông tin NLRI, một số thuộc tính đường là bắt buộc trong khi một số khác là tùy chọn. Các thuộc tính đường bắt buộc là ORIGIN, ASPATH, và NEXT HOP. ORIGIN nhận diện nguồn gốc của NLRI, thí dụ nó được học qua giao thức định tuyến nội hay ngoại. AS-PATH liệt kê một path-vector gồm một tập AS đã đi qua đến thời điểm hiện tại (một chuỗi thứ tự các AS). Vì chiều dài của ASPATH thường là yếu tố quyết định chọn một tuyến, nên BGP được gọi là giao thức path-vector. Các bộ định tuyến sử dụng AS-PATH để tránh lặp bằng cách không chuyển tiếp các thông cáo tuyến có chứa số AS của chúng. NEXT-HOP nhận diện địa chỉ IP của bộ định tuyến biên cần dùng để tìm đến NLRI. BGP có một tham số tùy chọn có thể thực hiện một dạng cân băngg tải: LOCALPREF và MED. LOCALPREF cho phép AS đầu gửi chỉ định một sự ưu tiên cho lưu lượng đến từ một AS khác. RFC 2283 định nghĩa các mở rộng đa giao thức cho BGP để phân phối nhãn MPLS nằm trong một phần của NLRI. Các BGP peer thương lượng hỗ trợ cho khả năng tùy chọn này vào lúc thiết lập phiên. Thủ tục cơ bản là gửi việc phân phối nhãn theo kiểu không cần yêu cầu song song khi thực hiện phân phối tuyến BGP. 1.7.4.2 Kết nối MPLS qua nhiều nhà cũng cấp dịch vụ BGP có thể dùng để thiết lập phân phối nhãn cho các LSP đi xuyên qua các mạng của nhiều nhà cung cấp khác nhau. Hình 1.32 gồm 3 hệ tự trị là A,B và C. AS A cấp phát cho khách hàng tiền tố địa chỉ (FEC) “a.b/16”. Bộ định tuyến C3 quảng bá nhó như một NLRI cho AS-A và AS-B bằng bản tin BGP UPDATE có chứa next-hop và ASPATH. Bản tin UPDATE được gửi bởi C3 đến A3 còn mạng một ánh xạ từ FEC “a.b/16” sang nhãn L. Bộ định tuyến A3 trong AS A thu thập tất cả các thông cáo này trong bảng RIB của nó, thí dụ thông qua một lưới các phiên iBGP hoặc một “route
Học viện công nghệ bưu chính viễn thông
30
Đồ án tốt nghiệp Đại học I
Chương
reflector”. Nhằm tìm cách tốt nhất để chuyển tiếp các gói đến tiền tố “a.b/16”, A1 có thể xác định rằng đường AS ngắn nhất là qua chặng kế A3 sử dụng nhãn L. Nhờ định tuyến nội và giao thức phân phối nhãn của mình, bộ định tuyến A1 cũng biết rằng tuyến tốt nhất để đến A3 là đi qua A2 sử dụng nhãn M. Kết quả là khi chuyển gói đến tiền tố “a.b/16”, bộ định tuyến A1 push nhãn L lên gói rồi push tiếp nhãn M trên đỉnh ngăn xếp. Như vậy, một LSP được chui bên trong một đường hầm LSP khác. LSP1 bên ngoài kéo dài từ A1 đến A3. Trong khi đó, LSP2 kéo dài từ AS A đến AS C và có một đoạn chui bên trong LSP1
Hình 1.32: BGP phân phối nhãn qua nhiều Autonomous System
1.8 Ưu điểm và ứng dụng của MPLS 1.8.1 Đơn giản hóa chức năng chuyển tiếp MPLS sử dụng cơ chế chuyển tiếp căn cứ vào nhãn có độ dài cố định nên quyết định chuyển tiếp có thể xác định ngay chỉ với một lần tra cứu chỉ mục trong LFIB. Cơ chế này đơn giản và nhanh hơn nhiều so với giải thuật “longest prefix match” dùng trong chuyển tiếp gói datagram thông thường. 1.8.2 Kỹ thuật lưu lượng
Học viện công nghệ bưu chính viễn thông
31
Đồ án tốt nghiệp Đại học I
Chương
Ưu điểm lớn nhất của MPLS là ở khả năng thực hiện kỹ thuật lưu lượng (TE: traffic engineering), nó đảm bảo lưu lượng được định tuyến đi qua một mạng theo một cách thức tin cậy và hiệu quả nhất. Kỹ thuật lưu lượng cho phép các ISP định tuyến lưu lượng theo cách họ có thể cũng cấp dịch vụ tốt nhất cho khách hàng ở khía cạnh thông lượng và độ trễ. MPLS-TE cho phép lưu lượng được phân bố hợp lý quá toàn bộ hạ tầng mạng, tối ưu hóa hiệu suất sử dụng mạng. Đây cũng là đối tượng nghiên cứu chính của đề tài này và sẽ được trình bày kỹ ở các chương tiếp theo. 1.8.3 Định tuyến QoS từ nguồn Định tuyến QoS từ nguồn là một cơ chế trong đó các LSR được xác định trước ở nút nguồn (LSR lối vào) dựa vào một số thông tin về độ khả dụng tài nguyên trong mạng cũng như yêu cầu QoS của luồng lưu lượng. Nói cách khác, nó là một giao thức định tuyến có mở rộng chỉ tiêu chọn đường để bao gồm các tham số như băng thông khả dụng, việc sử dụng liên kết và đường dẫn end-to-end, độ chiếm dụng tài nguyên của nút, độ trễ và biến động trễ. 1.8.4 Mạng riêng ảo VPN VPN là cho phép khách hàng thiết lập mạng riêng giống như thuê kênh riêng nhưng với chi phí thấp hơn bằng cách sử dụng hạ tầng mạng công cộng dùng chung. Kiến trúc MPLS đáp ứng tất cả các yêu cầu cần thiết để hỗ trợ VPN bằng cách thiết lập các đường hầm LSP sử dụng định tuyến tường minh. Do đó, MPLS sử dụng các đường hầm LSP cho phép nhà khai thác cung cấp dịch vụ VPN theo cách tích hợp trên cùng hạ tầng mà họ cũng cấp dịch vụ Internet. Hơn nữa, cơ chế xếp chồng nhãn cho phép cấu hình nhiều VPN lồng nhau trên hạ tầng mạng. 1.8.5 Chuyển tiếp có phân cấp Thay đổi đáng kể nhất được MPLS đưa ra không phải ở kiến trúc định tuyến mà là kiến trúc chuyển tiếp. Sự cải tiến trong kiến trúc chuyển tiếp có tác động đáng kể đến khả năng cung cấp chuyển tiếp phân cấp. Chuyển tiếp phân cấp cho phép lồng một LSP vào trong một LSP khác (xếp chồng nhãn hay còn gọi là điều khiển gói đa cấp). Thực ra chuyển tiếp phân cấp không phải là kỹ thuật mới, ATM đã cung cấp cơ chế chuyển tiếp 2 mức với khái niệm đường ảo (VP) và kênh ảo (VC). Tuy nhiên MPLS cho phép các LSP được lồng vào nhau một cách tùy ý, cung cấp điều khiển gói đa cấp cho việc chuyển tiếp. 1.8.6 Khả năng mở rộng
Học viện công nghệ bưu chính viễn thông
32
Đồ án tốt nghiệp Đại học I
Chương
Chuyển mạch nhãn cung cấp một sự tách biệt toàn diện hơn giữa định tuyến liên miền (inter-domain) và định tuyến nội miền (intra-domain), điều này cải thiện đáng kể khả năng mở rộng của các tiền trình định tuyến. Hơn nữa, khả năng mở rộng của MPLS còn nhờ vào FEC (thu gom luồng), và xếp chồng nhãn để hợp nhất (merging) hoặc lồng nhau (nesting) các LSP. Ngoài ra, nhiều LSP liên kết với các FEC khác nhau có thể được trộn vào cùng một LSP. Sử dụng các LSP lồng nhau cũng cải thiện khả năng mở rộng của MPLS. 1.9 Kết luận chương Chương I giới thiệu các vấn đề cơ bản của công nghệ chuyển mạch nhãn đa giao thức: •
Các thuật ngữ cơ bản trong MPLS: Miền MPLS , lớp chuyển tương đương FEC, đường chuyển mạch nhãn LSP, mã hóa ngăn xếp nhãn….. •
Hoạt động chuyển tiếp và định tuyến trong MPLS: Hoạt động trong mặt phẳng chuyển tiếp ,định tuyến ràng buộc, định tuyến tường minh •
Các giao thức hoạt động chuyển tiếp (LDP, CR-LDP, BGP…)
•
Ưu nhược điểm và ứng dụng của MPLS
Các vấn đã nêu ra cho ta cái nhìn tổng quan về công nghệ MPLS đang được triển khai nhanh chóng trong mạng NGN của Việt Nam.
Học viện công nghệ bưu chính viễn thông
33
Đồ án tốt nghiệp Đại học
Chương II
CHƯƠNG II KĨ THUẬT LƯU LƯỢNG TRONG MPLS VÀ CƠ CHẾ BẢO VỆ KHÔI PHỤC ĐƯỜNG 2.1 Tổng quan về kỹ thuật lưu lượng Kỹ thuật lưu lượng (Traffic Engineering) là quá trình điều khiển cách thức các luồng lưu lượng đi qua mạng sao cho tối ưu hóa việc sử dụng tài nguyên và hiệu năng của mạng. Nó ứng dụng các nguyên lý khoa học công nghệ để đo lường, mô hình hóa, đặc trưng hóa và điều khiển lưu lượng nhằm đạt được các mục tiêu khác nhau. Khái niệm TE phân biệt với khái niệm kỹ thuật mạng (Network Engineering). Kỹ thuật mạng liên quan đến việc thiết kế xây dựng topology của mạng sao cho phù hợp với lưu lượng. 2.1.1 Các mục tiêu triển khai kỹ thuật lưu lượng 2.1.1.1 Phân loại Các mục tiêu triển khai kỹ thuật lưu lượng có thể phân theo hai hướng sau:
Hướng lưu lượng (traffic oriented)
Hướng tài nguyên (resource oriented)
Các mục tiêu hướng dẫn lưu lượng liên quan đến việc tăng cường QoS cho các luồn lưu lượng. Trong mô hình đơn lớp (dịch vụ best-effort), các mục tiêu này gồm: giảm thiểu mất gói và trễ, tăng tối đa thông lượng và tuân thủ các hợp đồng mức dịch vụ (SLA)… Các mục tiêu hướng lưu lượng bị chặn thống kê (như thay đổi độ trễ gói đỉnhđỉnh, tỷ lệ mất gói, trễ truyền tối đa) cũng rất hữu ích trong mô hình dịch vụ phân biệt (Diffserv). Các mục tiêu hướng tài nguyên liên quan đến việc tối ưu hóa sử dụng tài nguyên. Băng thông là một tài nguyên cốt yếu của mạng, do đó chức năng trọng tâm của kỹ thuật lưu lượng là quản lý hiệu quả tài nguyên băng thông. 2.1.1.2 Bài toán nghẽn Nghẽn thường xảy ra theo hai cách như sau: •
Khi bản thân các tài nguyên mạng không đủ để cấp cho tải yêu cầu.
• Khi các dòng lưu lượng được ánh xạ không hiệu quả lên các tài nguyên, làm cho một số tập con tài nguyên trở nên quá tải trong khi số khác nhàn rỗi. •
Có thể giải quyết tắc nghẽn bằng cách:
Học viện công nghệ bưu chính viễn thông
34
Đồ án tốt nghiệp Đại học
Chương II
Tăng dung lượng hoặc ứng dụng các kỹ thuật điều khiển tắc nghẽn cổ
o
điển (giới hạn tốc độ, điều khiển luồng, quản trị hàng đợi, điều khiển lịch trình…) Dùng kỹ thuật lưu lượng nếu nghẽn là do cấp phát tài nguyên chưa hiệu
o quả.
Đối tượng giải quyết của kỹ thuật lưu lượng là nghẽn kéo dài chứ không phải nghẽn nhất thời do bùng phát lưu lượng. 2.1.2 Các lớp dịch vụ dựa trên nhu cầu QoS và các lớp lưu lượng Lưu lượng có thể được tổ chức xoay quanh một khái niệm goi là các lớp dịch vụ (service classes). Các lớp lưu lượng này được định nghĩa theo những hoạt động sau: •
Quan hệ đồng bộ giữa đầu phát và đầu thu: chỉ biến động trễ có thể chấp nhận
được một kết nối. •
Tốc độ bit: cố định hay biến đổi
•
Loại dịch vụ: hướng kết nối hay không kết nối
•
Các hoạt động điều khiển luồng.
•
Số thứ tự cho thông tin người sử dụng
•
Phân đoạn và tái hợp các PDU (Protocol Data Unit)
2.1.3 Hàng đợi lưu lượng Nhiều hệ thống (đặc biệt là bộ định tuyến) hỗ trợ một số dạng hàng đợi thông dụng sau: 2.1.3.1 Hàng đợi FIFO Hàng đợi FIFO (First in, First out) gói theo thứ tự, gói đến trước sẽ được truyền trước. 2.1.3.2 Hàng đợi WFQ Băng thông rỗi được chia cho các hàng đợi tùy thuộc vào trọng số (weight) của chúng. Xét ví dụ sau có hai luồng lưu lượng A,B,..N và trọng số của chúng được đánh số như hình 2.1 trong đó: có bốn luồng (D,E,F,G) có trọng số 5, có hai luồng có trọng số 4, còn ở các trọng số khác chỉ có một luồng .
Học viện công nghệ bưu chính viễn thông
35
Đồ án tốt nghiệp Đại học
Chương II
Hình 2.1: Nhiều luồng cho mỗi lớp lưu lượng. 2.1.3.3 Hàng đợi CQ CQ (Custom Queuing) cho phép người dùng chỉ ra phần trăm băng thông khả dụng cho một giao thức đặc biệt nào đó. Ta có thể định nghĩa tối đa đến 16 hàng đợi. Mỗi hàng đợi được phục vụ một cách tuần tự theo phương thức truyền phần trăm lưu lượng trên mỗi hàng đợi trước khi chuyển đến hàng đợi kế (hình 2.2).
Hình 2.2: Hàng đợi CQ 2.1.3.4 Hàng đợi PQ (Priority Queuing) Tất cả các gói thuộc lớp có mức ưu tiên cao hơn sẽ được truyền trước bất kỳ gói nào thuộc lớp có mức ưu tiên thấp hơn. PQ cho phép người quản lý mạng cấu hình bốn Học viện công nghệ bưu chính viễn thông
36
Đồ án tốt nghiệp Đại học
Chương II
thuộc tính lưu lượng là cao (high), thông thường (normal), trung bình (medium) và thấp (low). Lưu lượng đến được gán vào một trong 4 hàng đợi (hình 2.3).
Hình 2.3: Hàng đợi PQ 2.1.4 Giải thuật thùng rò và thùng token 2.1.4.1 Giải thuật thùng rò (Leaky Bucket) Mô hình thùng rò (hình 2.4) có thể được diễn tả như sau: bất chấp tốc độ nước được đổ vào thùng là bao nhiêu, tốc độ dòng nước chảy ra là không đổi miễn là trong thùng còn nước. Một khi thùng đầy, lượng nước được đổ thêm vào sẽ bị tràn và mất. Các thông số cần chú ý trong mô hình thùng rò là kích thước của thùng và tốc độ dòng chảy ra.
Hình 2.4: Giải thuật thùng dò
Học viện công nghệ bưu chính viễn thông
37
Đồ án tốt nghiệp Đại học
Chương II
Mô hình trên có thể áp dụng cho gói. Bất kể lưu lượng tới có tốc độ biến động như thế nào, lưu lượng ra đều có tốc độ không đổi. 2.1.4.2 Giải thuật thùng token Thùng token (Token Bucket) có kích thước là B, tốc độ token “chảy” vào thùng không đổi là p, nghĩa là trong một giây sẽ có thêm p token mới chảy vào thùng. Số lượng token trong thùng không vượt quá B hay nói cách khác, B là số lượng token tối đa trong thùng. Khi có gói đến, G là kích thước của gói, gói được xem là “phù hợp” khi lượng token trong thùng lớn hơn hay bằng G, đồng thời lượng token trong thùng được giảm đi G. Ngược lại, khi token trong thùng nhỏ hơn kích thước gói, gói được xem là vượt mức hay không hợp lệ. Tùy thuộc vào các chính sách khác nhau mà gói vượt mức (hay không hợp lệ) được xử lý khác nhau. Giải thuật thùng token có thể được dùng trong việc sửa dạng lưu lượng (shaping) hay được ứng dụng trong việc thực thi khống chế (policing).
Hình 2.5: Giải thuật thùng token Trong sửa dạng lưu lượng thuật toán token cho phép một ít bùng phát ở ngõ ra, điều này không có ở thuật toán thùng rò khi mà tốc độ ra là không đổi. Như vậy, thùng token cho đáp ứng ra tốt hơn so với thùng rò trong việc thực thi khống chế (policing).
Học viện công nghệ bưu chính viễn thông
38
Đồ án tốt nghiệp Đại học
Chương II
Trong sửa dạng lưu lượng, thuật toán thùng token có thể được dùng độc lập hay được dùng phối hợp. 2.1.5 Giải pháp mô hình xếp chồng
Hình 2.6: Mô hình xếp chồng Một cách tiếp cận phổ biến để bù đắp các thiếu sót của các giao thức IGP (interior gateway protocols ) là sử dụng môt hình xếp chồng (như IP over ATM hoặc IP over FR). Tất cả các bộ định tuyến là lớp 3 được kết nối trực tiếp với nhau bằng một lưới full-mesh các mạch ảo VC. Kỹ thuật lưu lượng được thực hiện ở lớp 2 (ATM hoặc FR). Tuy nhiên, mô hình này có nhiều nhược điểm sau đây: •
Tốn kém thêm nhiều thiết bị (các chuyển mạch ATM hoặc FR).
•
Quản lý mạng phức tạp hơn: Mạng lớp 2 có các công cụ quản lý riêng với nhiều tác vụ hỗ trợ kỹ thuật lưu lượng. Đồng thời mạng các bộ định tuyến lớp 3với giao thức IGP cũng phải được quản lý. Việc quản lý 2 lớp mạng này không tích hợp được. • Phát sinh nhiều vấn đề mở rộng đối với IGP do số lượng quá lớn các neighbor khi kết nối full-mesh để tận dụng các tiện ích cung cấp bởi lớp 2. •
Tốn thêm băng thông cho lượng overhead của ATM hoặc FR (cell tax).
• Không hỗ trợ dịch vụ phân biệt (Diffserv). Mọi dịch vụ phân biệt của IP đưa xuống (qua AAL5 của ATM) đều trở thành “best-effort” 2.2 MPLS và kỹ thuật lưu lượng MPLS có ý nghĩa chiến lược đối với kỹ thuật lưu lượng vì nó có thể cung cấp hầu hết các chức năng hiện có ở mô hình xếp chồng nhưng theo cách tích hợp với chi phí thấp. Điều quan trọng là MPLS còn đề xuất khả năng tự động hóa các chức năng kỹ thuật lưu lượng. Học viện công nghệ bưu chính viễn thông
39
Đồ án tốt nghiệp Đại học
Chương II
2.2.1 Khái niệm trung kế lưu lượng MPLS giới thiệu khái niệm trung kế lưu lượng để thực hiện các mục tiêu TE. Trung kế lưu lượng là một khối thu gom (aggregate) các luồng lưu lượng thuộc cùng lớp, được đặt bên trong một LSP. Trong một số hoàn cảnh có thể nới lỏng định nghĩa này để cho phép trung kế lưu lượng thu gom lưu lượng đa lớp. •
Trong mô hình dịch vụ đơn lớp, một trung kết lưu lượng có thể đóng gói toàn bộ
lưu lượng giữa một bộ định tuyến lối vào và một bộ định tuyến lối ra. Trong trường hợp phức tạp hơn, lưu lượng của các lớp dịch vụ phân biệt được ấn định vào các trung kế lưu lượng riêng biệt với các đặc tính khác nhau. • •
Trung kế lưu lượng là đối tượng có thể định tuyến (tương tự như ATM VC). Trung kế lưu lượng phân biệt với LSP là đường cho trung kế đi xuyên qua.
Trong bối cảnh hoạt động, một trung kế lưu lượng có thể chuyển từ LSP này sang một LSP mới hoặc nhiều trung kế lưu lượng cùng di chung trên một LSP. •
Trung kế lưu lượng là đơn hướng.
2.2.2 Đồ thị nghiệm suy Đồ thị nghiệm suy (incluced graph) gần giống như topology ảo trong mô hình xếp chồng. Nó được ánh xạ trên mạng vật lý thông qua việc lựa chọn các LSP cho các mạng trung kế lưu lượng. Một đồ thị nghiệm suy gồm một nhóm các nút LSR được kết nối với nhau bằng LSP. Khái niệm này rất quan trọng vì bài toán quản lý băng thông cơ bản trong một miền MPLS đặt ra chính là làm thế nào để ánh xạ hiệu quả đồ thị nghiệm suy trên topology mạng vật lý. Đồ thị nghiệm suy được công thức hóa như sau: Đặt G = (V, E, C) là đồ thị mô tả topology vật lý của mạng. Trong đó V là tập hợp các nút mạng, E là tập hợp các đường liên kết, C là tập hợp các khả năng và ràng buộc cho E và V. Ta coi G là topology cơ sở. Đặt H = (U, F, D) là đồ thị MPLS nghiệm suy, trong đó U là tập con thuộc V gồm một nhóm LSR tại các đầu của LSP. F là tập hợp các yêu cầu và chế tài cho F. Như vậy, H là một đồ thị trực tiếp phụ thuộc vào các đặc tính chuyển tải của G. 2.2.3 Bài toán cơ bản của kỹ thuật lưu lượng trên MPLS Có ba vấn đề cơ bản liên quan đến kỹ thuật lưu lượng trên MPLS là:
Học viện công nghệ bưu chính viễn thông
40
Đồ án tốt nghiệp Đại học
Chương II
Ánh xạ các gói lên các lớp chuyển tiếp tương đương (FEC).
Ánh xạ các FEC lên các lớp trung kế lưu lượng (traffic trunk).
LSP.
Ánh xạ các trung kế lưu lượng lên topology mạng vật lý thông qua các
Các phần sau của chương sẽ tập trung vào vấn đề thứ ba, tức là tính toán đường đi tốt nhất qua mạng cho các trung kế lưu lượng sao cho mạng hoạt động hiệu quả và tin cậy. Đây chính là bài toán ánh xạ đồ thị nghiệm suy H lên topology mạng cơ sở G. 2.3 Trung kế lưu lượng và các thuộc tính Để xây dựng và duy trì trung kế lưu lượng, người ta tìm cách mô hình hóa nó bằng các tham số. Một thuộc tính là một tham số được gán và có ảnh hưởng đến các đặc trưng hành vi của trung kế lưu lượng. Các thuộc tính có thể được gán cụ thể thông qua hành động quản trị hoặc được gán ngầm bởi các giao thức bên dưới khi các gói được phân loại và ánh xạ vào FEC tại lối vào miền MPLS. Thực tế, một trung kế lưu lượng có thể đặc trưng hóa bởi: ♣
Ingress-LSR và egress-LSR của trung kế lưu lượng
♣
Tập các FEC được ánh xạ vào trung kế lưu lượng
♣
Một tập các thuộc tính nhằm xác định các đặc trưng hành vi của trung kế.
Hai vấn đề cơ bản có ý nghĩa đặc biệt là: (1) Tham số hóa các trung kế lưu lượng và (2) những quy luật sắp đặt và duy trì đường dẫn cho các trung kế lưu lượng. 2.3.1 Các hoạt động cơ bản trên trung kế lưu lượng Là các tiến trình khác nhau xảy ra trong thời gian sống của một trung kế lưu lượng:
Establish: Tạo ra một trung kế lưu lượng bằng cách quyết định một LSP, gán các nhãn MPLS và quan trọng nhất là gán tài nguyên trung kế đó.
Activate: Làm cho trung kế lưu lượng bắt đầu chuyển dữ liệu bằng cách dùng một số chức năng định tuyến để lưu lượng vào trung kế.
Deactivate: Làm cho trung kế lưu lượng ngưng chuyển dữ liệu cũng bằng cách dùng một chức năng định tuyến để dừng việc đưa lưu lượng vào trung kế.
Modify Attributes: Thay đổi các đặc trưng của trung kế lưu lượng, chẳng hạn như băng thông khả dụng.
Reroute: chọn một đường mới cho trung kế lưu lượng (thường là do một số sự cố trong mạng hoặc đôi khi khôi phục xong sự cố). Học viện công nghệ bưu chính viễn thông
41
Đồ án tốt nghiệp Đại học
Chương II
Destroy: Loại bỏ hoàn toàn một trung kế lưu lượng khỏi mạng và thu hồi tất cả các tài nguyên đã cấp phát cho nó. 2.3.2 Thuộc tính tham số lưu lượng Thuộc tính tham số lưu lượng (traffic parameter) đặc tả băng thông đòi hỏi bởi trung kế lưu lượng cùng với các đặc trưng lưu lượng khác như tốc độ đỉnh, tốc độ trung bình, kích thước bùng phát cho phép… Dưới góc độ kỹ thuật lưu lượng, các tham số lưu lượng rất quan trọng vì chúng chỉ yêu cầu về tài nguyên của trung kế lưu lượng. 2.3.3 Thuộc tính lựa chọn và quản lý đường Là các tiêu chuẩn lựa chọn và duy trì đường dẫn cho trung kế lưu lượng. Con đường thực sự được lựa chọn xuyên qua mạng có thể được cấu hình bởi nhà điều hành hoặc được gán động do mạng dựa vào các thông tin từ IGP (như IS-IS hoặc OSPF). Các thuộc tính cơ bản và các đặc trưng hành vi liên quan đến chọn đường và quản lý đường cho trung kế lưu lượng được mô tả sau đây : 2.3.3.1 Đường tường minh đặc tả quản trị Đường tường minh đặc tả quản trị cho một trung kế lưu lượng được cấu hình bởi nhà điều hành. Một đường gọi là đặc tả toàn bộ nếu chỉ ra các chặng yêu cầu giữa hai điểm đầu cuối. Đặc tả một phần nếu chỉ có một tập con các chặng trung gian được chỉ thị. Thuộc tính “path preference rule” là một biến nhị phân chỉ thị đường tường minh được cấu hình là bắt buộc hay không bắt buộc. 2.3.3.2 Đường phân cấp các luật ưu tiên cho đa đường Trong một số hoàn cảnh thực tế, khả năng chỉ định cho một tập hợp các đường tường minh đề cử cho một trung kế lưu lượng và định nghĩa phân cấp các quan hệ ưu tiên giữa các đường. Khi thiết lập đường, các luật ưu tiên được áp dụng để chọn ra đường thích hợp từ danh sách đề cử. Trong các tình huống sự cố thì các luật ưu tiên này cũng được dùng để chọn một đường thay thế từ danh sách đề cử. 2.3.3.3 Thuộc tính Affinity lớp tài nguyên Thuộc tính này cho phép operator áp đặt các chính sách chọn đường bằng việc bao gồm hay loại trừ một số liên kết nào đó. Mỗi liên kết được tán một thuộc tính lớp tài nguyên (Resource-Class). Thuộc tính Affinity lớp tài nguyên có dạng chuỗi như bit sau: Affinity( 32-bit), Mask(32-bit)
Học viện công nghệ bưu chính viễn thông
42
Đồ án tốt nghiệp Đại học
Chương II
Mặt nạ lớp tài nguyên chỉ thị các bit nào trong lớp tài nguyên cần được kiểm tra. Liên kết được bao hàm khi chọn đường nếu mỗi Affinity trùng với Resource-Class sau khi cùng thực hiện phép AND với mặt nạ. Giá trị default của mặt nạ là 0x0000FFFF. 2.3.3.4 Thuộc tính thích ứng Trong nhiều tình huống cần thiết phải thay đổi động các đường dẫn trung kế lưu lượng để đáp ứng với việc thay đổi trạng thái mạng (chủ yếu thay đổi tài nguyên khả dụng). Quá trình này được gọi là tái tối ưu hóa (re-optimization). Thuộc tính thích ứng (Adaptivity) cho biết một trung kế lưu lượng được ghép tái tối ưu hóa hay không. Nếu tái tối ưu hóa bị cấm thì trung kế lưu lượng coi như được gim vào đường đã thiết lập của nó và không thể tái định tuyến (re-route) khi có sự thay đổi trạng thái mạng. 2.3.4 Thuộc tính ưu tiên/lấn chiếm Thuộc tính ưu tiên (Prioity/Preemption) có 8 mức (giảm dần từ 0 đến 7) xác định thứ tự thực hiện chọn đường cho các trung kế lưu lượng. Độ ưu tiên cũng rất quan trọng khi triển khai cơ chế lấn chiếm (preemption) vì nó có ảnh hưởng đến thứ tự tự thiên vị. Mỗi trung kế lưu lượng được gán một giá trị ưu tiên thiết lập (setup priority) và một giá trị ưu tiên cầm giữ (holding priority). Khi thiết lập trung kế mới hoặc tái định tuyến, một trung kế có độ ưu tiên thiết lập cao sẽ chèn lấn một trung tuyến khác có độ ưu tiên cầm giữ thấp hơn “bật” ra khỏi đường nếu chúng cạnh tranh tài nguyên. Ngược lại, việc thiết lập một trung kế mới có thể thất bại nếu băng thông mà nó yêu cầu đang bị chiếm bởi các trung kế khác có độ ưu tiên cầm giữ cao hơn. 2.3.5 Thuộc tính đàn hồi Thuộc tính đàn hồi (Resilience) xác định hành vi của trung kế lưu lượng trong tình huống xảy ra sự cố theo cơ chế sau:
Không tái định tuyến trung kế lưu lượng.
Tái định tuyến qua một đường khả thi có đủ tài nguyên.
Tái định tuyến qua đường khả dụng bất kỳ chấp nhận các ràng buộc tài nguyên.
Tổ hợp của các cơ chế nói trên.
2.3.6 Thuộc tính khống chế Thuộc tính khống chế (Policing) xác định những hoạt động được thực hiện khi một trung kế lưu lượng không tuân thủ mức dịch vụ đã đặc tả ở các tham số lưu lượng. Nó cho biết cách xử lý đối với lượng traffic vượt mức dịch vụ (ví dụ hủy gói hay truyền
Học viện công nghệ bưu chính viễn thông
43
Đồ án tốt nghiệp Đại học
Chương II
theo kiểu best-effort). Nói chung nên luôn luôn khống chế ở lối vào của mạng để cưỡng bức tuân thủ các hợp đồng mức dịch vụ và giảm thiểu việc khống chế bên trong lõi mạng..
2.4 Tính toán đường ràng buộc 2.4.1 Quảng bá các thuộc tính của liên kết Bộ định tuyến tại đầu nguồn (head-end) của một trung kế phải nắm được thông tin thuộc tài nguyên của tất cả các liên kết trong mạng để tính toán đường LSP. Điều này chỉ có thể đạt được bằng cách sử dụng các giao thức định tuyến Link-State (như ISIS hay OSPE) vì chỉ có kiểu giao thức này mới quảng bá thông tin về tất cả các liên kết đến tất cả các bộ định tuyến. Vì vậy, OSPF và IS-IS được mở rộng để hỗ trợ MPLS-TE: o
IS-IS có các trường Type-Length-Value mới (kiểu 22 TLV) để đính kèm các
thông tin này trong các thông cáo PDU Link-State của nó. o
OSPF có các định nghĩa thông cáo Link-State mới (kiểu 10 LSA).
Một khi bộ định tuyến đầu nguồn nhận được các thông cáo này thì nó không chỉ biết được topology mạng mà còn biết được các thông tin tài nguyên khả dụng của từng liên kết. Điều này rất cần thiết để tính toán các đường thỏa mãn các đòi hỏi của trung kế lưu lượng.
Hình 2.7: Băng thông khả dụng ứng với từng mức ưu tiên Các giao thức IGP sẽ quảng bá các thuộc tính tài nguyên khi dưới các điều kiện hoặc sự kiện nào đó như:
Khi liên kết thay đổi trạng thái (ví dụ up,down…)
Khi lớp tài nguyên của liên kết thay đổi do tái cấu hình nhân công hoặc trong trường hợp băng thông khả dụng biến động qua các mức ngưỡng đặt trước.
Theo định kỳ (dựa vào một timer), bộ định tuyến sẽ kiểm tra các thuộc tính tài nguyên và quảng bá cập nhật thông tin. Học viện công nghệ bưu chính viễn thông
44
Đồ án tốt nghiệp Đại học
Chương II
Khi tham gia thiết lập một đường LSP nhưng thất bại.
2.4.2 Tính toán LSP ràng buộc LSP cho một trung kế lưu lượng có thể khai báo tĩnh hoặc tính toán động. Việc tính toán sẽ xem xet các tài nguyên khả dụng, các thuộc tính liên kết và cả các trung kế khác (vì vậy được gọi là tính toán đường ràng buộc). Kết quả của việc tính toán này là tìm ra một chuỗi các địa chỉ IP đại diện cho các chặng trên đường LSP giữa đầu nguồn và đầu đích của trung kế lưu lượng. Sau đó, thực hiện báo hiệu LSP và hoàn thành việc thiết lập đường bằng giao thức báo hiệu cho MPLS như RSVP-TE. Tiến trình tính toán đường đầu nguồn luôn được thực hiện tại đầu nguồn trung kế lưu lượng và được kích hoạt do: •
Một trung kế mới xuất hiện.
•
Một trung kế đang tồn tại nhưng thiết lập LSP thất bại.
•
Tái tối ưu hóa một trung kế đang tồn tại.
2.4.3 Giải thuật chọn đường Việc chọn đường cho một trung kế lưu lượng sử dụng trọng số quản trị (TE cost) của mỗi liên kết riêng biệt. Trọng số quản trị này mặc nhiên là metric IGP của liên kết. Giải thuật chọn đường theo các bước sau:
Cắt bỏ các liên kết có resuorce-class bị loại do phép tính Affinity ra khỏi
topology.
Cắt bỏ các liên kết không có đủ băng thông dự trữ theo yêu cầu của trung kế.
Chạy giải thuật Dijktra để tìm ra đường có tổng TE-cost nhỏ nhất trên phần
topoloy còn lại.
Sau khi thực hiện các bước trên mà vẫn còn nhiều đường ứng cử cho LSP
(nhiều đường có cùng tổng TE metric) thì tiêu chuẩn thứ tự chọn lựa như sau: ϖ
Đường có băng thông tối thiểu cao nhất
ϖ
Đường có hop nhỏ nhất
ϖ
Chọn lựa ngẫu nhiên Khi LSP được tính xong, RSVP được dùng để dành trước băng thông thực sự, để
phối các nhãn cho đường và hoàn thành việc thiết lập đường LSP
Học viện công nghệ bưu chính viễn thông
45
Đồ án tốt nghiệp Đại học
Chương II
2.4.4 Ví dụ về chọn đường cho trung kế lưu lượng Xét ví dụ chọn đường LSP cho một trung kế lưu lượng (tunnel) thiết lập giữa R1 (đầu nguồn) và R6 (đầu đích) như hình 2.8. Yêu cầu của trung kế lưu lượng như sau: ♣
Băng thông đòi hỏi ở mức ưu tiên 3 là 30 Mbps
♣
Các bit Affinity lớp tài nguyên là 0010 với mặt nạ là 0011, tức là chỉ thực hiện
kiểm tra trên hai bit thấp. Liên kết R4-R3 cần được loại trừ khỏi đường LSP, do vậy chuỗi bit resourceclass của được đặt là 0011. Khi các bit Affinity lớp tài nguyên của trung kế lưu lượng được so sánh với các bit resource-class là không trùng nên liên kết R3-R4 bị loại (hình 2.8).
Hình 2.8: Xem xét các ràng buộc khống chế Tham số tiếp theo được kiểm tra trong quá trình tính toán đường ràng buộc là TE cost (trọng số quản trị) của mỗi liên kết mà đường hầm khả năng đi qua. Nếu không xét tài nguyên thì đường R1-R4-R6 có tổng cost thấp nhất là 30. Tất cả các đường khả thi khác đều có tổng cost cao hơn. Khi tài nguyên được đưa vào tính toán, thấy rằng trên đường ngắn nhất không có đủ băng thông thỏa mãn các đòi hỏi của trung kế lưu lượng (đòi hỏi 30 Mbps trong khi chỉ có 20 Mbps khả dụng). Kết quả là R4-R6 cũng bị loại khỏi phép tính đường LSP. Học viện công nghệ bưu chính viễn thông
46
Đồ án tốt nghiệp Đại học
Chương II
Hình 2.9: Xem xét tài nguyên khả dụng Sau khi loại bỏ các liên kết không thỏa mãn các đòi hỏi của trung kế lưu lượng, kết quả có hai đường LSP là : R1-R2-R3-R6 và R1-R5-R6. Cả hai đường đều không có tổng cost là 40, để chọn đường phải giải quyết bằng luật “tie-break” (hình 2.10).
Hình 2.10: Chọn đường tốt nhất. Trước tiên băng thông tối thiểu trên đường được so sánh. Sau khi so sánh, vẫn còn cả hai đường vì chúng đều cung cấp ít nhất 50 Mbps băng thông. Tiếp theo, luật số hop nhỏ nhất trên đường LSP được áp dụng. Vì đường R1-R5-R6 có hop-count nhỏ hơn nên cuối cùng nó được chọn và quá trình tính toán ràng buộc kết thúc. 2.4.5 Tái tối ưu hóa Các đặc trưng và trạng thái mạng biến động theo thời gian. Ví dụ các tài nguyên mới trở nên khả dụng, các tài nguyên bị lỗi được kính hoạt, các tài nguyên đã cấp phát được thu hồi lại. Do vậy, các đường của trung kế lưu lượng đã được thiết lập tối ưu Học viện công nghệ bưu chính viễn thông
47
Đồ án tốt nghiệp Đại học
Chương II
trước có thể không còn tối ưu nữa. Để duy trì mạng luôn luôn ở trạng thái tối ưu nhất, các trung kế lưu lượng phải được tái tối ưu hóa (re-optimization). Tái tối ưu hóa được thực hiện theo chu kỳ. Sau những khoảng thời gian nhất định, MPLS-TE thực hiện kiểm tra đường tối ưu nhất cho các đường hầm LSP. Nếu xuất hiện đường cho LSP tốt hơn đường hiện dùng thì: •
Bộ định tuyến đầu nguồn cố gắng báo hiệu thiếp lập LSP mới tốt hơn.
•
Nếu thành công, thay đường LSP cũ bằng đường LSP mới tốt hơn. Tái tối ưu hóa phải không gây ra sai hỏng dịch vụ. Để thực hiện điều này, đường
LSP hiện có phải được duy trì cho đến khi LSP mới được thiết lập xong và chuyển trung kế lưu lượng từ đường cũ sang đường mới. Sau đó, đường LSP cũ mới được giải tỏa. Khái niệm này gọi là “make before break”.
2.5 Bảo vệ và khôi phục đường Các cơ chế bảo vệ và khôi phục đường trong MPLS cung cấp một dịch vụ tin cậy cho việc chuyển tải lưu lượng trong mạng MPLS và tái định tuyến lưu lượng qua một đường chuyển mạch nhãn LSP. Trong phần này, ta có một khái niệm sau:
Đường làm việc: Là đường chuyển tải trung kế lưu lượng trước khi xảy ra lỗi.
Đây là đường được bảo vệ bởi cơ chế khôi phục.
Đường khôi phục: Là đường mà trung kế lưu lượng sẽ được tái định tuyến sau
khi xảy ra lỗi, được thiết lập để bảo vệ cho đường làm việc.
PSL (Path Switch LSR): Là LSR đứng trước vị trí lỗi trên đường làm việc chịu
trách nhiệm chuyển mạch hoặc tái tạo lưu lượng sang đường khôi phục.
PML (Path merge LSR): Là LSR chịu trách nhiệm nhận lưu lượng trên đường
khôi phục và sẽ: tái hợp nhất lưu lượng trở về đường làm việc, hoặc chuyển lưu lượng ra khỏi miền MPLS nếu bản thân nó là đích.
POR (Point of Repair): POR là một LSR chịu trách nhiệm sửa chữa một LSR, nó
có thể là một PSL hoặc PML tùy ý theo cơ chế khôi phục nào được dùng.
FIS (Fault Indication Signal): Là bản tin chỉ thị có một lỗi xảy ra trên đường làm
việc đã sửa chữa xong. FRS được chuyển tiếp cho tới khi nó đến được một LSR đảm nhận việc trả lại đường nguyên thủy.
Học viện công nghệ bưu chính viễn thông
48
Đồ án tốt nghiệp Đại học
Chương II
2.5.1 Phân loại các cơ chế bảo vệ khôi phục 2.5.1.1 Sửa chữa toàn cục và sửa chữa cục bộ Sửa chữa toàn cục là bảo vệ khi có bất kì sự cố ở vị trí nào trên đường làm việc. Điểm sửa chữa POR (ở đây chính là ingress-LSR) thường cách xa vị trí lỗi và thường được thông báo bằng tín hiệu FIS. Việc khôi phục đường là end-to-end, trong đó đường làm việc và đường bảo vệ tách rời nhau (disjoint) hoàn toàn. Sửa chữa cục bộ nhằm bảo vệ khi sự cố liên kết hoặc nút nhưng khôi phục nhanh hơn do việc sửa chữa được thực hiện cục bộ tại thiết bị phát hiện sự cố. Nút nằm kề trực tiếp trước vị trí lỗi sẽ đóng vai trò PSL khởi tạo công tác khôi phục. Sửa chữa cục bộ có thể được thiết lập theo hai trường hợp:
Khôi lục liên kết: Để bảo vệ khôi phục liên kết trên đường làm việc. Nếu
một lỗi xảy ra trên liên kết này được khôi phục sẽ nối liền PSL và PML ở hai đầu liên kết lỗi. Đường khôi phục và đường làm việc tách rời nhau đối với liên kết được bảo vệ.
Khôi phục nút: Để bảo vệ nút trên đường làm việc. Đường khôi phục và
đường làm việc phải tách rời nhau đối với nút được bảo vệ, hoặc PLM là egress-LSP. 2.5.1.2 Tái định tuyến và chuyển mạch bảo vệ Đối với khôi phục bằng tái định tuyến (re-router), đường khôi phục được thiết lập theo yêu cầu sau khi đã xảy ra sự cố. Khi phát hiện sự cố trên đường làm việc, một LSR đứng trước vị trí lỗi có vai trò là POR mới bắt đầu báo hiệu một đường khôi phục đi vòng qua điểm lỗi và mối (merge) vào một nút nào đó nằm sau điểm lỗi trên đường làm việc. Đường khôi phục này có thể được tính toán sẵn trước hoặc tính toán sau khi phát hiện sự cố. Khi đường khôi phục được thiết lập xong, PSL bắt đầu chuyển lưu lượng trên đường này. Trong chuyển mạch bảo vệ thì đường khôi phục được tính toán và thiết lập trước khi xảy ra sự cố trên đường làm việc. PLS được cấu hình để chuyển mạch lưu lượng sang đường khôi phục ngay khi nó biết có lỗi trên đường làm việc (trực tiếp phát hiện lỗi hoặc nhờ nhận được FIS). Vì đường khôi phục đã thiết lập trước nên chuyển mạch bảo vệ nhanh hơn so với khôi phục bằng tái định tuyến.
2.5.2 Mô hình Makam
Học viện công nghệ bưu chính viễn thông
49
Đồ án tốt nghiệp Đại học
Chương II
Đây là mô hình khôi phục MPLS đầu tiên được đề xuất (hình 2.11). Nó cung cấp bảo vệ toàn cục cho một đường LSP bằng cách thiết lập đường khôi phục giữa ingressLSR và egress-LSR. Đường làm việc và khôi phục tách rời nhau (disjoint) cả về liên kết và nút. Khi phát hiện lỗi ở bất kì vị trí nào trên đường làm việc, tín hiệu FIS được dùng để chuyển thông báo lỗi về ingress-LSR (PSL). Ingress-LSR sẽ thực hiện chuyển mạch lưu lượng sang đường khôi phục. Mô hình này hỗ trợ cả các đường khôi phục thiết lập sẵn (chuyển mạch bảo vệ ) và đường khôi phục thiết lập động (tái định tuyến).
Hình 2.11: Mô hình MAKAM Ưu điểm: Chỉ cần một đường dự phòng cho mọi sự cố trên đường làm việc và chỉ cần một LSR có chức năng làm PSL. Nhược điểm: Mô hình này có một khoảng thời gian trễ để tín hiệu FIS truyền ngược về tới PSL. Trong thời gian này, lưu lượng trên đường làm việc bị mất. 2.5.3 Mô hình Haskin Mô hình Haskin (Reverse Backup) khắc phục được nhược điểm mất gói ở mô hình Makam (hình 2.12). Ngay khi một LSR phát hiện sự cố trên đường làm việc, nó chuyển hướng lưu lượng đến trên đường làm việc sang một đường dự phòng đảo đi ngược về PSL. Khi quay trở về đến PSL, lưu lượng được chuyển sang đường khôi phục toàn cục. Đường dự phòng đảo và đường khôi phục phải thiết lập sẵn nên cách này tốn kém tài nguyên.
Học viện công nghệ bưu chính viễn thông
50
Đồ án tốt nghiệp Đại học
Chương II
Hình 2.12: Mô hình Haskin Một cải tiến khác cho phép PSL chuyển trực tiếp lưu lượng sang đường khôi phục toàn cục ngay khi nó thấy đường dự phòng đảo được dùng. Các gói đầu tiên trong phần lưu lượng được đảo chiều có tác dụng như tín hiệu FIS. Cách này tối ưu hơn vì đường đi của lưu lượng được bảo vệ ngắn hơn. Tuy nhiên trong thời gian đầu, lưu lượng mới chuyển đi trên đường khôi phục sẽ trộn lẫn với phần lưu lượng được đảo chiều làm thay đổi thứ tự gói ban đầu. 2.5.4 Mô hình Hundessa Mô hình Hundessa giống như mô hình Haskin cải tiến nhưng khắc phục được vấn đê xáo trộn thứ tự gói. Khi gói đầu tiên quay trở về PSL trên đường dự phòng đảo có tác dụng như tín hiệu FIS báo cho PSL biết đã có lỗi. PSL đánh dấu gói cuối cùng truyền ra đường làm việc (đang có lỗi) bằng cách đặt một bit trong trường EXP nhãn, sau đó ngưng đẩy gói ra đường lỗi. Khi gói được đánh dấu quay trở về PSL trên đường đảo, PSL mới tiếp tục chuyển các gói mới trực tiếp ra đường khôi phục. 2.5.5 Mô hình Shortest-Dynamic
Học viện công nghệ bưu chính viễn thông
51
Đồ án tốt nghiệp Đại học
Chương II
Trong mô hình này chỉ có đường làm việc được thiết lập. Khi một nút phát hiện sự cố liên kết thì nó phải tính toán rồi báo hiệu thiết lập một đường hầm (hình 2.13). LSP ngắn nhất đi từ nó đến nút ở phía bên kia liên kết sự cố và sau đó chuyển mạch lưu lượng (bằng cách xếp chồng nhãn để “luồn” đường làm việc chui qua đường hầm tránh lỗi này) .
Hình 2.13: Mô hình Shortest-Dynamic 2.5.6 Mô hình Simple-Dynamic Giống như Shortest-Dynamic, cơ chế này cũng là một cơ chế cục bộ. Nút phát hiện sự cố liên kết sẽ chuyển mạch lưu lượng. Sự khác nhau giữa hai cơ chế này là nút cuối cùng của đường làm việc phải là PML. Sau đó, đường khôi phục sẽ là từ nút phát hiện sự cố đến nút PML. Trong trường hợp này không tính toán trước đường LSP khôi phục (hình 2.14).
Học viện công nghệ bưu chính viễn thông
52
Đồ án tốt nghiệp Đại học
Chương II
Hình 2.14: Mô hình Simple_Dynamic 2.5.6 Mô hình Simple-Static Ý tưởng này là giống cơ chế simple-dynamic, nhưng với đường khôi phục đã được tính toán trước khi xảy ra lỗi. 2.6. Kết luận Chương này đã trình bày các yêu cầu cho kỹ thuật lưu lượng qua MPLS. Bài toán cơ bản của kỹ thuật lưu lượng MPLS là làm sao cho ánh xạ đồ thị nghiệm suy (induced graph) lên trên topology vật lý của mạng một cách hiệu quả nhất. MPLS cũng cung cấp các cơ chế bảo vệ và khôi phục lưu lượng ở lớp MPLS một cách tin cậy .
Học viện công nghệ bưu chính viễn thông
53
Đồ án tốt nghiệp Đại học III
Chương
CHƯƠNG III XÂY DƯNG CHƯƠNG TRÌNH MÔ PHỎNG CƠ CHẾ BẢO VỆ VÀ KHÔI PHỤC ĐƯỜNG TRONG MPLS SỬ DỤNG NS2 3.1 Môi trường mô phỏng NS2 NS-2 là chương trình mô phỏng mạng theo phương pháp mô phỏng các sự kiện rời rạc. NS-2 hỗ trợ mô phỏng mạng có dây và không dây, TCP, UDP, các giao thức truyền thông điểm - đa điểm, các phương pháp định tuyến, ...vv. NS-2 viết bằng C++ và ngôn ngữ hướng đối tượng Tcl (Otcl: Object – Oriented Toll Command Language). So với các phần mềm mô phỏng mạng khác. NS-2 có những ưu thế sau:
NS-2 có mã nguồn mở miễn phí.
NS-2 có kiến trúc mở, tạo điều kiện cho việc mở rộng.
NS-2 được phát triển từ các phần mềm nổi tiếng trên thế giới như REAL.
NEST nên có những điểm mạnh và đã khắc phục được những yếu điểm của các phần mềm này.
NS-2 hỗ trợ các tính năng cơ bản của mạng IP, từ đó có thể phát triển
thêm các phần tử mạng.
NS-2 có cấu trúc modul, rất thuận tiện cho việc nghiên cứu tìm hiểu và
phát triển. Nhìn từ phía người sử dụng, NS-2 là chương trình biên dịch mã Otcl được liên kết tới thư viện C++. Các đối tượng cơ sở như TCP, CBR, … được xây dựng trong C+ +. Đầu vào NS-2 là tập mã lệnh Otcl, đầu ra là tập tin mô phỏng tiến trình theo yêu cầu được thể hiện trong tập lệnh Otcl. Kết quả mô phỏng có thể quan sát bằng hình ảnh mô tả trực quan với ứng dụng Nam (the Network Animator), bằng đồ thị (Xgraph, Trace graph) hoặc có thể được xử lý bằng các tệp lệnh tuỳ chọn. Với cấu trúc này, việc sử dụng NS-2 trở nên đơn giản hơn nhiều so với sử dụng trực tiếp C++ nhưng vẫn có những tính năng của C++.
Học viện công nghệ bưu chính viễn thông
54
Đồ án tốt nghiệp Đại học III
Chương
Với những đặc điểm trên, NS-2 thực sự là một công cụ phần mềm hữu ích cho việc học tập, nghiên cứu mạng thông tin, giúp cho việc thực hành mạng trở nên hiệu quả hơn. 3.1.1 Kiến trúc NS2 NS thực thi các giao thức mạng như Giao thức điều khiển truyền tải (TCP) và Giao thức gói người dùng (UDP); các dịch vụ nguồn lưu lượng như Giao thức truyền tập tin (FTP), Telnet, Web, Tốc độ bit cố định (CBR) và Tốc độ bit thay đổi (VBR) ; các kỹ thuật quản lý hàng đợi như Vào trước Ra trước (Drop Tail), Dò sớm ngẫu nhiễn (RED) và CBQ; các thuật toán định tuyến như Dijkstra… NS cũng thực thi multicasting và vài giao thức lớp Điều khiển truy cập đường truyền (MAC) đối với mô phỏng LAN.
Hình 3.1: Tổng quan về NS dưới góc độ người dùng Trong hình 3.1, NS là Bộ biên dịch Tcl mở rộng hướng đối tượng; bao gồm các đối tượng Bộ lập lịch Sự kiện, các đối tượng Thành phần Mạng và các mô đun Trợ giúp Thiết lập Mạng (hay các mô đun Plumbing). Để sử dụng NS-2, người sử dụng lập trình bằng ngôn ngữ kịch bản OTcl. Người dùng có thể thêm các mã nguồn Otcl vào NS-2 bằng cách viết các lớp đối tượng mới trong OTcl. Những lớp này khi đó sẽ được biên dịch cùng với mã nguồn gốc. Kịch bản OTcl có thể thực hiện những việc sau: •
Khởi tạo Bộ lập lịch Sự kiện
•
Thiết lập Mô hình mạng dùng các đối tượng Thành phần Mạng
• Báo cho nguồn traffic khi nào bắt đầu truyền và ngưng truyền packet trong Bộ lập lịch Sự kiện Thuật ngữ plumbing được dùng để chỉ việc thiết lập mạng, vì thiết lập một mạng nghĩa là xây dựng các đường dữ liệu giữa các đối tượng mạng bằng cách thiết lập con Học viện công nghệ bưu chính viễn thông
55
Đồ án tốt nghiệp Đại học III
Chương
trỏ “neighbour” cho một đối tượng để chỉ đến địa chỉ của đối tượng tương ứng. Mô đun plumbing OTcl trong thực tế thực hiện việc trên rất đơn giản. Plumbing làm nên sức mạnh của NS. Thành phần lớn khác của NS bên cạnh các đối tượng Thành phần Mạng là Bộ lập lịch Sự kiện. Bộ lập lịch Sự kiện trong NS-2 thực hiện những việc sau: •
Tổ chức Bộ định thời Mô phỏng
•
Huỷ các sự kiện trong hàng đợi sự kiện
•
Triệu gọi các Thành phần Mạng trong mô phỏng
Phụ thuộc vào mục đích của người dùng đối với kịch bản mô phỏng OTcl mà kết quả mô phỏng có thể được lưu trữ như file trace. Định dạng file trace sẽ được tải vào trong các ứng dụng khác để thực hiện phân tích: •
File nam trace (file.nam) được dùng cho công cụ Minh họa mạng NAM
• File Trace (file.tr) được dùng cho công cụ Lần vết và Giám sát Mô phỏng XGRAPH hay TRACEGRAPH
Hình 3.2: Luồng các sự kiện cho file Tcl chạy trong NS •
NAM Visual Simulation
Mô phỏng ảo NAM
•
Tracing and Monitoring Simulation
Mô phỏng Lần vết và Giám sát
3.1.2 C++ và OTcl Hình 3.3 biểu diễn kiến trúc chung của NS. Người dùng có thể tưởng tượng mình đang đứng ở góc trái dưới, thiết kế và chạy các mô phỏng trong Tcl. Tcl dùng các đối
Học viện công nghệ bưu chính viễn thông
56
Đồ án tốt nghiệp Đại học III
Chương
tượng mô phỏng trong OTcl. Các đối tượng Bộ lập lịch Sự kiện và hầu hết các đối tượng Thành phần Mạng thực thi bằng C++ và sẵn có cho OTcl qua một liên kết OTcl. Liên kết OTcl này được thực thi dùng TclCL. Tất cả đã làm nên NS, bộ biên dịch Tcl mở rộng hướng đối tượng và các thư viện mô phỏng mạng.
Network Components OTcl Tcl
Event Scheduler
TclCL
C/C++ ns-2 Hình 3.3: Kiến trúc của NS-2 • NS sử dụng hai ngôn ngữ lập trình: Ngôn ngữ kịch bản (Tcl – Tool Command Language, đọc là tickle) và Ngôn ngữ lập trình hệ thống (C/C++) •
NS là tầng biên dịch Tcl để chạy các kịch bản Tcl
• Bằng cách sử dụng C++/OTcl, bộ mô phỏng mạng phải hoàn toàn là hướng đối tượng Hình 3.4 chỉ ra các đối tượng C++ có liên kết OTcl. Khi đó, nếu chúng tạo nên một phân cấp thì các đối tượng OTcl cũng có một phân cấp tương ứng như vậy
Hình 3.4: C++ và OTcl: Sự đối ngẫu
Học viện công nghệ bưu chính viễn thông
57
Đồ án tốt nghiệp Đại học III
Chương
TclCL là ngôn ngữ được sử dụng để cung cấp liên kết giữa C++ và OTcl. Các kịch bản Tcl/OTcl được viết để thiết lập và cấu hình topology của mạng. TclCL cung cấp liên kết giữa phân cấp lớp, khởi tạo đối tượng, kết nối biến và gửi lệnh.
Hình 3.5: TclCL hoạt động như liên kết giữa A và B Vậy, tại sao NS lại cần sử dụng đến hai ngôn ngữ? Lý do là vì Bộ mô phỏng cần thực hiện hai việc khác nhau. Một mặt là vì các mô phỏng cho các giao thức yêu cầu một ngôn ngữ lập trình hệ thống có thể tính toán một cách hiệu quả các byte, các tiêu đề packet và các thuật toán thực thi đang chạy trên một tập dữ liệu lớn. Với tác vụ này, run-time speed (tốc độ thời gian chạy thực) là quan trọng trong khi turn-around time (thời gian thay đổi) thì ít quan trọng hơn. Turn-around time bao gồm thời gian chạy mô phỏng, thời gian tìm lỗi, thời gian sửa lỗi, thời gian biên dịch lại và thời gian chạy lại. Mặt khác, khi nghiên cứu mạng thì rất cần quan tâm đến các tham số và các cấu hình có thay đổi nhưng không đáng kể, hay quan tâm đến các scenario (tình huống) cần khám phá thật nhanh chóng. Trong tác vụ này thì iteration time (thời gian lặp lại, tức là thời gian hay đổi mô hình và chạy lại) là quan trọng hơn. Vì cấu hình chỉ chạy một lần lúc bắt đầu mô phỏng nên run-time trong tác vụ này rõ ràng kém quan trọng hơn. 3.2 Xây dựng chương trình mô phỏng 3.2.1 Mục tiêu mô phỏng Cho trước một topology mạng gồm 10 nút bộ định tuyến như trong hình dưới đây:
Học viện công nghệ bưu chính viễn thông
58
Đồ án tốt nghiệp Đại học III
Chương
Hình 3.6: Mô hình mạng Các nguồn phát lưu lượng (src) đều đặt tại nút 0 và các đích nhận lưu lượng (sink) đều đặt tại nút 0. Các liên kết giữa các nút đều là full-duplex với thời gian trễ là 30 ms và có băng thông như sau : ϖ
Nút 0 – Nút 1: 3M ; Nút 9 – Nút 10: 3M
ϖ
Nút 1 – Nút 2: 1M ; Nút 2 – Nút 4:1M ; Nút 3 – Nút 4: 1 M ; Nút 3 – Nút 5: 1
M ; Nút 5 – Nút 7: 1M ; Nút 7 – Nút 8: 1 M ; Nút 7 – Nút 9: 1 M ; ϖ
Nút 1 – Nút 3: 2 M ; Nút 4 – Nút 7: 2 M ; Nút 4 – Nút 7: 2 M ; Nút 5 – Nút 7: 2
M Nút 0 và Nút 10 là bộ định tuyến IP thông thường (R0 và R10). Các nút từ 1 đến 9 là các bộ định tuyến có hỗ trợ MPLS (LSR1 đến LSR9) tạo thành một miền MPLS. Có một nguồn lưu lượng (scr1) được tạo thành và gắn vào nút R0. Tương ứng có 1 đích lưu lượng (sink1) gắn vào nút R10. Nguồn phát luồng lưu lượng với tốc độ 0,8 Mbps, kích thước gói 600B. Mục tiêu chương trình mô phỏng hướng tới : 1.
Thông tin mô phỏng chung của toàn mạng : bao nhiêu gói được tạo ra , bao nhiêu
gói được chuyển tiếp , bao nhiêu gói bị mất mát. 2.
Theo dõi quá trình thiết lập đường làm việc, đường bảo vệ và tái thiết lập chúng
ra sao. 3.
Biểu diễn quá trình mô phỏng bằng các phần mềm ứng dụng NS2 như Nam,
XGRAPH 3.2.2 Thực hiện và kết quả 3.2.2.1 Mô phỏng với lịch trình qui định trong script mô phỏng
Học viện công nghệ bưu chính viễn thông
59
Đồ án tốt nghiệp Đại học III
Chương
1.
Thiết lập đường làm việc: LSP_1100 (ER=1_3_5_7_9)
2.
Thiết lập đường bảo vệ toàn cục: LSP_1200 (ER=1_2_4_6_8_9)
3.
Thời điểm 0,5s: Luồng 1 (src1_sink1) bắt đầu truyền đến LSP_1100
4.
Thời điểm 2,0s: Liên kết giữa LSR5_LSR7 bị đứt, đến 3,5s thì khôi phục.
5.
Thời điểm 5,0s: Luồng 1 ngưng truyền.
Hình 3.7: Lịch trình mô phỏng 3.2.2.2 Biểu diễn trên đồ thị XGRAPH Từ Xgraph (hình 3.8) ta thấy tại thời điểm LSR5-LSR7 bị đứt (2,06s), LSR5 phát một bản tin FIS về LSR1. Sau khi LSR1 nhận được thông điệp này, nó sẽ chuyển luồng lưu lượng từ đường làm việc sang đường bảo vệ toàn cục đã thiết lập. Do thông điệp thông báo phải mất một khoảng thời gian mới đến được LSR1 nên trong thời gian này, các gói vẫn còn được truyền trên đường dẫn có liên kết bị hỏng và bị mất gói đồng thời phải mất 1 thời gian trễ nhất định các gói tin đầu tiên trên đường thiết lập bảo vệ toàn cục mới chuyển tới LSR10. Nên ta thấy tại thời điểm 2s đến 2.4s, lượng băng thông giảm đột ngột rồi tăng lại ổn định như cũ sau 1 khoảng thời gian
Học viện công nghệ bưu chính viễn thông
60
Đồ án tốt nghiệp Đại học III
Chương
Hình 3.8: Đồ thị Xgraph . Tại thời điểm 3.5s khôi phục đường truyển lượng băng thông tăng đột biến rồi giảm về ổn định 0,8 Mb/s do trễ gói tin trên đường thiết lập bảo vệ toàn cục. Rõ ràng việc tỉ lệ mất gói tin khá lớn do một số lượng gói tin nhất định bị mất mát trên đường liên kết hỏng do trễ gói tin là nhược điểm cơ chế Makam. Nhược điểm này được khắc phục ở cơ chế Resever Backup. 3.2.2.3 Biểu diễn NAM •
Báo hiệu thiết lập đường làm việc và đường bảo vệ
•
Đường thiết lập LSP ER=1_3_5_7_9
•
Đường bảo vệ LSP ER =1_2_4_6_8_9.
Học viện công nghệ bưu chính viễn thông
61
Đồ án tốt nghiệp Đại học III
Chương
Hình 3.9: Báo hiệu thiết lập đường làm việc và bảo vệ o
Luồng 1: BW=0.8M chạy
o
start = 0.5
o
stop = 5.0
o
sử dụng ER =1_3_5_7_9
Học viện công nghệ bưu chính viễn thông
62
Đồ án tốt nghiệp Đại học III
Chương
Hình 3.10: Sử đường làm việc ER=1_3_5_7_9 •
Thời điểm 2,06s phát hiện lỗi trên đường làm việc LSP_1100.
•
Chuyển sang đường bảo vệ LSP_1200
Hình 3.11: Phát hiện lỗi
Học viện công nghệ bưu chính viễn thông
63
Đồ án tốt nghiệp Đại học III
Chương
Hình 3.12: Chuyển sang đường bảo vệ •
Tại 3,5s lỗi đã được khôi phục
•
Chuyển lưu lượng trở lại đường làm việc LSP_1100
Hình 3.13: Lỗi đã được khôi phục Học viện công nghệ bưu chính viễn thông
64
Đồ án tốt nghiệp Đại học III
Chương
Hình 3.14: Chuyển lưu lượng trở lại đường làm việc •
Tại 5,0 s kết thúc quá trình truyền gói
•
750 gói được truyền, mất 57 gói
Hình 3.15: Kết thúc quá trình truyền gói
Học viện công nghệ bưu chính viễn thông
65
Đồ án tốt nghiệp Đại học III
Chương
3.3 Tổng kết Trong chương này chúng ta giới thiệu về phần mềm mô phỏng NS2 và ứng dụng nó vào kỹ thuật lưu lượng giao thức MPLS, cụ thể là ta đã mô phỏng thành công cơ chế bảo vệ và thiết lập đường. Nó giúp ta hiểu kĩ về quá trình thiết lập đường truyền và thiết lập bảo vệ ra sao đồng thời giúp ta theo dõi được quá trình truyền gói tin, mất mát gói và độ trễ. Các file Otcl Scripts thực hiện bài toán mô phỏng trình bày trong phụ lục của đồ án này.
Học viện công nghệ bưu chính viễn thông
66
Đồ án tốt nghiệp Đại học
Kết Luận
KẾT LUẬN Với những ưu điểm vượt trội, MPLS được xem là công nghệ đầy hứa hẹn trong tương lai nhằm đáp ứng nhu cầu đa dịch vụ, đa phương tiện của khách hàng. Sau một thời gian nghiên cứu, đồ án đã giải quyết được một số vấn đề sau: ϖ
Tìm hiểu tổng quan về công nghệ MPLS.
ϖ
Nghiên cứu vấn đề điều khiển lưu lượng và bài toán điều khiển lưu lượng trong MPLS. ϖ
Xây dựng chương trình mô phỏng cơ chế bảo vệ và khôi phục đường trong kỹ thuật lưu lượng MPLS Các vấn đề được nêu ra trong đồ án cho ta một cái nhìn tổng quan hơn về công nghệ MPLS. Kĩ thuật điều khiển lưu lượng sử dụng trong công nghệ MPLS đã giúp giải quyết vấn đề tắc nghẽn mạng nhờ đó nâng cao hiệu năng mạng. Nghiên cứu điều khiển lưu lượng trong MPLS là vấn đề rất quan trọng nhằm mở ra các kĩ thuật mạng để nâng cao hiệu quả sử dụng mạng trong tương lai. Công việc nghiên cứu về công nghệ MPLS vẫn đang được các tổ chức tiếp tục nghiên cứu, phát triển và hoàn thiện tiêu chuẩn. Việc hoàn thiện các tiêu chuẩn có vai trò quan trọng đối với các nhà sản xuất thiết bị, cũng như các nhà cung cấp mạng nhằm đạt được một mạng tối ưu nhất. Đối với cơ sở hạ tầng thông tin quốc gia, việc triển khai công nghệ MPLS cần được nghiên cứu sâu hơn để phát huy những ưu điểm của MPLS đồng thời phù hợp với nhu cầu thị trường của Việt Nam. Một lần nữa xin gửi lời cảm ơn chân thành tới các thầy cô giáo đã giúp đỡ em trong những năm tháng học tập tại trường. Hà nội, tháng 11 năm 2008 Đỗ Tiến Thành
Học viện công nghệ bưu chính viễn thông
67
Đồ án tốt nghiệp Đại
Tài Liệu Tham Khảo
TÀI LIỆU THAM KHẢO [1]
Công nghệ MPLS –TS Nguyễn Tiến Ban 2008
[2] Rosen, E., Viswanathan, A. and R. Callon, “Multiprotocol Label Switching Architecture”, RFC 3031. [3] L. Andersson, P. Doolan, N. Feldman, A. Fredette, B. Thomas, “LDP Specification”, RFC 3036. [4]
MPLS Fundamentary ( Luc De Ghein- CisscoPress 2006)
[5] ATM & MPLS: Theory and Application ( Eric Osborne, Ajay SimhaCiscopress 2002) [6] D. Awduche, J. Malcolm, J. Agogbua, M. O’Dell, J. McManus “Traffic Engineering in MPLS”, RFC 2702. [7] Keping Long, Zhongshan Zhang, Shiduan Cheng, “Load balancing algorithms in MPLS traffic engineering”, High Performance Switching and Routing, 2001 IEEE Workshop on, 2001. [8] TS. Phùng Văn Vận, KS. Đỗ Mạnh Quyết, “Công nghệ chuyển mạch nhãn đa giao thức MPLS”, Nhà xuất bản Bưu Điện, 2003. [9] Eric Osborne, Ajay Simha, “Traffic Engineering with MPLS”, Cissco Press, 2003. [10] Hoàng Trọng Minh, Bài giảng ”Công nghệ chuyển mạch nhãn đa giao thức MPLS”, Học viện công nghệ bưu chính viễn thông. [11]
Ns-manual http://www.isi.edu/nsnam/ns/ns-documentation.html
[12]
MNS-Manual - http://flower.ce.cnu.ac.kr/~fog1/mns/.
Học viện công nghệ bưu chính viễn thông
68
Đồ án tốt nghiệp Đại học Lục
Phụ
PHỤ LỤC Mã nguồn chương trình mô phỏng # Tao ra mot doi tuong mo phong set ns [new Simulator] $ns rtproto LS # Tao file de xuat ket qua cho NAM set nf [open bai4.nam w] $ns namtrace-all $nf # Tao cac file de luu du lieu cho xgraph set f1 [open luong_1.tr w] set f2 [open luong_seq.tr w] # So do ket noi mang
1M 2M 1M # LSR2---------------LSR4------------------LSR6-------------------LSR8 # / / / / \ # / / / / \ # 1M / 1M / 1M / 1M / \ 2M # / / / / \ # / / / / \ # R0-----------LSR1----------------LSR3------------------LSR5----------------LSR 7----------LSR9---------R10 # 2M 1M 2M 1M
# Khai bao 2 nut IP (R0,R10) va 9 nut MPLS (LSR1 --> LSR9) set R0 [$ns node] foreach i "1 2 3 4 5 6 7 8 9" { set LSR$i [$ns mpls-node] set m LSR$i eval $$m color blue } set R10 [$ns node]
Học viện công nghệ bưu chính viễn thông
69
Đồ án tốt nghiệp Đại học Lục
Phụ
# Khai bao liên kết: odes bw delay queue $ns duplex-link $R0 $LSR1 3Mb 10ms DropTail $ns duplex-link $LSR1 $LSR3 2Mb 30ms DropTail $ns duplex-link $LSR3 $LSR5 1Mb 30ms DropTail $ns duplex-link $LSR5 $LSR7 2Mb 30ms DropTail $ns duplex-link $LSR7 $LSR9 1Mb 30ms DropTail $ns duplex-link $LSR9 $R10 3Mb 10ms DropTail $ns duplex-link $LSR1 $LSR2 1Mb 30ms DropTail $ns duplex-link $LSR2 $LSR4 1Mb 30ms DropTail $ns duplex-link $LSR4 $LSR6 2Mb 30ms DropTail $ns duplex-link $LSR6 $LSR8 1Mb 30ms DropTail $ns duplex-link $LSR8 $LSR9 2Mb 30ms DropTail $ns duplex-link $LSR3 $LSR4 1Mb 30ms DropTail $ns duplex-link $LSR5 $LSR6 1Mb 30ms DropTail $ns duplex-link $LSR7 $LSR8 1Mb 30ms DropTail # Ve dang so do mang $ns duplex-link-op $R0 $LSR1 orient right $ns duplex-link-op $LSR1 $LSR3 orient right $ns duplex-link-op $LSR3 $LSR5 orient right $ns duplex-link-op $LSR5 $LSR7 orient right $ns duplex-link-op $LSR7 $LSR9 orient right $ns duplex-link-op $LSR9 $R10 orient right $ns duplex-link-op $LSR1 $LSR2 orient 0.333 $ns duplex-link-op $LSR2 $LSR4 orient right $ns duplex-link-op $LSR4 $LSR6 orient right $ns duplex-link-op $LSR6 $LSR8 orient right $ns duplex-link-op $LSR8 $LSR9 orient 1.667 $ns duplex-link-op $LSR3 $LSR4 orient 0.333 $ns duplex-link-op $LSR5 $LSR6 orient 0.333 $ns duplex-link-op $LSR7 $LSR8 orient 0.333 # Ghi chu $ns duplex-link-op $LSR1 $LSR3 label " 2M " $ns duplex-link-op $LSR3 $LSR5 label " 1M " Học viện công nghệ bưu chính viễn thông
70
Đồ án tốt nghiệp Đại học Lục
Phụ
$ns duplex-link-op $LSR5 $LSR7 label " 2M " $ns duplex-link-op $LSR7 $LSR9 label " 1M " $ns duplex-link-op $LSR1 $LSR2 label " 1M " $ns duplex-link-op $LSR2 $LSR4 label " 1M " $ns duplex-link-op $LSR4 $LSR6 label " 2M " $ns duplex-link-op $LSR6 $LSR8 label " 1M " $ns duplex-link-op $LSR8 $LSR9 label " 2M" $ns duplex-link-op $LSR3 $LSR4 label " 1M " $ns duplex-link-op $LSR5 $LSR6 label " 1M " $ns duplex-link-op $LSR7 $LSR8 label " 1M " $R0 label "Nguon" $R10 label "Dich" $LSR1 label "Ingress " $LSR9 label " Egress" # Cau hinh LDP agent tren tat ca cac nut MPLS $ns configure-ldp-on-all-mpls-nodes # Dat color cho cac ban tin LDP $ns ldp-request-color blue $ns ldp-mapping-color red $ns ldp-withdraw-color magenta $ns ldp-release-color orange $ns ldp-notification-color green #---------------------------------------------------------------------# Dinh nghia cac ham su dung trong chuong trinh chinh #---------------------------------------------------------------------# Tao mot procedure ghi nhan bang thong theo mot chu ki $time proc record {} { global sink1 f1 set ns [Simulator instance] # Dinh chu ki ghi nhan bang thong set time 0.1 # Lay so luong packet nhan duoc trong chu ky o moi sink Học viện công nghệ bưu chính viễn thông
71
Đồ án tốt nghiệp Đại học Lục
Phụ
set bw1 [$sink1 set bytes_] set now [$ns now] puts $f1 "$now [expr $bw1/$time*8/1000000]" # Reset gia tri bytes_ cua sink $sink1 set bytes_ 0 #Dinh thoi goi lai ham record sau chu ky $time $ns at [expr $now+$time] "record" } #---------------------------------------------------set prvseqnb -1 set seqerrnb 0 # Thu tuc ghi lai so packet nhan duoc dung thu tu proc seq-record {size rate ftime} { global prvseqnb seqerrnb sink1 f2 set ns [Simulator instance] # Dat chu ky thoi gian chay lai thu tuc nay set tsize [parse-bw $size] set trate [parse-bw $rate] set time [expr double($tsize)/double($trate)/8.0] set now [$ns now] # Tim so thu tu cua packet set revseqnb [$sink1 set expected_] if {$prvseqnb > $revseqnb} { incr seqerrnb 1 } # Ghi so thu tu cua packet vao file Học viện công nghệ bưu chính viễn thông
72
Đồ án tốt nghiệp Đại học Lục
Phụ
if {$prvseqnb != $revseqnb} { puts $f2 "$now [$sink1 set expected_]" set prvseqnb $revseqnb } # Dinh thoi goi lai ham seq-record if { [expr $now+$time] < $ftime } { $ns at [expr $now+$time] "seq-record $size $rate $ftime" } } #---------------------------------------------------# Ham tao mot nguon luu luong gan vao node voi sink, size goi, # burst, idle time, rate va colour cua luu luong proc attach-expoo-traffic { node sink size burst idle rate } { set ns [Simulator instance] set source [new Agent/CBR/UDP] $ns attach-agent $node $source set traffic [new Traffic/Expoo] $traffic set packet-size $size $traffic set burst-time $burst $traffic set idle-time $idle $traffic set rate $rate $source attach-traffic $traffic $ns connect $source $sink return $source } #---------------------------------------------------# Thu tuc sau thong bao ER/CR-LSP da thiet lap de thuc hien tac vu khac proc notify-erlsp-setup {node lspid} { global src1 src2 set ns [Simulator instance] set msg " [string range [$ns now] 0 3]s: Tunnel LSP_$lspid (Ingress=LSR[$node id]) da duoc thiet lap xong !" puts $msg Học viện công nghệ bưu chính viễn thông
73
Đồ án tốt nghiệp Đại học Lục
Phụ
$ns trace-annotate $msg set module [$node get-module "MPLS"] switch $lspid { 1100 { $module bind-flow-erlsp 10 100 $lspid } 1200 { $module reroute-lsp-binding 1100 $lspid } default { puts " Error!" exit 1 } } } proc notify-erlsp-fail {node status lspid tr} { set ns [Simulator instance] set module [$node get-module "MPLS"] if { [$node id] == 1 && $status=="BSNodeError" } { $module set-lib-error-for-lspid $lspid 1 set msg " [string range [$ns now] 0 3]s: Phat hien loi tren duong lam viec LSP_$lspid. Chuyen sang duong bao ve LSP_1200 !" } if { [$node id] == 1 && $status=="NodeRepair" } { $module set-lib-error-for-lspid $lspid -1 set msg " [string range [$ns now] 0 3]s: Loi da duoc khoi phuc. Chuyen luu luong tro lai duong lam viec LSP_$lspid !" } puts $msg $ns trace-annotate $msg } Học viện công nghệ bưu chính viễn thông
74
Đồ án tốt nghiệp Đại học Lục
Phụ
#---------------------------------------------------# Thu tuc xuat tong so packet nhan duoc o cac sink proc recv-pkts {} { global sink1 seqerrnb set ns [Simulator instance] set msg " Luong 1 da truyen [$sink1 set expected_] goi, mat [$sink1 set nlost_] goi, ti le mat goi la [string range [expr [$sink1 set nlost_]*100.0/[$sink1 set expected_]] 0 3] */*" puts $msg $ns trace-annotate $msg set msg " Tong so packet bi sai thu tu : $seqerrnb goi" puts $msg $ns trace-annotate $msg } #---------------------------------------------------# Thu tuc dong file va the hien ket qua khi ket thuc mo phong proc finish {} { global ns nf f1 f2 $ns flush-trace close $nf close $f1 close $f2 exec xgraph luong_1.tr -M -nb -bg white -fg black -zg black \ -geometry 500x250 -y "BW (Mbps)" -x "Time (sec)" \ -t "Bai 4: Khoi phuc duong theo co che Makam" -tf "helvetica-12" & exec xgraph luong_seq.tr -p -nl -nb -bg white -fg black -zg black \ -geometry 500x250 -y "Packet No." -x "Time (sec)" \ -t "Bai 4: Bieu do so thu tu packet theo thoi gian" -tf "helvetica-12" & exec nam -r 2ms bai4.nam & exit 0 } #----------------------------------------------------
Học viện công nghệ bưu chính viễn thông
75
Đồ án tốt nghiệp Đại học Lục
Phụ
# Tao ra sink1 gan voi nut R10 (day la noi thu nhan traffic) set sink1 [new Agent/LossMonitor] $ns attach-agent $R10 $sink1 # Tao ra nguon luu luong src1 gan voi nut R0 bang cach # goi ham attach-expoo-traffic. Luong co packet_size=600, rate=0.8Mbps set src1 [attach-expoo-traffic $R0 $sink1 600B 0 0 0.8M ] $src1 set fid_ 100 $ns color 100 red # Cai dat co che khoi phuc: MAKAM $ns enable-reroute notify-prenegotiated [$LSR3 get-module "MPLS"] set-protection-lsp 0.7 0.01 1100 [$LSR5 get-module "MPLS"] set-protection-lsp 0.7 0.01 1100 [$LSR7 get-module "MPLS"] set-protection-lsp 0.7 0.01 1100 # Bat dau mo phong puts "\n BAI 4: KHOI PHUC DUONG BANG TAI DINH TUYEN TOAN CUC (MAKAM)\n" $ns at 0.00 "record" $ns at 0.00 "seq-record 600 800k 5.5" # Thiet lap LSP lam viec $ns at 0.15 "$ns trace-annotate {Bao hieu thiet lap duong lam viec: LSP_1100, ER=1_3_5_7_9 }" $ns at 0.15 "[$LSR1 get-module "MPLS"] setup-erlsp 9 1_3_5_7_9 1100" # Thiet lap LSP bao ve $ns at 0.15 "$ns trace-annotate {Bao hieu thiet lap duong bao ve: LSP_1200, ER=1_2_4_6_8_9 }" $ns at 0.15 "[$LSR1 get-module "MPLS"] setup-erlsp 9 1_2_4_6_8_9 1200" $ns at 0.50 "$ns trace-annotate {Luong 1: BW=0.8M (start=0.5 stop=5.0) su dung LSP_1100, ER=1_3_5_7_9 }" Học viện công nghệ bưu chính viễn thông
76
Đồ án tốt nghiệp Đại học Lục
Phụ
$ns at 0.50 "$src1 start" # Link giua LSR5 va LSR7 bi dut tu 2.0s, den 3.5s thi khoi phuc lai $ns rtmodel-at 2.0 down $LSR5 $LSR7 $ns rtmodel-at 3.5 up $LSR5 $LSR7 $ns at 5.0 "$src1 stop" $ns at 5.5 "recv-pkts" $ns at 5.5 "finish" $ns run
Học viện công nghệ bưu chính viễn thông
77