01BGP 高級配置
原理概述
在BGP路由表中,到達同一目的地可能存在多條路由。此時BGP會選擇其中一條路由作為最佳路由,並只把此路由發送給其對等體。BGP為了選出最佳路由,會根據BGP的路由優選規則依次比較這些路由的BGP屬性。路由屬性是對路由的特定描述。
所有的BGP路由屬性都可以分為以下4類:公認必須遵循屬性,所有BGP設備都可以識別此類屬性,且必須存在於Update報文中。如果缺少這類屬性,路由信息就會出錯。如Origin屬性,AS-Path屬性,Next-Hop屬性;公認任意屬性,所有BGP設備都可以識別此類屬性,但不要求必須存在於Update報文中,即就算缺少這類屬性,路由信息也不會出錯。如Local_Pref屬性;可選過渡屬性,BGP設備可以不識別此類屬性,如果BGP設備不識別此類屬性,但它仍然會接收這類屬性,並通告給其他對等體。如團體屬性;可選非過渡屬性,BGP設備可以不識別此類屬性,如果BGP設備不識別此類屬性,則會被忽略該屬性,且不會通告給其他對等體。如MED屬性等。
當到達同一目的地存在多條路由時,BGP依次對比下列屬性來選擇路由:
優選協議首選值最高的路由;
優選本地優先級最高的路由;
優選Cluster_List最短的路由;
依次優選EBGP路由、IBGP路由;
優選Router ID最小的設備發布的路由;
優選到BGP下一跳IGP度量值最小的路由;
優選從具有最小IP 地址的對等體通告的路由。
對於來自同一AS的路由,優選MED(Multi Exit Discriminator)值最低的路由;
優選AS路徑最短的路由;依次優選Origin類型為IGP、EGP、Incomplete的路由;
依次優選手動聚合路由、自動聚合路由、network命令引入的路由、import-route命令引入的路由、從對等體學習的路由;
其中,協議首選值是華為設備的特有屬性,該屬性僅在本地有效。如果路由沒有本地優先級,BGP選路時將該路由按預設的本地優先級100來處理。當到達同一目的地址存在多條等價路由時,可以通過BGP等價負載分擔實現均衡流量的目的。形成BGP等價負載分擔的條件是「BGP選擇路由的策略」的1至8條規則中需要比較的屬性完全相同。
實驗目的
理解BGP的路由通告規則;理解BGP的路由選路規則;理解BGP路由反射器工作原理;掌握修改BGP AS-Path屬性的方法;掌握修改BGP MED屬性的方法;掌握修改BGP Next-Hop屬性的方法;掌握BGP路由反射器配置方法;實驗內容
某公司網絡如實驗拓撲所示,R4、R5、R6、R7為公司總部路由器,R1與R3分別為公司兩個不同分支機構路由器,R2為運營商的網絡設備,在R1與R3上分別有設有不同的業務網段,其中192.168.10.0/24與172.16.10.0/24為業務A所用網段,192.168.20.0/24與172.16.20.0/24為業務B所用網段。兩個不同分支機構與總部間都設有專線,使得兩分支機構上的業務網段既可以通過運營商的設備實現訪問,也可以通過專線,經由總部設備實現訪問。請根據如下需求對網絡進行部署:
1)按照拓撲搭建網絡,在所有AS間使用直連接口建立EBGP鄰居關係;
2)在公司總部AS400中,R4與R5,R5與R7,R7與R6,R6與R4間使用環回接口建立IBGP鄰居關係,IGP協議使用OSPF;
3)所有業務網段,與所有設備上的Loopback 0所在網段都能通過BGP路由實現互相訪問;
4)為了使網絡資源能充分得到利用,要求業務網段A的流量通過運營商設備轉發,B的流量通過專線轉發;
5)網絡管理員進行定期線路檢查,現通過適當調整IGP的鏈路開銷值,使得所有經過總部AS的流量都沿著R4-R5-R7-R6路徑轉發;
6)網絡管理員在檢查中發現業務網段B的流量非常大,決定將業務網段B的流量單獨沿著R4-R6路徑轉發(要求BGP路由選路與實際轉發路徑一致);
7)公司總部網絡將進行改造,在不改變原有配置的基礎上,通過增加少量配置實現R5與R7不參與BGP路徑選擇。
實驗拓撲
實驗編址表
驗證與提示
1. 按照拓撲搭建網絡,在所有AS間使用直連接口建立EBGP鄰居關係
根據實驗編址表進行相應的基本配置,配置完成後檢查BGP鄰居建立情況。
配置完成後,以R1為例:<R1>display bgp peer ;
2. 在公司總部AS400中,R4與R5,R5與R7,R7與R6,R6與R4間使用環回接口建立IBGP鄰居關係,IGP協議使用OSPF。
注意使用環回接口建立鄰居時需要額外配置命令,觀察現象省略。
3. 所有業務網段,與所有設備上的Loopback 0所在網段都能通過BGP路由實現互相訪問。
配置完成後,驗證:<R1>display bg routing-table;
4. 為了使網絡資源能充分得到利用,要求業務網段A的流量通過運營商設備轉發,B的流量通過專線轉發,理解BGP AS-Path屬性原理,做適當修改。
配置完成後,驗證:<R1>display bgp routing-table ;
理解BGP MED屬性原理,熟練掌握相關配置方法,並作適當修改。
配置完成後,以R3為例:<R3>display bgp routing-table;
5. 網絡管理員進行定期線路檢查,現通過適當調整IGP的鏈路開銷值,使得所有經過總部AS的流量都沿著R4-R5-R7-R6路徑轉發。
6. 網絡管理員在檢查中發現業務網段B的流量非常大,決定將業務網段B的流量單獨沿著R4-R6路徑轉發(要求BGP路由選路與實際轉發路徑一致)。
深入理解BGP選路規則與路由反射器的特性,分析路由表現象,結合路由策略進行配置。
配置完成後:<R6>display bgp routing-table ;
7. 公司總部網絡將進行改造,在不改變原有配置的基礎上,通過增加少量配置實現R5與R7不參與BGP路徑選擇。
配置完成後,在R4與R6上:<R4>display bgp peer,<R6>display bgp peer ;
思考
AS 400內的設備上有關於業務網段的BGP路由都有兩條相同下一跳的條目,為什麼?
在需求6中,是否有多種方法實現?哪種最合適?
在需求7中,實現後網絡是否會存在什麼問題?為什麼?
配置清單
<R1>display current-configuration#sysname R1interface GigabitEthernet0/0/0ip address 10.0.14.1 255.255.255.0interface GigabitEthernet0/0/1ip address 10.0.12.1 255.255.255.0interface LoopBack0ip address 10.0.1.1 255.255.255.255interface LoopBack1ip address 192.168.10.1 255.255.255.0interface LoopBack2ip address 192.168.20.1 255.255.255.0bgp 100router-id 10.0.1.1peer 10.0.12.2 as-number 200peer 10.0.14.4 as-number 400#ipv4-family unicastundo synchronizationnetwork 10.0.1.1 255.255.255.255network 192.168.10.0network 192.168.20.0peer 10.0.12.2 enablepeer 10.0.14.4 enablereturn<R2>display current-configuration sysname R2acl number 2000rule 5 permit source 172.16.20.0 0.0.0.255acl number 2001rule 5 permit source 192.168.20.0 0.0.0.255ip address 10.0.12.2 255.255.255.0ip address 10.0.23.2 255.255.255.0ip address 10.0.2.2 255.255.255.255bgp 200router-id 10.0.2.2peer 10.0.12.1 as-number 100peer 10.0.12.1 timer keepalive 30 hold 90peer 10.0.23.3 as-number 300peer 10.0.23.3 timer keepalive 30 hold 90network 10.0.2.2 255.255.255.255peer 10.0.12.1 enablepeer 10.0.12.1 route-policy AS exportpeer 10.0.23.3 enablepeer 10.0.23.3 route-policy MED exportroute-policy AS permit node 10if-match acl 2000apply as-path 200 200 additiveroute-policy AS permit node 20route-policy MED permit node 10if-match acl 2001apply cost 200route-policy MED permit node 20<R3>display current-configuration sysname R3ip address 10.0.23.3 255.255.255.0ip address 10.0.36.3 255.255.255.0ip address 10.0.3.3 255.255.255.255ip address 172.16.10.1 255.255.255.0ip address 172.16.20.1 255.255.255.0bgp 300router-id 10.0.3.3peer 10.0.23.2 as-number 200peer 10.0.36.6 as-number 400compare-different-as-mednetwork 10.0.3.3 255.255.255.255network 172.16.10.0 255.255.255.0network 172.16.20.0 255.255.255.0peer 10.0.23.2 enablepeer 10.0.36.6 enable<R4>display current-configurationsysname R4rule 5 permit source 10.0.5.5 0ip address 10.0.45.4 255.255.255.0ip address 10.0.14.4 255.255.255.0interface GigabitEthernet0/0/2ip address 10.0.46.4 255.255.255.0ospf cost 100ip address 10.0.4.4 255.255.255.255bgp 400router-id 10.0.4.4peer 10.0.5.5 as-number 400peer 10.0.5.5 ignorepeer 10.0.5.5 connect-interface LoopBack0peer 10.0.6.6 as-number 400peer 10.0.6.6 connect-interface LoopBack0peer 10.0.14.1 as-number 100network 10.0.4.4 255.255.255.255import-route ospf 1 route-policy O2Bpeer 10.0.5.5 enablepeer 10.0.5.5 next-hop-localpeer 10.0.6.6 enablepeer 10.0.6.6 route-policy local exportpeer 10.0.6.6 next-hop-localpeer 10.0.14.1 enableospf 1 router-id 10.0.4.4import-route bgp route-policy B2Oarea 0.0.0.0network 10.0.4.4 0.0.0.0network 10.0.45.4 0.0.0.0network 10.0.46.4 0.0.0.0route-policy O2B permit node 10route-policy local permit node 10apply ip-address next-hop 10.0.46.4route-policy local permit node 20route-policy B2O permit node 10<R5>display current-configurationsysname R5ip address 10.0.57.5 255.255.255.0ip address 10.0.45.5 255.255.255.0ip address 10.0.5.5 255.255.255.255router-id 10.0.5.5peer 10.0.4.4 as-number 400peer 10.0.4.4 connect-interface LoopBack0peer 10.0.7.7 as-number 400peer 10.0.7.7 connect-interface LoopBack0reflector cluster-id 1network 10.0.5.5 255.255.255.255peer 10.0.4.4 enablepeer 10.0.4.4 reflect-clientpeer 10.0.7.7 enablepeer 10.0.7.7 reflect-clientospf 1 router-id 10.0.5.5network 10.0.5.5 0.0.0.0network 10.0.45.5 0.0.0.0network 10.0.57.5 0.0.0.0<R6>display current-configuration sysname R6rule 5 permit source 10.0.7.7 0ip address 10.0.36.6 255.255.255.0ip address 10.0.67.6 255.255.255.0ip address 10.0.46.6 255.255.255.0ip address 10.0.6.6 255.255.255.255router-id 10.0.6.6peer 10.0.7.7 listen-onlypeer 10.0.36.3 as-number 300network 10.0.6.6 255.255.255.255peer 10.0.4.4 next-hop-localpeer 10.0.4.4 route-policy local exportpeer 10.0.7.7 next-hop-localpeer 10.0.36.3 enableospf 1 router-id 10.0.6.6network 10.0.6.6 0.0.0.0network 10.0.46.6 0.0.0.0network 10.0.67.6 0.0.0.0apply ip-address next-hop 10.0.46.6<R7>display current-configurationsysname R7ip address 10.0.67.7 255.255.255.0ip address 10.0.57.7 255.255.255.0ip address 10.0.7.7 255.255.255.255router-id 10.0.7.7peer 10.0.6.6 listen-onlyreflector cluster-id 2reflect change-path-attributenetwork 10.0.7.7 255.255.255.255peer 10.0.5.5 reflect-clientpeer 10.0.6.6 route-policy next exportpeer 10.0.6.6 reflect-clientospf 1 router-id 10.0.7.7network 10.0.7.7 0.0.0.0network 10.0.57.7 0.0.0.0network 10.0.67.7 0.0.0.0route-policy next permit node 10apply ip-address next-hop 10.0.7.7route-policy next permit node 20