CHƯƠNG 4 MÔ PHỎNG VÀ ĐÁNH GIÁ
4.2. Cài đặt NS2 để mô phỏng MPLS-TE
Download và chạy file: http://cygwin.com/setup.exe . Ta chọn cài đặt vào thư mục gốc c:\cygwin\
Trong cửa sổ CygwinSetup – Select packages cần phải chọn cài thêm các gói sau:
gawk autoconf autoconf2.5 automake automake1.9 cmake gcc make perl patch mc
xorg-x11-base xorg-x11-bin xorg-x11-devel xorg-x11-etc xorg-x11-f100 xorg-x11-fscl xorg-x11-fenc xorg-x11-fnts xorg-x11-xwin w32api
Khi đánh dấu chọn các gói này, các gói liên quan sẽ tự động được chọn thêm. Sau khi cài đặt thành công, ngoài Desktop sẽ có biểu tượng Cywin. Ta cần tạo thêm shortcut đến file c:\cygwin\usr\X11R6\bin\startxwin.bat để thuận tiện khi cần chạy Xwindow.
Bước 2 : Cài đặt NS2 với module MNS 2.0
Vào trang http://nsnam.isi.edu/nsnam để tải bộ trọn gói phần mềm NS-2, tải file ns- allinone-2.32.tar.gz về (khoảng 50MB). Dùng winrar giải nén nó ra thư mục c:\cygwin\ns-allinone-2.32
Ngoài ra ta cần phải tải module MNS 2.0 để hổ trợ cho việc mô phỏng MPLS-TE.
Ta tải module trên tại địa chỉ
http://vnpro.org/forum/attachment.php?attachmentid=1155&d=1209962831 Sau khi download về giải nén ra ta được 2 file và 2 thư mục sau đây : mns_v2.0 \
tcl \
Makefile.in Makefile.vc
Chép đè 2 thư mục và 2 file này vào C:\cygwin\ns-allinone-2.32\ns-2.32\
Bây giờ ta cần phải biên dịch NS-2 vào môi trường Cygwin bằng cách nhấn đúp lên shortcut Cygwin trên desktop. Gõ các lệnh:
cd /ns-allinone-2.32/
./install
Chờ cho đến khi nó build xong
Thêm vào file .bashrc các dòng khai báo biến môi trường như sau:
export NS_HOME=/ns-allinone-2.32
export PATH=$NS_HOME/bin:$NS_HOME/tcl8.4.15/unix:$NS_HOME/tk8.4.15/unix:$PATH export LD_LIBRARY_PATH=$NS_HOME/otcl-1.13:$NS_HOME/lib:$LD_LIBRARY_PATH export TCL_LIBRARY=$NS_HOME/tcl8.4.15/library
export DISPLAY=:0.0
Ta nên edit và save bằng mc trong Cygwin để đảm bảo lưu đúng format của Unix Đến đây, ta đã cài xong NS-2 với module mns2.0 . Thoát khỏi Cygwin bằng lệnh exit.
Bước 3 : Chạy thử
Chạy Xwindow : c:\cygwin\usr\X11R6\bin\startxwin.bat
Chạy Cygwin. Tại dấu nhắc Cygwin, gõ dòng lệnh sau để kiểm tra:
ns /ns-allinone-2.32/ns-2.32/tcl/ex/mns_v2.0/test-constraint-routing.tcl Nếu ta cài đặt đúng, kết quả mô phỏng sẽ xuất hiện:
--> The result of constraint-based routing for lspid 1100 : Explicit Route=1_3_5_7_9 o The CR-LSP of lspid 1100 has been just established at 0.083327999999999999 --> The result of constraint-based routing for lspid 1200 : Explicit Route=1_2_4_6_8_9 o The CR-LSP of lspid 1200 has been just established at 0.30470399999999997
--> The result of constraint-based routing for lspid 1300 : Explicit Route=1_3_4_6_5_7_8_9 o The CR-LSP of lspid 1300 has been just established at 0.54732304761904738
--> The result of constraint-based routing for lspid 1400 : Explicit Route= No path
Bây giờ ta có thể thực hiện được các bài mô phỏng MPLS-TE
4.3. 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 1 topology mạng gồm 10 nút Router như trong hình dưới đây.
Hình 4.1. Topology vật lý của 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 link 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à sinh viên đã thực hiện trong luận văn này.
4.3.1. Mô phỏng mạng IP không hỗ trợ MPLS 4.3.1.1. Mô hình
Topology như hình 4.1, 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 luồng 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.3.1.2. Thực hiện và kết quả
Thực hiện mô phỏng với lịch trình qui đị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 5s : 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 1 : truyền 559 gói, mất 240 gói,tỉ lệ mất gói 42,9%
Hình 4.2. Kết quả băng thông nhận được ở bài 1 4.3.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 đi theo con đường là 1_3_5_7_9. Băng thông trên đường này đều không đủ cho cả 2 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ả 2 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 4.3). Đây chính là vấn đề sử dụng tài nguyên không hiệu quả trong mạng IP.
4.3.2. Mô phỏng định tuyến ràng buộc trong mạng MPLS 4.3.2.1. Mô hình
Topology như hình 4.1, trong đó nút 0 và nút 10 là các router IP thông thường (R0 và R9), trong khi đó 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 nút 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 600B.
4.3.2.2. Thực hiện và kết quả
Thực hiện mô phỏng với lịch trì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 1s : luồng 1 (src2 – sink2) bắt đầu truyền trên LSP 1200
Thời điểm 1,5s : luồng 1 (src3 – sink3) bắt đầu truyền trên LSP 1300
Thời điểm 5s : 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 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 4.4. Kết quả băng thông nhận được ở bài 2
Hình 4.5. Mô phỏng trực quan bài 2 trong cửa sổ NAM
Hình 4.6. Xuất nội dung bảng LIB ở các LSR ra màn hình console 4.3.2.3. Nhận xét
Định tuyến ràng buộc tự động chọn đường đi tốt nhất có đủ băng thông yêu cầu cho các CR-LSP, như vậy đường được chọn không nhất thiết phải là đường ngắn nhất. Nếu không có đủ băng thông, CR-LSP sẽ không được thiết lập (như trường hợp của LSP 1400), đây chính là cách ngăn ngừa tắc nghẽn và đảm bảo Qos.
Kết quả trực quan trong cửa sổ NAM cho thấy 3 luồng mặc dù xuất phát từ R0 và cùng đến đích là R10 nhưng mỗi luồng đều đi theo một đường khác nhau và đảm bảo không bị rớt gói. Điều này cho thấy hiệu quả sử dụng tài nguyên được nâng cao nhờ sử dụng kỹ thuật lưu lượng.
Qua theo dõi nội dung cơ sở dữ liệu nhãn LIB của các LSR xuất ra trên màn hình console, ta thấy có việc sử dụng nhãn ứng với từng LSP được thiết lập.
4.3.3. Mô phỏng khôi phục đường theo cơ chế Makam 4.3.3.1. Mô hình
Topology như hình 4.1, trong đó nút 0 và nút 10 là các router IP thông thường (R0 và R9), trong khi đó 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ó 1 nguồn lưu lượng (src1) được tạo ra và gắn vào nút R0. Tương ứng có 1 đích lưu lượng (sink1) gắn vào nút R10. Nguồn phát luồng lưu lượng với tốc độ 0,8 Mbps, kích thước gói 600B.
4.3.3.2. Thực hiện và kết quả
Thực hiện mô phỏng với lịch trình qui định trong script mô phỏng
Thiết lập đường làm việc : LSP 1100 (ER=1_3_5_7_9)
Thiết lập đường bảo vệ toàn cục : LSP 1200 (ER=1_2_4_6_8_9)
Thời điểm 0,5s : Luồng 1 (src1 – sink1) bắt đầu truyền trên LSP 1100
Thời điểm 2s : Link giữa LSR5-LSR7 bị đứt, đến 3,5s thì khôi phục
Thời điểm 5s : Luồng 1 ngưng truyền.
Kết quả truyền luồng : truyền 750 gói, mất 57 gói, tỉ lệ mất gói 7,59 %
Hình 4.7. Kết quả băng thông nhận được ở bài 3
Hình 4.8. Đường đi của lưu lượng trước thời điểm có sự cố
Hình 4.9. Đường đi của lưu lượng sau thời điểm sự cố (Makam) 4.3.3.3. Nhận xét
Khi link LSR5-LSR7 bị đứt, LSR5 phát một bản tin FIS về LSR1. Sau khi LSR1 nhận được thông điệp này, nó sẽ chuyển đường lưu lượng từ đường làm việc sang đường bảo vệ toàn cục đã thiết lập. Do thông điệp thông báo phải mất một khoảng thời gian mới đến được LSR1 nên trong thời gian này các gói vẫn còn được truyền trên đường dẫn có link bị hỏng và sẽ bị mất. Đây chính là nhược điểm của cơ chế bảo vệ Makam.
4.3.4. Mô phỏng khôi phục đường theo cơ chế Haskin (Reverse backup) 4.3.4.1. Mô hình
Như mô hình bài trước ở mục 4.2.3.1 4.3.4.2. Thực hiện và kết quả
Thực hiện mô phỏng với lịch trình qui định trong script mô phỏng:
Thiết lập đường làm việc : LSP 1100 (ER=1_3_5_7_9)
Thiết lập đường bảo vệ toàn cục : LSP 1200 (ER=1_2_4_6_8_9)
Thiết lập đường Reverse backup : LSP 1300 (ER=9_7_5_3_1_L1200)
Thời điểm 0,5s : Luồng 1 (src1 – sink1) bắt đầu truyền trên LSP 1100
Thời điểm 2s : Link giữa LSR5-LSR7 bị đứt, đến 3,5s thì khôi phục
Thời điểm 5s : Luồng 1 ngưng truyền.
Kết quả truyền luồng : Truyền 570 gói, mất 5 gói, tỉ lệ mất gói 0,66%
Hình 4.10. Kết quả băng thông nhận được của bài 4
Hình 4.11. Đường đi của lưu lượng sau thời điểm sự cố (Haskin) 4.3.4.3. Nhận xét
Cơ chế bảo vệ này khắc phục được nhược điểm mất gói của cơ chế Makam.
Kết quả trong cửa sổ NAM cho thấy luồng sau khi tới LSR5 được chuyển ngược trở lại LSR1 để đi sang đường bảo vệ. Tuy nhiên, độ trể sẽ tăng lên do đường đi của lưu lượng dài hơn.
4.3.5. Mô phỏng khôi phục đường theo cơ chế Shortest Dynamic 4.3.5.1. Mô hình
Như mô hình bài trước ở mục 4.2.3.1 4.3.5.2. Thực hiện và kết quả
Thực hiện mô phỏng với lịch trình qui định trong script mô phỏng :
Thiết lập đường làm việc : LSP 1100 (ER=1_3_5_7_9)
Thời điểm 0,5s : Luồng 1 (src1 – sink1) bắt đầu truyền trên LSP 1100
Thời điểm 2s : Link giữa LSR5-LSR7 bị đứt,đến 3,5s thì khôi phục
Thời điểm 5s : Luồng 1 ngưng truyền.
Kết quả truyền luồng : truyền 750 gói, mất 192 gói, tỉ lệ mất gói 25,6%.
Hình 4.12. Kết quả băng thông nhận được của bài 5
Hình 4.13. Đường đi của lưu lượng sau thời điểm sự cố (Shortest Dynamic) 4.3.5.3. Nhận xét
Cơ chế Shortest dynamic thuộc loại sửa chữa cục bộ bảo vệ link. Kết quả trực quan trong cửa sổ NAM cho thấy khi link giữa LSR5-LSr7 bị đứt, LSR5 tự động định tuyến và bảo vệ thiết lập LSP 1101 ngắn nhất giữa LSR5 và LSR7 (đi theo đường 5_6_8_7) . Như vậy, các gắn kết nhãn của LSP 1100 không bị thay đổi. LSP 1100 coi như được đi ngầm bằng cách lồng vào trong LSP 1101 để đi được từ LSR5
đến LSR7, tránh được đoạn link bị đứt. Trong thời gian chờ thiết lập tuyến đường vòng LSP 1101, các gói trên LSP 1100 bị mất.
4.3.6. Mô phỏng và khôi phục đường theo cơ chế Simple Dynamic 4.3.6.1. Mô hình
Như mô hình bài trước ở mục 4.2.3.1 4.3.6.2. Thực hiện và kết quả
Thực hiện mô phỏng với lịch trình qui định như trong script mô phỏng :
Đường làm việc : ER= 1_3_5_7_9
Thời điểm 0,5s : Luồng 1 (src1 – sink1) bắt đầu truyền trên đường làm việc
Thời điểm 2s : Link giữa LSR5-LSR7 bị đứt,đến 3,5s thì khôi phục
Thời điểm 5s : Luồng 1 ngưng truyền.
Kết quả truyền luồng : truyền 750 gói, mất 66 gói, tỉ lệ mất gói 8,8%
Hình 4.14. Kết quả băng thông nhận được của bài 6
Hình 4.15. Đường đi của lưu lượng sau thời điểm sự cố (Simple Dynamic) 4.3.6.3. Nhận xét
Cơ chế Simple Dynamic thuộc loại sửa chửa cục bộ, có thể dùng cho bảo vệ link hoặc bảo vệ nút. Kết quả trực quan trong cửa sổ NAM cho thấy khi link giữa LSR5-LSR7 bị đứt, LSR5 tự động định tuyến và báo hiệu thiết lập LSP 9999 ngắn nhất nối giữa LSR5 và Egress, ở đây là LSR9 (đi theo đường 5_6_8_9). Trong thời gian chờ thiết lập tuyến đường tránh LSP 9999, các gói trên đường làm việc bị mất.