一、MPLS標簽
1、定義:
一個短的、易于處理的、不包含拓撲信息、只具有局部意義的信息內容。Lable短是為了易于處理,通常可以用索引直接引用;只具有局部意義是為了便于分配。例如:一個路由器上的IN和OUT都是1500,并不會對轉發產生啥影響。
標簽通常位于二層和三層的頭部之間
LSR根據MPLS標簽決定如何轉發數據
2、標簽結構:
標簽只有4個字節,32個bits
分為4個區域:
(1)label:標簽值,長度20bits,是標簽轉發的關鍵索引。
0-15為保留標簽:0表示該標簽必須彈出,交給IPV4處理;2表示該標簽必須彈出,交給IPV6處理;3表示倒數第二跳彈出;
16-1024為靜態標簽;
1024-65536位動態標簽。
(2)TC位:Traffic Class field,流量類別字段,用于QOS標識優先級,長度3bits,數字越大,優先級越高。
EXP ,Experimental Use,實驗性使用字段,預期用途是作為“服務等級”(Class of Service,CoS) 字段;
注意:TC和EXP所表示的意思是一樣的,有的文檔里用的EXP,有的文檔里用的是TC,現在EXP”字段被重命名為“TC”字段
(3)S:棧底標識,長度1bits。
S為1表示為最后一個標簽;
S為0表示后續還有標簽。這就意味著我們可以多次封裝標簽,嵌套標簽。這在MPLS VPN和BGP MPLS VPN中會被使用,如下圖:
(4)TTL:存活時間,長度8bits,用于當網絡出現環路時,防止標簽報文被無限制轉發。
它有兩種處理模式:
1,Uniform:IP報文進入mpls網絡時,拷貝IP頭部的TTL至標簽交換,每經過一次標簽交換,標簽TTL-1,經過出節點時,把標簽TTL再次-1后替 換到原IP頭部的TTL。
2, pipe:IP頭部進入MPLS時,IP頭部TTL-1,MPLS標簽中的TTL為固定值,每經過一次標簽交換,標簽TTL-1,直到經過出節點時,將IP頭部TTL-1。
這兩種模式最大的區別在于Uniform可以使接收設備感到TTL值的變化,可以知道自己經過了幾個路由器,而pipe做不到。
3、標簽識別:
以太網幀中,通過Type字段對MPLS進行識別
Type=8847,代表承載的是MPLS報文
Type=0800,代表承載的是IP報文
二、標簽分配協議---LDP(Lable Distribution Protocol)
1、定義:
用于LSR之間分配標簽,建立LSP,簡單可靠,是MPLS網絡中應用最廣泛的標簽分配協議之一。
2、標簽分配協議的種類:
LDP
MP-BGP----專門在BGP網絡中,支持標簽分配協議的,適合用IPV4
MP-BGP(BGP4+)----專門在BGP網絡中,支持標簽分配協議的,適合用IPV6
3、LDP消息類型
發現消息(discovery messages):用于LDP鄰居的發現和維持。
會話消息(session messages):用于LDP鄰居會話的建立、維持和中止。
通告消息(advertisement messages):用于LDP實體向LDP鄰居宣告Label、地址等信息。
通知消息(Notification messages):用于向LDP鄰居通知事件或錯誤。
4、LDP會話建立和維護
5、LDP鄰居狀態機
6、標簽轉發表
LDP會話建立完成后,路由器根據路由表進行標簽分配,形成MPLS標簽轉發表
標簽轉發表包含入標簽、出標簽和出接口
入標簽:接收到的報文攜帶的標簽
出標簽:轉發數據把入標簽替換為出標簽
出接口:報文數據發出的接口
7、LSP建立流程(標簽分配的過程)
上游與下游:
設備的上下游,與數據轉發的方向相對,數據先到達的地方是上游,后到達的地方是下游。
流程:
注:標簽分配的過程必須基于全網通的情況下
每臺路由器是怎么知道自己是上游還是下游?假設用戶A要和用戶B通信,全網通,這3臺路由器都已經配置了LDP協議,并且鄰居已起來
過程描述:
從A發出的數據包應該是這個樣子:D:20.0.0.1+S:10.0.0.1,LSR1收到后會查看路由表,得知其下一跳是LSR2的左邊接口,這也就意味是LSR1發現這個數據包的下一跳是自己的LDP鄰居,于是LSR1就知道自己是這個數據包中去往目的地的上游,此時LSR1會向LSR2發起標簽分配的請求,請求LSR2給LSR1分配一個去往20.0.0.1的標簽。
LSR2收到數據包后也會查路由表尋找下一跳,也會向LSR3發起標簽分配的請求,請求LSR3給LSR2分配一個去往20.0.0.1的標簽。
LSR3收到數據包后也會查路由表,發現其下一跳不是自己的LDP鄰居,這就意味著這個數據包的終點是自己,自己是最后一跳。
有一種復雜的情況:R1-R3都配置了LDP協議,唯獨R4沒有配置LDP協議
此時LSR3收到LSR2的數據包后,會查路由表找到目的地的下一跳,發現下一跳是LSR4,但LSR4不是自己的LDP鄰居,這會讓LSR3同樣的認為自己就是這個數據包的終點,自己值最后一跳
當LSR3知道自己是終點,是最后一跳時,LSR3會產生一個IN和OUT標簽,但此時OUT標簽是空的(因為它已經知道自己是最后一跳,就沒必要給自己給標簽了),IN標簽是隨機產生的,但是因為自己是最后一跳,所以,根據情況可以有三個選擇:
0表示該標簽必須彈出,交給IPV4處理;
2表示該標簽必須彈出,交給IPV6處理;
3表示倒數第二跳彈出。
假設,這個圖上配置的地址是IPV4地址,此時的IN標簽應該為0,出接口沒有(因為是最后一跳),最后LSR3會把自己的標簽值通過標簽通告報文(advertisement messages),傳給自己的上游LSR2。
當LSR2收到LSR3傳的標簽通告報文后,會將收到報文的接口S1/1作為自己的出接口,LSR3的IN標簽作為自己的出標簽,自身的IN標簽可自動給出一個隨機值,比如:IN=1200
當LSR1收到LSR2傳的標簽通告報文后,會將收到報文的接口S0/1作為自己的出接口,LSR2的IN標簽作為自己的出標簽,自身的IN標簽可自動給出一個隨機值,但因為自己是起點,所以沒有IN標簽
此時LSP的建立流程(標簽分配的流程)就結束了。
總結:
(1)出節點LSR收到上游標簽分配請求后,建立LSP
出標簽為空
入標簽設置為3或者0或者2,視情況而定
出接口為IP路由表中目的網段的出接口
(2)出節點LSR向上游LSR發布標簽映射消息,通告本機LSR的入標簽
(3)上游LSR根據標簽映射消息建立LSP
出標簽為下游LSR通告的入標簽
入標簽隨機產生
出接口為收到標簽映射消息的接口
(4)LSR繼續向上游發布標簽映射消息,直到入節點
(5)入節點LSR建立LSP
出標簽為下游LSR通告的入標簽
入標簽為空
出接口為收到標簽映射消息的接口
8、標簽通告模式
(1)DOD:downstream-on-demand,下游按需標記分配,默認模式
特征:上游LSR先向下游LSR發送標簽請求信息;下游LSR收到標簽請求消息后,為此FEC分配標簽,并向上游逐層通告。
優點:沒有訪問需求的地址,不會建立LSP,減輕路由器的性能負擔。
缺點:有訪問需求才會觸發建立LSP,會導致觸發報文的前幾個無法連通(LSP的建立需要過程,在每個路由器標簽沒有分配好前,有訪問需求,會導致訪問失敗)。
(2)DU:downstream unsolicited,下游自主標記分配
特征:下游LSR在LDP會話建立后,主動向上游LSR通告標簽映射消息,無需等待上游請求。
優點:無需統一訪問請求觸發,不會存在一組FEC前幾個包不通的情況。
缺點:路由器會主動建立所有路由表中下一跳為非LDP鄰居的網段的LSP,導致大量的LSP信息,而且很多可能是暫時無用的。
9、標簽控制模式
有序:只有從最下游的LSR開始建立標簽后,才能逐層通告
無序(獨立):不管有沒有收到下游的標簽映射消息,都立即向上游發送標簽映射消息(即使標簽重復也無所謂)
10、標簽保持方式
(1)保守模式:只保留最優路徑的,來自下一跳鄰居的標簽,丟棄所有非下一跳鄰居發來的標簽;
如果IP路由表中存在等價路由,LSP會建立等價路徑,做負載均衡。
特征:
增加LSP的收斂時間;(一旦主路故障了,需要啟動備用路徑,重新建立標簽分配的過程)
節省內存空間和標簽。
(2)自由模式:保留所有鄰居標簽
特征:
減少LSP收斂時間;
需要更多的內存和標簽空間。
11、帶標簽的MPLS報文轉發流程
報文進入MPLS網絡,入節點檢查標簽轉發表,進行PUSH操作,如下圖:
報文在Transilt LSR中傳輸時,路由器檢查標簽,并在標簽轉發表中匹配,進行標簽SWAP操作
報文到達出節點,路由器彈出pop標簽,并按照普通數據報文進行報文
審核編輯:劉清
-
TTL
+關注
關注
7文章
530瀏覽量
71411 -
QoS
+關注
關注
1文章
137瀏覽量
45246 -
VPN
+關注
關注
4文章
297瀏覽量
30326 -
路由器
+關注
關注
22文章
3806瀏覽量
115921 -
MPLS
+關注
關注
0文章
137瀏覽量
24563
原文標題:網絡學習:MPLS標簽與標簽分配協議—LDP
文章出處:【微信號:網絡技術干貨圈,微信公眾號:網絡技術干貨圈】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
MPLS的優點: MPLS四大優勢
一文告訴你SD-WAN與MPLS的區別在哪里?
中興MPLS培訓
Cisco出版MPLS和VPN體系結構
通用多協議標簽交換技術研究

評論