MPLS 標籤保留

2021-10-05 05:25:51 字數 3756 閱讀 4664

0-15是保留標籤,資料流進行**的時候,不使用這些標籤。

0-顯式空null標籤.

3-隱式空標籤.

1-路由器報警標籤.

14-oam報警標籤。

cisco的ios裡面用的是隱式空標籤.

r4#show mpls ldp bindings                             

tib entry:2.1.1.0/24,rev 6                           

local binding:tag :16                          

remote binding:tsr:4.1.1.1:0,tag:imp-null      

remote binding:tsr:6.1.1.1:0,tag:17            

tib entry:3.1.1.0/24,rev 4                            

local binding:tag:imp-null                     

remote binding:tsr:4.1.1.1:0,tag:imp-null      

remote binding:tsr:6.1.1.1:0,tag:16            

implicit-null.

在以前的時間裡,我一直沒有真正的理解顯示空和隱式空真正的含義。今天找了乙個相關的開發老師把這個概念理清楚了。

下面是我總結出來的一些概念,不對的請達人些指教.

隱式空標籤:

該標籤的標籤號固定為3,該標籤我理解就是乙個概念上的東西,用show命令show mpls forwarding-table都看不到這個3,那麼為什麼要用這個標籤呢?好處在**?

這裡涉及到另外乙個概念是php次末節點彈出機制.

這裡隨便借用了乙個拓撲圖。假設r3是p裝置,r4和r5是pe.

那麼當mpls報文送到r3往r4和r5進行**的時候,在r3上面就會把標籤pop出去,剝離標籤以後,用隱式空標籤3安裝在報文前面,實際上已經就是純ip報文了,然後**給r4或者r5,那麼兩個pe裝置負責的事情就是純粹的ip**了,減輕了pe裝置的壓力。

否則的話,pe裝置需要做的事情是收到了報文以後首先剝離標籤,然後查詢路由表進行ip報文的**,這樣加大了裝置工作流程。

凡是做過工程的朋友都知道,運營商的p裝置一般都是很強悍的至少是cisco7200級別的裝置,或者是7600.gsr等等,但是對於pe來說,cisco 3800/2800都可以來做。這也就是為什麼pe的需求不是那麼要求高的原因了。不知道這樣說是否說明清楚了。

正是因為有了php的設計思路,所以才有了隱式空標籤的出現。

簡單說來,為了減輕pe的壓力,在倒數第二跳直接將標籤彈出,以純ip的報文格式傳送給pe.讓pe直接走ip**.

顯式空標籤:

有了隱式空標籤以後,其實隱式空標籤也有缺陷的。我們都知道mpls標籤報文的結構:

其中,0-20位是標籤位,s位和ttl位先不管,還有8位的exp位,這就是其中的qos位。

相當於ip報頭中的ip precedence和dscp一樣,是用來著色的。但是這裡試想一下,如果客戶需要做端到端的qos,那麼一定會從頭到尾都需要有相關的著色位是有色的。php工作機制在倒數第二跳彈出以後,會把整個mpls報文頭移除,而不是單純的移除標籤,那麼如果原來有的exp假如是8,這個時候exp也會隨mpls報頭一起刪除,試問,在mpls骨幹網中,下一跳pe如何來做qos呢?

所以為什麼之前說的隱式空標籤是乙個概念。因為mpls報文頭被移除了。而現在需要用0這個顯示空標籤來進行替代,實際上是保留mpls報文頭,標籤為0,exp/s/ttl全部都保留下來傳遞到下一跳,最後就是pe來做p的工作,收到報文,先經過qos佇列,然後剝離標籤進行ip**。雖然這樣可以做端到端的qos,但是弊端就是對pe裝置的效能壓力比較大。

ps:對於ipv6來說,顯示空標籤不是0,而是2.

對於隱式空和顯示空標籤,我還有乙個疑問,諮詢了研究院的老師以後,就更加清楚了,這裡也分享出來:

