PHỊI LỤC D: m ỆN THựC MPIS TBÊM LINUX •

Một phần của tài liệu Ebook chuyển mạch nhãn đa giao thức MPLS phần 2 TS trần công hùng (Trang 98 - 101)

- Tách biệt lỗi trong miền quang

PHỊI LỤC D: m ỆN THựC MPIS TBÊM LINUX •

Giĩi thiệu

Linux được coi là một trong những hệ điều hành tốt nhất cho mơi trưỊTig mạng và ta hồn tồn cĩ thể sử dụng một server Linux như một router. Giải pháp mã nguồn mở này khơng những giúp giảm chi phí đầu tư về phần cứng, phần mềm cho router mà cịn tăng tốc độ của mạng cục bộ và bảo đảm một mơi trường mạng chạy ổn định.

Router Linux cũng ánh xạ các địa chi mạng đích đến các giao tiếp bằng cách xây dựng, cập nhật và tìm kiếm trong bảng định tuyến. Cĩ sẵn rất nhiều phần mềm mã nguồn mở để định tuyến trên Linux như Zebra, Linux router project ... hỗ trợ nhiều giao thức phổ biến nhưRIP, OSPF, BGP ...

M ột router muốn hỗ trợ MPLS phải là các router chuyên dụng cho mạng trục, từ platform 3500 trở lên và cài hệ điều hành lOS 12.3 trở lên, đây thật sự là một yêu cầu đáng kể khi xây dựng một mạng MPLS. Với router Linux, ta chỉ cần biên dịch và cài đặt các chương trình mã nguồn mờ hỗ trợ như MPLS Linux Project hay RSVP-TE ... hỗ trợ các tính năng MPLS mà vẫn tương íhích hồn tồn với các chương trình định tuyến nổi tiếng đã cĩ như Zebra, Ipsuite ... Nĩ thật sự là một cơng cụ hữu ích để giúp sinh viên tiếp cận và nghiên cứu về MPLS ttong hồn cảnh thiết bị và hệ thống mạng cịn nhiều hạn chế.

MPLS trên Linux

Đây là các ứng dụng mã nguồn mờ, miễn phí, cũng như cĩ thể được sửa đổi lại theo nhu cầu người dùng bằng cách thay đổi mã nguồn, chạy trên nền hệ điều hành Linux, được sử dụng và hỗ trợ bời một cộng đồng rộng lớn người sử dụng, được phân phối rộng rãi tại site http://mpls-linux.sourceforge.neư. Nĩ hiện thực MPLS bằng cách tạo một tập các giao thức báo hiệu và mặt phẳng chuyển tiếp MPLS cho hệ điều hành Linux kernel 2.4.X theo RFC 3036. MPLS trên Linux gồm hai gĩi chính là:

• mpls-linux - chuyển tiếp MPLS cho nhân Linux, gồm giao tiếp Ethernet, ppp, đường hẩm MPLS ảo, ngăn xếp nhãn, tìm nhãn đệ quy, tích họp với mơ hình Linux QoS, hỗ ứ ợ DiffServ, Ethernet trên MPLS.

• Idp-portable - hiện thực LDP theo RFC3036, tích họp với cấu ưúc định tuyến của Zebra.

Ý tưởng cơ bản của MPLS Linux Project

Chương trình định nghĩa cấu trúc dữ liệu dùng để diễn dịch các nhãn MPLS đến là n^M (Incoming Lable Map). Bảng ILM chứa tất cả các nhãn đến mà LSR ngõ vào và ngõ ra sẽ nhận ra, bao gồm nội dung nhãn, mã hoạt động (opcode), FEC ... Thứ tự xử lí các nhãn

Phụ lục D: Hiện thực MPLS trên Linux 271

đến như sau: đầu tiên, nĩ trích nhãn từ tiêu đề chèn thêm trên cùng, tìm nhãn trong bảng ILM, dựa vào opcode trong nhãn mà thực hiện các xử lí khác nhau.

