• BGP高级特性——BGP路由控制


    目录

    路由快速收敛

    TCP连接重传定时器

    Keepalive定时器

    Update定时器

    EBGP连接快速复位

    BGP下一跳延迟响应

    BGP路由震荡抑制

    BGP路由控制

    正则表达式

    Community Filter

    匹配Community的两种方式

    Community Filter配置命令

    AS_Path Filter


    路由快速收敛

    TCP连接重传定时器

    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定时器主要包含两种

    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 针对对等体或对等体组单独配置

    Update定时器

    当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

    EBGP连接快速复位

    当bgp接口故障时,如果收不到对等体发来的keepalive报文,则需要等待keepalive老化时间结束后才会进行网络收敛

    此时可以通过配置EBGP连接快速复位,使得BGP协议不再等待Keepalive老化时间,立即响应接口故障,删除接口上的EBGP直连会话,加快网络收敛

    如果EBGP连接所使用的接口震荡,则可以关闭EBGP连接快速复位,避免BGP网络震荡

    配置EBGP连接快速复位

    华为设备配置

    bgp

    ebgp-interface-sensitive  使能EBGP连接快速复位(缺省使能)

    BGP下一跳延迟响应

    下一跳响应只适用于设备去往同一目的地址有多条路径的场景

    当设备检测到去往目的地的的下一跳A不可达时,可以通过配置BGP下一跳延迟响应来延迟撤销路由

    即发现下一跳不可达后,先不撤销下一跳为A的路由,先等待延迟,让网络先收敛,学习到通过下一跳为B的路由后,再撤销下一跳为A的路由

    此操作可以减少流量损失

    配置BGP下一跳延迟响应

    华为设备配置

    bgp

    nexthop recursive-lookup delay 10 配置BGP下一跳延迟响应时间为10s


    BGP路由震荡抑制

    当路由表中的某条路由反复消失和重现,会造成路由震荡,消耗设备资源

    通过配置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通过路由匹配工具匹配特定路由,再通过路由策略工具对路由的发布和接收进行控制,修改对应的路由属性

    对于BGP而言,路由匹配工具有ACL、IP Prefix List、AS_Path Filter、Community Filter

    路由策略工具有:Filter-Policy 和 Route-Policy

    路由控制1——基本概念-CSDN博客

    BGP——基本概念2(路由属性)-CSDN博客

    正则表达式

    正则表达式就是按照一定的模板来匹配字符串的公式,由普通字符和特殊字符组成

    在BGP中应用正则表达式一般用来匹配AS号或者团体属性的团体号

    Community Filter

    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_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]

  • 相关阅读:
    JavaWeb综合案例(黑马程序员2021年JavaWeb课程总结,所有功能均实现,包含数据库sql文件)
    Golang 错误追踪与调试
    table展示子集踩坑
    【Stream】
    前端代码评审规则
    5 Tensorflow图像识别(下)模型构建
    dom的基础
    教你轻松使用Fastjson
    持续集成部署-k8s-配置与存储-配置管理:ConfigMap
    excel怎么批量提取指定网站内容-免费指定网站提取导出excel软件
  • 原文地址:https://blog.csdn.net/m0_49864110/article/details/127583577