以前我在做工程的時候,我記得運營商的pe,從vrf收到客戶側的資料報文以後,會加上mpls報文頭從骨幹網傳輸出去,當時我做實驗證明了乙個理論就是,裝置(cisco/maipu)會自動根據從vrf接收到的報文的ip precedence或者是dscp複製出來,然後貼上為mpls報文頭的exp欄位。也就是說,ip報文經過pe到骨幹網,pe裝置會將ip的tos那8個位元組複製到mpls header的exp中去。那麼從pe出來的時候是否也會複製呢?

如果要複製,那也就是說不需要顯示空標籤。按照這個邏輯應該是標準為只對進裝置的報文進行複製,php倒數第二跳出去的報文不會從mpls頭里exp再複製到ip的tos去。也就是ip的服務型別service type裡面去。所以這裡才有了顯示空標籤的應用.這個是和研發老師進行確認了的。

下面是在邁普的裝置和cisco裝置上的配置方式。

我們都知道裝置預設的是隱式空標籤。所以不需要配置。

在邁普的裝置上面,要先顯示空標籤,需要在mpls ldp下面進行配置:

這裡邁普的裝置用顯示空標籤是全域性的能力,也就是說,在mpls ldp下面配置了explicit-null以後,該裝置作為p在對於所有的pe都會用顯示空標籤,並不能針對哪些特殊的物件進行選擇性的操作。

cisco裝置的操作方式是:

請參考圖中的mpls ldp explicit-null to bbb,bbb是乙個acl的名字。

這樣比較靈活。

當然也可以讓整個裝置都做顯示空0出去:

mpls ldp explicit-null

還要提一下ttl,這個也是mpls 報頭中的乙個東西,在ipv4報頭中,ttl是如此的重要。ttl通常是255,每經過一跳(三層裝置)就會減少1,知道最後為0就會丟棄,傳送icmp type=11和0.在mpls中,ip的ttl會減1,然後複製到mpls ttl中,在用mpls**的時候ip的ttl不會變化。最後當標籤被剝離的時候,會在mpls ttl減1,然後再複製到ip的ttl中。

總結一下:

mpls的mtu一定會比ip的mtu要大,如果你想不分片傳輸報文的話,下面我自己整理了乙個公式:

mpls mtu=ip mtu+4*n (n代表標籤的個數)

再用乙個以前做的實驗來闡述mpls mtu的設定:

ip mtu=1500,mpls mtu=1503, 源位址ping目的-f不分片-l 1500。結果掉包不通。

ip mtu=1500,mpls mtu=1504, 源位址ping目的-f不分片-l 1500。結果通。

其實這裡就驗證了那個公式,mpls mtu一定大於ip mtu.因為還要加上4*n個標籤.

那麼這裡再想一下,如果ip mtu=1500, mpls =1500.

那麼資料報文在什麼情況下就會分片?答案是:ip 長度在1496的時候就會分片。如果ping x.x.x.x -l 1500 -f

一定是掉包。大家可以做實驗進行驗證 :)

還要提到的一點是,命令為:

mpls 保留標籤值 MPLS標籤賦值

mpls標識溝通交流的特性是將傳輸層的路由器和資料鏈路層的標識舉辦關聯,並將標識關聯資訊在標識溝通交流無線路由器中間舉辦分享,這一全過程也稱之為標識取值。普遍的標識取值有 a根據拓撲結構的遏制訂單量驅動器 b根據乞求的遏制訂單量驅動器 c資料資訊訂單量驅動器。第一種是標識取值相匹配於一切正常的路由協...

mpls 保留標籤值 HCIE面試題 MPLS

1 mpls vpn有那幾種路由器角色?1 ce customedge 直接與服務提供商相連的使用者裝置 2 pe provideredgerouter 指骨幹網上的邊緣路由器,與 ce 相連,主要負責 vpn 業務的接入 3 p providerrouter 指骨幹網上的核心路由器,主要完成路由和...

mpls 保留標籤值 對初學者的MPLS常見問題4

q.標籤值的範圍是多少?保留了哪些標籤值?這些保留值的含義是什麼?a.還可在 rfc3032 mpls 標籤堆疊編碼中找到這些值。理論上,範圍通過是0 2 120 標籤值 0 至 15 為保留值,而值 4 至 15 留作將來使用。值 0 至 3 分別被定義為 值 0 表示 ipv4 顯式 null ...