BGP的反射器和聯盟

BGP反射器

IBGP全互聯的問題

爲了實現路由信息的交互,BGP要求一個AS內的所有BGP Speaker相互形成IBGP全互連,導致IBGP的會話數是n(n-1)/2,而這一要求使得IBGP的擴展成爲了一個很大的問題

IBGP全互聯問題解決方案

 路由反射 (RFC 2796)
 降低對指定路由器IBGP路由通告機制的限制,允許將從IBGP對等體接收到的更新信息傳給某些IBGP對等體 打破傳統IBGP水平分割的限制
 聯盟 (RFC3065)
 將大的AS分成若干小的AS,而小AS之間建立EBGP對等體關係

BGP路由反射器(Route Reflector)

 在AS200裏,有三臺路由器分別爲RTA,RTB和RTC。在默認的情況下,如果RTA收到一條外部的路由更新,並且該路由被RTA選舉爲最佳路由,則RTA肯定會把該路由通告給RTB以及RTC。由於RTB和RTC互爲IBGP對等體,所以不會把從IBGP學習到的路由通告給其它IBGP對等體。
 如果該通告原則可以被放鬆,允許RTC可以把從RTA學習到的IBGP路由通告給其它IBGP對等體的話,這樣將可以取消RTA與RTB之間的IBGP會話,RTC就是BGP路由反射器。
BGP的反射器和聯盟

不同角色的對等體

 一個BGP Speaker通告一條IBGP路由到另外一個IBGP對等體的操作。而這樣的一個BGP Speaker通常被稱爲路由反射器(Route Reflector, RR),這樣的一條IBGP路由被稱爲反射路由。IBGP對等體可以有三種角色:
• 路由反射器 (Route Reflector)
• 客戶機 (Client)
• 非客戶機 (Non-Client)
 路由反射器和它的客戶機組成一個集羣(Cluster)。路由反射器在客戶機之間傳遞(反射)路由信息,所以客戶機之間不需要建立BGP連接。
 既不是反射器也不是客戶機的BGP路由器被稱爲非客戶機(Non-Client)。非客戶機與路由反射器之間,以及所有的非客戶機之間仍然必須建立全連接關係。
BGP的反射器和聯盟
總結對等體之間的關係
• Client只需維護與RR之間的IBGP會話。
• Non-Client與Non-Client之間需要建立IBGP全互連。
• RR與Non-Client之間需要建立IBGP全互連。
• RR與RR之間需要建立IBGP的全互連。

路由反射宣告原則 (1)

 從非客戶機IBGP對等體學到的路由,發佈給此RR的所有客戶機
 從EBGP對等體學到的路由,發佈給所有的非客戶機和客戶機
BGP的反射器和聯盟

路由反射宣告原則 (2)

 從客戶機學到的路由,發佈給此RR的所有非客戶機和客戶機(發起此路由的客戶機除外)
 從EBGP對等體學到的路由,發佈給所有的非客戶機和客戶機
BGP的反射器和聯盟

路由反射簇 (Cluster)

• 當一個AS內存在多臺RR爲Client提供冗餘時,RR間的路由更新很有可能會形成環路,爲防止該現象,引入了Cluster的概念
BGP的反射器和聯盟

什麼是簇?

 通過4字節的Cluster_ID來標識Cluster,通常會使用Loopback地址作爲Cluster_ID。
 一個Cluster裏可以包括一個或多個RR;一個Client可以同時屬於多個Cluster。
 通常,一個客戶的簇只擁有一個RR,並由RR的BGP Router-id去標識該簇。有時,爲了防止單點失效,在單一簇裏引入多個RR,如圖中的備份RR組網。

路由反射環路防止機制 - Originator_ID

• Originator_ID屬性用於防止在反射器和客戶機/非客戶機之間產生環路。
• Originator_ID屬性長4字節,可選非過渡屬性,屬性類型爲9 ,是由路由反射器(RR)產生的,攜帶了本地AS內部路由發起者的Router ID。
• 當一條路由第一次被RR反射的時候,RR將Originator_ID屬性加入到這條路由,標識這條路由的始發路由器。如果一條路由中已經存在了Originator_ID屬性,則RR將不會創建新的Originator_ID。
• 當其它BGP Speaker接收到這條路由的時候,將比較收到的Originator_ID和本地的Router ID,如果兩個ID相同,BGP Speaker會忽略掉這條路由,不做處理。
BGP的反射器和聯盟

