HuaWei ❀ MPLS標籤

MPLS標籤

1、轉發等價類
MPLS將具有相同特徵的報文歸爲一類,稱爲轉發等價類FEC(Forwarding Equivalence Class)屬於相同FEC的報文在轉發過程中被LSR以相同的方式處理;
FEC可以根據地址、掩碼等要素進行劃分,例如,在傳統的採用最長匹配算法的IP轉發中,到同一條路由的所有報文就是一個轉發等價類;

2、標籤
標籤(Label)是一個短而定長的、只具有本地意義的標識符,用於唯一標識一個分組所屬的FEC,在某些情況下,例如要進行負載分擔,對應一個FEC可能會有多個入標籤,但是一臺設備上,一個標籤只能代表一個FEC;
標籤的長度爲4字節,封裝如下圖所示:
在這裏插入圖片描述
(1)Label:20bit,標籤值域;
(2)Expt:3bit,用於擴展,現在通常用做CoS(Class of Service),其作用與Ethernet 802.1p的作用類似;
(3)S:1bit,棧底標識,MPLS支持多層標籤,即標籤嵌套,S爲1表明爲最底層標籤;
(4)TTL:8bit,和IP報文中的生存時間意義相同;

標籤封裝在鏈路層和網絡層直接,這樣標籤能夠被任意的鏈路層所支持,標籤在分組中的封裝位置如下圖所示:
在這裏插入圖片描述

3、標籤空間
標籤空間就是指標籤的取值範圍;

  • 0~15:特殊標籤

0 IPv4 Explicit NULL Label:表示該標籤必須被彈出,且報文的轉發必須基於IPv4,如果出節點分配給倒數第二跳節點的標籤值爲0,則倒數第二跳LSR需要將值爲0的標籤正常壓入報文標籤值頂部,轉發給最後一跳,最後一跳發現報文攜帶的標籤值爲0,則將標籤彈出,0標籤只有出現在棧底時纔有效;

1 Router Alert Label:只有出現在非棧底時纔有效,類似於IP報文中的Router Alert Option字段,節點收到Router Alert Label時,需要將其送往本地軟件模塊進一步處理,實際報文轉發由下一層標籤來決定,如果報文需要繼續轉發,則節點需要將Route1r Alert Label壓回標籤棧頂;

2 IPv6 Explicit NULL Label:表示該標籤必須被彈出,且報文的轉發必須基於IPv6,同標籤0類似;

3 Implicit NULL Label:倒數第二跳LSR進行標籤交換時,如果發現交換後的標籤值爲3,則標籤彈出,並將報文發給最後一跳,最後一跳收到該報文直接進行IP轉發或者下一層標籤轉發;

4~13 保留

14 OAM Router Alert Label:MPLS OAM(Operation Administraaion & Maintenance)通過發送OAM報文檢測和通告LSP故障,OAM報文使用MPLS承載,OAM報文對於Transit LSR和倒數第二跳LSR是透明的;

15 保留

  • 16~1023:靜態LSP和靜態CR-LSP共享的標籤空間;

  • 1024以上:LDP、RSVP-TE、MP-BGP等動態信令協議的標籤空間;

4、標籤棧
標籤棧(Label Stack)是指標籤的排序集合,MPLS報文支持同時攜帶多個標籤,靠近二層首部的標籤稱爲棧頂標籤或者外層標籤,靠近IP首部的標籤稱爲棧底標籤或者內層標籤,理論上MPLS標籤可以無限嵌套;
在這裏插入圖片描述
標籤棧按照後進先出方式組織標籤,從棧頂開始處理標籤;

5、標籤操作類型
標籤的操作類型包括標籤壓入(Push)、標籤交換(Swap)、標籤彈出(Pop),它們是標籤轉發的基本動作,是標籤轉發信息表的組成部分;

  • Push:指當IP報文進入MPLS域時,MPLS邊界設備在報文二層首部和IP首部之間插入一個新標籤,或者MPLS中間設備根據需要,在標籤棧頂增加一個新的標籤,即標籤嵌套封裝;
  • Swap:當報文在MPLS域內轉發時,根據標籤轉發表,用下一跳分配的標籤,替換MPLS報文的棧頂標籤;
  • Pop:當報文離開MPLS域時,將MPLS報文中的標籤去掉;

在最後一跳節點,標籤已經沒有價值,可以利用倒數第二跳彈出特性PHP(Penultimate Hop Popping),在倒數第二跳節點處將標籤彈出,減少最後一跳的負擔,最後一跳節點直接進行IP轉發或者下一層標籤轉發;
PHP在Egress節點上配置,支持PHP的Egress節點分配給倒數第二跳階段的標籤值爲3;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章