MPLS Traffic Engineering Tác giả: Nguyễn Tuấn Vũ I. Tổng quan về quản lý lưu lượng MPLS Quản lý lưu lượng là quá trình điều khiển các tắt nghẽn trong mạng, xử lý, tính toán, kiểm soát lưu lượng, tối ưu hóa các tài nguyên mạng theo yêu cầu cho các mục đích khác nhau. Trước khi MPLS ra đời, người ta thực hiện quản lý lưu lượng trên mạng IP và ATM. IP traffic engineering điều khiển lưu lượng dựa trên đơn giá của đường truyền, không điều khiển được lưu lượng đến (traffic from), mà chỉ điều khiển được lưu lượng đi (traffic to). ATM traffic engineering sử dụng các PVC để truyền cho phép quản lý lưu lượng tốt hơn. Tuy nhiên cần phải xây dựng full-mesh PVC và phải điều chỉnh kích cỡ, vị trí của các PVC tuỳ vào loại traffic tại mỗi thời điểm, khi một kết nối bị down sẽ tạo ra flooding rất lớn. MPLS traffic engineering kết hợp những lợi điểm của ATM TE với tính linh hoạt, mềm dẻo của mạng IP cho phép xây dựng đường chuyển mạch nhãn LSP (còn gọi là TE tunnel) để truyền lưu lượng. MPLS TE tránh được vấn đề flooding mà ATM gặp phải do MPLS TE sử dụng cơ chế gọi là autoroute để xây dựng bảng định tuyến thông qua các tunnel mà không cần dựa vào full-mesh of routing như ATM. II. Yêu cầu để cấu hình MPLS TE - Router và IOS có hỗ trợ MPLS TE. - Mạng có hỗ trợ Cisco Express Forwarding (CEF). - Giao thức định tuyến link-state: OSPF hay IS-IS - Kích hoạt traffic engineering ở global mode và ở interface mode Router(config)#mpls traffic-eng tunnels Router(config-if)#mpls traffic-eng tunnels - Interface loopback để làm routerID (RID) trong MPLS TE int lo0 ip address 10.1.1.1 255.255.255.255 - Cấu hình TE tunnel, ví dụ: int Tunnel0 ip unnumbered Loopback0 tunnel mode mpls traffic-eng tunnel destination <địa chỉ IP đích> … III. Hoạt động của MPLS TE Gồm 3 quá trình: Phân phối thông tin tài nguyên hiện có, thiết lập đường truyền và vận chuyển lưu lượng theo các tunnel. 1 Information Distribution Ta cần giải quyết 3 vấn đề: thông tin gì được phân phối, khi nào thì thực hiện phân phối thông tin và thông tin được phân phối như thế nào? (What/When/How information is distributed) 1.1 What information is distributed? MPLS TE sử dụng OSPF/IS-IS để phân phối thông tin về tài nguyên hiện có. Các thông tin phân phối bao gồm: - Thông tin về băng thông hiện có trên interface Router(config-if)# ip rsvp bandwidth <kbps> - Độ ưu tiên của tunnel Tunnel có priority mang giá trị từ 0 đến 7, giá trị càng thấp thì càng ưu tiên, chia làm 2 loại Setup priority và Holding Priority. Setup priority quyết định khi nào thì chấp nhận 1 tunnel. Setup priority của tunnel mới được dùng để so sánh với Hold Priority của tunnel cũ để ra quyết định sẽ chọn tunnel nào. Router(config-if)# mpls traffic-eng priority 1 7 Ví dụ ta có tunnel1 và tunnel2 cùng yêu cầu sử dụng băng thông, cả 2 đều có SP = 1 và HP = 7. Khi đó: 1. Tunnel1 đến trước và chiếm dụng băng thông với HP=7. 2. Tunnel2 đến sau, so sánh SP của tunnel 2 (1) <HP của tunnel 1(7) nên sẽ ưu tiên cho tunnel2 và đẩy Tunnel1 ra khỏi đường truyền, tunnel2 chiếm dụng băng thông với HP=7. 3. Tunnel1 đến, so sánh SP> HP của tunnel 2 nên sẽ đẩy tunnel2 ra khỏi đường truyền và chiếm dụng băng thông với HP=7. Quá trình lặp lại… Recommend: Ta thường cấu hình giá trị Setup Priority > Hold Priority. - Các thuộc tính cờ (attribute flags) Attribute flag gồm 32 bit chỉ trạng thái, tính chất của đường truyền. Router(config-if)#mpls traffic-eng attribute-flags 0x3 (Phần này chưa rõ lắm) -Trọng số (administrative weight) của interface Giải thuật SPF sử dụng cost để tính toán đường đi. Mặc định TE cost = IGP cost. Giả sử kết nối 2 router có TE metric = IGP metric = 1. Để thay đổi TE cost mà không đổi IGP cost ta sử dụng lệnh: Router(config-if)# mpls traffic-eng administrative-weight 3 Khi đó TE metric = TE admin weight = 3, IGP metric = 1 Một vấn đề đặt ra là khi nào thì thông tin được phân phối? 1.2 When information is distributed? Khi mạng không dùng MPLS TE, IGP sẽ flood các thông tin đường truyền khi: thay đổi trạng thái kết nối (a link goes up or down), khi cấu hình kết nối thay đổi (link cost is modified, or link’s configuration is changed,…), khi đến chu kỳ flooding dữ liệu. MPLS TE có thêm 1 yếu tố nữa để ra quyết định flooding là khi băng thông thay đổi đáng kể. Tunnel được thiết lập hay loại bỏ dựa vào sự thay đổi băng thông dành trước trên interface. Nhưng khi nào thì router sẽ thông báo sự thay đổi băng thông này? Nếu router sẽ thông báo khi có sự thay đổi băng thông thì với số lượng lớn tunnel thay đổi, thông tin flooding này cũng sẽ chiếm đầy tài nguyên mạng chẳng khác gì so với IGP. Do đó ta phải định ra ngưỡng giới hạn để điều khiển quá trình này, có 3 cách xác định ngưỡng: - Flood significant changes immediately Router(config-if)#mpls traffic-eng flooding thresholds {up|down} <list of threshold percentages> Percent là phần trăm băng thông dành cho kết nối. Up/Down là nếu sử dụng băng thông vượt qua ngưỡng/thấp hơn ngưỡng thì sẽ thực hiện flooding. - Flood insignificant changes periodically, but more often than the IGP refresh interval Router(config)# mpls traffic-eng link-management timers periodic-flooding <0-3600s> Mặc định, sau 3 phút sẽ kiểm tra TE Link Manager, nếu có sự thay đổi về yêu cầu dự trữ băng thông thì sẽ tiến hành flooding. Recommend: Không nên thay đổi chu kỳ flooding, nếu ta thay đổi chu kỳ quá thấp như 1s thì router sẽ làm việc liên tục và hậu quả sẽ khó lường. - If a change that has not yet been flooded is known to cause an error, flood immediately Khi có error do RSVP gửi về khi thiết lập đường truyền thì sẽ tiến hành flooding thông tin đi để thông báo trạng thái. Kế tiếp ta xem xét thông tin sẽ được phân phối như thế nào? 1.3 How Information Is Distributed? ở đây ta quan tâm đến MPLS TE trong OSPF. Router ospf 1 Mpls traffic-eng router-id Loopback0 Mpls traffic-eng area 0 LSA mờ(opaque LSA – LSA type 10) định nghĩa thêm trường TLV (Type/Length/Variable) được sử dụng để trao đổi thông tin. 1. How SPF Works Giả sử ta có mạng như hình 1, khi tính toán SPF, mỗi router sẽ xây dựng 2 danh mục PATH list(chứa danh mục các shortest path để đến đích) và TENT list(chứa danh mục các next-hop trong quá trình tính toán). Trong đó, (node, cost, next-hop) sẽ biểu diễn kết quả tính toán trên mỗi router. PATH list TENT list B1: (A,0,0)……………(empty) B2: (A,0,0)……………(B,5,B), (C,10,C) B3: (A,0,0)……………(C,10,C) (B,5,B) B4: (A,0,0) (B,5,B)……………(C,8,B), (D,13,B) B5: (A,0,0)…………….(D,13,B) (B,5,B) (C,8,B) B6: (A,0,0) (B,5,B)……………(D,12,C) (C,8,B) B7: (A,0,0)…………… (empty) (B,5,B) (C,8,B) (D,12,C) Khi đó, bảng định tuyến trên router A là: Node Cost Next Hop A……………………0………………….Self B……………………5………………….B (directly connected) C……………………8………………….B D………………… 12………………….C Khi đó các đường đi xuất phát từ A là A—B, A—B—C, A—B—C—D 2. How CSPF Works Đường đi ngắn nhất trong MPLS TE còn phải dựa vào các yếu tố về bandwidth, link attributes và administrative weight. Giả sử băng thông cấp phát cho các kết nối như sau: A-B(100Mbps), A-C(100), B- C(50), B-D( 90), C-D(60). Xem hình 2 Khi đó đường đi từ A—B—C—D có cost là 12 sẽ chỉ cho phép băng thông cao nhất là 60Mbps. Giải thuật CSPF có đưa tham số bandwidth để tính toán (node, cost, next-hop, bandwidth) PATH list TENT list B1:…(A,0,self,N/A)……(empty) B2:…(A,0,self,N/A)……(B,5,B,100), (C,10,C,100) B3:…(A,0,self, N/A)…(C,10,C,100) ………(B,5,B,100)………(D,13,B,90) B4:…(A,0,self, N/A)……(D,13,B,90) ………(B,5,B,100) ………(C,10,C,100) B5:…(A,0,self, N/A)…….(empty) ………(B,5,B,100) ………(C,10,C,100) ………(D,13,B,90) Khi đó, bảng định tuyến trên router A là: Node Cost Bandwidth Next Hop A 0 N/A Self B 5 100 B (directly connected) C 8 100 C D 12 90 B Các đường đi xuất phát từ A: A—B, A—C, A—B—D 3. Resource Reservation Protocol (RSVP) Sau khi tính toán xong đường đi bằng giải thuật CSPF sẽ thực hiện thiết lập đường truyền thông qua giao thức dự trữ tài nguyên RSVP. Xét ví dụ hình 3, giả sử ta muốn dự trữ tài nguyên theo đường hầm R1-R2-R3-R5-R6- R7, các bước thực hiện như sau: 1. R1 gửi PATH message đến R2, R2 nhận thông điệp, kiểm tra định dạng thông điệp, kiểm tra trạng thái kết nối TE Link Manager để đảm bảo có đủ băng thông yêu cầu cấp phát. Nếu có sai sót, R2 sẽ gửi error message về lại R1. Nếu tất cả đều tốt, chuyển sang bước 2. 2. R2 gửi PATH mess đến R3, kiểm tra tương tự R1 3. R3 gửi PATH mess đến R5, kiểm tra tương tự 4. R5 gửi PATH mess đến R6, kiểm tra tương tự 5. R6 gửi PATH mess đến R7, kiểm tra tương tự 6. R7 là cuối tunnel, sẽ gửi RESV message về lại R6 báo rằng nhãn R7 sẽ cấp phát cho các gói trên đường truyền này là explicit-null. 7. R6 gửi RESV mess đến R5 và báo là muốn nhận nhãn đến mang giá trị 42. Nghĩa là trên đường truyền R5-R6, traffic sẽ nhận nhãn 42 và thực hiện loại bỏ nhãn tại R6 (label swaping) để gửi đến R7. 8. R5 gửi RESV mess đến R3, báo nhãn cho R3 là 10921. 9. R3 gửi RESV mess đến R2, báo nhãn cho R2 là 21. 10. R2 gửi RESV mess đến R1, báo nhãn cho R1 là 18. Khi R1 nhận thông điệp RESV, đường hầm từ R1 đến R2 sẽ sẵn sàng và ta biết được giá trị nhãn sử dụng trong tunnel. Còn rất nhiều các vấn đề khac như điều khiển lưu lượng đi qua tunnel dựa vào static route, policy routing, autoroute, vấn đề sử dụng chung băng thông, cân bằng tải và điều khiển metric trong đường hầm TE tunnel, vấn đề chất lượng dịch vụ trong MPLS TE, Fast Reroute . và ở interface mode Router(config) #mpls traffic- eng tunnels Router(config-if) #mpls traffic- eng tunnels - Interface loopback để làm routerID (RID) trong MPLS TE int lo0 ip address 10.1.1.1. nào? 1.3 How Information Is Distributed? ở đây ta quan tâm đến MPLS TE trong OSPF. Router ospf 1 Mpls traffic- eng router-id Loopback0 Mpls traffic- eng area 0 LSA mờ(opaque LSA – LSA type 10) định. chỉnh kích cỡ, vị trí của các PVC tuỳ vào loại traffic tại mỗi thời điểm, khi một kết nối bị down sẽ tạo ra flooding rất lớn. MPLS traffic engineering kết hợp những lợi điểm của ATM TE với