struct m pĩs label { u32 label res:l,

label v a l u e : 28, label type:3: #define MPLS_LABEL„VPI #define MPLS_LABEL_VCI tdefine M P L S _ LABEL_GEN #define MPLS_LABEL_DLCI 10 #define MPLS_LABEL_DLCI 17 #define MPLS_LABEL_DLCI 23 }; #define MPLS_GEN_LABEL tdefine MPLS_VPIVCI_LABEL #define MPLS_VPI_LABEL #define MPLS_VCI_LABEL #define MPLS_FR10_LABEL #define MPLS_FR17_LABEL #define MPLS_FR23_LABEL ((label_value>>16)&0xFFF) (label_value&OxFFFF) {label_value&OxFFFFF) {label_value&0x3FF) (label_value&OxlFFFF) (label_value&0x7FFFFF) 0x01 0x02 0x03 0x04 0x05 0x06 0x07

cấu trúc ILM, với opcode là các hành vi tương ứng: POP_AND_LOOKUP, POP_AND_FORWARD, NO_POP_AND_FORWARD, S E ^ _ T O _ R P

struct ilm ent {

struct mpls_label label;

struct route_ent* outgoing_rt; ul6 protocol;

u8 opcode;

};

CÀI ĐẶT

Download các gĩi kemel2.4.x.tar.gz, mpls-lịnux-l.lyy.tgz, giải nén và cập nhật bản MPLS patch cho kernel để hỗ trợ tính năng MPLS, biên dịch lại kernel mới với các tuỳ chọn như bên dưới, cuối cùng là cài đặt kernel mĩi cĩ hỗ trợ MPLS

Code m a t u r i t y level options -- ->

[*] Prompt for development and/or incomplete code/drivers Networking options — ->

[*] Multi Protocol Label Switching - MPLS

[*] N e t w o r k packet filtering (replaces ipchains) IP: Ne t f i l t e r Configuration -- ->

<*> IP tables support (required for filtering/masq/NAT) <*> Packet mangling

272 Chuyển mạch nhẩn đa giao thức MPLS

<*> MPLS target support

/usr/src/linux-2.4.19>xnake dep && make clean && make bzlmage ScSc make modules ScSc make modules install

Chuyển bzlmage and System.map trong thư mục /boot và tạo một symbolic link mới đến System.map (tuỳ chọn).

Thay đổi file /etc/lilo.conf để bổ sung Image mới. Nạp lilo và khởi động lại.

v í DỤ

Sau đây là một ví dụ đơn giản về thiết lập một LSP và ánh xạ lun lượng đến ÍIĨ, sau đĩ kiểm tra lại lưu lượng đã được gán nhãn.

H ình C J : Sơ đồ

T ạ iu m ll:

[rootỡumll root]# cat /proc/net/mpls version

01010702

[rootỡumll root]# mplsadm2 -A -0 0 Key; 0x00000002

Out Segment add: Success

[root@umll root]# mplsadm2 -0 0x2 -o p u s h :g e n :10000:s e t :e t h l :i p v 4 :11.0.1.20ut

+Instr: Success

[rootOumll root]# ip route add 11.0.1.2/32 via 11.0.1.2 Isp 0x2 [root@ximll root]# cat /proc/net/mpls out

0x00000002 0/0/0 1 PUSH (gen 10000) SET (ethl.11.0.1.2) [rootQumll root]# ip route show

11.0.1.2 via 11.0.1.2 d e v ethl Isp 0x2 192.168.2.0/24 dev etho scope link 192.168.2.0/24 dev etho scope link

11.0.1.0/24 dev ethl p r oto kernel scope link src 11.0.1.Ĩ 127.0.0.0/8 dev lo scope link

[rootOumll root]#

Tại uml2

[root@uml2 root]# cat /proc/net/mpls version 01010702

[root@uml2 root] # .mplsac3m2 -L ethl:0 Label Space: Success

[root@uml2 root]# mplsac3m2 -A -I gen: 10000:0 In Label add: Success

[root@uml2 root]# cat /proc/net/mpls in 0x02710001 0/0/0 gen 10000 0 1 POP PEEK

[root@iamĩ2 root]# cat /proc/net/mpls labelspace ethl O 5

Ta kiểm tra bằng cách ping thử ờ uml 1.

[root@umll root]# ping 11.0.1.2

PING 11.0.1.2 (11.0.1.2) from 11.0.1.1: 56 (84) bytes of-data. 64 bytes from 11.0.1.2: icmp seq=l ttl=64 tixne=1.12 ms

64 bytes from 11.0.1.2; icmp seq=2 ttl=64 time=0,420 ms

Kiểm tra tiến trình MPLS ở uml2 cĩ nhận được các gĩi tin này khơng:

[root@uiĩ\12 root]# cat /proc/net/mpls in 0x02710001 55/4840/0 gen 10000 0 1 POP PEEK

[root@uml2 root]#

Hoặc dùng tcpdump để kiểm tra.

[root@uml2 root]# tcpdump -xvp -i ethl tcpdump: listening on ethl

07:23:40.325^485 fe: fd: Ĩ 1 : 0 :1:1 fe: fd: 11: ũ : 2 :1 8847 102: 0271 0140 4500 0054 0000 4000 4001 22a7

ObOO 0101 ObOO 0102 0800 9154 3202 8400 cc70 e83e 0cf6 0400 0809 OaOb OcOd OeOf 1011 1213 1415 1617 1819 lalb Icld lelf 2021 2223 2425 2627 2829 2a2b 2c2d 2e2f 3031

07:23:40.325614 11.0.1.2 > 11.0.1.1: icmp: echo reply (ttĩ 64, id 3923, ĩen 84)

Một phần của tài liệu Ebook chuyển mạch nhãn đa giao thức MPLS phần 2 TS trần công hùng (Trang 98 - 101)

Tải bản đầy đủ (PDF)

(123 trang)