20、BGP存活时间和保持时间定时器配置
20.1、设置全局BGP存活时间和保持定时器间隔
[Huawei-bgp]timer keepalive 30 hold ?90
INTEGER<0, 3-65535> Value of Hold timer(seconds)
20.2、设置基于对等体(组)的keepalive发送间隔和保持时间
[Huawei-bgp]peer 1.1.1.2 timer keepalive 30 hold 90
电脑BGP的Keepalive消息用于维持BGP连接关系。
减小存活时间和保持时间,BGP可以更快速的检测到链路的故障,有利于BGP网络快速收敛。但是过短的保持时间会导致网络中的Keepalive消息会增多,使得设备的负担加重,并且会占用一定的网络带宽。
增大存活时间和保持时间,可以减轻设备负担和减少网络带宽的占用。但是过长的保持时间会导致网络中的Keepalive消息减少,使得BGP不能及时检测到链路状态的变化,不利于BGP网络快速收敛,还可能会造成流量损失。
BGP支持在全局或者单个对等体(组)配置存活时间和保持时间定时器。定时器生效的优先级单个对等体高于对等体组,对等体组高于全局。
改变定时器的值(执行timer或peer timer命令)会导致交换机之间的BGP Peer关系中断。
配置的保持时间需要大于20秒。如果保持时间小于20秒,可能会造成邻居会话的中断。
合理的最大Keepalive消息发送间隔为保持时间的三分之一。缺省情况下,存活时间为60秒,保持时间为180秒。
21、BGP更新报文定时器配置
[Huawei-bgp]peer 1.1.1.2 route-update-interval ?
INTEGER<0-600> Time in seconds
BGP协议不会定期更新路由表,当BGP路由发生变化时,会通过Update消息增量地更新路由表。
减小更新报文时间,BGP可以更快速的检测到路由变化,有利于BGP网络快速收敛。但是过短的更新报文时间会导致网络中的Update消息会增多,使得设备的负担加重,并且会占用一定的网络带宽。
增大更新报文时间,可以减轻设备负担和减少网络带宽的占用,避免不必要的路由震荡。但是过长的保持时间会导致网络中的Update消息减少,使得BGP不能及电脑时检测到路由的变化,不利于BGP网络快速收敛,还可能会造成流量损失。
缺省情况下,IBGP对等体的更新报文定时器为15秒,EBGP对等体的更新报文定时器为30秒。
22、EBGP连接快速复位配置
[Huawei-bgp]undo bgp-interface-sensitive # 去使能EBGP连接快速复位。EBGP连接快速复位功能缺省是使能的。
EBGP连接快速复位功能缺省情况下是使能的,目的是为了使BGP协议不必等待保持时间定时器超时,而立即快速响应接口故障,删除接口上的EBGP直连会话,便于BGP快速收敛。
但是如果EBGP连接所使用的接口状态反复变化,EBGP会话就会反复重建与删除,造成网络震荡。
这时,可以去使能EBGP连接快速复位功能。BGP协议会等待保持时间定时器超时,才会删除接口上的EBGP直连会话,这样就在一定程度上抑制了BGP网络震荡,同时在一定程度上节约了网络带宽。
EBGP连接快速复位功能只能快速响应接口故障,而不能快速响应接口故障恢复。接口故障恢复后,BGP协议依靠自身状态机机制来恢复会话。
该命令适用于EBGP连接所使用的接口状态不断变化的场合。如果接口状态恢复稳定,建议立即执行ebgp-interface-sensitive命令恢复缺省配置,使能EBGP连接快速复位功能。
23、BGP下一跳延迟响应配置
23.1、配置对紧急和非紧急迭代结果变更的延迟时间。
[Huawei-bgp]nexthop recursive-lookup delay ?
INTEGER<1-100> Specify the delay in responding to the next hop change, inseconds
<cr>
23.2配置对非紧急迭代结果变更的延迟时间。
[Huawei-bgp]nexthop recursive-lookup non-critical-event delay 20
如果不指定delay-time,则响应下一跳变化的延迟时间缺省为5秒。
这两个命令可以单独配置,也可以同时配置。当同时配置这两个命令时,nexthop recursive-lookup non-critical-event delay命令拥有较高优先级。
当同时配置nexthop recursive-lookup non-critical-event delay命令和nexthop recursive-lookup delay命令时,前者的延迟时间不能小于后者设置的延迟时间。
图1 BGP下一跳延时响应组网图
BGP下一跳延时响应可以加快BGP收敛速度,减少流量的丢失。
如上图1所示,PE1、PE2和PE3都是RR的客户机,CE2双归属PE1和PE2,PE1和PE2同时向RR发布到CE2的路由,RR优选PE1发布过来的路由再向PE3发布,PE3上只有一条到CE2的路由,并且把路由向CE1发布,实现CE1和CE2的通信。
未使能BGP下一跳延时响应时,如果PE1故障,PE3首先感知到下一跳不可达,向CE1发布撤销到达CE2的路由,这时流量中断。之后BGP收敛完成,RR优选PE2发布的路由,并且向PE3发布路由更新消息,PE3把路由发布给CE1,流量恢复正常,在这个过程中,BGP收敛比较慢,流量损失很大。
如果在PE3上使能BGP下一跳延时响应,PE3检测到PE1不可达时,暂时不进行选路,也不会向CE1发布撤销路由。在BGP收敛后,RR优选PE2发布的路由,并且发布给PE3,PE3再进行选路,并向CE1发布路由更新,此时流量收敛完成。
整个过程相比于未使能BGP下一跳延时响应时,PE3上减少了撤销路由的发送和PE3本地路由的删除这两个步骤,所以BGP收敛速度加快,流量损失减少。
BGP下一跳延时响应只适用于下游到达同一目的地有多个链路的场景。如果下游链路唯一,当链路故障时无法进行链路切换,那么此时配置BGP下一跳延时响应会造成更大流量损失。
下一跳迭代结果的变化可以划分为两类:
1、紧急迭代结果变更:
下一跳迭代结果发生变化的同时可达性也发生变化。例如,网络中出现网络故障,BGP路由无法找到可以迭代到的下一跳路由或隧道,从而导致流量中断。
2、非紧急迭代结果变更:
下一跳迭代结果发生变化,但可达性没有发生变化。例如,BGP路由下一跳迭代的隧道接口或隧道类型发生变化,即由迭代的隧道A变成了隧道B,但流量没有中断,仅承载的隧道发生变化。
24、EBGP路由振荡抑制配置
[Huawei-bgp-af-ipv4]dampening ?
INTEGER<1-45> Half-life time (in minutes) for the penalty when reachable
route-policy Routing policy to specify criteria for dampening
<cr>
路由振荡(Route flapping)指路由表中的某条路由反复消失和重现。
一般情况下,BGP都应用于复杂的网络环境中,路由变化十分频繁。而频繁的路由振荡会消耗大量的带宽资源和CPU资源,严重时会影响到网络的正常工作。
通过配置EBGP路由振荡抑制功能可防止持续路由振荡带来的不利影响。
BGP可以按策略区分路由,对不同的路由采用不同的Dampening参数进行抑制。例如,实际网络中,对掩码较长的路由设置较长的抑制时间,而对掩码较短的(例如8位掩码长度)路由,则采用相对较短的抑制时间。
25、BGP Tracking配置
[Huawei-bgp]peer 1.1.1. tracking ?
delay Delay time to reset the session
<cr>
[Huawei-bgp]peer 1.1.1. tracking delay ?
INTEGER<0-65535> Specify the delay to reset the session, in seconds
为了实现BGP快速收敛,可以通过配置BFD来探测邻居状态变化,但BFD需要全网部署,扩展性较差。在无法部署BFD检测邻居状态时,可以本地配置BGP Peer Tracking功能,快速感知链路不可达或者邻居不可达,实现网络的快速收敛。
通过部署BGP Tracking功能,调整从发现邻居不可达到中断连接的时间间隔,可以抑制路由震荡引发的BGP邻居关系震荡,提高BGP网络的稳定性。
26、BFD for BGP配置
26.1、为对等体(组)使能BFD功能
[Huawei-bgp]peer 3.3.3.3 bfd enable
执行命令peer { group-name | ipv4-address } bfd enable [ single-hop-prefer ],配置对等体或对等体组的BFD功能。single-hop-prefer参数仅对IBGP对等体生效。
缺省情况下,未配置single-hop-prefer参数,华为设备之间直连IBGP对等体为多跳会话。华为设备和默认IBGP为单跳会话的其他厂商设备对接时,需要配置single-hop-prefer参数来建立IBGP单跳会话。
如果在对等体组上配置了BFD特性,则属于该对等体组且没有使能peer bfd block的对等体都将创建BFD会话。
26.2、指定需要建立BFD会话的各个参数值
[Huawei-bgp]peer 3.3.3.3 bfd ?
block Clear BFD configuration # 阻止对等体从对等体组中继承BFD功能
detect-multiplier Specify the detect multiplier #本地检测时间倍数
enable Enable BFD
min-rx-interval Specify the minimum receive interval #接收检测报文的时间间隔
min-tx-interval Specify the minimum transmit interval #发送检测报文的时间间隔
wtr Wait for the BFD session to restore
BGP会话处于Established状态时,BFD会话才能够建立。
如果对等体上配置BFD参数,建立的BFD会话以对等体上的配置为准。
peer ipv4-address bfd block命令和peer ipv4-address bfd enable命令是两条互斥命令。
BGP协议通过周期性的向对等体发送Keepalive报文来实现邻居检测。但这种机制检测到故障所需时间比较长,超过1秒钟。
当数据达到吉比特速率级时,这么长的检测时间将导致大量数据丢失,无法满足电信级网络高可靠性的需求。
为了解决上述问题,BGP协议引入了BGP与BFD联动功能。BFD检测是毫秒级,可以在50ms内通报BGP对等体间链路的故障,因此能够提高BGP路由的收敛速度,保障链路快速切换,减少流量损失。
当对等体加入了对等体组,且这个对等体组使能了BFD特性,对等体将会继承该对等体组的BFD特性,创建BFD会话。
如果不希望对等体从对等体组继承BFD特性,可以配置peer bfd block命令,阻止对等体从对等体组中继承BFD功能。
默认情况下,华为设备之间IBGP为多跳会话。建议华为设备和默认IBGP为单跳会话的其他厂商设备对接时,只配置IGP与BFD联动会话或者只配置IBGP与BFD联动会话。
27、BGP GR配置
27.1、使能BGP协议的GR能力
[Huawei-bgp]graceful-restart
27.2、配置重启侧(Restarting Speaker)和接收侧(Receiving Speaker)等待End-of-RIB消息的时间。
[Huawei-bgp]graceful-restart timer wait-for-rib ?
INTEGER<3-3000> Value of Wait-For-EndofRIB timer(seconds, default value:600s)
27.3、配置设备以GR方式复位BGP连接
[Huawei-bgp]graceful-restart peer-reset
当BGP协议重启时会导致对等体关系重新建立和转发中断,使能平滑重启GR(Graceful Restart)功能后可以避免流量中断。
28、BGP路由聚合配置
28.1、设置对本地引入的路由进行自动聚合,只对import-route命令引入的路由生效,对network引入的路由不生效。聚合后BGP只向对等体发送聚合后的路由
[Huawei-bgp-af-ipv4]summary automatic
该命令对BGP引入的路由进行聚合,引入的路由可以是直连路由、静态路由、RIP路由、OSPF路由、IS-IS路由。但该命令对network命令引入的路由无效。
28.2、设置手动路由聚合
[Huawei-bgp-af-ipv4]aggregate 10.155.0.0 16 ?
as-set Generate the route with AS-SET path-attribute # 创建as-set的聚合路由,用于检测环路
attribute-policy Set aggregation attributes # 聚合路由的属性
detail-suppressed Filter more detail route from updates # 只发布聚合路由
origin-policy Filter the originate routes of the aggregate # 只将通过路由策略的路由生成聚合路由
suppress-policy Filter more detail route from updates through a Routing policy # 只发布聚合路由和通过路由策略的被聚合的路由
<cr>
手动聚合对BGP本地路由表中已经存在的路由表项有效,例如BGP路由表中不存在10.1.1.1/24等掩码长度大于16的路由,即使配置了命令aggregate 10.1.1.1 16,BGP也不会生成聚合路由。
29、BGP向对等体发送缺省路由配置
[Huawei-bgp-af-ipv4]peer 1 default-route-advertise route-policy 1 ?
conditional-route-match-all Conditionally advertise default-route if all routes match
conditional-route-match-any Conditionally advertise default-route if any route match
<cr>
IPv4组播地址族视图和IPv6地址族视图下,不支持使用conditional-route-match-all和conditional-route-match-any参数。
当对等体的BGP路由表中的多条路由都只是由本端发送时,可以在本端配置向对等体发送缺省路由功能。配置向对等体发送缺省路由功能后,无论本端的路由表中是否存在缺省路由,都向对等体发布一条下一跳地址为本地地址的缺省路由,从而很大程度地减少网络路由数量,节省对等体的内存资源与网络资源。
30、MP-BGP配置
[Huawei-bgp]ipv4-family ?
mdt 指定MDT地址族
multicast 指定多播地址族
mvpn 指定MVPN地址族
unicast 指定单播地址族
vpn-instance 指定VPN实例
vpn-target 指定VPN-Target地址族
vpnv4 指定VPNv4地址族
不同的扩展应在各自的地址族视图下配置,其他公用的BGP功能在BGP视图下配置。
部分BGP4+功能在BGP视图下即可完成配置,而另一部分BGP4+的功能需要进入IPv6单播地址族视图才能配置。
配置BGP4+时需要进入IPv6单播地址族视图的功能有:负载分担、BGP路由聚合中的手动路由聚合、路由衰减、团体、简化IBGP网络连接中的路由反射器。
31、BGP复位连接配置
<Huawei>reset bgp ?
INTEGER<1-65535> 对等体的自治系统号(2字节)
STRING<3-11> 对等体的自治系统号(4字节 number<1-65535>.number<0-65535>)
X.X.X.X 指定IPv4形式的对等体地址
all 所有BGP协议会话
电脑dampening 路由震荡抑制信息
external EBGP协议对等体
flap-info 清除路由震荡历史信息
group 属于对等体组的会话
internal IBGP协议对等体
ipv4 指定IPv4单播地址族
ipv6 指定IPv6单播地址族
l2vpn 指定L2VPN地址族
l2vpn-ad 指定L2VPN自动发现地址族
mdt 指定MDT地址族
multicast 指定IPv4多播地址族
mvpn 指定MVPN地址族
vpls 指定VPLS地址族
vpn-instance 指定VPN实例
vpn-target 指定VPN-Target地址族
vpnv4 指定VPNv4地址族
vpnv6 指定VPNv6地址族
复位BGP连接(执行命令reset bgp)会导致交换机之间的BGP Peer关系中断。务必仔细确认是否必须执行命令复位BGP连接的操作。
当BGP路由策略(交换机不支持Router Refresh)发生变化后,需要通过复位BGP连接使新的配置生效。
电脑