BGP——路由反射器
基礎概念:
我們知道,在IBGP 2 裝置收到IBGP 1裝置傳輸過來的IBGP路由後,不會將此IBGP路由傳遞給其它的IBGP裝置,所以當其它的IBGP裝置需要獲得此跳IBGP路由時,就需要與IBGP 1裝置建立IBGP鄰居關係。
在網路較大的情況下,使用IBGP全互聯的話,就會很複雜,所以出現了路由反射器
路由反射器角色:
1.RR-----------路由反射器----允許把從IBGP對等體學來的路由反射到其它IBGP對等體裝置
2.Client--------客戶機--------與RR形成反射鄰居關係的IBGP裝置(在AS內只需要與RR直連)
3.Non-Client--非客戶機------既不是RR也不是客戶機的IBGP裝置(在AS內部需要與RR之間、以及所有的非客戶機之間仍然需要全互聯)
4.Originator---始發者--------在AS內部始發路由的裝置(Originator_ID屬性用於防止叢集內產生路由環路)
5.Cluster-------叢集----------路由反射器與客戶機的集合(Cluster_List屬性用於防止叢集間產生路由環路)
路由反射器原理:
1.RR從非客戶機學到的路由,會反射給所有的客戶機
2.RR從客戶機學習到的路由,釋出給所有的客戶機和非客戶機(除了發起此路由的客戶機除外)
3.從EBGP對等體學習到的路由,釋出給所有的非客戶機和客戶機
路由反射器的防環機制:
Originator_ID-----用於防止叢集內產生路由環路
當一條路由第一次被RR反射的時候,RR將Originator_ID屬性加入這條路由,標識這條路由的發起裝置。如果一條路由中已經存在了Originator_ID屬性,則RR將不會建立新的Originator_ID屬性。
當裝置接收到這條路由的時候,將比較收到的Originator ID和本地的Router ID,如果兩個ID相同,則不接收此路由。
Cluster_List-------用於防止叢集間產生路由環路---Cluster-ID就類似於OSPF中的Router-id
當一條路由第一次被RR反射的時候,RR會把本地Cluster ID新增到Cluster List的前面。如果沒有Cluster_List屬性,RR就建立一個。
當RR接收到一條更新路由時,RR會檢查Cluster List。如果Cluster List中已經有本地Cluster ID,丟棄該路由;如果沒有本地Cluster ID,將其加入Cluster List,然後反射該更新路由。
注意:
當一個網路中有多個RR(防止單點故障)時,可以通過此網路中的RR配置相同的叢集ID(Cluster_ID)來減少各RR接收的路由數量
配置:
以下的配置只需要在RR上進行路由反射器的配置(客戶機只需要配置與RR做IBGP鄰居的配置)
對於客戶機來說,客戶機是不知道自己時客戶機的,只有RR知道
Bgp as號
Peer reflect-client 配置自己為RR,並將指定的對等體最為Client
Peer ip地址 reflect-client 配置此對等體為客戶機
reflector cluster-id _____ 配置叢集ID