路由反射環路防止機制 - Cluster_List

 Cluster_List是可選非過渡屬性,屬性類型編碼爲10
 Cluster_List由一系列的Cluster_ID組成,描述了一條路由所經過的反射器路徑,這和描述路由經過的As路徑的AS_Path屬性有相似之處。Cluster_List由路由反射器產生
 Cluster_List只在AS內部傳播,從EBGP對等體收到的含有Cluster_List的路由將被丟棄。
 當RR在它的客戶機之間或客戶機與非客戶機之間反射路由時,RR會把本地Cluster_ID添加到Cluster_List的前面。如果Cluster_List爲空,RR就創建一個
 當RR接收到一條更新路由時,RR會檢查Cluster_List。如果Cluster_List中已經有本地Cluster_ID,丟棄該路由;如果沒有本地Cluster_ID,將其加入Cluster_List,然後反射該更新路由
 Cluster_List只被RR用來檢測路由環路,不是RR的客戶機和非客戶機不會檢測該屬性。
Cluster list與Originator ID的相同與不同
 相同:它們都是防止AS內部的環路
 不同:Originator ID就是在發起該路由的路由器發現收到了一條路由信息(該路由信息裏面的originator ID就是這臺路由器),此時路由器便會忽略該路由這樣達到防環作用
 CLUSTER list是RR產生的,是通過RR來防止路由環路的。當RR發現收到的路由更新裏面的cluster ID和RR自己一樣,此時便忽略該路由更新

AS內多個簇

一個AS中可能存在多個簇(Cluster)。各個RR之間是IBGP對等體的關係,一個RR可以把另一個RR配置成自己的客戶機或非客戶機。因此可以靈活的配置AS內部簇與簇之間的關係。
BGP的反射器和聯盟

層次化路由反射

BGP的反射器和聯盟

BGP聯盟

聯盟通過把大的AS分成多個更小的自治系統來解決IBGP全互連的問題,這些自治系統叫做成員自治系統或子自治系統。成員自治系統之間使用EBGP會話,因此它們不需要全互連。然而,在每一個成員AS中,仍然要求IBGP全互連。
BGP的反射器和聯盟

聯盟術語

 聯盟通過把大的AS分成多個更小的AS來解決IBGP全互連的問題,這些自治系統叫做成員AS。因爲成員AS之間使用EBGP會話,它們之間不需要全互連。然而在每一個成員AS中,IBGP全互連的要求仍然適用。
 聯盟中的EBGP會話和常規的EBGP會話有所不同。爲了區分它們,這種類型的EBGP會話叫做聯盟內的EBGP會話。與普通EBGP會話區別就發生在當通過會話傳播路由的時候,聯盟內的EBGP會話在一方面遵循路由通告的部分IBGP規則,在另一方面又遵循路由通告的部分EBGP規則。如:在發送更新的時候,NEXP_HOP、MED和LOCAL_PREF被保留,而AS-PATH被修改。
 對於外部鄰居來說(聯盟外的的對等體),成員AS拓撲是不可見的。也就是說,在發向EBGP鄰居的更新消息中,已經剝去了聯盟內被修改的AS_PATH。從其他的自治系統來看,聯盟就像單個AS一樣。
 每個成員AS中,IBGP全連接是需要的。路由反射也可以被部署。部署聯盟的一個明顯優勢就是其成員AS不需要使用相同的IGP。每個成員AS不需要向其他成員AS通告自己的內部拓撲。不過,當使用不同的IGP時,每一個成員AS內必須保證BGP下一跳的可達性。
BGP的反射器和聯盟

AS-Path回顧

當前,AS_PATH屬性被定義爲公認必遵屬性,該屬性由AS號所組成。AS_PATH屬性字段由三元組所組成:
Path Segment Type, Path Segment Length, Path Segment Value
在BGPv4裏,path segment type字段是由1字節長的數值所組成,主要是標識AS_PATH的不同類型:

   Value     Segment Type
      1       AS_SET: 由一系列AS號無序地組成,包含在UPDATE消息裏。
      2       AS_SEQUENCE: 由一系列AS號順序地組成,包含在UPDATE消息裏。
      3       AS_CONFED_SEQUENCE: 在本地聯盟內由一系列成員AS號按順序地組成,包含在UPDATE消息中,只能在本地聯盟內傳遞。
      4       AS_CONFED_SET: 在本地聯盟內由一系列成員AS無序地組成,包含在UPDATE消息中,同樣只能在本地聯盟內傳遞。

AS_Path變化過程

聯盟內採用AS-CONFED來防止子AS間的路由環路。
聯盟內的AS-PATH屬性變化:
 聯盟內的EBGP會話
 子AS號被添加到AS-PATH中的AS-CONFED-SEQUENCE前面
 聯盟內的IBGP會話
 不修改AS-PATH
 外部BGP會話
 子AS號從AS-PATH中清除,而大AS號被添加到AS-PATH前面
BGP的反射器和聯盟
BGP的反射器和聯盟

聯盟與反射的比較

BGP的反射器和聯盟

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章