前面學習了LDP建立鄰居,建立會話,今天來學習在MPLS中的標簽發布與管理。
在MPLS網絡中,下游LSR決定標簽和FEC的綁定關系,并將這種綁定關系發布給上游LSR。LDP通過發送標簽請求和標簽映射消息,在LDP對等體之間通告FEC和標簽的綁定關系來建立LSP。標簽的發布和管理由標簽發布方式、標簽分配控制方式和標簽保持方式來決定。
一、標簽的上游與下游
MPLS根據數據的轉發方向確定上、下游關系。標簽報文從上游LSR發出,被下游LSR接收并處理。
如圖所示,對于到達192.168.3.0/24的LSP而言,R3是R2的下游LSR,R1是R2的上游LSR。
二、標簽發布方式
標簽發布方式(Label Advertisement Mode)有DU模式和DoD模式兩種。
DU模式:
- 對于一個特定的FEC,LSR無需從上游獲得標簽請求消息即進行標簽分配與分發。
- LSR會主動將自己為FEC捆綁的標簽通告給上游鄰居,無需鄰居先發起請求再通告。
這里再復習一下前面的知識:
標簽發布方式為DU時,系統默認支持LDP為所有對等體分標簽,即每個節點都可以向所有的對等體發布標簽映射關系,不再區分上下游關系。因為在只給上游對等體分標簽情況下,發送標簽映射消息的時候,要根據路由信息對會話的上下游關系進行確認。
DoD模式:
- 對于一個特定的FEC,LSR獲得標簽請求消息之后才進行標簽分配與分發。
- 一般情況下,對特定FEC的訪問需求會觸發標簽請求消息。
在DoD模式下,只有上游鄰居向自己請求標簽映射時,LSR才會通告標簽映射給該鄰居。
兩者區別就是在DU模式下定義了FEC和標簽映射關系就會向上游通告標簽信息,而DoD模式下需要經過請求和回復。
三、標簽分配控制方式
標簽分配控制方式有獨立(Independent)模式和有序(Ordered)模式。
獨立(Independent)模式:本地LSR可以自主地分配一個標簽綁定到某個FEC,并通告給上游LSR,而無需等待下游的標簽。
標簽分配控制方式需要與標簽發布方式結合使用:
- 在使用DU作為標簽分發方式的情況下,如圖所示,R2和R3對192.168.4.0/24這條FEC,可以在上游LSR無請求,且自身沒有收到下游LSR的標簽綁定信息的情況下,主動向上游LSR通告標簽綁定信息。
- 采用DoD作為標簽發布方式時,如圖所示,R2和R3對192.168.4.0/24這條FEC,只要收到上游LSR的標簽請求消息,可以在自身沒有收到下游LSR的標簽綁定信息的情況下,向上游LSR通告標簽綁定信息。
有序(Ordered)模式:對于LSR上某個FEC的標簽映射,只有當該LSR已經具有此FEC下一跳的標簽映射消息、或者該LSR就是此FEC的出節點時,該LSR才可以向上游發送此FEC的標簽映射。
當標簽控制方式為Ordered,只有當LSR收到特定FEC下一跳發送的特定FEC標簽映射消息或者LSR是LSP的出口節點時,LSR才可以向上游發送標簽映射消息。
- 當標簽分發方式為DU時,如圖所示,對于192.168.4.0/24這條FEC,不論上游LSR是否有請求,必須收到下游LSR對此FEC的標簽綁定信息才向上游LSR發布標簽綁定信息,所以必須由Egress LSR,也就是R4作為LSP建立的“起點”。
- 當標簽發布方式采用DoD時,如圖所示,對于192.168.4.0/24這條FEC,只有收到上游LSR請求的請求,且自身已經收到下游LSR的標簽綁定信息的情況下,才向上游LSR通告標簽綁定信息。因此,必須由Ingress LSR(R1)發起請求,逐跳請求到Egress LSR(R4),最終由R4開始,向上游建立LSP。
概念是比較復雜,到時候通過實驗來模擬會比較好理解,目前只需要知道有幾種發布方式和標簽控制方式即可。
四、標簽保留模式
標簽保留有自由(Liberal)模式和保守(Conservative)模式。
自由(Liberal)模式:
- LSR收到的標簽映射可能來自下一跳,也可能來自非下一跳。
- 對于從鄰居LSR收到的標簽映射,無論鄰居LSR是不是自己的下一跳都保留。
當基于IP網絡部署MPLS時,LSR根據IP路由表判斷接收到的標簽映射是否來自下一跳。
Liberal方式的最大優點在于路由發生變化時能夠快速建立新的LSP進行數據轉發,因為Liberal方式保留了所有的標簽。缺點是需要分發和維護不必要的標簽映射。
- DU標簽分發方式下,如果采用Liberal保持方式,則R3保留所有LDP鄰居 R2和R5發來的關于192.168.1.0/24這個FEC的標簽,無論該R2和R5是否是IP路由表中到達192.168.1.0/24的下一跳。
- DoD標簽分發方式下,如果采用Liberal保持方式, LSR會向所有LDP鄰居請求標簽。但通常來說,DoD分發方式都會和Conservative保持方式搭配使用。
保守(Conservative)模式:對于從鄰居LSR收到的標簽映射,只有當鄰居LSR是自己的下一跳時才保留。
Conservative方式的優點在于只需保留和維護用于轉發數據的標簽,以達到節約標簽的目的。
- 當使用DU標簽分發方式時,LSR可能從多個LDP鄰居收到到同一網段的標簽映射消息,如圖中R3會分別從R2和R5收到網段192.168.1.0/24的標簽映射消息。如果采用Conservative保持方式,則R3只保留下一跳R2發來的標簽,丟棄非下一跳R5發來的標簽。
- 當使用DoD標簽分發方式時, LSR根據路由信息只向它的下一跳請求標簽。
當網絡拓撲變化引起下一跳鄰居改變時:
- 使用自由標簽保持方式,LSR可以直接利用原來非下一跳鄰居發來的標簽,迅速重建LSP,但需要更多的內存和標簽空間。
- 使用保守標簽保持方式,LSR只保留來自下一跳鄰居的標簽,節省了內存和標簽空間,但LSP的重建會比較慢。
- 保守標簽保持方式通常與DoD方式一起,用于標簽空間有限的LSR。
標簽保留方式簡單說就是LSR對于非上游通告的標簽是否保留的策略,可以節省標簽空間。
五、PHP(Penultimate Hop Popping,次末跳彈出)特性
PHP(Penultimate Hop Popping,次末跳彈出),如果激活了PHP特性,那么egress節點在為本地路由分配標簽的時候,會分配一個特殊標簽—3,該標簽被稱為隱式空標簽(Implicit NULL Label)。當LSR轉發一個標簽報文時,如果發現對應的出標簽值為3,則LSR會將棧頂標簽彈出,并將里面所封裝的數據轉發給下游LSR。
- 在標簽發布時,R3為作為192.168.3.0/24這條FEC的Egress LSR。分配標簽時,R3為該FEC分配了標簽3,并將該標簽綁定信息通告給R2。
- 在數據轉發時,R2作為到達192.168.3.0的次末跳(倒數第二跳),發現出標簽值為3,于是將標簽頭部彈出,將IP報文轉發給R3,而R3則僅需執行一次查詢操作(查詢FIB表)即可獲得相應的轉發信息,轉發效率得到了提升。
簡單說就是在倒數第二跳就彈出標簽了,減輕最后一跳LSR的壓力。前面在標簽空間我們也學習了0-15是一些特殊的標簽,一般不用于數據轉發,主要用于某些特性使用。
六、空標簽
缺省情況下,Egress節點向倒數第二跳分配隱式空標簽(implicit-null),即特殊標簽3。
但在部署QoS的場景下,標簽被彈出后,其中的優先級也會一并丟失。
顯式空標簽機制,Egress節點向倒數第二跳分配特殊標簽0。
R3在轉發標簽報文時,若出標簽封裝為0,則不會將標簽頭部彈出,標簽頭部中的QoS信息得以保存。R4在收到帶0標簽的報文的時候,直接彈出標簽,不用去查找ILM表項。
缺省情況下,Egress分配的是隱式空標簽,通過label advertise explicit-null使能Egress節點向倒數第二跳分配顯式空標簽。
隱式空標簽在QoS中可能關聯了某些流量優先級特征,缺省情況下倒數第二跳彈出標簽就會導致信息丟失,通過配置顯式空標簽可以分配標簽0,然后不彈出標簽,但是在最后一跳不需要查詢ILM表,直接查詢FIB表即可,既保證高效轉發又保留了可能的QoS信息。
在MPLS視圖下,執行命令label advertise { explicit-null | implicit-null | non-null }
,配置向倒數第二跳分配的標簽。根據參數的不同,可以配置Egress向倒數第二跳分配不同的標簽。
- 缺省情況下,使用的是implicit-null,Egress向倒數第二跳節點分配隱式空標簽,值為3。
- 如果配置的是explicit-null,Egress節點向倒數第二跳分配顯式空標簽,值為0。當需要支持MPLS QoS屬性時,可以選用explicit-null。
- 如果配置的是non-null,Egress向倒數第二跳正常分配標簽,即分配的標簽值不小于16。
華為設備目前缺省模式為下游自主方式(DU)+ 有序標簽分配控制方式(Ordered)+ 自由標簽保持方式(Liberal)。
總結:本次學習明確了LSR的上游與下游,初步了解標簽的分配方式、控制方式與保留方式,缺省的PHP特性功能等。