MPLS簡(jiǎn)述
MPLS(mulTI-protocollabelswitch)是Internet核心多層交換計(jì)算的最新發(fā)展。這里主要描述一下標(biāo)簽轉(zhuǎn)發(fā)表的產(chǎn)生過程及IP包如何通過MPLS轉(zhuǎn)發(fā)。
MPLS標(biāo)簽棧頭
圖1 MPLS標(biāo)簽棧頭
32位的MPLS棧頭包括以下區(qū)域(如圖1所示):
承載MPLS標(biāo)記實(shí)際值的標(biāo)記區(qū)域(20位);
CoS區(qū)域(3位),用于在分組通過網(wǎng)絡(luò)時(shí)施加在分組上的排隊(duì)和丟棄算法;
堆棧區(qū)域(S區(qū)域,1位),用于支持標(biāo)記堆棧序列;
TTL區(qū)域(8位),提供傳統(tǒng)的IPTTL功能。
標(biāo)簽轉(zhuǎn)發(fā)表產(chǎn)生過程
1.路由器之間通過路由協(xié)議或靜態(tài)路由產(chǎn)生路由表。
圖2 路由器之間通過路由協(xié)議或靜態(tài)路由產(chǎn)生路由表
如圖2所示,假設(shè)途中A、B、C、D四臺(tái)路由器之間運(yùn)行了OSPF協(xié)議,A路由器學(xué)習(xí)到D路由器網(wǎng)段211.91.168.0/24的路由。
2.運(yùn)行MPLS的路由器為路由表中的路由分配標(biāo)簽。
圖3 運(yùn)行MPLS的路由器為路由表中的路由分配標(biāo)簽
圖3A、B、C、D四臺(tái)路由器的路由表中都有211.91.168.0/24網(wǎng)段的路由,假設(shè)各路由器都已運(yùn)行MPLS協(xié)議,則每臺(tái)路由器都會(huì)為該路由分配一個(gè)標(biāo)簽。
3.通過LDP/RSVP協(xié)議發(fā)現(xiàn)其MPLS鄰居。
假設(shè)在各路由器接口啟動(dòng)LDP協(xié)議。通過LDP發(fā)現(xiàn)協(xié)議,A路由器知道B路由器為其MPLS鄰居,B路由器知道A、C為其MPLS鄰居,C路由器知道B、D為其MPLS鄰居,D的MPLS鄰居為C。
4.將打標(biāo)簽的路由通告給其MPLS鄰居。
各路由器將其打了標(biāo)簽的路由通告給其MPLS鄰居,而不管是否已從其鄰居學(xué)習(xí)到該路由的標(biāo)簽。這樣對(duì)于路由211.91.168.0/24在各路由器中的標(biāo)簽情況如圖4所示。
圖4 各路由器中的標(biāo)簽情況
5.路由器將其下一跳路由器通告的標(biāo)簽加到其轉(zhuǎn)發(fā)表中。通常在實(shí)際應(yīng)用中路由器將目的地不是本地的IP包轉(zhuǎn)發(fā)給其下一跳。因此在MPLS中,路由器只將其下一跳路由器通告的標(biāo)簽加到其轉(zhuǎn)發(fā)表中。對(duì)于211.91.168.0/24網(wǎng)段對(duì)應(yīng)的轉(zhuǎn)發(fā)如圖5所示。
圖5 路由器將其下一跳路由器通告的標(biāo)簽加到其轉(zhuǎn)發(fā)表中