BGP增强特性(华为设备)

路由衰减:

在这里插入图片描述
路由衰减(Route Dampening)用来解决路由不稳定的问题。多数情况下,BGP协议都应用于复杂的网络环境中,路由变化十分频繁。为了防止持续的路由振荡带来的不利影响,BGP使用路由衰减来抑制不稳定的路由。

BGP衰减使用惩罚值(Penalty Value)来衡量一条路由的稳定性,惩罚值越高则说明路由越不稳定。路由每发生一次振荡(路由从激活状态变为未激活状态,称为一次路由振荡),BGP便会给此路由增加一定的惩罚值(1000)。当惩罚值超过抑制阈值(Suppress Value)时,此路由被抑制,不加入到路由表中,也不再向其他BGP对等体发布更新报文。

被抑制的路由每经过一段时间,惩罚值便会减少一半,这个时间称为半衰期(Half-life)。当惩罚值降到再使用阈值(Reuse Value)时,此路由变为可用并被加入到路由表中,同时向其他BGP对等体发布更新报文。上文提到的惩罚值、抑制阈值和半衰期都可以手动配置。

路由衰减只适用于EBGP路由。对于从IBGP收来的路由不能进行衰减,因为IBGP路由经常含有本AS的路由,内部网络路由要求转发表尽可能一致,IGP快速收敛就是为了达到信息同步,转发一致。如果衰减对IBGP路由起作用,不同设备的衰减参数不一致时,会导致转发表不一致。
1.执行命令bgp as-number,进入BGP视图。

2.执行命令ipv4-family unicast,进入IPv4单播地址族视图。

3.配置BGP路由衰减参数。

配置EBGP路由衰减参数。
• 执行命令ipv4-family unicast,进入IPv4单播地址族视图。
• 执行命令dampening [ half-life-reach reuse suppress ceiling | route-policy route-policy-name ] * [ update-standard ],配置EBGP路由衰减参数。

配置IBGP路由衰减参数。
• 执行命令ipv4-family vpnv4,进入BGP-VPNv4地址族视图。
• 执行命令dampening ibgp [ half-life-reach reuse suppress ceiling | route-policy route-policy-name ] * [ update-standard ],配置IBGP路由衰减参数。

配置BGP路由衰减时,所指定的reuse、suppress、ceiling三个阈值是依次增大的,即必须满足:reuse<suppress<ceiling。
通过按策略区分路由,当dampening命令引用路由策略时,BGP可以对不同的路由采用不同的Dampening参数进行抑制处理。

例如:[R1-bgp]dampening 1 1000 2000 3000 //表示的是半衰期1分钟,使用阀值为1000,超过了2000就开始进行条目的抑制,惩罚值最多可以到3000不会继续增加,默认惩罚值一次动荡增加1000。 当条目因为震荡被抑制后,条目的标记会变成H:
在这里插入图片描述

BGP ORF特性:

在这里插入图片描述
BGP基于前缀的ORF能力,能将本端设备配置的基于前缀的入口策略通过路由刷新报文发送给BGP邻居。BGP邻居根据这些策略构造出口策略,在路由发送时对路由条目进行过滤(发送时过滤是最好的方式,减少带宽的浪费)。这样不仅避免了本端设备接收大量无用的路由,降低了本端设备的CPU使用率,还有效减少了BGP邻居的配置工作,降低了链路带宽的占用率。(只能通过前缀列表进行匹配)

拓扑描述:

  1. 直连EBGP邻居中,Client1、R1协商基于前缀的ORF 能力后,Client1将本地配置的基于前缀的入口策略打包到Route-refresh报文中发送给R1。R1根据接收到的路由刷新报文构造出口策略,通过Route-refresh报文发送路由给Client1。Client1只收到它需要的路由,而R1不必维护路由策略,减少了配置工作。
  2. Client1、Client2为RR的客户端,Client1与RR、Client2与RR,分别协商基于前缀的ORF 能力,Client1、Client2将本地配置的基于前缀的入口策略打包到Route-refresh 报文中发送给RR。RR 根据接收到的前缀信息构造出口策略,通过Route-refresh 报文将路由反射给Client1、Client2。Client1和Client2只收到需要的路由,RR不必维护路由策略,减少了配置工作。

配置:

  1. 执行命令bgp as-number,进入BGP视图。
  2. 执行命令ipv4-family unicast,进入IPv4单播地址族视图。
  3. 执行命令peer { group-name | ipv4-address } ip-prefix ip-prefix-name import,配置对等体/对等体组基于IP前缀列表的入口路由过滤策略。
  4. 执行命令peer { group-name | ipv4-address } capability-advertise orf [ non-standard-compatible ] ip-prefix { both | receive | send },配置BGP对等体(组)使能基于地址前缀的ORF功能。

