After the BGP stage, every iBGP session on both providers is “Established” and carries zero prefixes. This stage adds BFD to every IGP adjacency on both providers except the two toward the route reflectors, and IPv6 fast reroute where the image has it. The IPv4 LFA from the LDP and Segment Routing stages stays as it is.
This is B-P1’s IPv6 BFD table once the stage is applied:
RP/0/RP0/CPU0:B-P1#show bfd ipv6 session
Wed Sep 23 13:13:57.453 UTC
Interface Dest Addr
Local det time(int*mult) State
H/W NPU Echo Async
------------------- --------------- ---------------- ---------------- ----------
Gi0/0/0/0 fe80::e00:87ff:fe4f:4801
No n/a 0s(0s*0) 15s(5s*3) UP
Gi0/0/0/6 fe80::e00:50ff:fe18:d605
No n/a 0s(0s*0) 15s(5s*3) UP
Gi0/0/0/5 fe80::e00:3ff:fec5:fb01
No n/a 0s(0s*0) 15s(5s*3) UP
Gi0/0/0/3 fe80::e00:eff:fe83:aa01
No n/a 0s(0s*0) 15s(5s*3) UP
Gi0/0/0/2 fe80::e00:b3ff:fe6f:9f01
No n/a 0s(0s*0) 15s(5s*3) UP
Gi0/0/0/1 fe80::e00:12ff:fe3c:401
No n/a 0s(0s*0) 15s(5s*3) UP
Six sessions, one per IS-IS neighbor. Gi0/0/0/4 is absent because it faces B-RR, which carries no BFD in this stage.
Topology file: topology.clab.yml · Addressing: ipam.md · Stage configs, 14 nodes across both providers: stage_configs/lab01-s4-convergence/
Where BFD Attaches
On IOS-XE the timers sit on the interface and the binding sits under the routing process. Every SP-A transit interface carries bfd interval 500 min_rx 500 multiplier 3 and no bfd echo. OSPFv2 and OSPFv3 are two processes, so bfd all-interfaces goes under router ospf 1 and again under router ospfv3 1. A-P1’s Gi6 faces A-RR and is excluded with ip ospf bfd disable and ospfv3 bfd disable. This is A-P1, one transit interface, Gi6 and the two processes:
interface GigabitEthernet2
bfd interval 500 min_rx 500 multiplier 3
no bfd echo
!
interface GigabitEthernet6
ip ospf bfd disable
ospfv3 bfd disable
!
router ospf 1
bfd all-interfaces
!
router ospfv3 1
bfd all-interfaces
!
On the SP-B IOS-XE nodes, the same interface timers are bound under router isis, and IS-IS binds BFD per topology. The process-level line arms the IPv4 topology; the IPv6 topology takes its own line under address-family ipv6:
router isis
bfd all-interfaces
address-family ipv6
bfd all-interfaces
exit-address-family
!
IOS-XR binds BFD per interface under the IS-IS process and per address family: bfd fast-detect ipv4 and bfd fast-detect ipv6 are two commands. The timers on the XRv9k nodes are bfd minimum-interval 5000 and bfd multiplier 3. The IPv6 fast reroute is the per-interface form the Segment Routing stage used for IPv4, under address-family ipv6 unicast. This is B-P1’s Gi0/0/0/0, toward B-P2:
router isis 1
interface GigabitEthernet0/0/0/0
bfd minimum-interval 5000
bfd multiplier 3
bfd fast-detect ipv4
bfd fast-detect ipv6
address-family ipv6 unicast
fast-reroute per-prefix
fast-reroute per-prefix ti-lfa
!
!
Gi0/0/0/4 faces B-RR and carries the fast-reroute lines with no BFD:
interface GigabitEthernet0/0/0/4
address-family ipv6 unicast
fast-reroute per-prefix
fast-reroute per-prefix ti-lfa
!
!
Both blocks above are one interface out of seven; the full file is B-P1.ios. A-RR and B-RR get no configuration in this stage.
SP-A: One Session per Process
A-P1 has five transit links and Gi6 toward the reflector. In the output below, it shows five active IPv4 and five IPv6 sessions:
A-P1#show bfd neighbors
IPv4 Sessions
NeighAddr LD/RD RH/RS State Int
10.1.1.2 4097/4097 Up Up Gi2
10.1.1.14 4099/4097 Up Up Gi4
10.1.1.18 4098/4097 Up Up Gi3
10.1.1.22 2/4097 Up Up Gi5
10.1.1.42 4100/4097 Up Up Gi7
IPv6 Sessions
NeighAddr LD/RD RH/RS State Int
FE80::E00:4CFF:FE61:8401 6/4 Up Up Gi3
FE80::E00:58FF:FE3D:FC01 8/2 Up Up Gi5
FE80::E00:6BFF:FE4D:EA01 5/4 Up Up Gi4
FE80::E00:7DFF:FE23:D01 7/3 Up Up Gi2
FE80::E00:ABFF:FE81:4401 3/2 Up Up Gi7
Each OSPF process reports its own session on each neighbor:
A-P1#show ip ospf neighbor detail | include BFD
BFD enabled, BFD session UP
BFD enabled, BFD session UP
BFD enabled, BFD session UP
BFD enabled, BFD session UP
BFD enabled, BFD session UP
A-P1#show ospfv3 neighbor detail | include BFD
BFD enabled, BFD session UP
BFD enabled, BFD session UP
BFD enabled, BFD session UP
BFD enabled, BFD session UP
BFD enabled, BFD session UP
The BFD configuration was applied to the OSPF processes and the related interfaces, so it didn’t affect the previously configured BGP:
A-PE1#show bgp all summary
For address family: VPNv4 Unicast
BGP router identifier 10.1.0.5, local AS number 64501
BGP table version is 1, main routing table version 1
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.1.0.7 4 64501 3499 3860 1 0 0 2d10h 0
For address family: VPNv6 Unicast
BGP router identifier 10.1.0.5, local AS number 64501
BGP table version is 1, main routing table version 1
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.1.0.7 4 64501 3499 3860 1 0 0 2d10h 0
A-PE1#
SP-B: IS-IS BFD per Topology
The IPv4 sessions sit on the same six interfaces:
RP/0/RP0/CPU0:B-P1#show bfd session
Thu Jun 18 13:23:55.602 UTC
Interface Dest Addr Local det time(int*mult) State
Echo Async H/W NPU
------------------- --------------- ---------------- ---------------- ----------
Gi0/0/0/0 10.2.1.2 0s(0s*0) 15s(5s*3) UP
No n/a
Gi0/0/0/6 10.2.1.50 0s(0s*0) 15s(5s*3) UP
No n/a
Gi0/0/0/5 10.2.1.42 0s(0s*0) 15s(5s*3) UP
No n/a
Gi0/0/0/3 10.2.1.22 0s(0s*0) 15s(5s*3) UP
No n/a
Gi0/0/0/2 10.2.1.14 0s(0s*0) 15s(5s*3) UP
No n/a
Gi0/0/0/1 10.2.1.18 0s(0s*0) 15s(5s*3) UP
No n/a
B-RR is still an IS-IS neighbor on Gi0/0/0/4:
B-RR Gi0/0/0/4 *PtoP* Up 28 L2 Capable
Area Address(es): 49.0001
IPv4 Address(es): 10.2.1.38*
IPv6 Address(es): fe80::a8c1:abff:fe23:8410*
Topologies: 'IPv4 Unicast' 'IPv6 Unicast'
Uptime: 23:22:29
On the IOS-XE side, show clns is-neighbors detail names the topology each BFD session is bound to. B-P2, with three adjacencies:
B-P2#show clns is-neighbors detail | include BFD
BFD enabled: (MTID:0, ipv4) (MTID:2, ipv6)
BFD enabled: (MTID:0, ipv4) (MTID:2, ipv6)
BFD enabled: (MTID:0, ipv4) (MTID:2, ipv6)
MTID:0 is the IPv4 unicast topology and MTID:2 the IPv6 one. B-ASBR’s unfiltered output shows the same pair on each of its two adjacencies, under the Topology: IPv4, IPv6 line the adjacency itself carries:
B-ASBR#show clns is-neighbors detail
Tag null:
System Id Interface State Type Priority Circuit Id Format
B-P1 Gi2 Up L2 0 00 Phase V
Area Address(es): 49.0001
IP Address(es): 10.2.1.41*
IPv6 Address(es): FE80::E00:31FF:FE21:2606
Uptime: 1w0d
NSF capable
BFD enabled: (MTID:0, ipv4) (MTID:2, ipv6)
Topology: IPv4, IPv6
Interface name: GigabitEthernet2
B-P4 Gi3 Up L2 0 00 Phase V
Area Address(es): 49.0001
IP Address(es): 10.2.1.45*
IPv6 Address(es): FE80::E00:25FF:FEC1:8E04
Uptime: 1w0d
NSF capable
BFD enabled: (MTID:0, ipv4) (MTID:2, ipv6)
Topology: IPv4, IPv6
Interface name: GigabitEthernet3
The IOS-XE session tables hold both families. B-P2 again:
B-P2#show bfd neighbors
IPv4 Sessions
NeighAddr LD/RD RH/RS State Int
10.2.1.1 2/2148532227 Up Up Gi2
10.2.1.6 1/1 Up Up Gi3
10.2.1.26 3/2148532225 Up Up Gi4
IPv6 Sessions
NeighAddr LD/RD RH/RS State Int
FE80::E00:38FF:FEC8:BD01 7/2148532228 Up Up Gi2
FE80::E00:A0FF:FEDA:C102 8/6 Up Up Gi3
FE80::E00:E9FF:FE9D:9702 9/2148532226 Up Up Gi4
B-PE1 has two IS-IS adjacencies and B-PE2 three:
RP/0/RP0/CPU0:B-PE1#show bfd ipv6 session
Wed Sep 23 13:28:41.636 UTC
Interface Dest Addr
Local det time(int*mult) State
H/W NPU Echo Async
------------------- --------------- ---------------- ---------------- ----------
Gi0/0/0/0 fe80::e00:4aff:fee8:4204
No n/a 0s(0s*0) 15s(5s*3) UP
Gi0/0/0/1 fe80::e00:7dff:feae:ed03
No n/a 0s(0s*0) 15s(5s*3) UP
RP/0/RP0/CPU0:B-PE2#show bfd ipv6 session
Wed Sep 23 13:28:49.413 UTC
Interface Dest Addr
Local det time(int*mult) State
H/W NPU Echo Async
------------------- --------------- ---------------- ---------------- ----------
Gi0/0/0/0 fe80::e00:dff:fe49:d804
No n/a 0s(0s*0) 15s(5s*3) UP
Gi0/0/0/4 fe80::e00:1bff:febd:b907
No n/a 0s(0s*0) 15s(5s*3) UP
Gi0/0/0/1 fe80::e00:b6ff:fe7a:cf03
No n/a 0s(0s*0) 15s(5s*3) UP
The lab was redeployed a couple of times while this stage was configured and the outputs collected, so the IPv6 link-local addresses differ between captures.
Timers: 500 ms on XE, 5 s on XR
The IOS-XE interfaces run 500 ms x 3 and the XRv9k nodes 5000 ms x 3. Every session shows 15s(5s*3), including IOS-XE devices. BFD negotiates to the slower of the two ends, so the XR timer sets detection in both directions.
IPv6 Fast Reroute on the XR Nodes
B-PE1 and B-PE2 have two uplinks each and protect all seven IPv6 loopbacks:
RP/0/RP0/CPU0:B-PE1#show isis ipv6 fast-reroute summary
Thu Jun 18 13:29:14.399 UTC
IS-IS 1 IPv6 Unicast FRR summary
Critical High Medium Low Total
Priority Priority Priority Priority
Prefixes reachable in L2
All paths protected 0 0 7 0 7
Some paths protected 0 0 0 0 0
Unprotected 0 0 0 0 0
Protection coverage 0.00% 0.00% 100.00% 0.00% 100.00%
B-P1 protects six of seven for IPv6, the same 85.71% as for IPv4:
RP/0/RP0/CPU0:B-P1#show isis ipv4 fast-reroute summary
Thu Jun 18 13:24:13.564 UTC
IS-IS 1 IPv4 Unicast FRR summary
Critical High Medium Low Total
Priority Priority Priority Priority
Prefixes reachable in L2
All paths protected 0 0 6 0 6
Some paths protected 0 0 0 0 0
Unprotected 0 0 1 0 1
Protection coverage 0.00% 0.00% 85.71% 0.00% 85.71%
RP/0/RP0/CPU0:B-P1#show isis ipv6 fast-reroute summary
Thu Jun 18 13:24:18.416 UTC
IS-IS 1 IPv6 Unicast FRR summary
Critical High Medium Low Total
Priority Priority Priority Priority
Prefixes reachable in L2
All paths protected 0 0 6 0 6
Some paths protected 0 0 0 0 0
Unprotected 0 0 1 0 1
Protection coverage 0.00% 0.00% 85.71% 0.00% 85.71%
The unprotected prefix is B-RR’s loopback, reachable over one link, as in the Segment Routing stage. The detail for B-PE2’s loopback shows the repair path:
RP/0/RP0/CPU0:B-P1#show isis ipv6 fast-reroute 2001:db8:2::6/128 detail
Thu Jun 18 13:24:29.784 UTC
L2 2001:db8:2::6/128 [10/115] Label: None, medium priority
Installed Jun 17 15:05:33.898 for 22:18:56
via fe80::e00:faff:fe13:ee05, GigabitEthernet0/0/0/6, B-PE2, SRGB Base: 16000, Weight: 0
Backup path: LFA, via fe80::e00:2cff:fe6e:e901, GigabitEthernet0/0/0/2, B-P4, SRGB Base: 16000, Weight: 0, Metric: 20
P: No, TM: 20, LC: No, NP: No, D: No, SRLG: Yes
src B-PE2.00-00, 2001:db8:2::6
The primary is the direct link on Gi0/0/0/6 and the backup is a plain LFA through B-P4 on Gi0/0/0/2 at metric 20. Label: None: the IPv6 address family has no prefix-SID in this lab, so the repair path is an IPv6 next-hop with no label.
On my IOS-XE version, the parser rejects the IPv6 fast-reroute show commands. A-P1:
A-P1#show ospfv3 ipv6 fast-reroute
^
% Invalid input detected at '^' marker.
B-P2’s IS-IS summary has one section, IPv4, and the IPv6 form of the command is rejected:
B-P2#show isis fast-reroute summary
Microloop Avoidance State: Disabled
Segment-Routing Microloop Avoidance State: Disabled
IPv4 Fast-Reroute Protection Summary:
Prefix Counts: Total Protected Coverage
High priority: 0 0 0%
Normal priority: 7 7 100%
Total: 7 7 100%
B-P2#
B-P2#
B-P2#show isis ipv6 fast-reroute summary
% Ambiguous command: "show isis ipv6 fast-reroute summary "
B-P2 and B-ASBR still report 7 of 7 for IPv4, and A-P1’s show ip ospf fast-reroute still lists the policy from the LDP stage.
The Route Reflectors
A-RR and B-RR run the XRd control-plane image, so in my case it doesn’t support BFD:
RP/0/RP0/CPU0:A-RR#show bfd session
Thu Jun 18 13:22:16.723 UTC
RP/0/RP0/CPU0:A-RR#show ospf neigh
Thu Jun 18 13:22:20.673 UTC
* Indicates MADJ interface
# Indicates Neighbor awaiting BFD session up
Neighbors for OSPF 1
Neighbor ID Pri State Dead Time Address Interface
10.1.0.1 1 FULL/ - 00:00:32 10.1.1.37 GigabitEthernet0/0/0/0
Neighbor is up for 7w4d
B-RR behaves the same way.
Verification
The commands behind this post, as run:
A-P1#show bfd neighbors
A-P1#show ip ospf neighbor detail | include BFD
A-P1#show ospfv3 neighbor detail | include BFD
A-P1#show ospfv3 ipv6 fast-reroute
A-PE1#show bgp all summary
RP/0/RP0/CPU0:A-RR#show bfd session
RP/0/RP0/CPU0:B-P1#show bfd session
RP/0/RP0/CPU0:B-P1#show bfd ipv6 session
RP/0/RP0/CPU0:B-P1#show isis ipv6 fast-reroute summary
RP/0/RP0/CPU0:B-P1#show isis ipv6 fast-reroute 2001:db8:2::6/128 detail
B-P2#show clns is-neighbors detail | include BFD
B-P2#show isis fast-reroute summary
B-P2#show isis ipv6 fast-reroute summary
B-ASBR#show clns is-neighbors detail
What’s Next
The next stage is the L3VPN: VRFs on the PEs, PE-CE routing and the first VPN prefixes through the reflectors.
Leave a comment