MPLS-Linux Unicast cung c p 5 l nh liên quan đ n ho t đ ng x lý mào đ u MPLS. h tr Multicasting, chúng tôi đã b sung hai l nh m i là MSET và MFWD vào ph n h t nhân c a MPLS-Linux. B ng V-3 đ a ra t ng quan c a hai l nh này.
B ng V-3. T ng quan v hai l nh MPLS-Linux Multicast L nh L p vào L p ra Mô t
MSET MPLS Ethernet Chuy n gói tin MPLS Multicast t i m t giao di n Ethernet
MFWD MPLS MPLS G i l nh PUSH đ i v i m t gói tin Multicast sau khi th c hi n l nh POP
i m khác bi t đ u tiên gi a MPLS Unicast và MPLS Multicast là giá tr s giao th c trong các khung Ethernet. Giá tr s giao th c là 0x8847 đ i v i MPLS Unicast và 0x8848 đ i v i MPLS Multicast. Khi m t khung có ch a m t gói tin MPLS Multicast truy n đi b i l p Ethernet, thì l nh MSET gán s giao th c trong ph n mào đ u Ethernet khi b đnh tuy n MPLS chuy n ti p các gói tin Multicast.
Khi l p Ethernet nh n đ c các khung có s giao th c t ng ng v i MPLS Multicast thì các khung này đ c l p MPLS x lý thay vì l p IP. API c a h t nhân Linux đnh ngh a l nh dev_add_pack( ) đ liên k t gi a s giao th c Ethernet v i các trình x lý l p trên. Ví d nh , s giao th c 0x0800 t ng ng v i trình x lý l p IP vì v y l p Ethernet chuy n khung tin có đa ch IP t i l p IP. Chúng tôi đã vi t trình x lý đ đnh h ng l i các gói tin MPLS Multicast t i l p MPLS.
i m khác nhau th hai v i MPLS Unicast đó là đ i v i MPLS Multicast thì l p MPLS ph i có kh n ng nhân b n các gói tin đ chuy n ti p cùng m t gói tin đ n t i nhi u giao di n. Chúng tôi đnh ngh a thêm ho t đ ng trong giao th c MPLS ng v i truy n thông Multicast đó là mswap (multicast swap) trong các mào đ u MPLS. Khi m t Shim Header c a gói tin MPLS b mswap, thì gói tin đó s đ c nhân b n và Shim Header c a m i b n s đ c tráo đ i và đ c g i đi trên các giao
di n khác nhau t ng ng. Chúng tôi th c hi n ho t đ ng mswap v i các l nh POP và PUSH k t h p v i các l nh m i là MFWD và MSET nh đ c th hi n trong B ng V-4.
B ng V-4. Tri n khai các ho t đ ng MPLS Multicast.
Ho t đ ng MPLS Trình t l nh trong MPLS-Linux
Push PUSH, MSET
Mswap POP, MFWD, PUSH, MSET MFWD, PUSH, MSET ………..
MFWD, PUSH, MSET
Pop POP, DLV
Chúng tôi đã phát tri n l nh m i MFWD (Multicast FWD) đ thay th cho l nh FWD. Trong khi m t ph n t c a b ng vào ch có th có m t l nh FWD t ng ng v i MPLS-Linux Unicast, chúng tôi đã m r ng đ m t ph n t trong b ng MPLS vào có th ch a nhi u l nh MFWD. L nh MFWD h tr vi c nhân b n gói tin. N u nh ph n t trong b ng MPLS vào ch a n l nh MFWD thì gói tin đ n s đ c nhân thành n-1 b n s d ng c ch trong h t nhân c a API. M i l nh MFWD s ch đ n m t ph n t khác nhau trong b ng MPLS ra. M i trong s n b n c a m t gói tin s đ c x lý tu theo n i dung c a các ph n t trong b ng MPLS ra đ c l nh MFWD ch đ n. Vì v y l p MPLS có th “g n” các Shim Header khác nhau cho m i b n c a gói tin và chuy n ti p chúng trên các giao di n khác nhau.
Hình V-2(a), (b) và (c) t ng ng th hi n ph ng th c “push”, “mswap” và “pop”
Shim Header c a các gói tin MPLS Multicast. Nh th hi n trên Hình V-2(a), đi m khác bi t duy nh t gi a “push” Shim Header c a các gói tin MPLS Unicast v i
“push” Shim Header c a các gói tin MPLS Multicast là s giao th c trong khung Ethernet. L p MPLS s d ng l nh MSET thay vì l nh SET trong b ng MPLS ra khi
“push” Shim Header trong các gói tin MPLS. Hình V-2(b), th hi n ph ng th c các gói tin Multicast đ c chuy n ti p đ ng th i ra các giao di n khác nhau. B ng
MPLS vào có ch a m t l nh POP và hai l nh MFWD t ng ng v i các gói tin đ n. L p MPLS tr c tiên lo i b MPLS Shim Header c a m i gói tin đ n. Sau đó gói tin s đ c nhân b n. L nh MFWD đ u tiên ch đ n ph n t trong b ng MPLS ra có ch a m t l nh PUSH và m t l nh MSET. Shim header đ c g n vào phiên b n đ u tiên c a gói tin thành khung Ethernet và đ c g i trên dây ng v i giao di n đ c xác đnh b ng l nh MSET. L nh MFWD th hai ch đ n m t ph n t khác trong b ng MPLS ra có ch a m t l nh PUSH khác và m t l nh MSET. Shim header có ch a m t nhãn khác đ c g n vào phiên b n th hai t o thành khung Ethernet khác và đ c g i đi thông qua giao di n khác. Hình V-2(c) th hi n ph ng th c các b đnh tuy n MPLS lo i b Shim Header kh i các gói tin MPLS Multicast. Không có s khác bi t nào trong ph ng th c lo i b Shim Header c a các gói tin MPLS Unicast v i các gói tin MPLS Multicast, ngo i tr s khác nhau v s giao th c trong mào đ u Ethernet c a các khung đ n.
Cu i cùng th nghi m c a chúng tôi h tr chuy n ti p h n h p L2/L3, nó t ng ng v i kh n ng các b đnh tuy n có th chuy n ti p các gói tin theo c hai c ch là IP và MPLS. Chúng tôi th c hi n vi c chuy n ti p h n h p L2/L3 b ng cách trong cùng m t ph n t c a b ng MPLS vào có m t hay nhi u l nh MFWD đ chuy n ti p các gói tin theo c ch MPLS và m t l nh DLV đ chuy n ti p gói tin theo c ch IP. Chuy n ti p h n h p L2/L3 đ c th hi n trên Hình V-3. Các gói tin MPLS đ n s đ c nhân b n t i l p MPLS. M t b n đ c gi l i l p MPLS còn các b n khác đ c chuy n cho l p IP.
Giao thức Giao thức Giao thức 0x8848 0x8848 0x0800 Bảng định tuyến
Bảng định tuyến phù hợ p?
POP MFWD DLV
Bảng vào Bảng ra
PUSH MSET
IP
MPLS
Ethernet ILM
Hình V-3. Chuy n ti p h n h p L2/L3