CONFIG prefix-list正則表達式
router(config)#ip prefix-list list-name seq permit/deny network/len ge/leredis
prefix-list 原本是爲BGP設計的。能夠匹配路由條目的網絡地址部分和掩碼部分算法
ip prefix-list NAME permit 172.16.0.0/22 ge 24 le 24網絡
/22 : 前綴22bit相同的
負載均衡
ge24:掩碼範圍最小24位
ide
le24:掩碼範圍最大24位
oop
當沒有ge,掩碼範圍最小和前綴相同
性能
當有ge,沒有le時,le=32
ui
當沒有ge,le。ge與le都跟前綴相同
spa
ip prefix-list A permit 0.0.0.0/0 ge 32 //全部主機路由
ip prefix-list B permit 128.0.0.0/2 ge16 //全部B類子網
ip prefix-list C permit 0.0.0.0/0 le 32 //全部路由
ip prefix-list D permit 0.0.0.0/0 //默認路由
ip prefix-list E permit 0.0.0.0/1 le 24 //A類的不超過24位的子網
IP prefix-list A permit 10.0.0.0/8 le32 //A類私網地址
IP prefix-list B permit 172.16.0.0/12 le32 //B類私網地址
ip prefix-list C permit 192.168.0.0/16 le32 //C類私網地址
###############################################################
outbound route filtering ORF
做用:
- 用來減小沒必要要的BGP流量和CPU的佔用
- 路由器吧入方向的過濾配置交換給鄰居路由器在出方向作
- ORF的報文被封裝在route refresh ,在open報文中協商
當AS1有100條路由,而AS2只須要10條,此時,AS2能夠配置ORF,filter-list給AS1 ,AS1就只給AS2所須要的10條
配置:nei x.x.x.x capability orf prefix-list send/receive/both
router bgp 100
address-family ipv4 unicast
nei 172.16.1.2 remot 200
nei 172.16.1.2 ebgp-multihop
nei 172.16.1.2 capability orf prefix-list send
ip prefix-list FILTER seq 10 permit 192.168.1.10/24
show 鄰居 show ip bgp nei x.x.x.x //能夠看到capabilities
實驗
如圖。AS200配置聯邦,R2R3=AS2000. R4=AS300
R5 開啓3個loopback 5.1.1.1; 5.1.1.2; 5.1.1.1.3
需求。AS100只須要5.1.1.1的路由
R1:
ip prefix-list test deny 5.1.1.2/31 le32
ip prefix-list test permit 0.0.0.0/0 ge 32
router bgp 100
nei 12.1.1.2 prefix-list test in
sho ip bgp //就只能看到5.1.1.1的路由
R2:
sho ip bgp neighbor 12.1.1.1 advertised-routes //查看R2傳給R1的路由
能夠看到3條5.1.1.x的路由都傳了
R1:
router bgp 100
nei 12.1.1.2 capability orf prefix-list both
R2:
router bgp 2000
nei 12.1.1.1 capability orf prefix-list both
sho ip bgp nei 12.1.1.1 ad //可看到只傳一條路由給R1
思科的ORF類型只支持prefix-list
###############################################################
ASpath-list 過濾
◆本地配置 as-path access-list
router(config)#
ip as-path access-list number permit/deny regexp
◆鄰居配置filter-list
rotuer(config-router)#
neighbor ip-address filter-list as-path-filter in/out
使用正則表達式匹配
| :表示或,|兩端任意匹配一個
[ ] : 表示範圍內的一個,[1234] [1-4]
. : 表示任意一個字符 [1-3].[34]---213 和 3空格3
^ : 表示一個字符串的起始
$ : 表示一個字符串的結束
_ : 表示任意一個定界符(不能表明數字)
():表示一個組合,組合的結果再參與到大的表達式中
\ :是轉意字符,即還原後面字符中特殊符號的原有含義
* :零個或多個
?:零個活一個
+ :一個活多個
實例: _100$ //起源於AS100的
^100_ //從鄰居AS100過來的
^100$ //起源於AS100,且從鄰居AS100過來的
_100_ //起源於AS100的
從鄰居AS100過來的
穿過AS100的
^[0-9]+$ //任何起源於鄰居AS的
^$ //起源於本AS的
.* //全部
^([0-9]+)(_\1)*4 //以任何數值標記的AS號以及重複出現的
◆能夠在show 裏配合正則表達式,只看本身想要的
例如:show ip bgp regexp ^$ //只看本地的路由
show ip bgp regexp ^100$ //只看起源於且鄰居是100的路由
show ip bgp regexp _300$ //只看起源於300的路由
上圖,控制R1只收AS200的路由
R1:ip as-path access-list 1 permit ^200$
router bgp 100
nei 12.1.1.2 filter-list 1 in
###############################################################
route-map
過濾處理順序:
入站 過濾列表(filter-list/AS-path) 路由映射 分佈列表/前綴列表(prefix-list)
出站 分佈列表/前綴 由ORF接收到的前綴列表 過濾列表 路由映射
##############################################################
policy list
能夠用route-map去調用一個policy list
在一個大型的ISP網絡中,可預先配置一些policy list,而後在不一樣route-map裏調用
無需重複的配置相同的route-map的匹配項
減小了重複的策略定義
例如:針對一個鄰居只能使用一個route-map
因此當對多個鄰居使用route-map時,就要寫過個重複策略的route-map
只用route-map時
route-map test permit 10
match as-path 1
match ip address prefix-list 1
match community 1
route-map test permit 1000
route-map test-2 permit 10
match as-path 1
match ip add prefix-list 1
match commuinty 1
而使用policy list 就能夠簡化配置
ip policy-list test permit
match as-path 1
match ip add pre 1
match community 1
route-map test
match policy-listy 1
rotue-map test-2
match policy-list 1
##############################################################
限制接收BGP條目
router(config-router)#
neighbor ip-address maxinum-prefix maximum [threshold] [warning-only] [restart restart-interval]
threshold :超過閥值 默認75% 彈出log
warning-only:警告
restart :超限down鄰居後的恢復時間
R1:
router bgp 100
nei 12.1.1.2 maximum-prefix 10 //限制從鄰居12.1.1.2收到最多10條路由
###############################################################
改良BGP收斂
鄰居路由更新時間默認:
30 second for EBGP neighbor
5 second for IBGP neighbor
###############################################################
BGP peer group
用於減小BGP對路由器性能的佔用
針對不一樣鄰居的相同策略定義一個模板:
單指的一些參數可優先於peer-group
配置步驟:
router bgp 100
neighbor peer-group-name peer-group //建立一個組
neighbor peer-group-name 參數 //定義模板裏的參數
neighbor ip-address peer-group peer-group-name //定義哪些鄰居屬於該組
show ip bgp peer-group //查看
###############################################################
BGP route dampening懲罰
指在減小路由條目的不穩定對路由器的影響
防止持續的路由震盪,而不會影響其餘正常的路由
減小BGP更新的數量
經過抑制不穩定的路由最小化的減小BGP進程處理的數量
- 每一次EBGP路由的flap, 都會給1000點的懲罰值
- 懲罰值安裝指數衰減算法
- 當懲罰值超過抑制限制,路由就被抑制
- 一條抑制的路由當懲罰值小於限制時,從新被傳遞
- 當懲罰值低於一半的從新加載值時將被清除
- 一條路由被抑制的時候不會超過最大懲罰值(60分鐘)
- 一條不可達的路由將會以H的狀態顯示在BGP表
- 針對某個鄰居過來的路徑生效而不是這條路徑自己
- half-life 15 minutes
- suppress 2000
- reuse 750
- max-suppress-time 60 minutes(4Xhalf-life)
- per-flap penalty 1000 (non configure)
一次震盪:發出一條路由,又收回來
發生震盪會記錄,每次記錄會懲罰一個值;每隔15分會減半(半衰期);懲罰門限;隨着半衰期逐漸減小直至到正常,重用門限值
配置:
router bgp 200
bgp dampening
clear ip bgp x.x.x.x flap-statistics //清零flap
clear ip bgp dampening //清除懲罰
sho ip bgp dampening //查看被懲罰的路由
###############################################################
◆客戶與ISP之間如何部署
靜態路由
BGP是惟一的動態路由
◆單線單宿主使用靜態路由(客戶端)
用戶用缺省路由指向運營商
用戶路由被運營商的BGP承載,而不是IGP,所以須要把客戶的靜態路由重分佈到BGP
客戶小的地址快不該宣告到其餘AS(能夠用community控制傳播範圍)
實例 :客戶-----------------------------------------------------------ISP
ip route 0.0.0.0 0.0.0.0 s 0 ip route 11.2.3.0 255.255.255.0 s 0
router ospr 1 router bgp 387
default-information originate redistribute static [rotue map]
- 識別每種可能的提供給客戶服務組合,包括QOS要求
- 針對每類的QOS組合設置一個標記
- 運營商對每一個客戶的靜態路由配置一個合適的tag
- 用route-map 重分佈靜態路由進BGP
- 配置route-map 去匹配tag,而後設置一個BGP community或其餘屬性
用戶只有單個link鏈接到Internet
用戶有多個link鏈接到同一個運營商,而且鏈路或者設備失效可以被檢測到
其餘環境都使用BGP
◆雙線單宿主使用靜態路由
較之單線但宿主,多了冗餘、負載均衡的技術
上圖是雙線客戶的配置,其中默認路由最好加track配置