目录
路由快速收敛
TCP连接重传定时器
Keepalive定时器
Update定时器
EBGP连接快速复位
BGP下一跳延迟响应
BGP路由震荡抑制
BGP路由控制
正则表达式
Community Filter
匹配Community的两种方式
Community Filter配置命令
AS_Path Filter
BGP通过TCP建立三次握手时会使用到TCP连接重传定时器;缺省的TCP重传定时器为32s
如果TCP连接建立失败,则会在TCP连接重传定时器超时后重新尝试建立连接
如果TCP连接建立成功,则会关闭TCP连接重传定时器
TCP连接重传定时器的大小对BGP连接建立的影响
定时器较小,可以减小下次连接的建立时间,加快连接失败后的重建速度
定时器较大,可以减少由于邻居反复震荡引起的路由震荡
配置TCP连接定时器
华为设备配置
BGP视图下
bgp 100
timer connect-retry 10 配置全局TCP连接重传定时器为10s(对所有对等体生效
peer 1.1.1.1 timer connect-retrt 10 针对对等体或对等体组单独配置
Keepalive定时器主要包含两种
Keepalive发送间隔(缺省60s)
Keepalive老化时间(缺省3倍的发送间隔,180s)
BGP的keepalive消息可以用来维持BGP连接关系
通过调整keepalive定时器,可以改变BGP的存活时间(Keepalive发送间隔)和BGP邻居的保持时间(Keepalive老化时间)
BGP邻居建立成功后每存活一段时间就需要发送Keepalive消息来维持BGP邻居关系
BGP邻居如果在Keepalive老化时间结束后未收到Keepalive报文,则邻居失效;在老化时间结束前会一直保持邻居关系
Keepalive定时器的大小对BGP的影响
如果减少keepalive发送间隔和老化时间,bgp能够快速的检测到链路故障,加快收敛;但是过短的发送间隔和老化时间会导致网络中的keepalive消息增多,增加设备负担
如果增打keepalive发送间隔和老化时间,bgp能够减轻设备负担;但是过长的发送间隔和老化时间使得BGP无法及时检测到链路状态的变化
如果对等体两端的Keepalive定时器不同,如何选举
老化时间取双方最小值
发送间隔为 协商的老化时间/3 与 本地配置的发送间隔最比较,取最小的为发送间隔
配置Keepalive定时器
华为设备配置
BGP视图下
bgp 100
timer keepalive 30 hold 90 配置全局keepalive发送间隔为30s,老化时间为90s(对所有对等体生效)
peer 1.1.1.1 timer keepalive 30 hold 90 针对对等体或对等体组单独配置
当BGP路由发生变化时,会发送Update消息更新路由表
当BGP路由没有发生变化时,会每隔一段时间定期发送Update消息(IBGP对等体为15秒,EBGP对等体为30s)
Update定时器的大小对BGP的影响
减小Update更新报文时间,bgp能够更快速的检测到路由变化,加快bgp网络收敛。
增大Update更新报文时间,可以减轻设备负担和减少网络带宽的占用,避免不必要的路由振荡
配置Update定时器
华为设备配置
针对对等体或对等体组单独配置
peer 1.1.1.1 timer route-update-interval 10 配置Update更新报文间隔为10s
当bgp接口故障时,如果收不到对等体发来的keepalive报文,则需要等待keepalive老化时间结束后才会进行网络收敛
此时可以通过配置EBGP连接快速复位,使得BGP协议不再等待Keepalive老化时间,立即响应接口故障,删除接口上的EBGP直连会话,加快网络收敛
如果EBGP连接所使用的接口震荡,则可以关闭EBGP连接快速复位,避免BGP网络震荡
配置EBGP连接快速复位
华为设备配置
bgp
ebgp-interface-sensitive 使能EBGP连接快速复位(缺省使能)
下一跳响应只适用于设备去往同一目的地址有多条路径的场景
当设备检测到去往目的地的的下一跳A不可达时,可以通过配置BGP下一跳延迟响应来延迟撤销路由
即发现下一跳不可达后,先不撤销下一跳为A的路由,先等待延迟,让网络先收敛,学习到通过下一跳为B的路由后,再撤销下一跳为A的路由
此操作可以减少流量损失
配置BGP下一跳延迟响应
华为设备配置
bgp
nexthop recursive-lookup delay 10 配置BGP下一跳延迟响应时间为10s
当路由表中的某条路由反复消失和重现,会造成路由震荡,消耗设备资源
通过配置BGP路由震荡抑制来方式路由震荡带来的不利影响
配置BGP路由震荡抑制--惩罚值越高,路由越不稳定
华为设备配置
dampening [ ibgp ] half-life-reach reuse suppress ceiling
ibgp: 只对BGP的Vpnv4路由生效(默认只对EBGP生效)
half-life-reach:可达路由的半衰期
每经过一个half-life-reach时间,路由的惩罚值会被减半(单位为分钟)
reuse:路由解除抑制状态的阈值
当路由的惩罚值减少到reuse或小于reuse时,路由被重新使用
suppress:路由进入抑制状态的阈值
路由每震荡一次,惩罚值会加一定的值(华为是加1000),当惩罚值超过阈值时会进入抑制状态(不会通告给对等体,不加入到路由表,不会进行数据转发)
如果此路由进入抑制前的报文是Update报文,打上d标签(当惩罚值降到解除抑制的阈值时,路由重新使用)
如果此路有进入抑制前的报文时撤销报文,打上h标签(当惩罚值降到0时删除此路由)
ceiling:路由惩罚上限值
当一个路由的惩罚值超过此上限值,则路由被丢弃
华为设备配置举例:在BGP地址族下配置
dampening ibgp 10 200 300 5000
路由半衰期为10min
路由解除抑制阈值200
路由进入抑制阈值300
路由最大阈值5000
BGP路由控制一般通过路由策略来实现,通过修改BGP路由属性来实现BGP的路由控制
BGP通过路由匹配工具匹配特定路由,再通过路由策略工具对路由的发布和接收进行控制,修改对应的路由属性
对于BGP而言,路由匹配工具有ACL、IP Prefix List、AS_Path Filter、Community Filter
路由策略工具有:Filter-Policy 和 Route-Policy
路由控制1——基本概念-CSDN博客
BGP——基本概念2(路由属性)-CSDN博客
正则表达式就是按照一定的模板来匹配字符串的公式,由普通字符和特殊字符组成
在BGP中应用正则表达式一般用来匹配AS号或者团体属性的团体号
Community Filter团队属性过滤器,用来与Community属性配合使用控制路由
Communoty是可选过渡属性,不是报文必须携带的属性,需要自己来定义Community属性
匹配Community的两种方式
基本Community Filter:匹配团体号或公认Community
高级Community Filter:使用正则表达式匹配团体号
Community Filter配置命令
华为设备配置
先针对路由设置团体属性
在路由策略中设置路由的Community属性值
apply community [团体号 | aa:nn | 公认属性]
在BGP视图下,设置将团体属性发布给对等体(缺省不发布给对等体)
peer [ip-address] advertise-community
配置Community Filter
创建基本的Community Filter
ip community-filter basic [name | number] [permit | deny] [团体号 | aa:nn | 公认属性]
Name|number:过滤器的名字或编号(1~99)
创建高级的Community Filter
ip community-filter advanced [name | number] [permit | deny] [正则表达式]
name|number:过滤器的名字或编号(100~199)
在路由策略中应用Community Filter
if-match community-filter [basic-num | name] [whole-match]
if-match community-filter [adv-num]
whole-match:表示完全匹配,即所有的团体都必须出现(只对基本团体过滤器生效)
basic-num:基本团体属性过滤器号
name:团体过滤属性名称(基本和高级)
adv-num:高级团体属性过滤器号
在向对等体发送路由时引用此路由策略
peer [ip-address] route-policy [name] [export | import]
import:对从此对等体接收的路由进行过滤
export:对向此对等体发送的路由进行过滤
AS_Path Filter AS路径过滤器,与AS_Path属性配合使用控制路由
AS_Path属性时BGP公认必遵属性,所有的BGP路由都必须携带,不需要我们再去定义,只需要通过匹配工具匹配就可以
华为设备配置命令
系统视图下创建AS_Path Filter
ip as-path-filter [number | name] [deny | permit] [正则表达式]
number:指定AS路径过滤属性的AS号(1~256)
name:指定AS路径过滤属性的名称
默认AS路径过滤属性的动作为拒绝
应用AS_Path Filter两种方式
1、直接在指定对等体的时候应用AS_Path属性
peer [ip-address] as-path-filer [import | export]
2、通过路由策略调用,然后应用在对等体中
在路由策略中应用AS_Path Filter
if-match as-path-filter [number-name]
在BGP视图下应用路由策略
peer [ip-address] route-policy [name] [export | import]