天天看點

輕松了解BGP/MPLS IP VPN的封包轉發原理

以下内容摘自筆者編著、華為公司授權出版,并作為華為ICT教育訓練官方教材的《華為MPLS ×××學習指南》一書(《華為MPLS技術學習指南》為其必備配套圖書)。

在基本BGP/MPLS IP ×××應用中(不包括跨域的情況),對×××封包轉發原理的了解非常重要,也是許多正在進軍華為HICE認證的朋友認為的一個難點,在此專門進行講解。基本BGP/MPLS IP ×××應用中,私網使用者發送的×××封包采用兩層MPLS标簽方式進行轉發:

  • 外層(公網)标簽在骨幹網内部進行交換,訓示從本端PE到對端PE的一條LSP。×××封包利用這層标簽可以沿LSP到達對端PE。

公網隧道可以是LSP隧道、MPLS TE隧道和GRE隧道。當公網隧道為LSP隧道或MPLS TE隧道時,公網标簽為MPLS LSP标簽(MPLS TE隧道的CR-LSP也是采用LSP标簽);當公網隧道為GRE隧道時,公網标簽為GRE封裝。

  • 内層(私網)标簽在從對端PE到達對端CE時使用,訓示封包應被送到哪個Site,這就是為不同路由或不同×××執行個體所配置設定的私網路由标簽。

   當PE之間已在通過MP-BGP互相釋出×××-IPv4路由時,會将本端所學習的每個私網×××-IPv4路由所配置設定的私網标簽通告給了對端PE,這樣對端PE根據封包中所攜帶的私網标簽可以找确定封包所屬的×××執行個體,然後再通過查找該×××執行個體的路由表,将封包正确地轉發到相應的Site。

【說明】特殊情況下,屬于同一個×××的兩個Site連接配接到同一個PE時,PE不需要為×××封包封裝内、外層标簽,隻需查找對應×××執行個體的路由表,然後再找到封包的出接口即可将封包轉發至相應的Site。

   下面以圖1-22為例說明BGP/MPLS IP ×××封包的轉發過程。圖中是CE1發送封包給CE2的過程,其中,I-L表示内層标簽,O-L表示外層标簽。本示例中内、外層标簽均為MPLS LSP标簽。

輕松了解BGP/MPLS IP VPN的封包轉發原理

(1)CE1向Ingress PE發送一個要通路遠端CE2所連接配接Site中目标主機的×××封包。

  (2)Ingress PE從綁定了×××執行個體的接口上接收×××資料包後進行如下操作:

  • 先根據綁定的×××執行個體的RD屬性查找對應×××的轉發表(VRF)。
  • 再根據×××封包中的目的IPv4字首,查找對應的Tunnel ID,然後将封包打上對應的私網(内層)标簽(I-L),根據Tunnel ID找到隧道。
  • 将×××封包從找到的隧道發送出去,發出之前×××封包要加裝一層公網(外層)MPLS标簽(O-L1)。此時×××封包中攜帶有兩層MPLS标簽。

   接着,該封包攜帶兩層MPLS标簽穿越骨幹網。骨幹網的每台P裝置都僅對該×××封包的外層标簽進行交換,内層私網路由标簽保持不變。如圖1-23是Ingress PE向Egress PE發送的一個ICMP請求封包的封包結構示例,他包括了兩層MPLS标簽,其中外層标簽為1025(MPLS Bottom os labelstack:0,表示後面還有MPLS标簽,非棧底标簽),内層标簽為1026(MPLS Bottom os labelstack:1,表示此為MPLS棧底标簽)。

輕松了解BGP/MPLS IP VPN的封包轉發原理

   【經驗提示】因為Egress節點為倒數第二跳配置設定的标簽通常是支援PHP特性的,是以在倒數第二跳把封包傳輸Egress節點時會先彈出外層标簽。這樣一來,Egress接收到的封包往往隻帶有一層标簽。如圖1-24是Ingress PE連接配接P的接口上接收到來自對端的響應ICMP封包的封包結構示例,其中顯示隻有一層MPSL标簽(MPLS Bottomos label stack:1,表示此為MPLS棧底标簽)。在EgressPE連接配接P的接口接收ICMP請求封包的封包結構一樣,也隻有一層MPLS标簽,也是因為外層标簽在倒數第二跳(P)彈出了。

    這樣一來,可以想象,如果是兩PE相連,則封包在PE間直連鍊路上傳輸時均隻帶一層MPLS标簽,這層标簽就是内層私網标簽,因為此時兩PE互相為對方的倒數第二跳,在發送封包時會彈出外層的MPLS标簽。但在這種PE直連情況下,我們一般配置是不支援PHP,這樣兩個直連的PE在發送封包時就不會彈出外層标簽了。

輕松了解BGP/MPLS IP VPN的封包轉發原理

 (3)Egress PE收到該攜帶兩層标簽的封包後,交給MPLS協定子產品處理。MPLS協定将去掉外層标簽(本示例最後的外層标簽是O-L2,但如果應用了PHP特性,則此标簽會在到達Egress PE之前的一跳P彈出,Egress PE隻能收到帶有内層标簽的封包,參見圖1-24)。

   (4)剝離了外層LSP标簽後,Egress PE就可以看見内層标簽I-L,先根據内層私網路由标簽查找到×××執行個體,然後通過查找該×××執行個體的路由表,可确定封包要轉發的目的Site和出接口。