Phụ lục D: Hiện thực MPLS trên Linux
273
[root0uml2 root]# cat /proc/net/mpls in
0x02710001 0/0/0 gen 10000 0 1
POP PEEK
[root@uml2 root]# cat /proc/net/mpls labelspace
ethl 0 5
Ta kiểm tra bằng cách ping thử ở umll.
[root0umll 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 tirae=1.12 ms
64 bytes from 11.0.1.2: icmp seq=2 ttl=64 time=0.420 ms
Kiểm tra tiến ứ ình MPLS ở uml2 có nhận được các gói tin này không:
[root@uml2 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.325485 fe:fd:11:0:1:1 fe:fd:11:0: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 0e0f
1011 1213
1415 1617 1819 lalb lcld 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 (ttl 64, id 3923, len
84)
4500 0054
Of53 0000 4001 5354 0b00 0102
0b00 0101
0000 9954 3202 8400 cc70 e83e
0cf6 0400
0809 OaOb OcOd 0e0f 1011 1213
1415 1617
1819 lalb lcld lelf 2021 2223
2425 2627
2829 2a2b 2c2d 2e2f 3031 3233
3435
Gói tin đầu tiên là gói ping đi đến. 8847 cho biết đây là gói MPLS. Bốn byte đầu là
tiêu đề shim (0271 0140), theo sau là tiêu đề IP (4500 0054 0000 4000 4001 22a7 ObOO
0101 ObOO 0102). Gói thứ hai là gói ping hồi đáp và chi là gói IP bình thưcmg bởi vì ta đã
không thiết lập LSP theo hướng ngược lại.
RSVP-TE
Daemon RSVP-TE cho DiffServ trên MPLS hồ trợ các đặc tính như thiết lập LSP
định tuyến ràng buộc, E-LSP và L-LSP, LSP dự phòng kiểu IntServ, ánh xạ lưu lượng sang
LSP dựa vào giao thức, cổng, tiền tố đích đến, DSCP. Các thành phần của RSVP-TE có thể
274
Chuyển mạch nhãn đa giao thức MPLS
được download tại site http://ds mpls.atlantis.rug.ac.be, bao gồm KERNEL2.4.19-
MPLS172.patch, iptables-1.2.4-0.2-dscp.tgz, DSMPLS+IP.patch, iproute2-current.tar.gz
and rsvpd.0.70-rc2.tgz.
Để Linux hỗ trợ DS/MPLS, ta phải cài đặt nhiều bản vá cho: iptables (phù hợp với
DSCP), ip (giao thức MPLS), mplsadm (multiple table, hỗ trợ EXP và mặt nạ EXP), Linux
kernel (hỗ trợ lọc DSCP, MPLS patch) và khi biên dịch lại nhân, cần chọn các đặc tính sau:
[*]
Network packet filtering
[*] TCP/IP networking
1.advanced router
l.IP: policy routing
l.IP: use netfilter MARK
value as routing key
[*] MPLS support
[*] IP:
Netfliter Configuration
l.IP tables support (enable all suboptions unless you know what you are
doing, make sure "DSCP match" and "MPLS target" support is available.
[*] QoS and/or fair queuing (enable all suboptions unless you know what you
are doing)
[*]
Network device options
Biên dịch và cài đặt nhân mới hỗ trợ RSVP-TE. Thaỹ đổi file /etc/lilo.conf để bổ sung
Image mới. Nạp lại lilo và khởi động lại. Daemon RSVP-TE sẽ được chứa trong thư mục
/home/rsvp/rsvpd/rsvpd.
Các
công
cụ
khác
được
chứa
trong
thư
mục
/home/rsvp/rsvpd/labeltest. Ta cần phải cấu hình lại file label.conf trước khi chạy để cấu
hình lại tập nhãn, các giao tiếp tương ứng với thiết bị và thay đổi nếu cần thiết.
Ta sẽ thiết lập một LSP và ánh xạ các gói ICMP cho LSP này. Ta kiểm tra xem các
gói có được gửi qua LSP không bằng cách kiểm các các biến đến LSP. Xét một mạng như
trong hình C.2.
Hình C.2: Sơ đồ
1
.
1.2
2.1
2.2
Ngõ vào
Lõi
Ngõ ra
eth1
eth1
eth2
eth1
Khởi động daemons trên tất cả các máy từ ngõ vào đến ngõ ra:
Chia sẻ với bạn bè của bạn: