一、bgp路由反射器
為保證ibgp對等體之間的連通性,需要在ibgp對等體之間建立全連線關係。假設在乙個as內部有n臺裝置,那麼建立的ibgp連線數就為n(n-1)/2。
當裝置數目很多時,裝置配置將十分複雜,而且配置後網路資源和cpu資源的消耗都很大。在ibgp對等體間使用路由反射器可以解決以上問題。
1、bgp路由反射器角色
圖1 路由反射器示意圖
如上圖1,在乙個as內部關於路由反射器有以下幾種角色:
路由反射器rr(route reflector):允許把從ibgp對等體學到的路由反射到其他ibgp對等體的bgp裝置,類似ospf網路中的dr。
1、客戶機(client):
與rr形成反射鄰居關係的ibgp裝置。在as內部客戶機只需要與rr直連。
2、非客戶機(non-client):
既不是rr也不是客戶機的ibgp裝置。在as內部非客戶機與rr之間,以及所有的非客戶機之間仍然必須建立全連線關係。
3、始發者(originator):
在as內部始發路由的裝置。originator_id屬性用於防止集群內產生路由環路。
4、集群(cluster):
路由反射器及其客戶機的集合。cluster_list屬性用於防止集群間產生路由環路。
2、bgp路由反射器原理
同一集群內的客戶機只需要與該集群的rr直接交換路由資訊,因此客戶機只需要與rr之間建立ibgp連線,不需要與其他客戶機建立ibgp連線,從而減少了ibgp連線數量。
如上圖1所示,在as65000內一台裝置作為rr,三颱裝置作為客戶機,形成cluster1。此時as65000中ibgp的連線數從配置rr前的10條減少到4條,不僅簡化了裝置的配置,也減輕了網路和cpu的負擔。
rr突破了「從ibgp對等體獲得的bgp路由,bgp裝置只發布給它的ebgp對等體。」的限制,並採用獨有的cluster_list屬性和originator_id屬性防止路由環路。
rr向ibgp鄰居發布路由規則如下:
1、從非客戶機學到的路由,發布給所有客戶機。
2、從客戶機學到的路由,發布給所有非客戶機和客戶機(發起此路由的客戶機除外)。
3、從ebgp對等體學到的路由,發布給所有的非客戶機和客戶機。
3、bgp cluster_list屬性
路由反射器和它的客戶機組成乙個集群(cluster),使用as內唯一的cluster id作為標識。為了防止集群間產生路由環路,路由反射器使用cluster_list屬性,記錄路由經過的所有集群的cluster id。
當一條路由第一次被rr反射的時候,rr會把本地cluster id新增到cluster list的前面。如果沒有cluster_list屬性,rr就建立乙個。
當rr接收到一條更新路由時,rr會檢查cluster list。如果cluster list中已經有本地cluster id,丟棄該路由;如果沒有本地cluster id,將其加入cluster list,然後反射該更新路由。
4、bgp originator_id屬性
originator id由rr產生,使用的router id的值標識路由的始發者,用於防止集群內產生路由環路。
當一條路由第一次被rr反射的時候,rr將originator_id屬性加入這條路由,標識這條路由的發起裝置。如果一條路由中已經存在了originator_id屬性,則rr將不會建立新的originator_id屬性。
當裝置接收到這條路由的時候,將比較收到的originator id和本地的router id,如果兩個id相同,則不接收此路由。
5、bgp備份路由反射器
為增加網路的可靠性,防止單點故障對網路造成影響,有時需要在乙個集群中配置乙個以上的rr。
由於rr打破了從ibgp對等體收到的路由不能傳遞給其他ibgp對等體的限制,所以同一集群內的rr之間中可能存在環路。這時,該集群中的所有rr必須使用相同的cluster id,以避免rr之間的路由環路。
圖2 備份路由反射器
如上圖2,路由反射器rr1和rr2在同乙個集群內,配置了相同的cluster id。
1、當客戶機client1從ebgp對等體接收到一條更新路由,它將通過ibgp向rr1和rr2通告這條路由。
2、rr1和rr2在接收到該更新路由後,將本地cluster id新增到cluster list前面,然後向其他的客戶機(client2、client3)反射,同時相互反射。
3、rr1和rr2在接收到該反射路由後,檢查cluster list,發現自己的cluster id已經包含在cluster list中。於是rr1和rr2丟棄該更新路由,從而避免了路由環路。
6、bgp多集群路由反射器
乙個as中可以存在多個集群,各個集群的rr之間建立ibgp對等體。當rr所處的網路層不同時,可以將較低網路層次的rr配成客戶機,形成分級rr。當rr所處的網路層相同時,可以將不同集群的rr全連線,形成同級rr。
7、bgp分級路由反射器
圖3 分級路由反射器
在實際的rr部署中,常用的是分級rr的場景。如上圖3,isp為as100提供internet路由。as100內部分為兩個集群,其中cluster1內的四台裝置是核心路由器,採用備份rr的形式保證可靠性。
8、bgp同級路由反射器
圖4 同級路由反射器
如上圖4,乙個骨幹網被分成多個集群。各集群的rr互為非客戶機關係,並建立全連線。此時雖然每個客戶機只與所在集群的rr建立ibgp連線,但所有rr和客戶機都能收到全部路由資訊。
二、bgp聯盟
解決as內部的ibgp網路連線激增問題,除了使用路由反射器之外,還可以使用聯盟(confederation)。
聯盟將乙個as劃分為若干個子as。每個子as內部建立ibgp全連線關係,子as之間建立聯盟ebgp連線關係,但聯盟外部as仍認為聯盟是乙個as。
配置聯盟後,原as號將作為每個路由器的聯盟id。
這樣有兩個好處:一是可以保留原有的ibgp屬性,包括local preference屬性、med屬性和next_hop屬性等;二是聯盟相關的屬性在傳出聯盟時會自動被刪除,即管理員無需在聯盟的出口處配置過濾子as號等資訊的操作。
圖1 聯盟示意圖
如上圖1所示,as100使用聯盟後被劃分為3個子as:as65001、as65002和as65003,使用as100作為聯盟id。此時ibgp的連線數量從10條減少到4條,不僅簡化了裝置的配置,也減輕了網路和cpu的負擔。而as100外的bgp裝置因為僅知道as100的存在,並不知道as100內部的聯盟關係,所以不會增加cpu的負擔。
bgp路由反射器和bgp聯盟的比較
下表1從配置、裝置連線和應用方面對比了路由反射器和聯盟。
BGP路由反射器
路由反射器 route reflector 在使用bgp路由協議的網路中,為保證ibgp對等體之間的連通性,需要在ibgp對等體之間建立全連線關係。假設在乙個as內部有n臺路由器,那麼應該建立的ibgp連線數就為n n 1 2.當ibgp對等體數目很多時,對網路資源和cpu資源的消耗都很大。一 路由...
BGP路由反射器技術詳解
bgp路由反射器技術詳解 ibgp 路由傳遞原則可以認為只傳一跳,在實際的網路中,裝置非常多,網路聯接非常複雜,不太可能每個as內的裝置都有鄰居關係,但路由又必須傳遞下去。為了解決這一麻煩,推出了路由反射器技術,可以大量減化裝置配置,也可以減少鄰居條目,還可以減輕裝置cpu負擔,在實際網路環境中被大...
BGP實驗(聯邦 路由反射器)
as1存在兩個環迴,乙個位址為192.168.1.0 24該位址不能在任何協議中宣告as3存在兩個環迴,乙個位址為192.168.2.0 24該位址不能在任何協議中宣告最終要求這兩個環迴可以互相通訊as1的另乙個環迴為10.1.1.0 24 as3的另乙個環10.1.2.0 24 整個as2的ip位...