配置BFD for BGP4+功能示例
当BGP4+对等体之间的链路发生故障时,BFD能够快速检测到故障并通告给BGP4+,使业务流量使用备份链路传送。
组网需求
如图11-7,DeviceA属于AS100,DeviceB和DeviceC属于AS200,DeviceA和DeviceB、DeviceA和DeviceC分别建立EBGP连接。
业务流量在主链路DeviceA→DeviceB上传送,链路DeviceA→DeviceC→DeviceB作为备份链路。
使用BFD检测DeviceA和DeviceB之间的BGP邻居关系,当DeviceA和DeviceB之间的链路发生故障时,BFD能够快速检测到故障并通告给BGP协议,使业务流量使用备份链路传送。
配置思路
采用如下思路配置BFD for BGP4+功能:
在各路由器上配置BGP4+基本功能。
在DeviceA和DeviceB上配置MED属性控制路由的选路功能,使流量在主链路DeviceA到DeviceB上传输。
在DeviceA和DeviceB上使能BFD检测机制。
数据准备
为完成此配置例,需准备如下的数据:
DeviceA、DeviceB和DeviceC的Router ID和所在AS号。
BFD检测的对端IPv6地址。
BFD控制报文的最小发送间隔、最小接收间隔、本地检测倍数。
操作步骤
- 配置各路由器接口的IPv6地址(略)
- 配置BGP4+基本功能,在DeviceA和DeviceB,DeviceA和DeviceC之间建立EBGP连接,DeviceB和DeviceC之间建立IBGP连接。
# 配置DeviceA。
[~DeviceA] bgp 100
[*DeviceA-bgp] router-id 1.1.1.1
[*DeviceA-bgp] peer 2001:db8:8::2 as-number 200
[*DeviceA-bgp] peer 2001:db8:10::2 as-number 200
[*DeviceA-bgp] ipv6-family unicast
[*DeviceA-bgp-af-ipv6] peer 2001:db8:8::2 enable
[*DeviceA-bgp-af-ipv6] peer 2001:db8:10::2 enable
[*DeviceA-bgp-af-ipv6] commit
[~DeviceA-bgp-af-ipv6] quit
[~DeviceA-bgp] quit
# 配置DeviceB。
[~DeviceB] bgp 200
[*DeviceB-bgp] router-id 2.2.2.2
[*DeviceB-bgp] peer 2001:db8:8::1 as-number 100
[*DeviceB-bgp] peer 2001:db8:9::1:2 as-number 200
[*DeviceB-bgp] ipv6-family unicast
[*DeviceB-bgp-af-ipv6] peer 2001:db8:8::1 enable
[*DeviceB-bgp-af-ipv6] peer 2001:db8:9::1:2 enable
[*DeviceB-bgp-af-ipv6] network 2001:db8:7::1 64
[*DeviceB-bgp-af-ipv6] commit
[~DeviceB-bgp-af-ipv6] quit
[~DeviceB-bgp] quit
# 配置DeviceC。
[~Devicec] bgp 200
[*Devicec-bgp] router-id 3.3.3.3
[*Devicec-bgp] peer 2001:db8:10::1 as-number 100
[*Devicec-bgp] peer 2001:db8:9::1:1 as-number 200
[*DeviceC-bgp] ipv6-family unicast
[*DeviceC-bgp-af-ipv6] peer 2001:db8:10::1 enable
[*DeviceC-bgp-af-ipv6] peer 2001:db8:9::1:1 enable
[*DeviceC-bgp-af-ipv6] commit
[~DeviceC-bgp-af-ipv6] quit
[~DeviceC-bgp] quit
# 在DeviceA上查看,BGP邻居已经建立(Established)。
<DeviceA> display bgp ipv6 peer
BGP local router ID : 1.1.1.1 Local AS number : 100 Total number of peers : 2 Peers in established state : 2 Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv 2001:db8:8::2 4 200 12 11 0 00:07:26 Established 0 2001:db8:10::2 4 200 12 12 0 00:07:21 Established 0
- 配置MED属性
通过策略配置DeviceB和DeviceC发送给DeviceA的MED值。
# 配置DeviceB。
[~DeviceB] route-policy 10 permit node 10
[*DeviceB-route-policy] apply cost 100
[*DeviceB-route-policy] quit
[*DeviceB] bgp 200
[*DeviceB-bgp] ipv6-family unicast
[*DeviceB-bgp-af-ipv6] peer 2001:db8:8::1 route-policy 10 export
[*DeviceB-bgp-af-ipv6] quit
[*DeviceB-bgp] quit
[*DeviceB] commit
# 配置DeviceC。
[~DeviceC] route-policy 10 permit node 10
[*DeviceC-route-policy] apply cost 150
[*DeviceC-route-policy] quit
[*DeviceC] bgp 200
[*DeviceC-bgp] ipv6-family unicast
[*DeviceC-bgp-af-ipv6] peer 2001:db8:10::1 route-policy 10 export
[*DeviceC-bgp-af-ipv6] quit
[*DeviceC-bgp] quit
[*DeviceC] commit
# 查看DeviceA上BGP的所有路由信息。
<DeviceA> display bgp ipv6 routing-table
BGP Local router ID is 1.1.1.1 Status codes: * - valid, > - best, d - damped, x - best external, a - add path, h - history, i - internal, s - suppressed, S - Stale Origin : i - IGP, e - EGP, ? - incomplete RPKI validation codes: V - valid, I - invalid, N - not-found Total Number of Routes: 2 *> Network : 2001:db8:7:: PrefixLen : 64 NextHop : 2001:db8:8::2 LocPrf : MED : 100 PrefVal : 0 Label : Path/Ogn : 200 i * NextHop : 2001:db8:10::2 LocPrf : MED : 150 PrefVal : 0 Label : Path/Ogn : 200 i
从BGP路由表可以看出,去往2001:db8:7::1/64的路由下一跳地址为2001:db8:8::2,流量在主链路DeviceA→DeviceB上传输。
- 配置BFD检测功能、发送和接收间隔、本地检测时间倍数。
# 在DeviceA上使能BFD功能,并指定最小发送和接收间隔为100ms,本地检测时间倍数为4。
[~DeviceA] bfd
[*DeviceA-bfd] quit
[*DeviceA] bgp 100
[*DeviceA-bgp] peer 2001:db8:8::2 bfd enable
[*DeviceA-bgp] peer 2001:db8:8::2 bfd min-tx-interval 100 min-rx-interval 100 detect-multiplier 4
[*DeviceA-bgp] quit
[*DeviceA] commit
# 在DeviceB上使能BFD功能,并指定最小发送和接收间隔为100ms,本地检测时间倍数为4。
[~DeviceB] bfd
[*DeviceB-bfd] quit
[*DeviceB] bgp 200
[*DeviceB-bgp] peer 2001:db8:8::1 bfd enable
[*DeviceB-bgp] peer 2001:db8:8::1 bfd min-tx-interval 100 min-rx-interval 100 detect-multiplier 4
[*DeviceB-bgp] commit
# 在DeviceA上显示BGP建立的所有BFD会话。
<DeviceA> display bgp ipv6 bfd session all
-------------------------------------------------------------------------------- Local_Address : 2001:db8:8::1 Peer_Address : 2001:db8:8::2 Tx-interval(ms): 100 Rx-interval(ms): 100 Multiplier : 4 Interface : GigabitEthernet0/1/0 Session-State : Up --------------------------------------------------------------------------------
- 查看配置结果
# 对DeviceB的GE0/2/0接口执行shutdown命令,模拟主链路故障。
[~DeviceB] interface gigabitethernet 0/2/0
[~DeviceB-Gigabitethernet0/2/0] shutdown
# 在路由器DeviceA上,查看BGP路由表。
<DeviceA> display bgp ipv6 routing-table
Total Number of Routes: 1 BGP Local router ID is 1.1.1.1 Status codes: * - valid, > - best, d - damped, x - best external, a - add path, h - history, i - internal, s - suppressed, S - Stale Origin : i - IGP, e - EGP, ? - incomplete RPKI validation codes: V - valid, I - invalid, N - not-found *> Network : 2001:db8:7:: PrefixLen : 64 NextHop : 2001:db8:10::2 LocPrf : MED : 150 PrefVal : 0 Label : Path/Ogn : 200 i
从BGP路由表可以看出,在主链路失效后,备份链路DeviceA-DeviceC-DeviceB生效,去往2001:db8:7::1/64的路由下一跳地址为2001:db8:10::2。
配置文件
DeviceA的配置文件
# sysname DeviceA # ipv6 # bfd # interface GigabitEthernet0/1/0 undo shutdown ipv6 enable ipv6 address 2001:db8:8::1/64 # interface GigabitEthernet0/2/0 undo shutdown ipv6 enable ipv6 address 2001:db8:10::1/64 # interface NULL0 # interface LoopBack0 ip address 1.1.1.1 255.255.255.255 # bgp 100 router-id 1.1.1.1 peer 2001:db8:8::2 as-number 200 peer 2001:db8:8::2 bfd min-tx-interval 100 min-rx-interval 100 detect-multiplier 4 peer 2001:db8:8::2 bfd enable peer 2001:db8:10::2 as-number 200 # ipv4-family unicast undo synchronization # ipv6-family unicast undo synchronization peer 2001:db8:8::2 enable peer 2001:db8:10::2 enable # return
DeviceB的配置文件
# sysname DeviceB # ipv6 # bfd # interface interface GigabitEthernet0/2/0 undo shutdown ipv6 enable ipv6 address 2001:db8:8::2/64 # interface GigabitEthernet0/1/0 undo shutdown ipv6 enable ipv6 address 2001:db8:9::1:1/64 # interface GigabitEthernet0/3/0 undo shutdown ipv6 enable ipv6 address 2001:db8:7::1/64 # interface NULL0 # interface LoopBack0 ip address 2.2.2.2 255.255.255.255 # bgp 200 router-id 2.2.2.2 peer 2001:db8:8::1 as-number 100 peer 2001:db8:8::1 bfd min-tx-interval 100 min-rx-interval 100 detect-multiplier 4 peer 2001:db8:8::1 bfd enable peer 2001:db8:9::1:2 as-number 200 # ipv4-family unicast undo synchronization # ipv6-family unicast undo synchronization network 2001:db8:7:: 64 peer 2001:db8:8::1 enable peer 2001:db8:8::1 route-policy 10 export peer 2001:db8:9::1:2 enable # route-policy 10 permit node 10 apply cost 100 # return
DeviceC的配置文件
# sysname DeviceC # ipv6 # interface interface GigabitEthernet0/1/0 undo shutdown ipv6 enable ipv6 address 2001:db8:9::1:2/64 # interface interface GigabitEthernet0/2/0 undo shutdown ipv6 enable ipv6 address 2001:db8:10::2/64 # interface LoopBack0 ip address 3.3.3.3 255.255.255.255 # bgp 200 router-id 3.3.3.3 peer 2001:db8:9::1:1 as-number 200 peer 2001:db8:10::1 as-number 100 # ipv4-family unicast undo synchronization # ipv6-family unicast undo synchronization peer 2001:db8:9::1:1 enable peer 2001:db8:10::1 enable peer 2001:db8:10::1 route-policy 10 export # route-policy 10 permit node 10 apply cost 150 # return