IBGP水平分割城瞎,從IBGP鄰居學(xué)到的路由不會(huì)再通告給其他的IBGP鄰居竖共;
在一個(gè)大型的AS當(dāng)中收到IBGP水平分割的影響苗胀,出現(xiàn)了BGP路由無(wú)法通過(guò)IBGP鄰居接收的問(wèn)題狡刘,解決辦法有三種:
1享潜、全互連的IBGP鄰居
2、路由反射器RR
3颓帝、BGP聯(lián)盟
一米碰、全互連的IBGP鄰居
建立全互連的IBGP鄰居將會(huì)需要更多的資源窝革,每建立一個(gè)BGP鄰居就需要一個(gè)TCP連接,這樣會(huì)極大地消耗CPU資源吕座,TCP連接數(shù)計(jì)算公式:n(n-1)/2;
在大型的BGP網(wǎng)絡(luò)中虐译,一般不采用全連接方式,通常會(huì)采用路由反射器RR和聯(lián)盟來(lái)解決
二吴趴、路由反射器RR
多臺(tái)路由器只與一臺(tái)中心路由器建立鄰居關(guān)系漆诽,不需要全互連的鄰居,這臺(tái)中心路由器允許從IBGP鄰居學(xué)來(lái)的路由被反射出去锣枝,打破了IBGP水平分割限制的中心路由器就是路由反射器RR厢拭;
1、路由反射器RR的幾種角色:
(1)路由反射器route reflector
允許把從IBGP鄰居學(xué)到的路由反射給其他IBGP鄰居的BGP設(shè)備撇叁;
(2)客戶(hù)機(jī)client
與RR形成反射鄰居關(guān)系的IBGP設(shè)備供鸠,由RR決定哪臺(tái)設(shè)備作為客戶(hù)機(jī);
(3)非客戶(hù)機(jī)non-client
既不是RR也不是客戶(hù)機(jī)的IBGP設(shè)備陨闹;
在AS內(nèi)部所有的非客戶(hù)機(jī)與RR必須建立全互連的IBGP鄰居楞捂;
(4)始發(fā)者Originator
在AS內(nèi)部始發(fā)路由的設(shè)備,Originator-ID屬性用于防止集群內(nèi)產(chǎn)生路由環(huán)路趋厉;
(5)集群Cluster
路由反射器及其客戶(hù)機(jī)集合寨闹,Cluster-List屬性用于防止集群間產(chǎn)生路由環(huán)路;
2君账、路由反射原理
同一集群內(nèi)的客戶(hù)機(jī)只需要與該集群的RR交換路由信息繁堡,所以客戶(hù)機(jī)只需要與RR之間建立IBGP連接,不需要與其他客戶(hù)機(jī)建立IBGP連接乡数,從而減少I(mǎi)BGP連接數(shù)量椭蹄;
RR打破了IBGP水平分割的限制,并采用Originator-ID屬性和Cluster-List屬性防止路由環(huán)路瞳脓;
RR向IBGP鄰居發(fā)布路由規(guī)則:
(1)從非客戶(hù)機(jī)學(xué)來(lái)的路由塑娇,反射給所有的客戶(hù)機(jī);
(2)從客戶(hù)機(jī)學(xué)來(lái)的路由劫侧,反射給其他所有的客戶(hù)機(jī)和非客戶(hù)機(jī);
(3)從EBGP學(xué)來(lái)的路由哨啃,反射給所有的客戶(hù)機(jī)和非客戶(hù)機(jī)烧栋;
3、Originator-ID屬性和Cluster-List屬性
當(dāng)網(wǎng)絡(luò)中只部署一臺(tái)RR時(shí)拳球,如果該RR設(shè)備發(fā)生故障审姓,將會(huì)導(dǎo)致其他所有的路由器無(wú)法收到路由,因此部署多臺(tái)RR可以提供更好的冗余祝峻;
在一個(gè)AS內(nèi)部署了兩臺(tái)RR設(shè)備魔吐,都能夠用于路由的反射扎筒,其他設(shè)備同時(shí)與兩臺(tái)RR建立IBGP鄰居關(guān)系,及時(shí)一臺(tái)出現(xiàn)故障酬姆,另外一臺(tái)也可以工作嗜桌;
但是部署過(guò)多的RR以及復(fù)雜的拓?fù)湟部赡軒?lái)環(huán)路的隱患,AS-Path無(wú)法檢測(cè)到AS內(nèi)的環(huán)路辞色,因此在部署路由反射器時(shí)骨宠,BGP提供了兩種屬性,用于檢測(cè)AS內(nèi)的環(huán)路問(wèn)題相满,分別是Originator-ID和Cluster-List屬性层亿,這兩個(gè)屬性?xún)H存在當(dāng)RR將從IBGP鄰居收到的路由向另一個(gè)IBGP鄰居通告時(shí),用于防止環(huán)路而添加的僅在AS內(nèi)起作用的屬性立美,這兩個(gè)屬性不會(huì)出現(xiàn)在AS外匿又;
(1)Originator-ID:可選非過(guò)渡屬性,RR反射路由時(shí)建蹄,為該路由添加Originator-ID屬性(內(nèi)容是路由始發(fā)者客戶(hù)機(jī)的RouterID)琳省,用于防止集群內(nèi)路由環(huán)路;
集群內(nèi)環(huán)路現(xiàn)象:
一個(gè)集群中部署兩個(gè)RR(兩個(gè)RR使用相同的Cluster-ID)躲撰,每個(gè)RR和集群中每個(gè)客戶(hù)機(jī)建立IBGP鄰居關(guān)系针贬,兩個(gè)RR之間建立IBGP鄰居關(guān)系(如果存在EBGP鄰居的話需要建立IBGP鄰居關(guān)系);
客戶(hù)機(jī)Client1通告一條路由給RR1拢蛋,RR1將該路由反射給RR2桦他,RR2繼續(xù)反射該路由給客戶(hù)機(jī)Clent1,路由回到始發(fā)路由器谆棱,Client1如果使用該路由則環(huán)路產(chǎn)生快压;
在反射集群內(nèi)使用Originator-ID屬性解決環(huán)路過(guò)程如下:
客戶(hù)機(jī)Client1通告一條路由給RR1;
RR1反射該路由時(shí)為該路由添加Originator-ID屬性,內(nèi)容是路由始發(fā)者客戶(hù)機(jī)Client1的RouterID,然后反射給RR2垃瞧;
RR2反射該路由時(shí)蔫劣,發(fā)現(xiàn)路由已經(jīng)攜帶Originator-ID屬性,繼續(xù)反射給客戶(hù)機(jī)Client1个从;
客戶(hù)機(jī)Client1收到該路由后脉幢,發(fā)現(xiàn)路由攜帶OriginatorID屬性且與自身RouterID一致,丟棄該路由嗦锐;
說(shuō)明:此場(chǎng)景僅用于闡述Originator-ID原理嫌松,實(shí)際上RR1反射路由給RR2時(shí),除了添加Originator-ID屬性外奕污,還添加了Cluster-List屬性萎羔,RR2發(fā)現(xiàn)路由攜帶Cluster-List屬性且包含自身Cluster-ID(兩個(gè)RR屬于同一集群,Cluster-ID相同)碳默,就會(huì)丟棄該路由贾陷;
(2)Cluster-List:可選非過(guò)渡屬性缘眶,RR使用該屬性記錄路由經(jīng)過(guò)每個(gè)集群的Cluster-ID,用來(lái)在集群間避免環(huán)路髓废;
AS內(nèi)的每個(gè)集群都由唯一的Cluster-ID來(lái)標(biāo)識(shí)巷懈,默認(rèn)為BGP的RouterID,可以使用命令Cluster-ID來(lái)修改瓦哎;
當(dāng)一條路由被RR反射的時(shí)候砸喻,RR會(huì)把本地Cluster-ID添加到Cluster-List的前面;
當(dāng)RR接收到一條路由時(shí)蒋譬,會(huì)檢查Cluster-List割岛,如果Cluster-List中已經(jīng)有本地Cluster-ID,丟棄該路由犯助,否則把本地Cluster-ID添加到Cluster-List的前面癣漆,然后反射出去;
集群間環(huán)路現(xiàn)象:
RR1剂买、RR2惠爽、RR3是三個(gè)反射集群中的路由反射器,假設(shè)任意兩個(gè)RR都是另一個(gè)RR的客戶(hù)機(jī)瞬哼,并部署全互連的IBGP鄰居關(guān)系婚肆;
客戶(hù)機(jī)Client1通告一條路由給RR1,RR1反射給RR2坐慰,RR2反射給RR3较性,RR3重新將該路由反射給RR1,一旦RR1接收并使用該路由則產(chǎn)生環(huán)路结胀;
在反射集群之間使用Cluster-List屬性解決花露過(guò)程如下:
客戶(hù)機(jī)Client1將一條路由通告給RR1赞咙;
RR1收到該路由發(fā)現(xiàn)沒(méi)攜帶Cluster-List屬性,為路由添加Cluster-List屬性并把自身集群Cluster-ID添加進(jìn)去糟港,然后反射出去攀操;
RR2收到該路由發(fā)現(xiàn)攜帶Cluster-List屬性,不包含自身集群Cluster-ID秸抚,把自身集群Cluster-ID添加進(jìn)去速和,然后反射出去;
RR3收到該路由發(fā)現(xiàn)攜帶Cluster-List屬性耸别,不包含自身集群Cluster-ID健芭,把自身集群Cluster-ID添加進(jìn)去,然后反射出去秀姐;
RR1收到該路由發(fā)現(xiàn)攜帶Cluster-List屬性,包含自身集群Cluster-ID若贮,丟棄該路由省有;
4痒留、路由反射器的設(shè)計(jì)部署
(1)備份路由反射器方案
為增加網(wǎng)絡(luò)的可靠性,避免單點(diǎn)故障蠢沿,需要在一個(gè)集群中配置一個(gè)以上的RR伸头,同一集群中的所有RR必須使用相同的Cluster-ID;
路由反射器RR1和RR2在同一個(gè)集群內(nèi)舷蟀,配置了相同的Cluster-ID恤磷;
客戶(hù)機(jī)Client和相同Cluster-ID的RR都建立IBGP鄰居關(guān)系,RR之間建立IBGP鄰居關(guān)系野宜;
客戶(hù)機(jī)Client學(xué)到EBGP路由后扫步,同時(shí)向RR1和RR2通告這條路由;
RR1和RR2收到該路由后匈子,將本地Cluster-ID添加到Cluster-List前面河胎,然后向其他客戶(hù)機(jī)反射,同時(shí)相互反射虎敦;
RR1和RR2收到該反射路由后游岳,檢查Cluster-List發(fā)現(xiàn)包含自身的Cluster-ID,丟棄該路由其徙,能避免同集群內(nèi)路由反射器間互相學(xué)習(xí)源自同一客戶(hù)機(jī)的路由胚迫,節(jié)省內(nèi)存空間;
由于集群內(nèi)RR之間不互相學(xué)習(xí)Client的路由唾那,所以如果RR上沒(méi)有EBGP鄰居關(guān)系访锻,則RR間可以沒(méi)有IBGP鄰居關(guān)系;
(2)同級(jí)路由反射器方案
一個(gè)骨干網(wǎng)被分成多個(gè)集群通贞,各集群的RR之間互為非客戶(hù)機(jī)關(guān)系朗若,建立IBGP全連接;
每個(gè)客戶(hù)機(jī)只與所在集群的RR建立IBGP連接昌罩,所有RR和客戶(hù)機(jī)都能收到全部路由信息哭懈;
(3)分層路由反射器方案
一個(gè)AS內(nèi)可以存在多個(gè)集群,各個(gè)集群的RR之間建立IBGP鄰居茎用;
當(dāng)RR所處的網(wǎng)絡(luò)層不同時(shí)遣总,可以將較低網(wǎng)絡(luò)層次的RR配成客戶(hù)機(jī),形成分級(jí)RR轨功;
每個(gè)路由反射器既可以作為該集群的反射器角色旭斥,也可作為其他集群的客戶(hù)機(jī)角色;
三古涧、BGP聯(lián)盟
1垂券、聯(lián)盟概念
在一個(gè)AS中,受IBGP水平分割的影響羡滑,如果IBGP會(huì)話數(shù)量較多菇爪,管理起來(lái)將會(huì)顯得麻煩算芯,為了解決該問(wèn)題,除了使用路由反射器外凳宙,還可以使用BGP聯(lián)盟Confederation熙揍;
聯(lián)盟的概念就是將一個(gè)AS劃分為若干個(gè)子AS,每個(gè)子AS內(nèi)部建立IBGP全連接關(guān)系(聯(lián)盟IBGP鄰居)氏涩,子AS之間建立EBGP連接關(guān)系(聯(lián)盟EBGP鄰居)届囚,但聯(lián)盟外部AS仍認(rèn)為聯(lián)盟是一個(gè)AS;
AS100被分成三個(gè)子AS(65001是尖、65002意系、65003),使用AS100作為聯(lián)盟ID析砸,此時(shí)不需要采用IBGP全互連昔字,連接數(shù)從10條減少到4條,如果沒(méi)有配置聯(lián)盟首繁,AS100內(nèi)部都是IBGP鄰居作郭,配置聯(lián)盟以后形成了聯(lián)盟EBGP鄰居和聯(lián)盟IBGP鄰居,在聯(lián)盟子AS內(nèi)部可以使用全互連或RR弦疮,而在聯(lián)盟子AS之間使用聯(lián)盟AS-Path來(lái)避免環(huán)路夹攒;
2、聯(lián)盟的特點(diǎn)
配置聯(lián)盟后胁塞,原AS號(hào)將作為每個(gè)路由器的聯(lián)盟ID咏尝;
通告給聯(lián)盟內(nèi)的路由,MED屬性在整個(gè)聯(lián)盟范圍內(nèi)保留啸罢;
Local Preference屬性在整個(gè)聯(lián)盟范圍內(nèi)保留编检,而不只是在通告的成員AS內(nèi);
在聯(lián)盟內(nèi)保留聯(lián)盟外部的next-hop屬性扰才;
在聯(lián)盟內(nèi)將子AS號(hào)加入AS-Path中允懂,但不會(huì)將聯(lián)盟內(nèi)子AS號(hào)通告到聯(lián)盟之外;
聯(lián)盟內(nèi)的子AS號(hào)在AS-Path屬性中用單獨(dú)的兩種類(lèi)型AS-CONFED-SEQUENCE和AS-CONFED-SET表示衩匣,默認(rèn)聯(lián)盟將子AS號(hào)以AS-CONFED-SEQUENCE的形式在AS-Path中列出蕾总,如果在聯(lián)盟內(nèi)配置了聚合,AS號(hào)將以AS-CONFED-SET形式列出琅捏;
AS-Path中的聯(lián)盟子AS號(hào)用于避免環(huán)路生百,不計(jì)算在AS-Path長(zhǎng)度中;
聯(lián)盟EBGP鄰居和聯(lián)盟IBGP鄰居都被看作IBGP類(lèi)型鄰居柄延,不存在聯(lián)盟EBGP路由優(yōu)于聯(lián)盟IBGP路由蚀浆,即在其他條件相同的情況下,同時(shí)從EBGP鄰居學(xué)到、聯(lián)盟EBGP或聯(lián)盟IBGP學(xué)到同一條路由蜡坊,從EBGP鄰居學(xué)到的路由更優(yōu)杠输;
聯(lián)盟內(nèi)相關(guān)屬性傳出聯(lián)盟時(shí)將會(huì)自動(dòng)刪除赎败,不用配置策略過(guò)濾子AS號(hào)等信息秕衙;
3、聯(lián)盟配置舉例
R1為AS100僵刮,R2/R3/R4擁有聯(lián)盟ID為200据忘,R2和R3在聯(lián)盟子AS65001中,R4屬于聯(lián)盟子AS65002搞糕,R5屬于AS300勇吊;
通過(guò)命令confederation id配置BGP聯(lián)盟,指定聯(lián)盟ID窍仰;
通過(guò)命令confederation peer-as指定聯(lián)盟內(nèi)子AS號(hào)汉规;
R2配置:
bgp 65001
confederation id 200
peer 12.1.1.1 as-number 100
peer 23.1.1.3 as-number 65001
R3配置:
bgp 65001
confederation id 200
peer 23.1.1.2 as-number 65001
confederation peer-as 65002
peer 34.1.1.4 as-number 65002