Đề tài Nghiên cứu chuyển mạch nhãn đa giao thức MPLS

Tài liệu Đề tài Nghiên cứu chuyển mạch nhãn đa giao thức MPLS: Lời nói đầ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ợ cho 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. Trong 5 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. Công nghệ MPLS là kết quả phát triển của công nghệ chuyển mạch IP sử dụng cơ chế hoán đổi nhãn như của ATM để tăng tốc độ truyền gói tin mà không cần thay đổi các giao thức định tuyến của IP. MPLS tách chức năng của IP thành hai phần riêng biệt: chức năng chuyển gói tin và chức năng điều khiển. Bên cạnh đó, MPLS cũng hỗ tr...

doc111 trang | Chia sẻ: hunglv | Lượt xem: 1217 | Lượt tải: 1download
Bạn đang xem trước 20 trang mẫu tài liệu Đề tài Nghiên cứu chuyển mạch nhãn đa giao thức MPLS, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Lời nĩi đầ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ị tồ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ợ cho 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. Trong 5 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. Cơng nghệ MPLS là kết quả phát triển của cơng nghệ chuyển mạch IP sử dụng cơ chế hốn đổi nhãn như của ATM để tăng tốc độ truyền gĩi tin mà khơng cần thay đổi các giao thức định tuyến của IP. MPLS tách chức năng của IP thành hai phần riêng biệt: chức năng chuyển gĩi tin và chức năng điều khiển. Bên cạnh đĩ, MPLS cũng hỗ trợ việc quản lý dễ dàng hơn. Do thời gian và trình độ cĩ hạn, nên chắc chắn những vấn đề được đề cập trong đồ án sẽ khơng tránh khỏi những thiếu sĩt. Em rất mong nhận được sự lượng thứ và ý kiến đĩng gĩp của các thầy, cơ cũng như những ai quan tâm. Trong quá trình học tập tại trường đại học Bách Khoa Hà Nội và thực hiện đồ án tốt nghiệp, em xin chân thành cảm ơn các thầy cơ đã trực tiếp và gián tiếp giúp đỡ em hồn thành tốt chương trình học tập. Đặc biệt, em xin chân thành cảm ơn thầy giáo Thạc sĩ Nguyễn Khắc Kiểm đã trực tiếp hướng dẫn em hồn thành tốt đồ án tốt nghiệp này. Hà Nội, ngày tháng năm 2009 Sinh viên Bùi Quang Thái Tĩm tắt đồ án MPLS đã được lựa chọn để đơn giản hố và tích hợp mạng trong mạng lõi. Nĩ cho phép các nhà khai thác giảm chi phí, đơn giản hố việc quản lý lưu lượng và hỗ trợ các dịch vụ Internet. Quan trọng hơn cả, nĩ là một bước tiến mới trong việc đạt mục tiêu mạng đa dịch vụ với các giao thức gồm di động, thoại, dữ liệu … Tập đồn BCVT Việt Nam đã lựa chọn IP/MPLS làm cơng nghệ cho lớp chuyển tải mạng NGN đang triển khai trên phạm vi tồ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. Đề tài tốt nghiệp được chia thành 4 chương với những nội dung chính như sau: Chương 1 - Chuyển mạch nhãn đa giao thức MPLS: 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. Chương 2 - Định tuyến và báo hiệu MPLS: Trình bày các kỹ thuật định tuyến được hỗ trợ bởi MPLS , các 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 3 – Kỹ thuật lưu lượng trong MPLS: 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 MPLS. 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 4 – Mơ phỏng MPLS – TE và đánh giá. SUMMARIZED DESIGN MPLS is chosen in order to simplify and integrate network in core-network . It allows the operators lower their cost and simply in management traffic , support Internet’services. The most importance , it’s the new move to multi-service included mobile , voice , data . Corporation BCVT Vietnam has applied technology MPLS network for the next NGN which being operated over country. One of most advantage of MPLS is traffic engineering . With the theme: " Traffic enginneering in MPLS ’’the content of project including 4 chapters will in turn present the basic issues and trffic engineering of MPLS network Chapter 1 : The multi protocol label switching MPLS : Overview of MPLS , basic define , fuction and performance of MPLS . Chapter 2 : Routing and signalling in MPLS :Present routing mechanism used by MPLS , the signalling modes and somes distribution label protocol . Chapter 3 : Traffic engineering in MPLS : Present the define , ambition of MPLS techonogy and the mechanism to operate the taffic engineering of MPLS. The problem about protection and repair road – most important mission of trffic engineering is presented in this chapter. Chapter 4 : Simulation MPLS-TE and summary. Mục lục Các hình vẽ sử dụng trong luận văn Hình 1.1: MPLS và mơ hình tham chiếu OSI - 15 - Hình 1.2: So sánh giữa chuyển tiếp IP và chuyển tiếp MPLS - 16 - Hình 1.3: Miền MPLS - 16 - Hình 1.4: Upstream và downstream LSR - 17 - Hình 1.5: Lớp chuyển tiếp tương đương trong MPLS - 18 - Hình 1.6 : Stack nhãn - 18 - Hình 1.7:Đường chuyển mạch nhãn MPLS - 19 - Hình 1.8 : Phân cấp LSP trong MPLS - 20 - Hình 1.9 : Gĩi IP đi qua mạng MPLS - 20 - Hình 1.10: Định dạng một entry trong stack nhãn MPLS - 20 - Hình 1.11 : Shim header - 22 - Hình 1.12 : Nhãn trong chế độ cell ATM - 23 - Hình 1.13 : Encapsulation gĩi cĩ nhãn trên link ATM - 23 - Hình 2.1: Một ví dụ định tuyến ràng buộc - 25 - Hình 2.2: Phân phối nhãn khơng cần yêu cầu - 26 - Hình 2.3: Phân phối nhãn theo yêu cầu - 27 - Hình 2.4: Duy trì nhãn tự do - 27 - Hình 2.5: Duy trì nhãn bảo thủ - 28 - Hình 2.6: Điều khiển độc lập - 28 - Hình 2.7: Điều khiển tuần tự - 29 - Hình 2.8 : Vùng hoạt động của LDP - 30 - Hình 2.9: Trao đổi thơng điệp LDP - 31 - Hình 2.10: LDP header - 32 - Hình 2.11: Format thơng điệp LDP - 33 - Hình 2.12: Ví dụ LDP chế độ điều khiển độc lập theo yêu cầu - 35 - Hình 2.13: Thiết lập LSP với CR-LDP - 37 - Hình 2.14: Thiết lập LSP với RSVP-TE - 41 - Hình 2.15 : Nội dung bản tin BGP Update - 43 - Hình 2.16 : BGP phân phối nhãn qua nhiều Autonomous System - 44 - Hình 3.1 : Nhiều luồng cho mỗi lớp lưu lượng - 48 - Hình 3.2 : Hàng đợi CQ - 49 - Hình 3.4: Giải thuật thung rị - 51 - Hình 3.5: Giải thuật thùng token - 52 - Hình 3.6: Mơ hình chồng phủ ( Overlay mode ) - 53 - Hình 3.7 : Các trung kế lưu lượng - 54 - Hình 3.8: Một ví dụ băng thơng dự trữ cho từng mức ưu tiên. - 59 - Hình 3.9: Minh họa cho cách dùng bit Affinity và Resource-Class - 60 - Hình 3.10: Băng thơng khả dụng ứng với từng mức ưu tiên - 61 - Hình 3.11: Xem xét các rằng buộc khống chế - 63 - Hình 3.12: Xem xét tài nguyên khả dụng - 64 - Hình 3.13: Chọn đường tốt nhất - 64 - Hình 3.14: Mơ hình Makam - 67 - Hình 3.15: Mơ hình Haskin - 68 - Hình 3.16: Mơ hình Shortest – Dynamic - 69 - Hình 3.17: Mơ hình Simple – Dynamic - 70 - Hình 4.1: Kiến trúc thư mục cài đặt của NS-2 và NAM trong mơi trường Linux - 77 - Hình 4.2: Tổng quan về NS dưới gĩc độ người dùng - 79 - Hình 4.3: Luồng các sự kiện cho file Tcl chạy trong NS - 80 - Hình 4.4: TclCL hoạt động như liên kết giữa A và B - 81 - Hình 4.5: Mơ tả các cơng cụ của NAM - 86 - Hình 4.6: Bốn thành phần cơ bản của Nscript GUI - 91 - Hình 4.7: Giao diện đồ họa người dùng của Xgraph - 96 - Hình 4.8 : Cửa sổ Graphs - 98 - Hình 4.9 : Cửa sổ Network Imformation - 99 - Hình 4.10 : Mơ hình mạng mơ phỏng - 99 - Hình 4.11 :Đồ thị kết quả mơ phỏng - 100 - Hình 4.12 : Kết quả mơ phỏng - 101 - DANH MỤC BẢNG BIỂU Bảng 2.1 : Các chế độ của các giao thức phân phối nhãn MPLS - 28 - Bảng 2.2: Các loại bản tin LDP - 32 - Bảng 3.1 : Các lớp dịch vụ lưu lượng - 46 - Các Thuật Ngữ Viết Tắt Từ viết tắt Từ đầy đủ Chú giải tiếng Việt AAL ATM Adapter Layer Lớp tương thích ATM ACL Access Control List Danh sách điều khiển truy cập AS Autonomous System Hệ thống tự trị ASBR Autonomous System Border Router Bộ định tuyến biên hệ thống tự trị ATM Asynchronous Transfer Mode Cơ chế truyền tải khơng đồng bộ BGP Border Gateway Protocol Giao thức định tuyến cổng miền CE Customer Edge Thiết bị biên của mạng người dùng CEM Circuit Emulation Service over MPLS Dịch vụ mơ phỏng kênh trên MPLS CEP Circuit Emulation over Packet Mơ phỏng kênh trên gĩi CoS Class of Service Lớp dịch vụ DLCI Data Link Connection Identifier Nhận dạng kết nối lớp kênh dữ liệu EGP External Gateway Protocol Giao thức định tuyến liên miền FEC Forwarding Equivalence Class Lớp chuyển tiếp tương đương FR Frame Relay Chuyển mạch khung GRE Generic RoutingEncapsulation Giao thức đĩng gĩi định tuyến chung HDLC High-level Data Link Control Điều khiển liên kết dữ liệu mức cao HEC Header Error Controller Điều khiển lỗi tiêu đề ID Identifier Nhận dạng IGP Interior Gateway Protocol Giao thức định tuyến trong miền IP Internet Protocol Giao thức Internet IPLS IP-Only Private LAN Service Dịch vụ LAN thuê riêng trên nền IP IP-Sec Internet Protocol Security Giao thức an ninh Internet ISP Internet Service Provider Nhà cung cấp dịch vụ Internet L2F Layer 2 Forwarding Giao thức chuyển tiếp lớp 2 L2TP Layer 2 Tunneling Protocol Giao thức đường hầm lớp 2 LAC L2TP Access Concentrator Bộ tập trung truy cập L2TP LAN Local Area Network Mạng cục bộ LDP Label Distribution Protocol Giao thức phân bổ nhãn LER Label Edge Router Bộ định tuyến chuyển mạch nhãn biên LNS L2TP Network Server Máy chủ mạng L2TP LSP Label Switching Path Đường chuyển mạch nhãn LSR Label Switching Router Bộ định tuyến chuyển mạch nhãn M2M Multipoint-to-Multipoint Đa điểm tới đa điểm MD Multicast Domain Miền đa điểm MPLS MultiProtocol Label Switching Chuyển mạch nhãn đa giao thức MPLS-TE MPLS-Traffice Engineering Kỹ thuật lưu lượng MT Multicast Tunnel Đường hầm đa điểm MTI Multicast Tunnel Interface Giao diện đường hầm đa điểm MVPN Multicast VPN VPN đa điểm MVRF Multicast VRF VRF đa điểm NAS Network Access Server Máy chủ truy cập mạng NGN Next Generation Network Mạng thế hệ kế tiếp OSPF Open Shortest Path First Giao thức đường đi ngắn nhất đầu tiên PAC PPTP Access Concentrator Bộ tập trung truy cập PPTP PE Provider Edge Thiết bị biên của mạng nhà cung cấp PNS PPTP Network Server Máy chủ mạng PPTP POP Point of Presence Điểm truy cập truyền thống PPP Point to Point Tunneling Protocol Giao thức đường hầm điểm tới điểm PVC Permanent Virtual Circuit Kênh ảo cố định PW Pseudowire Dây giả QoS Quality of Service Chất lượng dịch vụ RD Route Distinguisher Thuộc tính phân biệt tuyến RSVP Resource Reservation Protocol Giao thức dành trước tài nguyên RT Route Target Thuộc tính tuyến đích SDH Synchronous Digital Hierachy Phân cấp số đồng bộ SDU Service Data Unit Đơn vị dữ liệu dịch vụ SONET Synchronous Optical Network Mạng quang đồng bộ SP Service Provider Nhà cung cấp dịch vụ TCP Transmission Control Protocol Giao thức điều khiển truyền dẫn TDP Tag Distribution Protocol Giao thức phân phối thẻ 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 VLLS Virtual Leased Line Service Dịchvụ đường dây thuê riêng ảo VP Virtual Path Đường ảo VPDN Virtual Private Dial Network Mạng quay số riêng ảo VPI Virtual Path Identifier Nhận dạng đường ảo VPLS Virtual Private LAN Service Dịch vụ LAN riêng ảo VPN Virtual Private Network Mạng riêng ảo VPWS Virtual Private Wire Service Dịch vụ đường dây riêng ảo VR Virtual Router Bộ định tuyến ảo VRF VPN Routing and Forwarding Bảng định tuyến và chuyển tiếp VPN Chương 1: CHUYỂN MẠCH NHÃN ĐA GIAO THỨC MPLS 1.1 Tổng quan MPLS là viết tắt của “Multi-Protocol Label Switching”. Thuật ngữ multi-protocol để nhấn mạnh rằng cơng nghệ này áp dụng được cho tất cả các giao thức lớp mạng chứ khơng chỉ riêng cĩ IP, MPLS cĩ thể hoạt động với các giao thức khác IP như là IPX, ATM, Fram Relay…. MPLS cũng hoạt động tốt trên bất kỳ các giao thức lớp liên kết. Đâ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 switching). 1.1.1 Tính thơng minh phân tán 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 nhất đề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 ở mạng biên (edge), ví dụ như các tổng đài nội hạt, truy nhập… Trong mạng gĩi IP, tính thơng minh gần như chia đều cho các thiết bị trong mạng. Tất cả các router đề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 router ở biên thực hiện định tuyến và gắn nhãn (label) cho gĩi. Cịn các router ở 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 ngồi biên là một trong những ưu điểm lớn nhất của MPLS. Do MPLS hỗ trợ việc điều khiển lưu lượng và cho phép thiết lập tuyến cố định, việc đảm bảo chất lượng dịch vụ của các tuyến là hồn tồn khả thi. Đây là một điểm vượt trội của MPLS so với các định tuyến cổ điển. Tĩm lại, MPLS là một cơng nghệ chuyển mạch IP cĩ nhiều triển vọng. Với tính chất cơ cấu định tuyến của mình, MPLS cĩ khả năng nâng cao chất lượng dịch vụ của mạng IP truyền thống. Bên cạnh đĩ, thơng lượng của mạng sẽ được cải thiện một cách rõ rệt. 1.1.2 MPLS và mơ hình tham chiếu OSI Hình 1.1: MPLS và mơ hình tham chiếu OSI 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 nĩ là lớp 2,5. Hình 1.2: So sánh giữa chuyển tiếp IP và chuyển tiếp MPLS Nguyên lý của MPLS là tất cả các gĩi IP sẽ được gắn nhãn (label) và được chuyển tiếp theo một đường dẫn LSP (Label Switched Path). Các router 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 header IP. 1.2 Các khái niệm cơ bản trong MPLS 1.2.1 Miền MPLS (MPLS domain) RFC 3031 mơ tả miền MPLS là “một tập hợp các nút 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ị. Hình 1.3: Miền MPLS 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à router 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- SR (thường được gọi tắt là LSR). Các nút ở biên được gọi là router biên nhãn LER (Label Edge Router). 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 (egress-LER). Lưu ý là các thuật ngữ này đượ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 tuỳ theo các luồng lưu lượng đang xét. Hình 1.4: Upstream và downstream LSR Thuật ngữ upstream-LSR và 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 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 (FEC) Lớp chuyển tiếp tương đương FEC (Forwarding Equivalence Class) là một tập hợ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 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 header lớp mạng. Hình dưới cho thấy cách xử lý này. Hình 1.5: Lớp chuyển tiếp tương đương trong MPLS 1.2.3 Nhãn và Stack 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 ý 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à 220 (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à stack nhãn (label stack). Stack nhãn là một tập hợp gồm một hoặc nhiều entry nhãn tổ chức theo nguyên tắc FIFO. Tại mỗi hop trong mạng chỉ xử lý nhãn hiện hành trên đỉnh stack. Chính nhãn này sẽ được LSR sử dụng để chuyển tiếp gĩi. Hình 1.6 : Stack nhãn Nếu gĩi tin chưa cĩ nhãn thì stack nhãn là rỗng (độ sâu của stack nhãn bằng 0). Nếu stack cĩ chiều sâu là d thì mức 1 sẽ ở đáy stack (bit S trong entry nhãn đặt lên 1) và mức d sẽ ở đỉnh của stack. Một entry nhãn cĩ thể được đặt thêm vào (push) hoặc lấy ra (pop) khỏi stack. 1.2.4 Hốn đổi nhãn (Label Swapping) Hốn đổi nhãn 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 tra nhãn trên đỉnh stack và dùng ánh xạ ILM (Incoming Label Map) để ánh xạ nhãn này tới một entry 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 stack nhãn. Rồi nĩ mã hĩa stack 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 header lớp mạng để xác định FEC rồi sử dụng ánh xạ FTN (FEC-to-NHLFE) để ánh xạ FEC vào một NHLFE. 1.2.5 Đường chuyển mạch nhãn LSP (Label Switched Path) Đường chuyển mạch nhãn LSP là một đường nối giữa router ngỏ vào và router ngỏ 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 Hình 1.7:Đường chuyển mạch nhãn MPLS dẫn của một LSP qua mạng được định nghĩa bởi sự chuyển đổi các giá trị nhãn ở các LSR dọc theo LSP bằng cách dùng thủ tục hốn đổi nhãn. Khái niệm LSP tương tự như khái niệm mạch ảo (VC) trong ATM. 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à VCI để tạo ra phân cấp kênh ảo (VC) nằm trong đường ảo (VP). Tuy nhiên ATM chỉ cĩ thể 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 entry nhãn trong stack nhãn. Về lý thuyết, giới hạn số lượng nhãn trong stack 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ì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 IP đi qua miền MPLS. Gĩi tin IP khi đi từ ngồi mạng vào trong miền MPLS được router A đĩng vai trị là Hình 1.9 : Gĩi IP đi qua mạng MPLS 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 router B. Router B dựa vào bảng hốn đổi nhãn để kiểm tra nhãn của gĩi tin. Nĩ thay giá trị nhãn mới là 3 và chuyển tiếp đến router C. Tại C, việc kiểm tra cũng tương tự như ở B và sẽ hố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 router D. Router D đĩng vai trị egress-LER sẽ kiểm tra trong bảng hốn đổi nhãn và gỡ bỏ Hình 1.10: Định dạng một entry trong stack nhãn MPLS 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ư router B và C sẽ khơng phải thực hiện kiểm tra tồn bộ header IP của gĩi tin mà nĩ chỉ việc kiểm tra các giá trị của nhãn, so sánh trong bảng và chuyển tiếp. Vì vậy tốc độ xử lý trong miền MPLS sẽ nhanh hơn nhiều so với định tuyến IP truyền thống. Đường đi từ router A đến router D được gọi là đường chuyển mạch nhãn LSP (Label Switched Path). 1.3 Mã hĩa nhãn và các chế độ đĩng gĩi nhãn MPLS 1.3.1 Mã hĩa stack nhãn Khi nhãn được gắn lên gĩi, bản thân giá trị nhãn 20 bit sẽ được mã hố 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 entry nhãn. Hình 10 minh họa định dạng một entry nhãn trong stack nhãn. Nhĩm 32 bit ở hình trên là một entry trong stack 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ả entry 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ề entry 32 bit trong stack 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 bit, 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 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 stack nhãn. Khi một nhãn nằm ở đáy stack nhãn, thì bit 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 của stack nhãn nằm ở đâu. TTL – Gồm 8 bit, thường là copy trực tiếp từ trường TTL của header IP, được giảm đi 1 qua mỗi hop để chặn loop định tuyến giống như IP. Tuy nhiên, các bit TTL cũng cĩ thể được đặt khác với 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ế độ frame và chế độ cell. 1.3.2 Chế độ Frame 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 header của frame cĩ thể mang nhãn. Vì vậy, stack nhãn sẽ được chứa trong header chêm (shim header). Shim header được “chêm” vào giữa header lớp liên kết và header lớp mạng, như trong hình 11. Đỉnh stack nằm liền sau header lớp 2 và đáy stack nằm liền trước header lớp mạng. Hình 1.11 : Shim header Router gởi frame phải cĩ cách để báo cho router nhận biết rằng frame này cĩ chứa shim header, 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ị frame đ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 shim header bằng giá trị 0x8281 trong trường PPP Protocol. 1.3.3 Chế độ Cell Chế độ Cell đượ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ố trong trường gộp VPI/VCI, trong VPI hoặc VCI của header cell ATM (RFC 3035). Hình 1.12 : Nhãn trong chế độ cell ATM Cell ATM gồm cĩ 5 byte header và 48 byte payload. Để 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 (fragmentation). 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 header 5 byte để tạo ra một cell ATM. Khi đĩng gĩi cĩ nhãn MPLS trên ATM, tồn bộ stack nhãn được đặt trong AAL5 PDU. Giá trị thực sự của nhãn đỉnh được đặt trong trường VPI/VCI, hoặc đặt trong trường VCI nếu 2 ATM-LSR kết nối nhau qua một đường ảo ATM (VP). Entry đỉnh stack nhãn phải chứa giá trị 0 (coi như entry “giữ chỗ”) và được bỏ qua khi nhận. Lý do các nhãn phải chứa ở cả trong AAL5 PDU và header ATM là để mở rộng độ sâu stack nhãn. Khi các cell ATM đi đến cuối LSP, nĩ sẽ được tái hợp Hình 1.13 : Encapsulation gĩi cĩ nhãn trên link ATM lại. Nếu cĩ nhiều nhãn trong stack nhãn, AAL5 PDU sẽ bị phân đoạn lần nữa và nhãn hiện hành trên đỉnh stack sẽ được đặt vào trường VPI/VCI. Chương 2:ĐỊNH TUYẾN VÀ BÁO HIỆU MPLS 2.1 Đị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 các FEC và chọn hop kế 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. 2.1.1 Định tuyến ràng buộc (Constrain-based Routing) Đị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 route khơng chỉ dựa trên topology mạng (thuật tố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 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ố lượng hop và băng thơng.Để đường được chọn cĩ số lượng hop nhỏ nhất nhưng phải đảm bảo băng thơng khả dụng trên tất cả 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 2.1: Một ví dụ đị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 trên. Giả sử rằng định tuyến ràng buộc sử dụng số hop (hop-count) 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 này đều hướng đến cùng một egress-router. 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 (1 Mbps), 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 600Kbps 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 hop so với đường cũ. Với 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 online và offline. Kiểu online cho phép các router 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. 2.1.2 Định tuyến tường minh (Explicit Routing) Đị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 (explicit route). 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 (như IP prefix hoặc một AS). 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 (loose ER). Ngược lại, nếu ER quy định tồn bộ các nút trên CR-LSP thì được gọi là tuyến tường minh nghiêm ngặt (strict ER). 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 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. 2.2 Các chế độ báo hiệu MPLS 2.2.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 (Downstream Unsolicited) và phân phối theo yêu cầu (Downstream on Demand). Thuật ngữ downstream ở đây ngụ ý rằng phía downstream sẽ thực hiện gán kết nhãn và thơng báo gán kết đĩ cho phía upstream. 2.2.1.a Phân phối nhãn khơng cần yêu cầu (Downstream Unsolicited) Downstream-LSR phân phối các gán kết nhãn đến upstream-LSR mà khơng cần cĩ yêu cầu thực hiện việc kết nhãn. Nếu downstream-LSR chính là hop kế đối với định tuyến IP cho một FEC cụ thể thì upstream-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 downstream-LSR. Hình 2.2: Phân phối nhãn khơng cần yêu cầu 2.2.1.b Phân phối nhãn theo yêu cầu (Downstream on Demand) Upstream-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ì downstream-LSR mới phân phối. Trong phương thức này, downstream-router khơng nhất thiết phải là hop 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 2.3: Phân phối nhãn theo yêu cầu 2.2.2 Chế độ duy trì nhãn Một upstream-LSR cĩ thể nhận các gán kết nhãn cho cùng một FEC X từ nhiều downstream-LSR. 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ủ (conservative label retention). 2.2.2.a Duy trì nhãn tự do (liberal label retention) Phía upstream (LSR1) lưu giữ tất cả các gán kết nhãn nhận được, bất chấp việc downstream-LSR cĩ phải là hop kế đối với định tuyến IP hay khơng. ư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 loop định tuyến tạm thời khi thay đổi định tuyến. Hình 2.4: Duy trì nhãn tự do 2.2.2.b Duy trì nhãn bảo thủ (conservative label retention) Upstream-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ừ downstream-LSR đang là hop kế hiện hành. 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 2.5: Duy trì nhãn bảo thủ 2.2.3 Chế độ điều khiển LSP Khi một FEC ứng với một prefix đị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: 2.2.3.a Điều khiển độc lập (independent control) 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 peers). Điều này tương tự như định tuyến IP thơng thường, ở đĩ mỗi router 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 LSP 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ình 2.6: Điều khiển độc lập 2.2.3.b Điều khiển tuần tự (odered control) Một downstream-LSR 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ừ router hướng downstream của nĩ. 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ự cung cấp phương tiện tránh loop và đạt được mức độ thu gom chắc chắn hơn. Hình 2.7: Điều khiển tuần tự 2.2.4 Các giao thức phân phối nhãn MPLS Bảng 2.1 : Các chế độ của các giao thức phân phối nhãn MPLS Giao thức phân phối nhãn là một tập các thủ tục mà nhờ nĩ một LSR cĩ thể thơng báo cho một LSR khác biết về các mối gán kết nhãn-FEC mà nĩ đã tiến hành. Kiến trúc MPLS khơng chỉ định một giao thức phân phối nhãn duy nhất nào, do đĩ cĩ thể cĩ nhiều lựa chọn, mỗi giao thức cĩ ưu và nhược điểm riêng. Trong các phần tiếp theo giới thiệu một số giao thức phân phối nhãn được dùng phổ biến. 2.3 Giao thức LDP (Label Distribution Protocol) LDP đượ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 (unconstraint routing). 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 2.8 : Vùng hoạt động của LDP 2.3.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 (label advertisement) và thơng báo (Notification) . Tương ứng với các chức năng trên, cĩ 4 lớp thơng điệp LDP sau đây: 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: Một LSR định kỳ gửi đi bản tin Hello tới các cổng UDP 646 địa chỉ multicast (tất cả các router trong subnet). 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ĩ cĩ 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 2.9: Trao đổi thơng điệp LDP 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. 2.3.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 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. 2.3.2.a LDP PDU Mỗi PDU của LDP bao gồm một header LDP và theo sau là một hoặc nhiều thơng điệp LDP. Phần header LDP cĩ dạng như sau: Hình 2.10: LDP header 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 tồn cục nhận dạng LSR, như địa chỉ IP (router ID) được gán cho LSR. Hai octets sau xác định một khơng gian nhãn bên trong LSR. Hai octets này được set về 0 cho khơng gian nhãn “per-platform”. 2.3.2.b Định dạng thơng điệp LDP Tất cả các thơng điệp LDP cĩ cùng format như sau: Hình 2.11: Format thơng điệp LDP Bit U: Bit “Unknown”, luơn là 0 vì đặc tả LDP khơng cĩ kiểu bản tin Unknown. Bảng sau là các giá trị định nghĩa trường Message Type: Bảng 2.2: Các loại bản tin LDP 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). Message 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 sẽ 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. 2.3.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 và phiên kết thúc. - 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. - Label Mapping : Được sử dụng để quảng bá gán kết giữa FEC và nhãn. - 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 : Khi cĩ sự thay đổi trong bảng định tuyến (thay đổi prefix địa chỉ), lúc đĩ LSR khơng cịn nhận ra FEC này nữa. Thay đổi trong cấu hình LSR làm tạm dừng việc chuyển nhãn các gĩi trong FEC đĩ. - 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 đĩ. - 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 từ LSR kế cận phía downstream bằng bản tin này. - 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. 2.3.4 LDP điều khiển độc lập và phân phối theo yêu cầu Ví dụ dưới đây minh họa việc sử dụng bản tin Label Request và Label Mapping trong chế độ cơng bố nhãn theo yêu cầu và điều khiển LSP độ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ừ router lối vào R1 qua R2 rồi đến router lối ra R3 cho một FEC cĩ prefix “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ừ hop kế của nĩ là 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 downstream 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à LFIB của R2, R3 cĩ các entry gán kết nhãn hình thành nên đường chuyển mạch nhãn LSP. Hình 2.12: Ví dụ LDP chế độ điều khiển độc lập 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 router 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 ở router lối ra, rồi sau đĩ lần lượt ngược về đến router lối vào. 2.4 Giao thức CR-LDP (Constrain-based routing LDP) CR-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 (TE) 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. 2.4.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 (RFC 3212): Tuyến tường minh ER (Explicit Route) Chặng tường minh ER-Hop (Explicit Route Hop) Các tham số lưu lượng Sự lấn chiếm (Preemptions) Nhận diện LSP (LSPID) Ghim tuyến (Route Pinning) Lớp tài nguyên (Resource Class) CR-LSP FEC 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ư: Báo hiệu đường (Path signalling) Định nghĩa các tham số lưu lượng Quản lý LSP (quyền ưu tiên, cam kết quản trị, v.v) 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, và nếu đường được yêu cầu thỏa mãn các ràng buộc (ví dụ đủ 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. 2.4.2 Thiết lập một CR-LSP (Constrain-based routing 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 (Explicit Route). ER được chứa trong các bản tin LABEL. Xét ví dụ trong hình 32. 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 Hình 2.13: Thiết lập LSP với CR-LDP 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 prefix. LSR A sau đĩ 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 đĩ. Khi 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 cũng tương tự như ở LSR B. 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 một bản tin Label Mapping và gởi nĩ đến LSR C. Bản tin này bao gồm đối tượng nhãn. Khi nhận bản tin này, LSR C dùng nhãn chứa trong bản tin để 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 hồn tồ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ữ. 2.5 Giao thức RSVP-TE (RSVP Traffic Engineering) 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 đã chuẩn hĩa phần 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ợ 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. Tổng kết cách dùng RSVP-TE để hỗ trợ tái định tuyến “make-before-break”, theo dõi đường thực sự được chọn qua chức năng ghi tuyến cũng như hỗ trợ ưu tiên và lấn chiếm. Nguyên lý chức năng của RSVP là thiết lập các dự trữ cho luồng gĩi đơn hướng. Các bản tin RSVP thường đi theo con đường hop-by-hop của định tuyến IP nếu khơng hiện diện tùy chọn tuyến tường minh (explicit route). Các router hiểu RSVP dọc theo đường cĩ thể chặn và xử lý bất cứ bản tin nào. RFC 2205 định nghĩa 3 kiểu bản tin RSVP: thiết lập dự trữ (reservation setup), tear down, và error. RSVP-TE cũng định nghĩa thêm bản tin Hello. 2.5.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 khơng bao gồm trong bất kỳ bản tin RVSP nào. Đối tượng label-request hỗ trợ chế độ 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-break” khi thay đổi đường đi của một đường hầm LSP. Đặc tính lưu lượng Tspec sử dụng tốc độ đỉnh (peak rate), thùng token (token bucket) để định nghĩa tốc độ và kích cỡ bùng phát, đơn vị khống chế tối thiểu (minimum policed unit) 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 tạo 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 hop kề trước trong bản tin PATH. RESV cũng chứa cùng session-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 (shared explicit) ấn định một nhãn khác nhau cho mỗi sender, nhưng tất cả chúng 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ừ egress dẫn ngược về ingress. Nĩ cĩ thể được một router dùng để ghim một tuyến tường minh thả lỏng bằng cách copy tuyến ghi được trong 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. 2.5.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 vớ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ột lỗi ở bước đầu tiên trong hoạt động tái đị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ợ 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 upstream, thay vào đĩ nĩ tạo ra một bản tin RESVERR gửi cho phía downstream để xĩa bỏ nỗ lực thiết lập LSP. Tuyến tường minh và các tùy chọn record-route 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 tươ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. 2.5.3 Thiết lập tuyến tường minh điều khiển tuần tự theo yêu cầu Hình 28 ví dụ việc trao đổi bản tin RSVP-TE sử dụng đối tượng tuyến tường minh ERO (explicit route object) để cài đặt một LSP đi qua một con đường khơng phải là đường ngắn nhất. Router 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 hop 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 router kế tiếp ghi trong ERO là R5. Đến lượt mình, R5 gửi bản tin này đến egress-router R3. Hình 2.14: Thiết lập LSP với RSVP-TE 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à hop cuối cùng trên đường dẫn cho 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 RFC 3031, nhãn null là một quy ước được dùng trong phân phối nhãn cho phép egress- router (ở đây là R3) báo hiệu cho đối tác upstream của nĩ biết rằng đây là hop áp cuối (penultimate hop) của LSP, do vậy cần gỡ nhãn đỉnh của stack (xem LFIB của LSR R5). Tiếp theo, R5 thu nạp bản tin RESV yêu cầu cho chặng R5-R4, ấn định nhãn B và gởi bản tin RESV đến router kề trước trong ERO là R4. Cuối cùng, R4 chấp nhận yêu cầu, ấn định nhãn A và gởi 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. 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. 2.5.4 Giảm lượng overhead làm tươi RSVP RSVP là giao thức trạng thái mềm (soft-state), 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ý 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ễ 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 để router dễ dàng nhận dạng một bản tin khơng thay đổi hơ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 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 (summary) để làm tươi trạng thái mà khơng yêu cầu truyền tồn bộ bản tin làm tươi. Các cải tiến này nhằm giảm lượng overhead làm tươi của RSVP trong mạng MPLS. 2.6 Giao thức BGP 2.6.1 BGPv4 và mở rộng cho MPLS BGPv4 (Border 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, RFC 2107 đã 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 duy nhất (Autonomous System), được định nghĩa là một tập hợp router 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 router 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 prefix địa chỉ mà cĩ thể tìm đến hoặc đi quá giang qua đĩ. Sử dụng BGP giữa các router 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 router trong các AS khác nhau được gọi 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 phase 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 timeout 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 prefix đị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: các tuyến thu hồi (withdrawn route), một danh sách các prefix địa chỉ NLRI, 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 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ĩ prefix địa chỉ đặc tả so trùng nhất, chọn một đường cĩ số hop AS ít nhất. Hình 2.15 : 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 đinh 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 AS-PATH 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 định tuyến path -vector. Các router sử dụng AS -PATH để tránh loop 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 router biên cần dùng để tìm đến NLRI. BGP cĩ một số tham số tùy chọn cĩ thể thực hiện một dạng cân bằng tải: LOCALPREF và MED. LOCALPREF cho phép AS đầu gởi chỉ định một sự ưu tiên (preference) định tuyến lưu lượng đi ra trên nhiều liên kết đến AS khác; trong khi MED (multiple exit discriminator) cho phép một AS phía nhận chỉ định một ư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à “ký sinh” 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. 2.6.2 Kết nối MPLS qua nhiều nhà cung cấp dịch vụ Hình 2.16 : BGP phân phối nhãn qua nhiều Autonomous System 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 trên gồm 3 hệ tự trị là A, B và C. AS A cấp phát cho khách hàng prefix địa chỉ (FEC) “a.b/16”. Router C3 quảng bá nĩ 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 mang một ánh xạ từ FEC “a.b/16” sang nhãn L. Router A3 trong AS A thu thập tất cả các thơng cáo này vào 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 reflector”. Nhằm tìm cách tốt nhất để chuyển tiếp các gĩi đến prefix “a.b/16”, A1 cĩ thể xác định rằng đường AS ngắn nhất là qua hop 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, router 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 prefix “a.b/16”, router A1 push nhãn L lên gĩi rồi push tiếp nhãn M trên đỉnh stack. Như vậy, một LSP được chui bên trong một đường hầm LSP khác. LSP1 bên ngồ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. 2.7 Tổng kết chương Trong chương này trình bày các chức năng định tuyến và báo hiệu cơ bản trong mặt phẳng điều khiển MPLS để hỗ trợ tự động hĩa việc cấu hình của mặt phẳng chuyển tiếp. Kiến trúc định tuyến IP được bổ sung chức năng báo hiệu để thực hiện định tuyến ràng buộc. Chương này đã giới thiệu một số giao thức báo hiệu MPLS thực hiện phân phối nhãn theo các đặc tính chung như tuyến tường minh hay tuyến từng chặng, phân phối nhãn theo yêu cầu hay khơng cần yêu cầu, điều khiển phân phối nhãn độc lập hay theo trình tự. Một số ví dụ trực quan minh họa hoạt động định tuyến và báo hiệu cĩ thể dùng cho kỹ thuật lưu lượng hoặc thiết lập kết nối MPLS liên mạng qua nhiều nhà cung cấp dịch vụ khác nhau. Chương 3:Kỹ thuật lưu lượng trong MPLS 3.1 Kỹ thuật lưu lượng (Traffic Engineering) Kỹ thuật lưu lượng (TE) 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. 3.1.1 Các mục tiêu triển khai kỹ thuật lưu lượng 3.1.1.a 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 lưu lượng liên quan đến việc tăng cường QoS cho các luồng 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 (throughput) 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. 3.1.1.b Bài tố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 nghẽn bằng các cách: § Tăng dung lượng hoặc ứng dụng các kỹ thuật điều khiển nghẽn cổ đ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 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. 3.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 gọi 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: ám chỉ biến động trễ cĩ thể chấp nhận được trên 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) của người dùng Bảng 3.1 : Các lớp dịch vụ lưu lượng 3.1.3 Hàng đợi lưu lượng Nhiều hệ thống (đặc biệt là router) hỗ trợ một số dạng hàng đợi thơng dụng sau: 3.1.3.a Hàng đợi FIFO (First-in, First-out) Hàng đợi này truyền gĩi theo thứ tự, gĩi đến trước sẽ được truyền trước. 3.1.3.b Hàng đợi WFQ (Weighted Fair Queuing) 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ĩ 12 luồng lưu lượng A,B,.. N và trọng số của chúng được đánh số như hình 37, 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ình 3.1 : Nhiều luồng cho mỗi lớp lưu lượng Tổng trọng số: 8 + 7 + 6 + 5(4) + 4(2) + 3 + 2 +1 = 55. Khi đĩ mỗi luồng cĩ trọng số 5 sẽ nhận được 5/55 băng thơng, luồng cĩ trọng số thấp nhất (trọng số 1) sẽ nhận được 1/55 băng thơng và luồng cĩ trọng số cao nhất (trọng số 8) nhận được 8/55 băng thơng. Tương tự cho các luồng cĩ trọng số khác. 3.1.3.c Hàng đợi CQ (Custom Queuing) Hình 3.2 : Hàng đợi CQ CQ cho phép các user 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 round -robin, 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ế. 3.1.3.d Hàng đợi PQ (Priority Queuing) Hình 3.3 : Hàng đợi PQ 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 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. 3.1.4 Giải thuật thùng rị và thùng token 3.1.4.a Giải thuật thùng rị (Leaky Bucket) Mơ hình thùng rị 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. 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. Hình 3.4: Giải thuật thung rị 3.1.4.b Giải thuật thùng token (Token Bucket) Thùng token cĩ kích thước 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. Hình 3.5: Giải thuật thùng token 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 lượng 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à các 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). Trong sửa dạng lưu lượng, thuật tốn thùng token cho phép một ít bùng phát ở ngõ ra, điều này khơng cĩ ở thuật tố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?, thùng token cĩ thể được dùng độc lập hay được dùng phối hợp. 3.1.5 Giải pháp mơ hình chồng phủ (Overlay Model) Hình 3.6: Mơ hình chồng phủ ( Overlay mode ) 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ơ hình chồng phủ (như IP over ATM hoặc IP over FR). Tất cả các router 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 router lớp 3 vớ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” 3.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 chồng phủ 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. 3.2.1 Khái niệm trung kế lưu lượng (traffic trunk) 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ố hồn cảnh cĩ thể nới lỏng định nghĩa này để cho phép trung kế lưu 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ế lưu lượng cĩ thể đĩng gĩi tồn bộ lưu lượng giữa một ingress -router và một egress -router. 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 đi chung trên một LSP. § Trung kế lưu lượng là đơn hướng. Hình 3.7 : Các trung kế lưu lượng 3.2.2 Đồ hình nghiệm suy (Induced Graph) Đồ hình nghiệm suy gần giống như topology ảo trong mơ hình chồng phủ. 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 trung kế lưu lượng. Một đồ hình nghiệm suy gồm một nhĩm các nút LSR được kết nối luận lý với nhau bằng các LSP. Khái niệm này rất quan trọng vì bài tố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ả đồ hình nghiệm suy lên trên topology mạng vật lý. Đồ hình nghiệm suy được cơng thức hĩa như sau: Đặt G = (V, E, C) là một đồ hình 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 link, 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à đồ hình 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 LSP. Tham số D là tập hợp các yêu cầu và chế tài cho F. Như vậy, H là một đồ hình trực tiếp và phụ thuộc vào các đặc tính chuyển tải của G. 3.2.3 Bài tố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à: § á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 trung kế lưu lượng (traffic trunk). § ánh xạ các trung kế lưu lượng lên topology mạng vật lý thơng qua các LSP. Các phần sau của chương sẽ tập trung vào vấn đề thứ ba, tức là tính tố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 tốn ánh xạ đồ hình nghiệm suy H lên topology mạng cơ sở G. 3.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 ẩn 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. 3.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 cho 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 để đưa 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 khi khơi phục xong sự cố). § Destroy : Loại bỏ hồn tồ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ĩ. 3.3.2 Thuộc tính tham số lưu lượng (Traffic Parameter) Thuộc tính tham số lưu lượng đặ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, v.v... 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ỉ thị các yêu cầu về tài nguyên của trung kế lưu lượng. 3.3.3 Thuộc tính lựa chọn và quản lý đường (chính sách chọn đườ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 chọn xuyên qua mạng cĩ thể được cấu hình tĩ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: 3.3.3.a Đườ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ả tồn bộ nếu chỉ ra tất cả các hop yêu cầu giữa hai endpoint. Đặc tả một phần là nếu chỉ cĩ một tập con các hop 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. 3.3.3.b Phân cấp các luật ưu tiên cho đa đường Trong một số hồn cảnh thực tế, khả năng chỉ định 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ử. 3.3.3.c Thuộc tính Affinity lớp tài nguyên (Resource Class Affinity) 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ố link nào đĩ. Mỗi link được gá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 bit như sau: Affinity(32-bit), Mask(32-bit) 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. Link được bao hàm khi chọn đường nếu chuỗ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. 3.3.3.d Thuộc tính thích ứng (Adaptivity) Trong nhiều tình huống cần thiết phải thay đổi động các đường dẫn của 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 cho biết một trung kế lưu lượng được phé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 “ghim” vào đường đã thiết lập của nĩ và khơng thể tái định tuyến (re-route) khi cĩ thay đổi trạng thái mạng. 3.3.3.e Phân phối tải qua nhiều trung kế song song Khi lưu lượng thu gom giữa hai nút quá lớn khơng thể tải hết trên một đường, MPLS cĩ thể tạo ra nhiều trung kế lưu lượng giữa hai nút sao cho mỗi trung kế chuyển một phần của lưu lượng thu gom. Khi đĩ cần cĩ một số thuộc tính cho biết tỉ lệ tương đối của lưu lượng được mang bởi mỗi trung kế. Các giao thức bên dưới sẽ ánh xạ tải lên các trung kế lưu lượng theo các tỉ lệ được cho. 3.3.4 Thuộc tính ưu tiên / lấn chiếm (Priority/Preemption) Thuộc tính ưu tiên 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ự 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 kế 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 giữ bởi các trung kế khác cĩ độ ưu tiên cầm giữ cao hơn. 3.3.5 Thuộc tính đàn hồi (Resilience) Thuộc tính đàn hồi 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ác 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ỳ bất chấp các ràng buộc tài nguyên. § Tổ hợp của các cơ chế nĩi trên. 3.3.6 Thuộc tính khống chế (Policing) Thuộc tính khống chế 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 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. 3.4 Các thuộc tính tài nguyên 3.4.1 Bộ nhân cấp phát cực đại (maximum allocation multiplier) Là lượng băng thơng dự trữ khả dụng tối đa của một link cĩ thể cấp phát ứng với từng mức ưu tiên thiết lập (setup priority) của các trung kế lưu lượng. Hình 3.8: Một ví dụ băng thơng dự trữ cho từng mức ưu tiên. 3.4.2 Lớp tài nguyên (Resource-Class) Thuộc tính lớp tài nguyên của một link là một chuỗi 32 bit được dùng kết hợp với thuộc tính Affinity của trung kế lưu lượng để bao gồm hay loại trừ các link nào đĩ trên đường của trung kế. Hình dưới đây là một ví dụ Affinity và lớp tài nguyên 4 bit để tránh một link được đặc tả. Hình 3.9: Minh họa cho cách dùng bit Affinity và Resource-Class 3.4.3 TE Metric Mỗi link cĩ một cost hoặc metric để tính tốn định tuyến trong hoạt động của IGP. TE metric là một trọng số quản trị được gán cho các link để tính tốn LSP cho các trung kế lưu lượng. Giá trị TE metric mặc định là bằng IGP cost của link. Router đầu nguồn (head-end) sử dụng các TE metric để định tuyến ràng buộc. 3.5 Tính tốn đường ràng buộc 3.5.1 Quảng bá các thuộc tính của link Router tại đầu nguồn (head-end) của một trung kế phải nắm được thơng tin thuộc tính tài nguyên của tất cả các link trong mạng để tính tốn đường LSP. Điều này 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ư IS –IS hay OSPF) vì chỉ cĩ kiểu giao thức này mới quảng bá thơng tin về tất cả các link đến tất cả các router. Vì vậy, OSPF và IS -IS được mở rộng để hỗ trợ MPLS -TE: § 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ĩ. § OSPF cĩ các định nghĩa thơng cáo Link -State mới (kiểu 10 LSA). Một khi router đầ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 link. Điều này rất cần thiết để tính tốn các đường thỏa mãn các địi hỏi của trung kế lưu lượng. Hình 3.10: 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 link thay đổi trạng thái (ví dụ up, down…) § Khi lớp tài nguyên của link 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), router 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. § Khi tham gia thiết lập một đường LSP nhưng thất bại. 3.5.2 Tính tốn LSP ràng buộc (CR-LSP) LSP cho một trung kế lưu lượng cĩ thể được khai báo tĩnh hoặc tính tốn động. Việc tính tốn sẽ xem xét các tài nguyên khả dụng, các thuộc tính link và cả các trung kế khác (vì vậy được gọi là tính tốn đường ràng buộc). Kết quả của việc tính tốn này là tìm ra một chuỗi các địa chỉ IP đại diện cho các hop 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à hồn thành việc thiết lập đường bằng các giao thức báo hiệu cho MPLS như RSVP -TE. Tiến trình tính tốn đường ràng buộc luơ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. 3.5.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 link riêng biệt. Trọng số quản trị này mặc nhiên là bằng metric IGP của link. Giải thuật chọn đường ràng buộc theo các bước sau: § Cắt bỏ các link cĩ resource -class bị loại do phép tính Affinity ra khỏi topology. § Cắt bỏ các link 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 topology 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 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ĩ số hop nhỏ nhất § Chọn lựa ngẫu nhiên Khi đường LSP được tính xong, RSVP được dùng để dành trước băng thơng thực sự, để phân phối các nhãn cho đường và hồn thành việc thiết lập đường LSP. 3.5.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). 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. Link R4-R3 cần được loại trừ khỏi đường LSP, do vậy chuỗi bit resource -class 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 link R4 -R3 bị loại . Hình 3.11: 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 tốn đường ràng buộc là TE cost (trọng số quản trị) của mỗi link 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 tố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à link R4 -R6 cũng bị loại khỏi phép tính đường LSP. Hình 3.12: Xem xét tài nguyên khả dụng Sau khi loại bỏ các link 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 cĩ tổng cost là 40, để chọn một đường phải giải quyết bằng luật “tie -break”. Hình 3.13: 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 tốn ràng buộc kết thúc. 3.5.5 Tái tối ưu hĩa (Re-optimization) 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 tái kích 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 đã thiết lập tối ưu 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ì: § Trước tiên, router đầu nguồn cố gắng báo hiệu thiết lập LSP mới tốt hơn, § Nếu thành cơng, thay thế đường LSP cũ bằng đường LSP mới tốt hơn. Tái tối ưu hĩa phải khơng được 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” 3.6 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 vài 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ẽ: hoặc 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 LSP, 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ĩ lỗi xảy ra trên đường, được chuyển tiếp bởi các LSR trung gian cho tới khi nĩ đến được POR. FIS được phát đi theo chu kỳ bởi các nút cận kề vị trí lỗi. § FRS (Fault Recovery Signal): Là bản tin chỉ thị một lỗi 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 chuyển trả lại đường nguyên thủy. 3.6.1 Phân loại các cơ chế bảo vệ khơi phục 3.6.1.a Sửa chữa tồn cục và sửa chữa cục bộ Sửa chữa tồn cục là bảo vệ khi cĩ sự cố ở bất kỳ 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à cần đượ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) hồn tồn. Sửa chữa cục bộ cũng nhằm bảo vệ khi cĩ sự cố link 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ị là 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 phục link: để bảo vệ một link trên đường làm việc. Nếu một lỗi xảy ra trên link này thì đường khơi phục sẽ nối liền giữa PSL và PML ở hai đầu link lỗi. Đường khơi phục và đường làm việc tách rời nhau đối với link được bảo vệ. § Khơi phục nút: để bảo vệ một 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ệ và các link cĩ nối vào nút này. PML cĩ thể là nút trên đường làm việc nằm kề sau nút được bảo vệ, hoặc PLM là egress -LSR. 3.6.1.b 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-route), đườ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à nố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 tốn sẵn trước hoặc tính tố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 tốn và thiết lập trước khi xảy ra sự cố trên đường làm việc. PSL đượ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. 3.6.2 Mơ hình Makam Đây là mơ hình khơi phục MPLS đầu tiên được đề xuất. Nĩ cung cấp bảo vệ tồn cục cho một LSP bằng cách thiết lập đường khơi phục giữa ingress -LSR và egress - LSR. Đường làm việc và khơi phục tách rời nhau (disjoint) cả về link 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ề cho ingress -LSR (là 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ả đườ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 3.14: 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. 3.6.3 Mơ hình Haskin (Reverse Backup) Mơ hình này khắc phục nhược điểm mất gĩi ở mơ hình Makam. 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 tồ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ình 3.15: 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 tồ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. 3.6.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 của 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. 3.6.5 Mơ hình Shortest -Dynamic 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ố link thì nĩ phải tính tốn rồi báo hiệu thiết lập một đường hầm LSP ngắn nhất đi từ nĩ đến nút ở phía bên kia link bị 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 3.16: Mơ hình Shortest – Dynamic 3.6.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ố link 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 tốn trước đường LSP khơi phục. Hình 3.17: Mơ hình Simple – Dynamic 3.6.7 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 tốn trước khi xảy ra lỗi. 3.7 Tổng kết chương Chương này này trình bày tập hợp các yêu cầu cho kỹ thuật lưu lượng qua MPLS. Nhiều khả năng đã được mơ tả tập trung vào việc tăng cường tính ứng dụng của MPLS đối với kỹ thuật lưu lượng. Bài tốn cơ bản của MPLS -TE là làm sao ánh xạ đồ hình 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. Chương 4 : Mơ phỏng MPLS và đánh giá 4.1.Tổng quan về NS2 4.1.1 Giới thiệu NS (phiên bản) là phần mềm mơ phỏng mạng điều khiển sự kiện riêng rẽ hướng đối tượng, được phát triển tại UC Berkely, viết bằng ngơn ngữ C++ và OTcl. NS rất hữu ích cho việc mơ phỏng mạng diện rộng (WAN) và mạng local (LAN). Bốn lợi ích lớn nhất của NS-2 phải kể đến đầu tiên là: Khả năng kiểm tra tính ổn định của các giao thức mạng đang tồn tại Khả năng đánh giá các giao thức mạng mới trước khi đưa vào sử dụng Khả năng thực thi những mơ hình mạng lớn mà gần như ta khơng thể thực thi được trong thực tế Khả năng mơ phỏng nhiều loại mạng khác nhau Mặc dù NS-2 là phần mềm mã nguồn mở cĩ sẵn cho cả nền Windows 32 và Linux, nhưng giáo trình này chỉ đề cập đến việc cài đặt cũng như thực thi NS-2 trong mơi trường Linux. 4.1.2 Download và install NS-2 và NAM NS-2 và NAM cĩ thể được cài đặt bằng duy nhất một gĩi phần mềm (cách 1) hay bằng cách cài từng gĩi phần mềm riêng lẻ (cách 2). Cách 1 dành cho những người vừa mới làm quen với mơ phỏng. Những người đã cĩ kinh nghiệm thì được khuyến khích cài theo cách 2. 4.1.2.1 Cách 1: Cài đặt bằng duy nhất một gĩi phần mềm 4.1.2.1.a Download Download gĩi phần mềm ns-allinone-2.28.tar về từ địa chỉ Ns-allinone-2.28 bao gồm các gĩi sau: cweb gt-itm nam-1.11 ns-2.28 otcl-1.9 sgb tcl8.4 tclcl-1.16 tk8.4 xgraph-1.1 zlib-1.1 install install.win readme install 4.1.2.1.b Install Chuyển đến thư mục ta muốn cài đặt NS (chẳng hạn như /usr/local/src/), giải nén gĩi ns-allinone-2.28.tar bằng lệnh: tar xvf ns-allinone-2.28.tar và chạy script: ./install Nếu cài đặt thành cơng thì sẽ cĩ những vị trí được cài đặt như sau: tcl8.4.5 {đường dẫn đến thư mục ns-allinone-2.28}/{bin,include,lib} tk8.4.5 {đường dẫn đến thư mục ns-allinone-2.28}/{bin,include,lib} otcl {đường dẫn đến thư mục ns-allinone-2.28}/otcl-1.9 tclcl {đường dẫn đến thư mục ns-allinone-2.28}/tclcl-1.16 ns {đường dẫn đến thư mục ns-allinone-2.28}/ns-2.28/ns nam {đường dẫn đến thư mục ns-allinone-2.28}/nam-1.11/nam xgraph {đường dẫn đến thư mục ns-allinone-2.28}/xgraph-12.1 Đặt {đường dẫn đến thư mục ns-allinone-2.28}/bin {đường dẫn đến thư mục ns-allinone-2.28}/tcl8.4.5/unix {đường dẫn đến thư mục ns-allinone-2.28}/tk8.4.5/unix vào biến mơi trường PATH; để cĩ thể chạy itm/tclsh/wish/xgraph, bằng lệnh: export PATH=$PATH:{đường dẫn đến thư mục ns-allinone-2.28}/bin:{đường dẫn đến thư mục ns-allinone-2.28}/tcl8.4.5/unix:{đường dẫn đến thư mục ns-allinone-2.28}/tk8.4.5/unix. CHÚ Ý (1) Phải đặt {đường dẫn đến thư mục ns-allinone-2.28}/otcl-1.9, {đường dẫn đến thư mục ns-allinone-2.28}/lib, vào trong biến mơi trường LD_LIBRARY_PATH. Nếu dùng csh, gõ lệnh: setenv LD_LIBRARY_PATH và nếu dùng sh thì gõ lệnh: export LD_LIBRARY_PATH (2) Phải thêm {đường dẫn đến thư mục ns-allinone-2.28}/tcl8.4.5/library vào trong biến mơi trường TCL_LIBRARY để tránh việc ns và nam báo lỗi khi khởi động. (3) [Tuỳ chọn] Để tiết kiệm đĩa thì cĩ thể xố hai thư mục tcl8.4.5 và tk8.4.5 đi vì chúng đã được cài đặt vào trong {đường dẫn đến thư mục ns-allinone-2.28}/{bin,include,lib}. Sau những bước này, cĩ thể kiểm tra lại NS-2 bằng lệnh: cd {đường dẫn đến thư mục ns-allinone-2.28}/ns-2.28 ./validate 4.1.2.2 Cách 2: Cài đặt bằng cách cài từng gĩi phần mềm riêng lẻ 4.1.2.2.a Download Để chạy được chương trình NS-2 thì cần phải cĩ tối thiểu 3 gĩi sau: otcl tclcl ns-2 Để biểu diễn mơ phỏng thì cần gĩi: nam-1 Đến bước 1.1 của phần 1.2.2.b để kiểm tra xem tập tin hệ thống mạng NFS cĩ hỗ trợ tcl/tk8.4.5 khơng. Nếu khơng thì cần download thêm hai gĩi: tcl8.4.5 tk8.4.5 Download các gĩi phần mềm trên về từ địa chỉ 4.1.2.2.b Install Bước 1: Install tcl/tk Bước 1.1: Nếu tcl/tk8.4.5 đã được install vào trong hệ thống thì chúng ta cĩ thể dùng để cài otcl, tclcl, ns-2 và nam bằng cách: 1. Kiểm tra vị trí chính xác của tiêu đề và các tập tin thư viện của tcl/tk. Thơng thường là: tclsh8.4 trong /usr/local/bin (hay /usr/bin) libtcl8.4.a trong /usr/local/lib (hay /usr/lib) init.tcl in /usr/local/lib/tcl8.4 (hay /usr/lib/tcl8.4) tcl*.h in /usr/local/include (hay /usr/include) Kiểm tra tương tự với tk như sau: tksh8.4 trong /usr/local/bin (hay /usr/bin) libtk8.4.a trong /usr/local/lib (hay /usr/lib) init.tcl in /usr/local/lib/tk8.4 (hay /usr/lib/tk8.4) tk*.h in /usr/local/include (hay /usr/include) Nếu khơng định vị được những file trên của tcl/tk8.4.5 thì bỏ mục 2,3 sau và chuyển ngay sang bước 1.2 để tiến hành install tcl/tk8.4.5. 2. Thiết lập các biến mơi trường setenv TCL_LIBRARY /usr/local/lib/tcl8.4 (hay /usr/lib/tcl8.4) setenv TK_LIBRARY /usr/local/lib/tk8.4 (hay /usr/lib/tk8.4) 3. Thiết lập các tuỳ chọn khi cấu hình otcl, tclcl, ns-2 trong bước 3 bên dưới. --with-tcl=/usr/local --with-tcl-ver=8.4 --with-tk=/usr/local --with-tk-ver=8.4 (hay --with-tcl=/usr --with-tcl-ver=8.4 --with-tk=/usr --with-tk-ver=8.4) Bước 1.2: Install tcl và tk 1. Configure và install tcl/tk tcl8.4.5 cd tcl8.4.5/unix ./configure –disable-load make tk8.4.5 cd tk8.4.5/unix ./configure –disable-load make 2. Những file quan trọng tclsh trong {đường dẫn đến thư mục tcl8.4.5}/unix libtcl8.4.a trong {đường dẫn đến thư mục tcl8.4.5}/unix init.tcl trong {đường dẫn đến thư mục tcl8.4.5}/library tcl*.h trong {đường dẫn đến thư mục tcl8.4.5}/generic Kiểm tra tương tự với tk. 3. Các biến mơi trường setenv TCL_LIBRARY {đường dẫn đến thư mục tcl8.4.5} (hay /usr/lib/tcl8.4) setenv TK_LIBRARY {đường dẫn đến thư mục tk8.4.5} (hay /usr/lib/tk8.4) 4. Thiết lập các tuỳ chọn khi cấu hình otcl, tclcl, ns-2 trong bước 2 bên dưới. --with-tcl={đường dẫn đến thư mục tcl8.4.5} --with-tcl-ver=8.4.5 --with-tk= {đường dẫn đến thư mục tk8.4.5} --with-tk-ver=8.4.5 Bước 2: Install/ re-install otcl, tclcl, ns-2 và nam Với từng gĩi này ta cần chạy script ‘configure’ để tạo ra Makefile với các đường dẫn và tên file BIN, INCLUDE, LIB đúng. Đơi khi script ‘configure’ tạo được Makefile nhưng lại khơng định vị chính xác tên đường dẫn và tên file. Vì thế, ‘make’ sẽ khơng thành cơng. Nên chúng ta cần chỉnh sửa lại Makefile để cĩ thể compiler cĩ thể tìm được đường dẫn và tên file đúng mà biên dịch. otcl ./configure --with-tcl={đường dẫn đến thư mục tcl8.4.5} --with-tcl-ver=8.4.5 --with-tk={đường dẫn đến thư mục tk8.4.5} --with-tk-ver=8.4.5 make tclcl ./configure --with-tcl={đường dẫn đến thư mục tcl8.4.5} --with-tcl-ver=8.4.5 --with-tk={đường dẫn đến thư mục tk8.4.5} --with-tk-ver=8.4.5 --with-otcl={đường dẫn đến thư mục otcl} make ns-2 ./configure --with-tcl={đường dẫn đến thư mục tcl8.4.5} --with-tcl-ver=8.4.5 --with-tk={đường dẫn đến thư mục tk8.4.5} --with-tk-ver=8.4 --with-otcl={đường dẫn đến thư mục otcl} --with-tclcl={đường dẫn đến file tclcl hay Tcl} make nam ./configure --with-tcl={đường dẫn đến thư mục tcl8.4.5} --with-tcl-ver=8.4.5 --with-tk={đường dẫn đến thư mục tk8.4.5} --with-tk-ver=8.4.5 --with-otcl={đường dẫn đến thư mục otcl} --with-tclcl={đường dẫn đến file tclcl hay Tcl} make CHÚ Ý Xem lại các chú ý đã trình bày trong phần 1.2.1 4.1.3 Chạy chương trình NS-2 và NAM Hình sau biểu diễn kiến trúc thư mục NS-2 và NAM trong mơi trường Linux. NS-2 và NAM đều là các thư mục con của ns-allinone-2.28. NS-2 bao gồm các thực thi mơ phỏng (bằng mã C++ và mã OTcl), các kịch bản Otcl kiểm tra tính hiệu lực và các kịch bản OTcl minh họa. TK8.4.5 OTcl tclcl Tcl8.4.5 ns-2.28 nam-1.19 tcl ex test lib ... ... Các ví dụ Các kiểm tra Mã C++ Mã OTcl ns-allinone-2.28 mcast Hình 4.1: Kiến trúc thư mục cài đặt của NS-2 và NAM trong mơi trường Linux Trước tiên, chúng ta cần xem lại các chú ý trong phần 1.2.1 để kiểm tra việc thiết lập giá trị biến PATH. Tiếp theo, để chạy NS-2, chuyển vào thư mục ns-2.28, gọi chương trình ns bằng lệnh ns file.tcl. Cách chạy kịch bản ví dụ simple.tcl đặt trong thư mục ../ns-2.28/tcl/ex như sau: ns-2 cd{đường dẫn đến thư mục ns-2.28}/tcl/ex/ ../../ns simple.tcl Tương tự, để chạy NAM, chuyển vào thư mục nam-1.19, gọi chương trình nam bằng lệnh nam file.nam. Chạy kịch bản ví dụ lan.nam trong thư mục ../nam-1.19/ex như sau: nam cd {đường dẫn đến thư mục nam-1.11}/ex gunzip lan.nam.gz ../nam lan.nam Lệnh gunzip dùng giải nén tập tin lan.nam.gz thành lan.nam. 4.2.Kiến trúc của NS2 4.2.1 Giới thiệu 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 tố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 4.2: Tổng quan về NS dưới gĩc độ người dùng OTcl Script Kịch bản OTcl Simulation Program Chương trình Mơ phịng OTcl Bộ biên dịch Tcl mở rộng hướng đối tượng NS Simulation Library Thư viện Mơ phỏng NS Event Scheduler Objects Các đối tượng Bộ lập lịch Sự kiện Network Component Objects Các đối tượng Thành phần Mạng Network Setup Helping Modules Các mơ đun Trợ giúp Thiết lập Mạng Plumbling Modules Các mơ đun Plumbling Simulation Results Các kết quả Mơ phỏng Analysis Phân tích NAM Network Animator Minh họa Mạng NAM Trong hình trên, 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, user lập trình bằng ngơn ngữ kịch bản OTcl. User 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 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 user đố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 4.3: 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 4.2.2 C++ và OTcl Hình sau biểu diễn kiến trúc chung của NS. User 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 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. 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 hồn tồn là hướng đối tượng Hình sau 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. 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, nối kết biến và gửi lệnh. Hình 4.4: 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 tốn một cách hiệu quả các byte, các tiêu đề packet và các thuật tố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. Theo giải thích trên, từng ngơn ngữ sẽ được dùng cho những việc gì? Dùng C++ để: Mơ phỏng giao thức chi tiết yêu cầu ngơn ngữ lập trình hệ thống Thao tác trên byte, xử lý gĩi, thực thi thuật tốn Tốc độ thời gian thực là quan trọng nhất Thực hiện bất kỳ việc gì mà cần phải xử lý tứng packet của một luồng. Thay đổi hành vi của lớp C++ đang tồn tại theo những hướng đã khơng được lường trước. Và dùng OTcl để: Mơ phỏng những thơng số hay cấu hình thay đổi Tham dị nhanh một số tình huống Thời gian tương tác (thay đổi mơ hình hay chạy lại) là quan trọng Cấu hình, thiết lập hay những gì chỉ làm một lần. Thực hiện những cái ta muốn bằng cách thao tác trên các đối tượng C++ đang tồn tại. Ví dụ như các link là những đối tượng OTcl liên kết các mơ đun delay (trì hỗn), queueing (hàng đợi) và possibly loss (khả năng mất mát). Cịn nếu muốn thực hiện những việc chuyên nghiệp hơn thì cần phải tạo ra đối tượng C++ mới. Hầu hết định tuyến được viết bằng OTcl (dù thuật tốn Dijkstra lõi viết bằng C++). Mơ phỏng HTTP cĩ từng luồng bắt đầu tại OTcl nhưng việc xử lý từng gĩi lại được viết bằng C++. Phương pháp này chạy tốt cho đến khi cĩ đến 100 luồng bắt đầu thời gian mơ phỏng mỗi giây. Nĩi chung, nếu phải triệu gọi Tcl nhiều lần mỗi giây thì cĩ lẽ nên chuyển sang C++. Về phương diện mã nguồn, NS-2 được viết với 100k dịng mã lệnh C++, 70k dịng mã Tcl và 20k dịng tài liệu. 4.2.3 Các đặc tính của NS-2 NS-2 thực thi những tính năng sau: Các kỹ thuật q

Các file đính kèm theo tài liệu này:

  • docBao cao do an - Bui Quang Thai.doc
Tài liệu liên quan