一、需求分析
1.1、網絡環境介紹
本案例要爲大家介紹的案例是一個關於骨幹網IPv4公網路由的割接,分爲省級骨幹網與地區級骨幹網。先看結構圖,然後再給大家解釋。爲了方便全省的骨幹網PE設備的管理,由省內專門的管理員發現各地骨幹網設備可能存在的問題,省級單位管理員專門部署了一套H3C IMC的網管系統,並給這套網管系統新增了一個自治系統,AS號碼爲:64570。這套H3C IMC網管系統與現行骨幹網的結構如下圖所示:
1.2、網絡改造需求
爲了讓新部署的H3C IMC網管系統能夠訪問到省級骨幹網及所有地區級骨幹網的所有PE級別的設備,並且能夠成功管理,還不能給網絡帶來新的缺陷,所以本次網絡改造的需求如下:
1. 本次網絡改造範圍爲公網路由,不準對任何業務路由進行操作;
2. IMC網管AS必須可以接收到省級骨幹網的公網路由和全部地區的公網路由;
3. 地區與地區之間、地區與省網之間不允許相互接收到公網路由。由於所有公網路由都需要在省級骨幹網上匯聚,所以請在省級骨幹網上做好路由過濾;
4. 省級骨幹平面A、B網之間不能相互收取路由;
5. 網絡第一次改造不做大段地址的路由聚合操作。
需求說完了,如果覺得看起來不是太明白的話,那麼我就再給大家小小的解釋一下吧。
l 所謂公網路由,這裏千萬不要理解爲Internet!對於有MPLS ***的骨幹網來說,公網路由就是不屬於任何VRF(***-instance)的路由,即你show ip route或者display ip routing直接就能看到的路由。在骨幹網中,公網路由通常用作管理地址和AS內部iBGP鄰居的更新源地址。其實也就是在BGP進程中,address-family ipv4 unicast路由。
l 對於第2個需求,簡單一點就是說,IMC網管的AS內部必須能收到全網的路由,而且IMC網管AS內部的路由,也能被全網收到。
l 第3個需求嘛,就是說地區1只能收到IMC區域的路由,地區2也只能收到IMC區域的路由……以此類推。
1.3、鏈路公網互聯地址及規劃
各個地區骨幹網與省級骨幹網之間公網互聯地址(網段)見下表,IMC區域與升級骨幹網之間的互聯地址爲新規劃的地址。
地區 | A1鏈路 | A2鏈路 | B1鏈路 | B2鏈路 |
地區1 | 10.51.201.0/30 | 10.51.201.4/30 | 10.61.201.0/30 | 10.61.201.4/30 |
地區2 | 10.51.201.8/30 | 10.51.201.12/30 | 10.61.201.8/30 | 10.61.201.12/30 |
地區3 | 10.51.201.16/30 | 10.51.201.20/30 | 10.61.201.16/30 | 10.61.201.20/30 |
地區4 | 10.51.201.24/30 | 10.51.201.28/30 | 10.61.201.24/30 | 10.61.201.28/30 |
地區5 | 10.51.201.32/30 | 10.51.201.36/30 | 10.61.201.32/30 | 10.61.201.36/30 |
地區6 | 10.51.201.40/30 | 10.51.201.44/30 | 10.61.201.40/30 | 10.61.201.44/30 |
地區7 | 10.51.201.48/30 | 10.51.201.52/30 | 10.61.201.48/30 | 10.61.201.52/30 |
地區8 | 10.51.201.56/30 | 10.51.201.60/30 | 10.61.201.56/30 | 10.61.201.60/30 |
地區9 | 10.51.201.64/30 | 10.51.201.68/30 | 10.61.201.64/30 | 10.61.201.68/30 |
IMC網管 | 10.51.201.72/30 | 10.51.201.76/30 | 10.61.201.72/30 | 10.61.201.76/30 |
在每一組互聯地址段中,省網側使用奇數地址,地區網側使用偶數地址。
1.4、各區域內設備管理地址段
在省級骨幹網A、B平面及各個地區網內,PE、MCE設備均使用Loopback接口地址作爲設備的管理地址。部分地區的CE設備使用Loopback接口地址作爲管理地址,也有部分地區的CE設備使用某個VLAN的地址作爲管理地址的。但是不管以什麼接口的地址作爲管理地址,最終也必須屬於規定的網段。
下表中列出了省級骨幹網A、B平面及各個地區網設備管理地址段的規劃:
網絡區域 | AS 號碼 | 管理地址段 |
省級骨幹A網 | 64810 | 10.51.202.0/24 |
省級骨幹B網 | 64880 | 10.51.222.0/24 |
地區1 | 64811 | 10.52.188.0/24 10.52.189.0/24 |
地區2 | 64812 | 10.52.190.0/24 10.52.191.0/24 |
地區3 | 64813 | 10.52.192.0/24 10.52.193.0/24 |
地區4 | 64814 | 10.52.194.0/24 10.52.195.0/24 |
地區5 | 64815 | 10.52.196.0/24 10.52.197.0/24 |
地區6 | 64816 | 10.52.198.0/24 10.52.199.0/24 |
地區7 | 64817 | 10.52.200.0/24 10.52.201.0/24 |
地區8 | 64818 | 10.52.202.0/24 10.52.203.0/24 |
地區9 | 64819 | 10.52.204.0/24 10.52.205.0/24 |
IMC | 64570 | 10.114.144.0/24 |
二、前置知識點
2.1、BGP路由過濾技術
BGP的路由過濾有多種方法,最常用的方法有以下兩種:
第一種方法:配置前綴列表,然後將這個前綴列表掛載到BGP鄰居上。這種方式適合在雙方都只收發BGP路由的時候使用。
前綴列表中有permit,deny的執行動作,如果執行動作permit,則這個前綴列表爲白名單列表,只允許部分網段被傳送;如果執行動作是deny,則這個前綴列表爲黑名單列表,只過濾部分網段。
簡單的看一個在Cisco設備上配置的例子:
ip prefix deny_10 deny 10.112.1.0/24
router bgp 2300 address-family ipv4 neighbor 10.12.1.1 prefix-list deny_10 in |
在這次操作中,前綴列表的執行動作爲“deny”,包含的網段是10.112.1.0/24。在BGP配置進程中,針對10.12.1.1掛載前綴列表的方向爲“in”方向。則說明這次操作中,該設備將不會從10.12.1.1收到10.112.1.0/24網段。
如果是華爲或者H3C設備的話,那麼配置命令就該這麼寫:
ip ip-prefix deny_10 deny 10.112.1.0 24
bgp 2300 ipv4-family unicast peer 10.12.1.1 ip-prefix deny_10 import |
第二種方法:配置前綴列表,但是結合Route-map掛載到鄰居上使用,這種方式適合在過濾路由的同時修改路徑熟悉或路由重分發的時候使用。
例如:將OSPF路由重分發到BGP中,但是不收取10.112.1.0/24這條路由,則它的配置命令如下:
Cisco: ip prefix deny_10 10.112.1.0/24
route-map deny_10 match ip address prefix deny_10 router bgp 2300 address-family ipv4 redistribute ospf 2300 route-map deny_10
華爲&H3C ip ip-prefix deny_10 10.112.1.0 24
route-policy deny_10 if-match ip-prefix deny_10
bgp 2300 ipv4-family unicast import ospf 2300 route-policy deny_10 |
2.2、BGP Community
BGP Community屬性是一種可選可傳遞的屬性,它是BGP路由的一個標籤(TAG)。如果你爲某些BGP路由設置了Community屬性的話,它就會帶上Community標籤,並有選擇地發送給BGP鄰居。鄰居在收到了帶有Community屬性的路由條目以後,可以使用Community-List選擇接收或者拒絕接收這條路由。所以,你可以用一種簡單的方式理解BGP Community:它是BGP路由的一個標籤,可以根據這個標籤選擇接收或者拒絕接收路由。
按照普通的IPv4單播網絡和MPLS ***網絡來區分的話,BGP Commnuity有兩類,一類是標準Community(standard Community),用於IPv4單播網絡;一類是擴展Community(Extended Community)用於MPLS ***環境中傳遞Route-Target。本案例不對私網路由進行配置,所以只使用標準Community。
在標準Community中,又分爲兩種Community:
n 衆所周知的Community:BGP預定義的Community,有固定格式和特定的功能,只能被使用不能被修改。
n 私有Community:用戶自定義的Commuity。
BGP擁有4個衆所周知的Community
n no-export:不將路由發送給任何EBGP鄰居
n no-advertise:不將路由發給任何BGP鄰居
n internet:可以將路由器發送給任何BGP鄰居
n local-as:不將路由發到AS外
BGP的衆所周知的Community有點簡單粗暴,但是在實際的應用中還是有一定的用武之地的。不過相比起來,私有Community的應用更廣泛一些。
私有Community的類型是十進制數字,默認長度是32bit。一般遵循的私有Community的格式爲AS:nn格式,即16bit的AS號碼加上16bit(0--65535)的任意整數。Cisco默認不支持AS:nn格式,必須要在全局模式下輸入ip BGP-Community New-Format命令才能讓私有Community顯示爲AS:nn格式。
私有Community發送給對方路由器以後,對方是不會對這個Community執行任何過濾的動作。如果想要過濾某些攜帶了私有Community屬性的路由,可以通過配置Community-List來進行操作。例如,我們在設備上拒絕攜帶300:3標記的路由,在Cisco設備上配置方法如下:
ip community-list standard DENY_300:3 deny 300:3 //配置針對標準Community的Community-List,名稱爲DENY_300:3,拒絕的標記是300:3
route-map DENY_300:3 permit 10 match community DENY_300:3 //配置Route-map,包含Community-List爲DENY_300:3
router bgp 200 address-family ipv4 neighbor 10.23.1.2 route-map DENY_300:3 in //調用route-map到鄰居的in方向 |
這樣,由於攜帶了300:3這個標記的路由是10.3.3.3/32,所以在該設備上收不到10.3.3.3/32這條路由。
使用Community屬性來過濾路由,雖然設置起來相對prefix-list要複雜一些,但是使用Community屬性效率更高,控制力度更強,防止路由從後門回灌的效果也更好,所以Community屬性在實際應用中非常廣泛。
2.3、AS-Path正則表達式
因爲BGP的路由通常會攜帶AS-Path,所以除了根據路由的IP來過濾之外,還可以根據路由攜帶的AS-Path來過濾,要匹配路由的AS-Path,需要使用正則表達式來匹配AS特徵。在使用正則表達式的時候,需要注意兩點:
1、 正則表達式只能用於過濾AS-Path屬性;
2、由於第1點的原因,所以正則表達式只能用於eBGP鄰居之間的過濾。
使用正則表達式過濾路由,雖然說它的使用面受到了一定的限制,但總的來說,它也是一種比較高效的路由過濾方法。下表中列出了BGP中的常用的正則表達式:
元字符特殊字符 | 匹配內容 |
. | 任何單一字符,包括空格 |
[ ] | 在方括弧中羅列的任何字符 |
[^] | 除了在方括弧中羅列的字符外任何字符(^必須放置在字符列表之前) |
- | (連字符)在由連字符所分隔的兩個字符之間的任意字符 |
? | 字符或模式出現0次或1次 |
* | 字符或模式出現0次或多次 |
+ | 字符或模式出現1次或多次,可以多次匹配 |
^ | 一行的開始 |
$ | 一行的結束 |
| | 由元字符特殊字符分隔的字之一 |
_ | (下劃線)一個逗號,行的開始,行的結束或空格 |
\ | 轉義字符,當彙總加上as-set,會出現{100 200}。 \{ }\ 表示{} |
舉例說明:
Ø .* 表示匹配任意
Ø ^123$ 表示只匹配AS 123
Ø ^$ 表示沒有經過任何AS,即本地AS的路由
Ø ^12[0-3]$ 表示匹配 120 121 122 123
Ø ^12. 表示匹配 12 ,120 – 129 開始的AS號
Ø _12_ 表示匹配經過了AS 12的路由
配置BGP正則表達式需要使用AS-Path的ACL,即as-path access-list,它的配置方式和一般ACL基本一致,匹配規則也和ACL差不多:自上而下逐條匹配,並有隱含拒絕的功能。AS-Path的ACL的在Cisco設備配置命令如下:
ip as-path access-list <list number> permit/deny REGEXP |
List Number表示表號,是一個任意的整數。這裏沒有基本ACL和高級ACL的區別;
permit表示允許某個正則表達式的規則,deny表示拒絕某個正則表達式的規則。
AS-Path的ACL配置好以後,直接使用filter-list關鍵字調用到BGP鄰居上即可。如果本路由器要向鄰居發送路由,則調用在out方向;如果本路由器要向鄰居接收路由,則調用在in方向。以Cisco設備爲例,應用如下:
router bgp XXXXX address-family ipv4 nei x.x.x.x filter-list <list number> in/out |
三、方案設計與實施
3.1、總體規劃思路
根據第一節的需求,本次網絡改造整體規劃思路如下:
1. IMC區域的兩臺ASBR通過eBGP的方式與省級骨幹A、B網互聯,將IMC區域內部的網段通過重分發的方式注入BGP路由表。
2. 爲了防止省級骨幹A、B平面相互收取公網路由,在IMC區域ASBR上,對本區域內的路由打上標準Community標記,標記值爲64570:300,然後在省級骨幹A、B平面與IMC互聯的ASBR上只收取包含64570:300標記的路由。
3. 爲了防止省級骨幹A、B平面的公網路由通過其他地區網相互泄露傳遞,所以在地區網的ASBR上設置AS-Path正則表達式,地區網只向外發佈本AS的路由。注意,不要把AS內的公網互聯網段發佈出去,僅發佈LoopBack接口即可。
4. 公網選路方向爲,A-1、A-2、B-1、B-2。省網骨幹A、B平面之間調整Original屬性進行選擇,一個平面內的兩條鏈路之間調整MED值和本地優先級屬性進行選路。
各鏈路選路方向示意圖:
3.2、配置IMC區域的設備
IMC區域的設備只有二臺ASBR,型號爲華爲 9306。將其與省級骨幹A、B網的ASBR建立eBGP鄰居關係。並將IMC區域內的服務器網段10.114.144.0/24發佈到BGP中。
3.2.1、IMC區域ASBR-1上的配置腳本
IMC-9306-1上的配置腳本 | |
配置二層Access接口 | interface TenGigabitEthernet 1/0/1 description To-Pro.A-12708-1 port link-type access port access vlan 201
interface TenGigabitEthernet 1/0/2 description To-Pro.B-12708-1 port link-type access port access vlan 202 |
配置互聯地址與OSPF | interface vlan 101 description To-IMC-9306-B ip address 10.114.143.1 255.255.255.252
interface vlan 201 description To-Pro.A-12708-1 ip address 10.51.201.74 255.255.255.252
interface vlan 202 description To-Pro.B-12708-1 ip address 10.61.201.74 255.255.255.252
interface loopback 0 ip address 10.114.144.1 255.255.255.255
interface TenGigabitEthernet 2/0/1 description To-IMC-9306-B port link-type trunk port trunk permit vlan 101
ospf 64570 router-id 10.114.144.1 area 0.0.0.0 network 10.114.143.0 0.0.0.3 networj 10.114.144.1 0.0.0.0 |
配置BGP鄰居,然後將該區域的Loopback地址段注入BGP路由表 | bgp 64570 router-id 10.114.144.1 undo default ipv4-unicast import-route ospf 64570 route-policy PERMIT_LOOP undo synchronization peer 10.114.144.2 as-number 64570 peer 10.114.144.2 connect-interface LoopBack0 peer 10.114.144.2 next-hop-local peer 10.51.201.73 as-number 64810 peer 10.61.201.73 as-number 64880
ip ip-prefix PERMIT_LOOP permit 10.114.144.0 24 le 32
route-policy PERMIT_LOOP permit node 10 if-match ip-prefix PERMIT_LOOP |
配置IMC區域發送給省級骨幹A、B網的路由,併爲其添加Community屬性 | ip ip-prefix PERMIT_LOOP index 10 permit 10.114.144.0 24 greater-equal 24 less-equal 32
route-policy IMC_Commu permit node 10 if-match ip-prefix PERMIT_LOOP apply community 64570:300
bgp 64570 ipv4-family unicast peer 10.51.201.73 route-policy IMC_Commu export peer 10.61.201.73 route-policy IMC_Commu export peer 10.51.201.73 advertise-community peer 10.61.201.73 advertise-community |
配置IMC區域收取省級骨幹A、B網的路由。 爲了讓路徑優先選擇省級骨幹A網,所以收取A網的路由origin屬性調整爲IGP,把收取B網的路由origin屬性調整爲incomplete 而且,對於ASBR-1之間的鏈路會被優先選擇,所以ASBR-1之間調高本地優先級。 | ip ip-prefix From_ShengWangA permit 10.51.202.0 24 le 32 ip ip-prefix From_ShengWangA permit 10.112.188.0 24 le 32
route-policy From_ShengWangA permit node 10 if-match ip-prefix From_ShengWangA apply origin igp apply local-pref 300
ip ip-prefix From_ShengWangB permit 10.51.222.0 24 le 32 ip ip-prefix From_ShengWangB permit 10.112.188.0 24 le 32
route-policy From_ShengWangB permit node 10 if-match ip-prefix From_ShengWangB apply origin incomplete
bgp 64570 ipv4-family unicast peer 10.51.201.73 route-policy From_ShengWangA import peer 10.61.201.73 route-policy From_ShengWangB import |
3.2.2、IMC區域ASBR-2上的配置腳本
IMC-9306-2上的配置腳本 | |
配置二層Access接口 | interface TenGigabitEthernet 1/0/1 description To-Pro.A-12708-2 port link-type access port access vlan 201
interface TenGigabitEthernet 1/0/2 description To-Pro.B-12708-2 port link-type access port access vlan 202 |
配置互聯地址與OSPF | interface vlan 101 description To-IMC-9306-B ip address 10.114.143.2 255.255.255.252
interface vlan 201 description To-Pro.A-12708-2 ip address 10.51.201.78 255.255.255.252
interface vlan 202 description To-Pro.B-12708-2 ip address 10.61.201.78 255.255.255.252
interface loopback 0 ip address 10.114.144.2 255.255.255.255
interface TenGigabitEthernet 2/0/1 description To-IMC-9306-B port link-type trunk port trunk permit vlan 101
ospf 64570 router-id 10.114.144.2 area 0.0.0.0 network 10.114.143.0 0.0.0.3 networj 10.114.144.2 0.0.0.0 |
配置BGP鄰居,然後將該區域的Loopback地址段注入BGP路由表 | bgp 64570 router-id 10.114.144.2 undo default ipv4-unicast import-route ospf 64570 route-policy PERMIT_LOOP undo synchronization peer 10.114.144.1 as-number 64570 peer 10.114.144.1 connect-interface LoopBack0 peer 10.114.144.1 next-hop-local peer 10.51.201.77 as-number 64810 peer 10.61.201.77 as-number 64880
ip ip-prefix PERMIT_LOOP permit 10.114.144.0 24 le 32
route-policy PERMIT_LOOP permit node 10 if-match ip-prefix PERMIT_LOOP |
配置IMC區域發送給省級骨幹A、B網的路由,併爲其添加Community屬性 | ip ip-prefix PERMIT_LOOP index 10 permit 10.114.144.0 24 greater-equal 24 less-equal 32
route-policy IMC_Commu permit node 10 if-match ip-prefix PERMIT_LOOP apply community 64570:300
bgp 64570 ipv4-family unicast peer 10.51.201.77 route-policy IMC_Commu export peer 10.61.201.77 route-policy IMC_Commu export peer 10.51.201.77 advertise-community peer 10.61.201.77 advertise-community |
配置IMC區域收取省級骨幹A、B網的路由。 爲了讓路徑優先選擇省級骨幹A網,所以收取A網的路由origin屬性調整爲IGP,把收取B網的路由origin屬性調整爲incomplete 而且,對於ASBR-2之間的鏈路不會被優選,所以在這裏不要修改其他的路徑屬性 | ip ip-prefix From_ShengWangA permit 10.51.202.0 24 le 32 ip ip-prefix From_ShengWangA permit 10.112.188.0 24 le 32
route-policy From_ShengWangA permit node 10 if-match ip-prefix From_ShengWangA apply origin igp
ip ip-prefix From_ShengWangB permit 10.51.222.0 24 le 32 ip ip-prefix From_ShengWangB permit 10.112.188.0 24 le 32
route-policy From_ShengWangB permit node 10 if-match ip-prefix From_ShengWangB apply origin incomplete
bgp 64570 ipv4-family unicast peer 10.51.201.77 route-policy From_ShengWangA import peer 10.61.201.77 route-policy From_ShengWangB import |
3.3、配置省級骨幹A網ASBR設備
3.2.1、省級骨幹A網(Pro.A-12708-1)與IMC的配置腳本
Pro.A-IMC-12708-1上的配置腳本 | |
配置本設備與IMC-1的eBGP鄰居,併發布本AS內的Loopback接口網段進入BGP路由 | ip ip-prefix Pro.A_Loop index 10 permit 10.51.202.0 24 less-equal 32
route-policy Pro.A_Loop permit node 10 if-match ip-prefix Pro.A_Loop
bgp 64810 peer 10.51.201.74 as-number 64570 undo synchronization import-route ospf 64810 route-policy Pro.A_Loop |
配置Community過濾,從IMC方向只收入包含64570:300屬性的路由。防止省級骨幹B網的路由從IMC區域回灌。 由於ASBR-1之間的鏈路會被優選,所以在這裏調高本地優先級 | ip community-filter 1 permit 64570:300 # route-policy IMC_Filter permit node 10 if-match community-filter 1 apply local-pref 300
bgp 64810 ipv4-family unicast peer 10.51.201.74 route-policy IMC_Filter import |
配置發送給IMC區域的路由,爲了使得IMC能優選省級骨幹A網,所以將Origin屬性調整爲IGP。 | ip ip-prefix To_IMC permit 10.51.202.0 24 le 32 ip ip-prefix To_IMC permit 10.112.188.0 24 le 32
route-policy To_IMC permit node 10 if-match ip-prefix To_IMC apply origin igp
bgp 64810 ipv4-family unicast peer 10.51.201.74 route-policy To_IMC export |
3.2.2、省級骨幹A網(Pro.A-12708-2)與IMC的配置腳本
Pro.A-IMC-12708-2上的配置腳本 | |
配置本設備與IMC-1的eBGP鄰居,併發布本AS內的Loopback接口網段進入BGP路由 | ip ip-prefix Pro.A_Loop index 10 permit 10.51.202.0 24 less-equal 32
route-policy Pro.A_Loop permit node 10 if-match ip-prefix Pro.A_Loop
bgp 64810 peer 10.51.201.78 as-number 64570 undo synchronization import-route ospf 64810 route-policy Pro.A_Loop |
配置Community過濾,從IMC方向只收入包含64570:300屬性的路由。防止省級骨幹B網的路由從IMC區域回灌。 由於ASBR-1之間的鏈路不會被優選,就不要額外增加其他屬性了 | ip community-filter 1 permit 64570:300 # route-policy IMC_Filter permit node 10 if-match community-filter 1
bgp 64810 ipv4-family unicast peer 10.51.201.78 route-policy IMC_Filter import |
配置發送給IMC區域的路由,爲了使得IMC能優選省級骨幹A網,所以將Origin屬性調整爲IGP。 不被優選的ASBR-2鏈路增大Cost值 | ip ip-prefix To_IMC permit 10.51.202.0 24 le 32 ip ip-prefix To_IMC permit 10.112.188.0 24 le 32
route-policy To_IMC permit node 10 if-match ip-prefix To_IMC apply origin igp apply cost + 300
bgp 64810 ipv4-family unicast peer 10.51.201.78 route-policy To_IMC export |
3.2.3、省級骨幹A網(Pro.A-DQ1-9306-1)與DQ1的配置腳本
Pro.A-DQ1-9306-1 | |
爲了防止省級骨幹B網的路由通過地區網回灌,所以配置AS-Path正則表達式,過濾掉來自省級骨幹B網的路由。 由於ASBR-1之間的鏈路將被優選,所以在這裏加大本地優先級屬性。 | ip as-path-filter 1 deny _64880$ ip as-path-filter 1 permit .*
ip ip-prefix From_DQ1 permit 10.112.188.0 24 le 32
route-policy From_DQ1 permit node 10 if-match ip-prefix From_DQ1 apply local-pref 300
bgp 64810 ipv4-family unicast peer 10.51.201.2 as-path-filter 1 import peer 10.51.201.2 route-policy From_DQ1 import |
配置發送給地區1骨幹網的路由,並設置origin屬性爲IGP | ip ip-prefix To_DQ1 permit 10.51.202.0 24 le 32 ip ip-prefix To_DQ1 permit 10.114.144.0 24 le 32
route-policy To_DQ1 permit node 10 if-match ip-prefix To_DQ1 apply origin igp
bgp 64810 ipv4-family unicast peer 10.51.201.2 route-policy To_DQ1 export |
3.2.4、省級骨幹A網(Pro.A-DQ1-9306-2)與DQ1的配置腳本
Pro.A-DQ1-9306-2 | |
爲了防止省級骨幹B網的路由通過地區網回灌,所以配置AS-Path正則表達式,過濾掉來自省級骨幹B網的路由。 | ip as-path-filter 1 deny _64880$ ip as-path-filter 1 permit .*
ip ip-prefix From_DQ1 permit 10.112.188.0 24 le 32
route-policy From_DQ1 permit node 10 if-match ip-prefix From_DQ1
bgp 64810 ipv4-family unicast peer 10.51.201.6 as-path-filter 1 import peer 10.51.201.6 route-policy From_DQ1 import |
配置發送給地區1骨幹網的路由,並設置origin屬性爲IGP。 不被優選的ASBR-2之間的鏈路,加大Cost值。 | ip ip-prefix To_DQ1 permit 10.51.202.0 24 le 32 ip ip-prefix To_DQ1 permit 10.114.144.0 24 le 32
route-policy To_DQ1 permit node 10 if-match ip-prefix To_DQ1 apply origin igp apply cost + 300
bgp 64810 ipv4-family unicast peer 10.51.201.6 route-policy To_DQ1 export |
3.4、配置省級骨幹B網ASBR設備
3.2.1、省級骨幹B網(Pro.B-12708-1)與IMC的配置腳本
Pro.B-IMC-12708-1上的配置腳本 | |
配置本設備與IMC-1的eBGP鄰居,併發布本AS內的Loopback接口網段進入BGP路由 | ip ip-prefix Pro.B_Loop index 10 permit 10.51.222.0 24 greater-equal 24 less-equal 32
route-policy Pro.B_Loop permit node 10 if-match ip-prefix Pro.B_Loop
bgp 64810 peer 10.61.201.74 as-number 64570 undo synchronization import-route ospf 64880 route-policy Pro.B_Loop |
配置Community過濾,從IMC方向只收入包含64570:300屬性的路由。防止省級骨幹B網的路由從IMC區域回灌。 由於ASBR-1之間的鏈路會被優選,所以在這裏調高本地優先級 | ip community-filter 1 permit 64570:300 # route-policy IMC_Filter permit node 10 if-match community-filter 1 apply local-pref 300
bgp 64880 ipv4-family unicast peer 10.61.201.74 route-policy IMC_Filter import |
配置發送給IMC區域的路由,爲了使得IMC能優選省級骨幹A網,所以將Origin屬性調整爲incomplete以降低優先級。
| ip ip-prefix To_IMC permit 10.51.222.0 24 le 32 ip ip-prefix To_IMC permit 10.112.188.0 24 le 32
route-policy To_IMC permit node 10 if-match ip-prefix To_IMC apply origin incomplete
bgp 64880 ipv4-family unicast peer 10.61.201.74 route-policy To_IMC export |
3.2.2、省級骨幹B網(Pro.B-12708-2)與IMC的配置腳本
Pro.B-IMC-12708-1上的配置腳本 | |
配置本設備與IMC-1的eBGP鄰居,併發布本AS內的Loopback接口網段進入BGP路由 | ip ip-prefix Pro.B_Loop index 10 permit 10.51.222.0 24 greater-equal 24 less-equal 32
route-policy Pro.B_Loop permit node 10 if-match ip-prefix Pro.B_Loop
bgp 64810 peer 10.61.201.78 as-number 64570 undo synchronization import-route ospf 64880 route-policy Pro.B_Loop |
配置Community過濾,從IMC方向只收入包含64570:300屬性的路由。防止省級骨幹A網的路由從IMC區域回灌。
| ip community-filter 1 permit 64570:300 # route-policy IMC_Filter permit node 10 if-match community-filter 1
bgp 64880 ipv4-family unicast peer 10.61.201.78 route-policy IMC_Filter import |
配置發送給IMC區域的路由,爲了使得IMC能優選省級骨幹A網,所以將Origin屬性調整爲incomplete以降低優先級。 不被優選的鏈路,必須加大Cost值 | ip ip-prefix To_IMC permit 10.51.222.0 24 le 32 ip ip-prefix To_IMC permit 10.112.188.0 24 le 32
route-policy To_IMC permit node 10 if-match ip-prefix To_IMC apply origin incomplete apply cost + 300
bgp 64880 ipv4-family unicast peer 10.61.201.78 route-policy To_IMC export |
3.2.3、省級骨幹B網(Pro.B-DQ1-9306-1)與DQ1的配置腳本
Pro.B-DQ1-9306-1 | |
爲了防止省級骨幹A網的路由通過地區網回灌,所以配置AS-Path正則表達式,過濾掉來自省級骨幹A網的路由。 由於ASBR-1之間的鏈路將被優選,所以在這裏加大本地優先級屬性。 | ip as-path-filter 1 deny _64810$ ip as-path-filter 1 permit .*
ip ip-prefix From_DQ1 permit 10.112.188.0 24 le 32
route-policy From_DQ1 permit node 10 if-match ip-prefix From_DQ1 apply local-pref 300
bgp 64880 ipv4-family unicast peer 10.61.201.2 as-path-filter 1 import peer 10.61.201.2 route-policy From_DQ1 import |
配置發送給地區1骨幹網的路由,並設置origin屬性爲IGP | ip ip-prefix To_DQ1 permit 10.51.222.0 24 le 32 ip ip-prefix To_DQ1 permit 10.114.144.0 24 le 32
route-policy To_DQ1 permit node 10 if-match ip-prefix To_DQ1 apply origin inc
bgp 64880 ipv4-family unicast peer 10.61.201.2 route-policy To_DQ1 export |
3.2.4、省級骨幹B網(Pro.B-DQ1-9306-2)與DQ1的配置腳本
Pro.B-DQ1-9306-2 | |
爲了防止省級骨幹A網的路由通過地區網回灌,所以配置AS-Path正則表達式,過濾掉來自省級骨幹A網的路由。 | ip as-path-filter 1 deny _64810$ ip as-path-filter 1 permit .*
route-policy From_DQ1 permit node 10 if-match ip-prefix From_DQ1
bgp 64880 ipv4-family unicast peer 10.61.201.6 as-path-filter 1 import peer 10.61.201.6 route-policy From_DQ1 import |
配置發送給地區1骨幹網的路由,並設置origin屬性爲IGP。 不被優選的ASBR-2之間的鏈路,加大Cost值。 | ip ip-prefix To_DQ1 permit 10.51.222.0 24 le 32 ip ip-prefix To_DQ1 permit 10.114.144.0 24 le 32
route-policy To_DQ1 permit node 10 if-match ip-prefix To_DQ1 apply origin inc apply cost + 300
bgp 64880 ipv4-family unicast peer 10.61.201.6 route-policy To_DQ1 export |
3.5、配置地區1骨幹網網ASBR設備
3.5.1、配置地區1的ASBR-1
DQ1-ASBR-9306-1 | |
配置發送給省級骨幹A、B網的路由。 爲本AS內的路由打上64811:811標記 | ip ip-prefix DQ1_Loop index 10 permit 10.112.188.0 24 greater-equal 24 less-equal 32
route-policy DQ1_Comm permit node 10 if-match ip-prefix PERMIT_LOOP apply community 64811:811
bgp 64811 ipv4-family unicast peer 10.51.201.1 route-policy DQ1_Comm export peer 10.61.201.1 route-policy DQ1_Comm export peer 10.51.201.1 advertise-community peer 10.61.201.1 advertise-community |
配置從省級骨幹A、B網接收的路由 | ip ip-prefix From_ShengWangA permit 10.51.202.0 24 le 32 ip ip-prefix From_ShengWangA permit 10.114.144.0 24 le 32
route-policy From_ShengWangA permit node 10 if-match ip-prefix From_ShengWangA apply origin igp apply local-pref 300
ip ip-prefix From_ShengWangB permit 10.51.222.0 24 le 32 ip ip-prefix From_ShengWangB permit 10.114.144.0 24 le 32
route-policy From_ShengWangB permit node 10 if-match ip-prefix From_ShengWangB apply origin incomplete
bgp 64811 ipv4-family unicast peer 10.51.201.1 route-policy From_ShengWangA import peer 10.61.201.1 route-policy From_ShengWangB import |
3.5.2、配置地區1的ASBR-2
DQ1-ASBR-9306-2 | |
配置發送給省級骨幹A、B網的路由。 爲本AS內的路由打上64811:811標記 | ip ip-prefix DQ1_Loop index 10 permit 10.112.188.0 24 greater-equal 24 less-equal 32
route-policy DQ1_Comm permit node 10 if-match ip-prefix PERMIT_LOOP apply community 64811:811 apply cost + 300
bgp 64811 ipv4-family unicast peer 10.51.201.5 route-policy DQ1_Comm export peer 10.61.201.5 route-policy DQ1_Comm export peer 10.51.201.5 advertise-community peer 10.61.201.5 advertise-community |
配置從省級骨幹A、B網接收的路由 | ip ip-prefix From_ShengWangA permit 10.51.202.0 24 le 32 ip ip-prefix From_ShengWangA permit 10.114.144.0 24 le 32
route-policy From_ShengWangA permit node 10 if-match ip-prefix From_ShengWangA apply origin igp
ip ip-prefix From_ShengWangB permit 10.51.222.0 24 le 32 ip ip-prefix From_ShengWangB permit 10.114.144.0 24 le 32
route-policy From_ShengWangB permit node 10 if-match ip-prefix From_ShengWangB apply origin incomplete
bgp 64811 ipv4-family unicast peer 10.51.201.5 route-policy From_ShengWangA import peer 10.61.201.5 route-policy From_ShengWangB import |
四、風險分析和回退措施
4.1、該案例可能存在的風險
本次新增的IMC區域包括地區級骨幹網,與省級骨幹網A、B兩個平面對接,需要在4條互聯鏈路之間進行路由過濾及選路調整。所以在割接的時候,不能只盯着各地ASBR與省級骨幹A網主用設備那條鏈路,在割接完成以後要逐次斷開鏈路進行測試。因爲,第一條鏈路斷開以後,必須保證路由還能正常學習到,而且IMC也能夠通過省級骨幹網訪問到地區級骨幹網。所以,在配置完命令以後,一定要做好每條鏈路上的測試。
在寫完配置命令以後,首先斷開地區ASBR-1與省級骨幹A網ASBR-1之間的鏈路,然後測試地區ASBR-2與省級骨幹A網ASBR-2之間的業務流是否正常。然後斷開地區ASBR-2與省級骨幹A網ASBR-1之間的鏈路,此時地區網已經和省級骨幹網A網完全斷開了,所以檢查的目標是IMC與地區骨幹網之間經過省級骨幹B網ASBR-1的流量是否正常。甚至是你到最後可以斷開三條鏈路,只留下ASBR-2與省級骨幹B網ASBR-2之間的鏈路,這個時候仍然也需要保證流量是正常的。
在兩個網絡平面4條鏈路之間依次做路由聚合和選路的操作,很容易出現的問題就是IMC與地區網之間出現來回路徑不一致的問題。所以在割接的時候一定要做雙向Tracert檢查,保證業務路徑一致以後才能算完成。
此外,在編寫配置腳本的時候,也需要仔細檢查,以免因爲寫錯了命令或參數造成一些難以解決的故障。
五、本案例實驗室驗證
5.1、模擬實驗思路
本案例屬於骨幹網割接,所以不可能搭建一個一模一樣的拓撲圖。所以我們在使用模擬實驗驗證的時候,需要把關鍵的設備表示出來。即:你需要4個AS,表示IMC和地區骨幹網的AS各需要兩臺設備;表示省級骨幹網A、B平面的需要4臺設備。該模擬實驗的重點主要提現在以下幾個方面:
1. 驗證BGP Community路由過濾,能否達到本案例改造的需求;
2. 驗證BGP的選路方向;
3. 驗證IMC和地區網之間,該收到的路由能不能相互收到;
4. 檢查關鍵設備的配置腳本。
5.2、華爲設備模擬實驗拓撲圖
如圖所示:
1. AR1和AR2模擬IMC區域的兩臺華爲 9306,AS號碼64570;
2. AR3、AR4、AR5、AR6模擬省級骨幹A網內的4臺ASBR,AS號碼64810;
3. AR7、AR8、AR9、AR10模擬省級骨幹B網內的4臺ASBR,AS號碼64880;
4. AR11、AR12模擬地區1骨幹網的兩臺ASBR,AS號碼64811;
該實驗的要求是:
l AR1和AR2能收到AS 64810、AS 64880、AS 64811內設備的所有LoopBack接口地址,並且能ping通;
l AR11和AR12只能收到AS 64810內的Loopback接口地址且能ping通;
l AS 64810、AS 64880內的設備不能相互收取對方AS的路由。
由於本次割接牽涉的路由都是公網路由,所以在這個模擬實驗中,沒有必要配置和MPLS ***有關的命令。
5.3、模擬實驗關鍵配置說明
該實驗用了較多的設備,力求在最大限度做到和真實環境相當。所以,ASBR之間的互聯地址,設備的Loopback地址段,必須使用與現網環境相同的地址;而AS號碼,也需要和現網環境相同。
另外,在配置BGP的時候,由於每個AS內部設備較少,所以可以採用Full Mesh的方式建立iBGP鄰居,只要保證iBGP路由條目能夠傳遞到任何一個設備即可。
六、經驗總結
本次割接是需要在兩個網絡平面之間的4條鏈路上對路由進行優化和調整,所以除了需要熟悉網絡環境以外,對BGP選路的相關技術也要瞭如指掌纔可以。另外, BGP鄰居在同一個方向(import或export)只能掛載一個Route-policy,所以對於相同一段需要設置路徑屬性的前綴列表,只能是把多個路徑屬性設置在同一個Route-policy中,則這個時候就不要把路徑屬性設置衝突了。
另外,對於這種ASBR之間執行路由過濾和選路,按道理來說只需要在一邊ASBR上設置export屬性,接收那一邊就可以自動應用這個屬性,但是爲了保險起見呢,最要也在接收一邊的ASBR上同時import一下同樣的屬性。