控制BGP路由概述:
- BGP與IGP不同,其着跟點主要在於不同的AS之間控制路由的傳播和選擇最佳路由
- 通過修改BGP基本屬性可以實現基本的BGP路由控制和最佳路由的選擇
- 引入其他路由協議發現的路由時、發布或者接收路由信息時通過配置過濾器實現控制BGP路由
- 給從對等體接收的路由分配首選項值(Preferred-value)以影響選路
- 修改Local-Preference只是先選擇離開本地AS時的最佳路由
- 修改MED值實現選擇進入AS時的最佳路由
- 配置next-hop-local實現將自身地址作為下一跳
修改Preferred-value控制BGP路由實例(通過本地修改從某個鄰居學來的路由的優先級(EBGP或者IBGP))默認為0
[RT1-bgp]peer 13.1.1.3 preferred-value 100
Network NextHop MED LocPrf PrefVal Path/Ogn
* > 10.10.10.10/32 13.1.1.3 100 200i
通過修改MED值控制BGP路由實例:(修改發給EBGP鄰居時的MED值)默認為0 (進入AS時,走哪)
在R2和R3上修改MED,讓R1進入另一個域時,選擇哪個作為下一跳
Network NextHop MED LocPrf PrefVal Path/Ogn
* > 10.10.10.10/32 13.1.1.3 100 0 200i
通過配置Local_PREF控制BGP路由實例:(修改發給IBGP鄰居的優先級)默認為100,在EBGP之間此項為空 ibgp之間(離開AS時,走哪)
[RT2-bgp]default local-preference 100
[RT3-bgp]default local-preference 200
Network NextHop MED LocPrf PrefVal Path/Ogn
* >i 1.1.1.1/32 3.3.3.3 0 200 0 100i
* > 10.10.10.10/32 0.0.0.0 0 0 i
從EBGP鄰居學來的路由發給IBGP時,下一跳還是指向EBGP的接口,應使用此命令:
[RT2-bgp]peer 4.4.4.4 next-hop-local //發布路由時,將自身地址作為下一跳
從IBGP學來的路由傳給EBGP鄰居時,下一跳會修改。從反射器學來的路由,下一跳不會修改。
→配置Filter-policy實現對接收或者發布的路由過濾
→配置Route-policy不僅可以實現路由過濾還可以對符合規則的路由增加或者修改相關的屬性
→配置AS路徑訪問列表可以實現針對自治系統路徑域控制BGP路由
[RT2]ip ip-prefix 1 permit 10.10.10.10 32
[RT2-bgp]filter-policy ip-prefix 1 import
[RT2-bgp]filter-policy ip-prefix 1 export
*:星號表示匹配此前的字符或字符組0次或多次。如"zo*",可以匹配z以及zo、zoo等
+:表示匹配此前的字符或字符組一次或多次。如"zo+",可以匹配z0及zoo等,但不能匹配z
.:表示通配符,匹配任意字符,包括單個字符、特殊字符和空格。
_:下划線為通配符,表示匹配一個符號,如逗號、括號等,在表達式的開頭或者結尾時還可以作為起始符、結束符(同^、$)
- ^$:表示匹配的字符串為空,即AS_PATH為空,匹配本地路由
- .*:表示匹配任意字符,即as-path為任意,可以匹配所有路由
- ^100:表示匹配100開頭的字符串
- ^100_:表示匹配以"100"開始的字符串,即as-path的最左邊前三個字符為100。
- _100$:表示匹配結尾為"100"的字符串,即as-path最右邊的后三個字符為100。
- _100_:表示字符串中間有"100",即as-path可以匹配經過as100的路由
- ^100$:表示源自as100,中間不經過其他as的路由
ip community-filter 1 permit 1:1
ip community-filter 2 permit 1:1 1:2 (一條語句中的屬性是"且"的關系)
代表團體屬性中需要同時存在1:1 1:2團體的bgp路由,跟排列次序和數量無關
ip community-filter 3 permit 1:1
ip community-filter 3 permit 1:1 1:2
在同一個filter列表中存在多條語句,每條語句之間是"或"的關系,即匹配團體屬性中包含有1:1或者包含有1:1 1:2的BGP路由。