实验:
在这里插入图片描述
目的:在R2配置,让R1值发送1.1.1.0/24和2.2.2.0/24的条目。

在R1上配置:
bgp 1
peer 10.1.1.2 as-number 2

ipv4-family unicast
undo synchronization
network 1.1.1.0 255.255.255.0
network 2.2.2.0 255.255.255.0
network 3.3.3.0 255.255.255.0
network 4.4.4.0 255.255.255.0
peer 10.1.1.2 enable
peer 10.1.1.2 capability-advertise orf ip-prefix receive //作为接收端

在R2上配置:
ip ip-prefix huawei index 10 deny 3.3.3.0 24 //拒绝对应条目
ip ip-prefix huawei index 20 deny 4.4.4.0 24
ip ip-prefix huawei index 30 permit 0.0.0.0 0 less-equal 32 //允许其他所有条目

bgp 2
peer 10.1.1.1 as-number 1

ipv4-family unicast
undo synchronization
peer 10.1.1.1 enable
peer 10.1.1.1 ip-prefix huawei import //首先需要在入方向调用前缀列表
peer 10.1.1.1 capability-advertise orf ip-prefix send //作为refresh报文的发送端

检测结果:
在这里插入图片描述
在这里插入图片描述
抓包中可以看到,R1发送报文中只有1.1.1.0/24和2.2.2.0/24了,并且R2的BGP路由中也只有对应的路由条目:
在这里插入图片描述
注意:配置了ORF后会重新建立邻居,不用refresh。

BGP同步:

在这里插入图片描述
目的:
为了保证IGP环境中依然能够传递BGP条目的流量,避免路由黑洞。

拓扑说明(在同步开启情况下):
R4通过BGP学习到R1宣告的10.0.0.0/24网络(从IBGP对等体学习到对应路由的时候)。R4在将该网络通告给R5之前,会首先检查自己的IGP路由表是否已经存在10.0.0.0/24网络。如果R4本地IGP路由表项存在10.0.0.0/24网络,则将该网络通告给R5;如果R4本地IGP路由表项不存在10.0.0.0/24网络,则不能将该网络通告给R5。如果想让R4的IGP表项由中存在10.0.0.0/24的路由条目,就需要将BGP重分发进入IGP这样让大量的条目进入IGP明显是不可取的。

当然,在华为VRP平台中,BGP的同步是默认关闭的,且不能够手动开启。那么常见解决BGP的路由黑洞问题有两种方法:

  1. 建立iBGP全互联连接,使每台路由器都能收到路由,保证AS内部的可达性。
  2. 使用MPLS VPN技术来解决,具体细节将在MPLS笔记进行讨论。

Active-Route-Advertise特性:

在这里插入图片描述

  1. 默认情况下路由只需在BGP中优选即可向邻居发布。配置了此特性之后,路由必须同时满足在BGP协议层面优选与在路由管理层面活跃两个条件,才能向邻居发布。
  2. 与命令bgp-rib-only(用来禁止BGP路由下发到IP路由表)互斥,因为一起配置的时候,所有条目不允许加表了,肯定都不会发送给对端了,就没有了意义。

配置:
[R1-bgp]active-route-advertise //进入进程中配置

BGP按组打包:

在这里插入图片描述

  1. 缺省情况下,BGP会针对不同邻居(即使出口策略相同)单独打包路由。
  2. 应用按组打包功能后,每条待发送路由只被打包一次然后发给组内的所有邻居,使打包效率成倍提升。(前提是发送给邻居的信息是相同的,就不用给每个邻居生成一个out方向的包了,统一生成一个即可)。

拓扑描述:
一个反射器有3个客户机,有10万条路由需要反射。如果按照每个邻居分别打包的方式,反射器RR在向3个客户机发送路由的时候,所有路由被打包的总次数是10万×3。而按组打包技术将这个过程变为10 万×1,性能相当于提升了3倍。

常见场景:
在这里插入图片描述
多个客户机的反射器典型组网图:
在这里插入图片描述

PE与多个IBGP邻居连接典型组网图:
在这里插入图片描述
实验:
在这里插入图片描述
R1和R2,R3建立IBGP邻居关系,R2,R3上正常配置,R1用打包的方式进行配置:

bgp 1
group huawei internal //创建内部组,适用于IBGP邻居
peer huawei connect-interface LoopBack0 //通过L0接口与huawei组的邻居建立关系
peer 10.1.1.2 as-number 1 //这条命令自动生成,IBGP邻居不要配置这条命令,因为和自己的AS号相同,如果是EBGP邻居就需要配置对方的AS号
peer 10.1.1.2 group huawei //将10.1.1.2这个邻居配置为huawei组中打包建立的邻居
peer 10.1.1.3 as-number 1
peer 10.1.1.3 group huawei //将10.1.1.3这个邻居配置为huawei组中打包建立的邻居

ipv4-family unicast
undo synchronization
peer huawei enable
peer huawei next-hop-local //huawei组中发送给所有成员的时候,下一跳为自己
peer 10.1.1.2 enable
peer 10.1.1.2 group huawei
peer 10.1.1.3 enable
peer 10.1.1.3 group huawei

在这里插入图片描述

4字节AS:

在这里插入图片描述
拓扑描述

  1. R2收到R1的一条四字节AS的路由,AS号码为10.1。
  2. R2与R3建立邻居,需要令R3认为R2的AS号为AS_TRANS。
  3. R2发送路由给R3的时候把AS_TRANS记录在AS_Path里面,把10.1与自己的AS号码20.1按照BGP要求的顺序记录在AS4_Path。
  4. R3对于不识别的属性AS4_Path不作处理依然保留,它只按照BGP的规则来发送路由给RD。当然它认为R4的AS号码也AS_TRANS。
  5. 这样当R4收到从R3来的路由会把AS_PATH中的AS_TRANS按照顺序替换为AS4_Path里所记录的相应的地址,在R4上把AS_PATH属性还原为30 20.1 10.1。

4字节AS号定义的角色:

  1. New Speaker:支持4字节AS号扩展能力的对等体。
  2. Old Speaker:不支持4字节AS号扩展能力的对等体。
  3. New Session:New Speaker之间建立的BGP连接。
  4. Old Session:New Speaker和Old Speaker之间或者Old Speaker之间建立的BGP连接。

协议扩展:

  1. 定义了2种新的可选过渡属性AS4_Path(属性码为0x11)和AS4_Aggregator属性(属性码为0x12)用于在Old Session上传递4字节AS信息。
  2. 如果New Speaker和Old Speaker建立连接,定义AS_TRANS(保留值为23456)用于衔接2字节AS和4字节AS。并且23456以后无法变回来。

新的AS号有三种写法:(华为支持asdot写法)

  1. splain:就是一个十进制的数字。
  2. asdot+:写成(2字节).(2字节)的形式,所以旧的2字节ASN123可以写成0.123,ASN65536是1.0;最大为65535.65535。
  3. asdot:旧的2字节写法照旧,新的4字节写成asdot+的形式。(1-65535;1.0-65535.65535)

按策略进行下一跳迭代:

在这里插入图片描述
BGP需要对非直连的下一跳进行路由迭代,但是如果不对迭代到的路由进行过滤的话,可能会迭代到一个错误的转发路径上。按策略进行下一跳迭代就是通过配置路由策略来限制迭代到的路由。如果路由不能通过路由策略,则该路由迭代失败。

拓扑描述:

  1. R1和R2、R3之间通过Loopback口建立IBGP邻居。R1从R2、R3分别收到了前缀为10.0.0.0/24的BGP路由。其中从R2收到的BGP路由的原始下一跳为2.2.2.2。另外,R1上Ethernet0/0/0的接口地址为2.2.2.100/24。
  2. 当R2正常运行时,R1收到从R2发来的前缀为10.0.0.0/24的路由会迭代到IGP路由2.2.2.2/32。但是当R2的IGP发生故障时,IGP路由2.2.2.2/32被撤销,这样就导致下一跳重新迭代。在R1上会用原始下一跳2.2.2.2在IP路由表中进行最长匹配迭代,结果会迭代到2.2.2.0/24的路由上。但此时用户期望的是,当到2.2.2.2的路由不可达时,可以重新选路优选到3.3.3.3的路由。实际上该故障主要是由于BGP收敛引起的,从而产生了路由的瞬时黑洞。
  3. 配置下一跳迭代策略,可以通过到BGP路由原始下一跳所依赖路由的掩码长度来过滤迭代路由。可以通过配置下一跳迭代策略,使到原始下一跳2.2.2.2只能依赖于2.2.2.2/32的IGP路由。

参考资料:华为hedex文档

猜你喜欢

转载自blog.csdn.net/tushanpeipei/article/details/112831791