后門路由鏈路兩端路由器可以加入
在兩個AS間可以存在一條單獨鏈路交換相互間的數據量,但并不通告給其他AS,此時對于這條鏈路兩端路由器可以加入network192.1.12.2backdoor即可,稱為后門路由。
一、后門路由的屬性是使router優選從IGP學過來的路由而不是優選從IBGP鄰居學過來的路由,因為缺省情況下EBGP鄰居的AD為20,會始終優先選擇,而不會選擇其他AD的IGP路由協議傳過來的路由,后門路由用于一些特殊的情況將IGP路由的優先級調高于EBGP,下面看一種比較特殊的情況
二、通過重分布進入OSPF路由。在R5和R3上將會學到來自R4的IGP路由,同時R5做為R4的IBGP鄰居將會學到一條IBGP的路由,由于IBGP路由管理距離大,在R5上對于選路沒有影響,但對于R3而言,它將學到一條來自R5的EBGP路由,同時收到R4的IGP路由,此時,R3將把199.172.0.0的下一跳定義為R5,此時就產生了環路了。解決此問題的方法就是在R5和R3上的neighbor后掛接backdoor參數:neiip-addressbackdoor。
三、產生這種現象的原因無非是BGP學習條目時候next-hop屬性,默認的下一跳規則如下,自己產生的路由的下一跳為0.0.0.0,收到來自EBGP路由將下一跳改為EBGP對端的IP,對IBGP通告時不修改下一跳的值。但是可以通過next-hop-self修改此規則,將對IBGP也通告下一跳地址為自己。
另可以采用next-hop-unchanged,防止收到EBGP路由后,修改下一跳的值,例如如上環路問題,也可通過在R5和R4上宣告Next-hop-unchanged來解決對于下一跳屬性,還可以使用route-map來更改。
四、注入條件,對于一般的拓撲結構,AS100遵循最佳出口原則,配置方法如下:
1、MED,在AS200上設置MED,使AS100識別;
2、AS-PathPrepend,R4通告給R2的2.0路由,加長AS-path,同理R5;
3、使用條件路由注入。
五、首先左邊as300,有更為細化的172.16.1.0/24的路由,那么,在as100內收到172.16.0.0/16的路由,正常可能不是走r2-4的最佳路徑,可能是從r3-5ebgp走的,那么條件路由注入(bgpinject-maproute-mapnameexist-maproute-mapname)的含義就是:
1、當r2bgp表中出現了172.16.0.0/16bgp路由,并且下一跳的路由更新源為192.168.24.4(r4)的時候,強行插入一個172.16.1.0/24的更為細化的bgp路由進入你的as100IBGP。
2、r1的ibgp路由選擇就會發生變化,他會從r2r3同時受到172.16.0.0/16和172.16.1.0/24,但是根據路由的最長匹配原則,他會選擇r2宣告的172.16.1.0/24去往as300。總體調用過程理解為:匹配第二個路由圖所匹配的條目(172.16.0.0/16和192.168.24.4/32),將其設置成第一個路由圖的屬性(172.16.1.0/24并且no-export)。
3、達到的效果就是:當r2bgp表中出現了172.16.0.0/16bgp路由,并且下一跳的路由更新源為192.168.24.4(r4)的時候,強行插入一個172.16.1.0/24的更為細化的bgp路由進入你的as100IBGP。
4、如果AS8的路由器Day將進行遷移,假設為Day和Night合并為AS9,而不修改AS141~AS143的路由器(他們依舊認為Day屬于AS8),這種遷移需要加入一個loca-as參數,即將Day的BGP進程改為9后,對指向的鄰居做如下修改:neighbor192.1.12.2remot-as200。
通過上面的介紹可以發現,沒有配置nei192.1.24.4local-as12前,R4上關于R2的鄰居關系還是BGP12的EBGP鄰居,但是路由器已經改變了BGP的AS號,所以鄰居關系報錯,配置nei192.1.24.4local-as12之后,R2就成功的過渡到AS6內,在AS6內成功的與R4建立鄰居關系。