僞裝網絡工程師21——利用MPLS解決BGP路由黑洞

1、背景說明

在bgp網絡中爲了防止路由環路,採起了ibgp水平分割法則,這要求一個as內部的bgp speaker須要兩兩創建對等體或使用路由反射器(後續介紹),不然就會出現路由黑洞。本文介經過mpls標籤轉發路徑的方式進行傳遞BGP路由。 網絡

2、實驗拓撲

本次實驗拓撲以下圖所示:
僞裝網絡工程師21——利用MPLS解決BGP路由黑洞 ide

  • ip地址如圖所示,路由器底層運行ospf協議
  • 路由器的lo0接口地址爲x.x.x.x/32(x爲路由器編號),該地址也是route-id、lsr-id,做爲ospf鄰居,bgp對等體,ldp鄰居之間的通訊地址
  • R1和R4上的lo1接口模擬客戶端路由,不宣告進as1234,R1與R4之間經過lo0接口創建ibgp鏈接,R二、R3上不運行bgp,11.11.11.11/24與44.44.44.44/24在R1和R4的bgp中起源
  • 各接口ip地址配置步驟省略

    3、實驗步驟

    1.創建ospf與bgp鄰居關係

  • R1上的配置
#創建ospf鄰居
[R1]ospf 1 router-id 1.1.1.1
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network 12.0.0.1 0.0.0.0
[R1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0

#創建bgp對等體
[R1]bgp 1234
[R1-bgp]router-id 1.1.1.1
[R1-bgp]peer 4.4.4.4 as 1234
[R1-bgp]peer 4.4.4.4 connect-interface lo0
  • R2上的配置
    #創建ospf鄰居
    [R2]ospf 1 router-id 2.2.2.2
    [R2-ospf-1]area 0
    [R2-ospf-1-area-0.0.0.0]network 12.0.0.2 0.0.0.0
    [R2-ospf-1-area-0.0.0.0]network 23.0.0.2 0.0.0.0
    [R2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
  • R3上的配置
    #創建ospf鄰居
    [R3]ospf 1 router-id 3.3.3.3
    [R3-ospf-1]area 0
    [R3-ospf-1-area-0.0.0.0]network 23.0.0.3 0.0.0.0
    [R3-ospf-1-area-0.0.0.0]network 34.0.0.3 0.0.0.0
    [R3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0
  • R4上的配置
#創建ospf鄰居
[R4]ospf 1 router-id 4.4.4.4
[R4-ospf-1]area 0
[R4-ospf-1-area-0.0.0.0]network 34.0.0.4 0.0.0.0
[R4-ospf-1-area-0.0.0.0]network 4.4.4.4 0.0.0.0

#創建bgp對等體
[R4]bgp 1234
[R4-bgp]router-id 4.4.4.4
[R4-bgp]peer 1.1.1.1 as 1234
[R4-bgp]peer 1.1.1.1 connect-interface lo0

2.bgp路由黑洞的產生

  • 在R1和R4上起源lo1接口地址
[R1]bgp 1234
[R1-bgp]network 11.11.11.0 24

[R4]bgp 1234
[R4-bgp]network 44.44.44.0 24
  • 確認R4已收到R1發來的lo1接口路由,並將該路由已加載到路由表中
    僞裝網絡工程師21——利用MPLS解決BGP路由黑洞
  • 此時bgp路由已相互學習到,但沒法通訊 學習

    [R1]ping -a 11.11.11.11 44.44.44.44
    PING 44.44.44.44: 56  data bytes, press CTRL_C to break
    Request time out
    Request time out
    Request time out
    Request time out
    Request time out
    
    --- 44.44.44.44 ping statistics ---
    5 packet(s) transmitted
    0 packet(s) received
    100.00% packet loss

    3.路由黑洞根因定位

  • 路由傳輸層面
    首先,從路由傳輸層面進行分析。R1經過ibgp將11.11.11.11/24路由傳給R4
    僞裝網絡工程師21——利用MPLS解決BGP路由黑洞
    儘管R二、R3沒有運行bgp,但R1與R4底層用於創建bgp對等體的lo0接口之間路由層可以正常通訊,因此bgp路由表會經過update報文將11.11.11.11/24路由傳遞給對方
    僞裝網絡工程師21——利用MPLS解決BGP路由黑洞
  • 數據傳輸層面
    僞裝網絡工程師21——利用MPLS解決BGP路由黑洞
    看完了路由層面,如今來看數據傳輸層面,R4要將數據包發到對等體R1,但R4不能直接把數據包扔給R1,必須是一跳一跳的到達R1,這一點在R4的路由表中能夠看到,儘管下一跳是1.1.1.1,可是須要通過遞歸下一跳(RelayNextHop: 34.0.0.3 )R3
    僞裝網絡工程師21——利用MPLS解決BGP路由黑洞
    此時R3上並無目的地址是11.11.11.11/24的路由,因此直接丟棄,形成通訊失敗
    僞裝網絡工程師21——利用MPLS解決BGP路由黑洞

    4.使用mlps解決bgp路由黑洞

  • R1上啓用mpls,構建ldp鄰居(其他路由器作一樣動做此處省略)
    僞裝網絡工程師21——利用MPLS解決BGP路由黑洞
    至此,mpls配置完成,但此時發現,仍然沒法通訊,檢查R4去往11.11.11.11/24信息發現「TunnelID: 0x0」,說明並無進入lsp路徑轉發,仍然是ip報文轉發,緣由是華爲設備默認不去隧內作遞歸
    僞裝網絡工程師21——利用MPLS解決BGP路由黑洞
  • 開啓隧道內遞歸,發現它走0x1隧道
    僞裝網絡工程師21——利用MPLS解決BGP路由黑洞
    查看0x1隧道,能夠到看數據包被壓上R3給他分的值爲1024的label,而此時的目的ip地址也由ip報文轉發時的11.11.11.11/24變成了1.1.1.1
    僞裝網絡工程師21——利用MPLS解決BGP路由黑洞
    由於R1~R4都運行了ldp因此每一個路由器都爲1.1.1.1/32這個fec分配了label,經過tracert能夠查看變遷轉發路徑
    僞裝網絡工程師21——利用MPLS解決BGP路由黑洞
    因此此時數據傳輸以下圖所示,其中R二、R3給1.1.1.1/32分配的label都爲1024
    僞裝網絡工程師21——利用MPLS解決BGP路由黑洞
相關文章
相關標籤/搜索