1.網絡環境描述
1.1 核心層
①核心層路由器爲R3、R4、R6、R8、R9、R11
②核心層IGP使用EIGRP實現核心層路由可達
③以環回口建立全互聯iBGP對等體關係
這裏使用環回口建立對等體的原因在於提高穩定性,如果使用物理接口建立BGP對等體關係,一旦物理接口down,BGP對等體關係也隨之中斷
而採用環回口,即便物理接口down,通過IGP依然可能能夠通過其它路徑抵達環回口,進而不影響BGP會話
建立全互聯iBGP對等體關係是因爲每臺核心層路由器由於都可能成爲其它路由器轉發流量時的中間傳輸設備,因此每臺核心層路由器都必須有全網的路由
④每臺核心層路由器都需要建立3個路由協議進程
核心層BGP進程、核心層EIGRP進程、路由器所在區域EIGRP進程
1.2 核心層與區域間
①核心層EIGRP與該路由器所在區域的EIGRP進程相互獨立,不做重分發
如R3的EIGRP 100與EIGRP 101,這兩個EIGRP相互獨立
②核心層路由器向其所在區域下發缺省路由使區域內路由器能夠抵達核心層以及其他區域
如R3上通過EIGRP 101產生EIGRP缺省路由
③區域內的路由前綴通過宣告或重分發的方式進入BGP進程
爲了增加可控性,建議使用宣告的方式使區域內前綴進入BGP進程(如果使用重分發,需要過濾不必要的路由,尤其是區域IGP進程產生的缺省路由)
1.3 區域內
①區域內通過 IGP實現可達性
②區域內去往外部網絡依靠缺省路由
1.4 路由
(1)前綴數
①區域內路由器擁有整個區域的路由信息加上由所屬核心層路由器下發的缺省路由
②核心層路由器擁有整網路由
(2)next-hop-self的必要性
核心層路由器在將所屬區域內通過IGP學習到的路由宣告進BGP進程時,其NEXT_HOP將繼承原路由的下一跳
該路由在通告給其它核心層路由器時不會改變
由於不同EIGRP進程間相互獨立,核心層其它路由器無法抵達該路由的下一跳
因此,所有核心層路由器在建立對等體關係時,都需要配置next-hop-self以防止路由失效
(3)MED
區域內路由通過宣告、重分發方式進入BGP進程時,MED會繼承原路由的metric值
路由在傳遞給其它iBGP peers時,會攜帶MED屬性,以此反映區域內的拓撲情況
(4)bestpath compare-routerid的必要性
在Cisco的BGP實現中,爲了提高選路的可預測性,應當防止“最先通告的”路由選路的比較,因此建議配置bgp bestpath compare-routerid
2.網絡分析
2.1 Path selection & Routingpolicy
(1)默認選路
①何時比較
當一個區域有多臺核心層路由器或者有多個區域通告了相同的前綴時,需要依靠選路進程執行最佳路勁抉擇
②主要選路屬性
a.比較MED
由於區域內路由宣告進BGP進程時攜帶了區域內的metric,當某個前綴有多條路徑時,通過MED選擇最佳路徑
b.比較到下一跳IGP開銷
當MED相同時,比較到IGP下一跳開銷,由於這裏建立的是全互聯iBGP會話,並且做了next-hop-self,此時比較的是接收方到其iBGP Peer環回口的metric
如上圖中,R4、R6都向R11通告其所屬區域的路由,當MED相同時將比較R11去往R4、R6環回口的開銷,R11將優選R6
c.負載均衡
如果手動配置,將有可能出現負載均衡現象(如果上圖中R4與R11也有直連鏈路),多條路徑將裝載入BGP轉發表中
d.比較RID
由於配置了compare-routerid,此時不再比較“最先通告的”更新,而是選路最小的router-id的設備作爲優選的下一跳
(2)選路策略部署
當有多臺路由器通告同一前綴時,如果期望其它路由器優選其中某臺作爲主路徑,屬性的修改應當在路由產生時進行而非發送給特定對等體或對等體接收到更新時執行,否則可能會導致優選下一跳與實際路徑不一致,甚至是環路——保持各路由器選路的一致性
例如,當R8、R9都通告某個前綴時,如果R11上通過修改LP優選R8作爲下一跳,流量將從R11轉發到R6上
此時如果R6部署自己的策略優選R9作爲下一跳,該流量又將轉發回R11,造成環路
另外,需要注意物理拓撲的侷限性
如上圖中,對於R11而言,即便通過修改LP使得R11優選R4作爲下一跳,實際流量轉發時,由於去往R4的最優路徑爲R11—R6—R4,因此R6將始終收到該數據包並且直接轉發入區域內而不再經過R4
由於這種侷限性是物理拓撲(IGP)與邏輯拓撲(BGP)的不一致造成的,解決辦法是通過修改IGP的metric使得BGP選路與IGP選路一致。而這種侷限性直接影響了BGP選路的靈活性
(3)區域互訪控制
在該網絡中,由於核心層路由器都必須擁有全網路由,而核心層路由器向其所屬的區域下發的又都是缺省路由
因此,區域互訪控制無法通過BGP進程做路由過濾
較爲理想的互訪控制是在覈心路由器連接區域方向接口上做包過濾
2.2 Failure and recovery
(1)區域內鏈路、設備故障
區域內鏈路或設備故障將被IGP檢測並收斂以響應
如果在區域所屬的核心層路由器上做了聚合,則區域內小範圍的故障將有可能僅侷限於區域內而不會導致整個核心網跟着一起收斂
(2)核心層設備、鏈路故障
①鏈路故障
核心層鏈路故障並不嚴重時,iBGP會話不受影響而隻影響底層抵達路徑,如上圖中R11與R6之間的鏈路故障時,R11抵達R6的路徑將發生改變
此外,考慮到BGP選路時考慮下一跳IGP的metric,當發生鏈路故障時還會對BGP選路造成影響,如上圖中R11與R6之間的鏈路故障時,R11去往R4、R6所在區域的流量將只能從R4走
核心層鏈路故障較爲嚴重時,將導致iBGP會話的中斷,此時形成孤島,在所屬區域內出現路由黑洞
如果網絡設計得當,鏈路故障往往導致IGP路徑的切換而不影響BGP會話的建立,鏈路恢復時的收斂速度主要取決於IGP收斂速度
收斂總時間爲 IGP收斂時間 + BGP響應時間
②設備故障
設備故障直接導致其直連鏈路的失效以及iBGP會話的中斷
如果區域所屬的核心層路由器只有一臺,則將導致區域孤島問題;而當有多臺時,iBGP會話中斷導致相關路由被其它設備回收,重新進行最佳路徑抉擇
2.3 Administrative control
該網絡環境的區域劃分並不明確
核心網路由器由於同時還運行了所屬區域的IGP進程,實際進行管理時,無法使核心網管理與區域網管理分離
2.4 Scalability
(1)不增加核心層設備
當有新的區域接入核心層時,如果不新增路由器的數量,部分核心層路由器將
①增加額外的鏈路連接新區域
②再運行一個EIGRP進程
新區域依然通過其EIGRP進程下發缺省路由
鑑於該玩過架構管理域的劃分不明確,多個區域IGP進程在一臺設備上的重疊將導致更爲複雜的管理問題
③核心層路由器依然擁有全網路由
(2)增加新設備及鏈路
①此時核心層規模將擴大
每臺核心層設備都需要建立額外的iBGP會話
核心層網絡的收斂速度及其物理結構複雜性將受到網絡規模擴大的影響
②可以保證每臺核心層路由器依然只運行3個路由協議進程,因而減小複雜性
3.結論
在以iBGP爲核心的網絡架構中
①通過引入BGP,減小了區域內路由器的路由前綴數量,提高了可擴展性
②路由選擇主要受到MED以及下一跳IGP度量值的影響,策略的實現依賴於實際網絡拓撲
③收斂速度取決於
a.網絡本身的健壯性
b.IGP的收斂速度
c.BGP響應速度
④該網絡架構主要的問題在於管理域劃分的不明確
⑤網絡的可擴展性一般,隨着新區域的增多,網絡逐漸區域複雜