為什么BGP不能與其聚合路由所屬網段的設備建立鄰居?
答:如果BGP與其聚合路由所屬網段的設備建立鄰居,當目標網段的設備或者鏈路出現故障時,通過聚合路由是無法感知的,設備依然會不停的嘗試與已配置的對等體建立鄰居關系。
配置BGP對等體時,對等體的地址不能通過BGP的聚合路由或者缺省路由到達,否則,即使流量可以通,但BGP對等體的鄰居關系仍無法建立。
為什么在IPv6網絡中建立BGP鄰居時需指定router-id?
答:在IPv4網絡的配置中,一般都不會在BGP視圖下指定router-id,BGP會自動選擇一個接口IP作為router-id。然而,在IPv6網絡中router-id還是32位,如果不指定router-id,又沒有接口地址是IPv4地址,那么BGP就會因為沒有router-id而無法協商成功。因此,在IPv6網絡中建立BGP鄰居時建議指定router-id。
BGP refresh特性對出方向和入方向路由處理的差異性?
答:BGP連接建立以后,只發送增量路由,但有些情況下,例如路由策略改變時,需要對方重新發送路由,以按照新的策略重新過濾路由。支持BGP refresh特性(RFC 2918)的路由器可以實現在不中斷BGP鄰居會話的前提下,使更改的BGP路由屬性生效。
對出方向(export)的BGP路由屬性更改,不用作任何配置,更改后自動生效。
對入方向(import)的BGP路由屬性更改,要在用戶模式下使用refresh bgp命令向對端路由器發出更新請求。在執行此操作后,所更改屬性生效而不中斷BGP鄰居的會話。
BGP鄰居建立不成功的原因有哪些?
答:BGP鄰居的建立,需要能夠使用179端口建立TCP會話,以及能夠正確交換Open報文。可按照如下步驟進行檢查。
1.檢查鄰居的AS號配置是否正確。
2.檢查鄰居的IP地址是否正確。
3.如果使用Loopback接口,檢查是否配置了peer connect-interface命令。缺省情況下,路由器使用最佳本地接口建立TCP連接,而不會用Loopback接口。
4.如果是物理上非直連的EBGP鄰居,檢查是否配置了peer ebgp-max-hop。
5.使用ping命令檢查TCP連接是否正常,由于一臺路由器可能有多個接口能夠到達對端,因而應使用擴展的ping -a ip-address命令來指定發送ping包的源IP地址。
如果ping不通,使用display ip routing-table命令檢查路由表中是否存在到鄰居的可用路由。
如果能ping通,檢查是否配置了禁止TCP端口179的ACL列表。如果配置,則取消對179端口的禁止。
BGP路由聚合配置需要注意哪些事項?
答:在BGP路由聚合配置中需要注意如下事項。
一定要關閉BGP路由器自動聚合,因為自動聚合的內容是按類聚合的。例如,61.0.0.0/24自動聚合后的結果是61.0.0.0/8。如果路由表中已經存在IGP的聚合路由,可以通過network命令直接引入到BGP中以達到聚合目的。
配置手動匯總時必須先配置一條匯總網段的黑洞路由,再發布到BGP中。因為第一,匯總后的路由下一跳不確定;第二路由器可以先通過最長匹配原則找到詳細路由,如果找不到證明詳細路由不可用,通過匯總黑洞路由可以把不可達路由信息丟棄。
通過network配置的聚合路由,詳細路由也將出現在路由表中并且被發布,如不需要發布詳細路由,則可使用路由策略在出方向上禁止。使用aggregate命令可以只發布聚合后的路由信息而不發布詳細路由,同時生成一條指向Null口的黑洞路由。
BGP發布路由不生效的原因是什么?
答:用戶在BGP進程中發布路由時,設備的路由表必須存在該路由,否則會導致發布路由的不生效。當然,如果路由表中沒有,而又需要發布出去,可以配置需要發布網段的黑洞路由來解決。