Sau khi loại bỏ các liên kết không thỏa mãn các đòi hỏi của trung kế lưu lượng, kết quả có hai đường LSP là: R1-R2-R3-R6 và R1-R5-R6. Cả hai đường đều 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 47: 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ố chặng nhỏ nhất trên đường LSP được áp dụng. Vì đường R1- R5-R6 có số chặng nhỏ hơn nên cuối cùng nó được chọn và quá trình tính toán ràng buộc kết thúc.
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)[3].
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,
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.1 Sửa chữa toàn cục và sửa chữa cục bộ
Sửa chữa toàn cục là bảo vệ khi có 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 hoàn toàn[3]. Sửa chữa cục bộ cũng nhằm bảo vệ khi có sự cố liên kết hoặc nút nhưng khôi phục nhanh hơn do việc sửa chữa được thực hiện cục bộ tại thiết bị phát hiện sự cố. Nút nằm kề trực tiếp trước vị trí lỗi sẽ đóng vai trò 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 liên kết: để bảo vệ một liên kết trên đường làm việc. Nếu một lỗi xảy ra trên liên kết này thì đường khôi phục sẽ nối liền giữa PSL và PML ở hai đầu liên kết lỗi. Đường khôi phục và đường làm việc tách rời nhau đối với liên kết được bảo vệ.
Khôi phục nút: để bảo vệ 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 liên kết 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.2 Tái định tuyến và chuyển mạch bảo vệ
Đối với khôi phục bằng tái định tuyến (re-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 toán sẵn trước hoặc tính toán sau khi phát hiện sự cố. Khi đường khôi phục được thiết lập xong, PSL bắt đầu chuyển lưu lượng trên đường này[3].
Trong chuyển mạch bảo vệ thì đường khôi phục được tính toán và thiết lập trước khi xảy ra sự cố trên đường làm việc. 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ệ toà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ề liên kết và nút. Khi phát hiện lỗi ở bất kỳ vị trí nào trên đường làm việc, tín hiệu FIS được dùng để chuyển thông báo lỗi về 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 48: 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 toàn cục. Đường dự phòng đảo và đường khôi phục phải thiết lập sẵn nên cách này tốn kém tài nguyên.
Hình 49: Mô hình Haskin
Một cải tiến khác cho phép PSL chuyển trực tiếp lưu lượng sang đường khôi phục toàn cục ngay khi nó thấy đường dự phòng đảo được dùng. Các gói đầu tiên trong phần lưu lượng được đảo chiều có tác dụng như tín hiệu FIS. Cách này tối ưu hơn vì đường đi của lưu lượng được bảo vệ ngắn hơn. Tuy nhiên trong thời gian đầu, lưu lượng mới chuyển đi trên đường khôi phục sẽ trộn lẫn với phần lưu lượng được đảo chiều làm thay đổi thứ tự gói ban đầu.
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ố liên kết thì nó phải tính toán rồi báo hiệu thiết lập một đường hầm LSP ngắn nhất đi từ nó đến nút ở phía bên kia liên kết 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 50: 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ố liên kết sẽ chuyển mạch lưu lượng. Sự khác nhau giữa hai cơ chế này là nút cuối cùng của đường làm việc phải là PML. Sau đó, đường khôi phục sẽ là từ nút phát hiện sự cố đến nút PML. Trong trường hợp này không tính toán trước đường LSP khôi phục.
Hình 51: 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 toán trước khi xảy ra lỗi.
3.7 Tổng kết chƣơng
Chương 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 phương pháp đã đượ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 toá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-TE VÀ ĐÁNH GIÁ 4.1 Phƣơng pháp và công cụ mô phỏng
4.1.1 Phƣơng pháp phân tích
Có hai phương pháp để phân tích nghiên cứu lưu lượng trong một mạng:
Mô hình hóa bằng phương pháp toán học
Mô phỏng bằng phần mềm trên máy tính
Trong đề tài này, học viên chọn phương pháp mô phỏng trên máy tính với NS-2 (Network Simulator v.2). NS-2 là phần mềm mã nguồn mở, mô phỏng các sự kiện rời rạc nhằm mục đích nghiên cứu mạng, nó hỗ trợ các giao thức mạng như là TCP, UDP, hoạt động của những tài nguyên mạng như FPT, Telnet, Web, CBR và VBR, các cơ chế quản lý hàng đợi router như Drop Tail, RED và CBQ, các thuật toán định tuyến... NS-2 được viết bằng C++ và OTcl.
Hình 52: Dữ liệu đầu vào và kết xuất của NS
Để thiết lập và chạy một mạng mô phỏng, người dùng phải viết một tập lệnh OTcl Script và khởi động một lịch trình sự kiện, thiết lập cấu hình mạng sử dụng các đối tượng mạng và các hàm chức năng trong thư viện, chỉ cho tài nguyên lưu lượng biết khi nào thì bắt đầu và kết thúc việc truyền gói thông qua lập biểu.
Khi mô phỏng kết thúc, NS-2 sẽ xuất ra một hay nhiều file text, ở đó có chứa các dữ liệu kết quả mô phỏng chi tiết nếu chúng ta yêu cầu trong tập lệnh Tcl. Các file này lại là dữ liệu đầu vào cho một chương trình hiển thị mô phỏng
trực quan gọi là Network Animator (NAM). Các số liệu kết quả mô phỏng cũng được dùng để vẽ các đồ thị phân tích bằng chương trình XGraph theo các yêu cầu nghiên cứu.
4.1.2 Chuẩn bị công cụ mô phỏng
NS-2 được thiết kế để chạy trong môi trường Unix. Tuy nhiên, ta vẫn có thể cài đặt NS-2 trong Windows bằng cách dùng thêm chương trình Cygwin. Học viên đã thử thực hiện cài đặt NS-2 trên Linux Ubuntu 9.04 và trên Windows XP với Cygwin v1.5.24, cả hai môi trường này đều cho kết quả tốt. Các công tác chuẩn bị đã thực hiện:
Cài đặt gói phần mềm ns-allinone-2.32. tại website
http://nsnam.isi.edu/nsnam . Trong gói này đã bao gồm ns-2.32, nam- 1.13, otcl-1.13 và tclcl-1.19.
4.2 Nội dung và kết quả mô phỏng
Để thuận tiện trong việc thực hiện mô phỏng và đánh giá, tất cả các bài mô phỏng trong đề tài này đều thống nhất sử dụng một topology mạng gồm 10 nút router như trong hình dưới đây:
Hình 53: Topology vật lý mạng thực hiện mô phỏng
Các nguồn phát lưu lượng (src) đều đặt tại nút 0 và các đích nhận lưu lượng (sink) đều đặt tại nút 10. Các liên kết giữa các nút đều là full-duplex với thời gian trễ là 30ms và có băng thông như trên hình (M: Mbps).
Sau đây là nội dung và kết quả các bài mô phỏng mà học viên đã thực hiện. Mã nguồn OTcl Script của các bài mô phỏng này có trong phần phụ lục của luận văn.
4.2.1 Mô phỏng mạng IP không hỗ trợ MPLS
4.2.1.1 Mô hình
Topology như hình 55, trong đó tất cả các nút đều là router IP thông thường không hỗ trợ MPLS (được đặt tên tương ứng từ R0 đến R10).
Có 2 nguồn lưu lượng (src1 và src2) được tạo ra và gắn vào nút R0. Tương ứng có 2 đích lưu lượng (sink1 và sink2) gắn vào nút R10. Mỗi nguồn phát luồng lưu lượng với tốc độ 0,9 Mbps, kích thước gói 600B.
4.2.1.2 Thực hiện và kết quả
Thực hiện mô phỏng với lịch trình quy định trong script mô phỏng:
Thời điểm 0,5s : Luồng 1 (src1 – sink1) bắt đầu truyền
Thời điểm 2,0s : Luồng 2 (src2 – sink2) bắt đầu truyền
Thời điểm 5,0s : Cả 2 luồng ngưng truyền Kết quả:
Luồng 1: Truyền 843 gói, mất 244 gói, tỉ lệ mất gói: 28,9%
Luồng 2: Truyền 559 gói, mất 240 gói, tỉ lệ mất gói: 42,9%
Hình 54: Kết quả băng thông nhận được ở bài 1
4.2.1.3 Nhận xét
Mạng IP sử dụng giải thuật định tuyến chọn đường ngắn nhất, do vậy cả 2 luồng lưu lượng đều đi theo con đường là 1_3_5_7_9. Băng thông trên đường này không đủ cho cả hai luồng, do vậy tất yếu xảy ra nghẽn. Kết quả trực quan trong cửa sổ NAM cho thấy cả hai luồng đều bị rớt gói tại router R3. Trong khi
đó, các đường khác có đủ băng thông nhưng lại không được sử dụng (hình 57). Đây chính là vấn đề sử dụng tài nguyên không hiệu quả trong mạng IP.
Hình 55: Mô phỏng trực quan bài 1 trong cửa sổ NAM
4.2.2 Mô phỏng định tuyến ràng buộc trong mạng MPLS
4.2.2.1 Mô hình
Topology như hình 55, trong đó nút 0 và nút 10 là router IP thông thường (R0 và R10). Các nút từ 1 đến 9 là các router có hỗ trợ MPLS (LSR1 đến LSR9) tạo thành một MPLS domain.
Có 3 nguồn lưu lượng (src1, src2, src3) được tạo ra và gắn vào nút R0. Tương ứng có 3 đích lưu lượng (sink1, sink2, sink3) gắn vào nút R10. Mỗi nguồn phát luồng lưu lượng với tốc độ 0,8 Mbps, kích thước gói 600B.
4.2.2.2 Thực hiện và kết quả
Thực hiện mô phỏng với lịch trình quy định trong script mô phỏng:
Lần lượt thực hiện định tuyến ràng buộc và thiết lập 4 LSP có ID tương ứng là 1100, 1200, 1300 và 1400 với yêu cầu BW=0,8 Mbps cho mỗi đường.
Thời điểm 0,5s : Luồng 1 (src1 – sink1) bắt đầu truyền trên LSP_1100
Thời điểm 1,0s : Luồng 2 (src2 – sink2) bắt đầu truyền trên LSP_1200
Thời điểm 5,0s : Cả 3 luồng lưu lượng ngưng truyền.
Kết quả định tuyến ràng buộc là các tuyến tường minh ER tìm thấy như sau:
LSP_1100: ER= 1_3_5_7_9
LSP_1200: ER= 1_2_4_6_8_9
LSP_1300: ER= 1_3_4_6_5_7_8_9
LSP_1400: ER= NO PATH ==> LSP_1400 sẽ không được thiết lập. Kết quả truyền các luồng:
Luồng 1: Truyền 750 gói, mất 0 gói
Luồng 2: Truyền 666 gói, mất 0 gói
Luồng 3: Truyền 583 gói, mất 0 gói
Hình 57: Mô phỏng trực quan bài 2 trong cửa sổ NAM