2

i need to implement BFD on a IGP Link with dual-Stack OSPFv3 between an IOS-XE device (ASR903) and a Juniper MX480.

i'm running BFD for Dual-Stack OSPFv3 members on many links between IOS-XE and IOS-XE, but need to implement it to an Junos Device the first time.

Here is my configuration (Currently in a testing environment wir ASR920 and MX104):

IOS-XE:

interface GigabitEthernet0/0/4
 mtu 9000
 ip address 10.100.100.2 255.255.255.252
 ip mtu 1500
 media-type rj45
 speed 1000
 no negotiation auto
 ipv6 enable
 ipv6 mtu 1500
 ospfv3 1 ipv6 area 0
 ospfv3 1 ipv4 area 0
 bfd interval 1000 min_rx 1000 multiplier 5

router ospfv3 1
 router-id 10.100.100.2
 bfd all-interfaces
 !
 address-family ipv4 unicast
  area 0 range 10.100.100.0 255.255.255.252
 exit-address-family
 !
 address-family ipv6 unicast
 exit-address-family

JunOS:

aschaefer@IE1-FD1_re0# show 
instance-type virtual-router;
interface ge-0/1/0.0;
protocols {
    ospf3 {
        realm ipv4-unicast {
            area 0.0.0.0 {
                interface ge-0/1/0.0 {
                    bfd-liveness-detection {
                        minimum-receive-interval 1000;
                        multiplier 5;
                        transmit-interval {
                            minimum-interval 1000;
                        }
                    }
                }
            }
        }
        area 0.0.0.0 {
            interface ge-0/1/0.0 {
                bfd-liveness-detection {
                    minimum-receive-interval 1000;
                    multiplier 5;
                    transmit-interval {
                        minimum-interval 1000;
                    }
                }
            }
        }
    }
}

on the IOS XE Box, BFD for IPv6 neighbors is Up, but not between the IPv4 neighbors. i dont see any Rx BFD packets sent from the Juniper to the Cisco box.

PE3-FD1#sh bfd neighbors details 

IPv4 Sessions
NeighAddr                              LD/RD         RH/RS     State     Int
10.100.100.1                            2/0          Down      Down      Gi0/0/4
Session Host: Hardware
OurAddr: 10.100.100.2   
Handle: 2
Local Diag: 0, Demand mode: 0, Poll bit: 0
MinTxInt: 1000000, MinRxInt: 1000000, Multiplier: 5
Received MinRxInt: 0, Received Multiplier: 0
Holddown (hits): 0(0), Hello (hits): 1000(0)
Rx Count: 0 <<<<<<<<<<<<<<<<< No BFD from IPV4 neighbor
Tx Count: 1576
Elapsed time watermarks: 0 0 (last: 0)
Registered protocols: OSPFv3 CEF 
Last packet: Version: 1                  - Diagnostic: 0
             State bit: AdminDown        - Demand bit: 0
             Poll bit: 0                 - Final bit: 0
             C bit: 0                                   
             Multiplier: 0               - Length: 0
             My Discr.: 0                - Your Discr.: 0
             Min tx interval: 0          - Min rx interval: 0
             Min Echo interval: 0       

IPv6 Sessions
NeighAddr                              LD/RD         RH/RS     State     Int
FE80::6664:9BFF:FED0:18A9               1/19         Up        Up        Gi0/0/4
Session state is UP and not using echo function.
Session Host: Hardware
OurAddr: FE80::A66C:2AFF:FE24:5004              
Handle: 1
Local Diag: 0, Demand mode: 0, Poll bit: 0
MinTxInt: 1000000, MinRxInt: 1000000, Multiplier: 5
Received MinRxInt: 1000000, Received Multiplier: 5
Holddown (hits): 0(0), Hello (hits): 1000(0)
Rx Count: 1256
Tx Count: 1576
Elapsed time watermarks: 0 0 (last: 0)
Registered protocols: OSPFv3 CEF 
Uptime: 00:18:30
Last packet: Version: 1                  - Diagnostic: 0
             State bit: Up               - Demand bit: 0
             Poll bit: 0                 - Final bit: 0
             C bit: 0                                   
             Multiplier: 5               - Length: 24
             My Discr.: 19               - Your Discr.: 1
             Min tx interval: 1000000    - Min rx interval: 1000000
             Min Echo interval: 0       

on the JunOS Box is looks fine:

IE1-FD1_re0> show bfd session detail                    

                                                  Detect   Transmit
Address                  State     Interface      Time     Interval  Multiplier
fe80::a66c:2aff:fe24:5004 Up       ge-0/1/0.0     5.000     1.000        5   
 Client OSPF realm ipv6-unicast Area 0.0.0.0, TX interval 1.000, RX interval 1.000
 Client OSPF realm ipv4-unicast Area 0.0.0.0, TX interval 1.000, RX interval 1.000
 Session up time 00:23:25
 Local diagnostic None, remote diagnostic None
 Remote state Up, version 1
 Replicated 
 Session type: Single hop BFD

I think the problem is that JunOS and IOS-XE are handling BFD for OSPFv3 in two different ways. While IOS-XE is treating IPv4 and IPv6 as two different neighbors with establishing two seperate BFD sessions, Junos is handling BFD for IPv6 and IPv4 OSPF neighbors just "on top" of a single IPv6 BFD session (sorry for my broken english here)

Are there any recommendations how to configure this?

Best regards Andreas

1

the possible reason you provided seems reasonable.

as a troubleshooting step, you might try to remove BFD from this scenario entirely. while only OSPFv3 is configured, does the IOS-XE and JunOS devices establish a full adjacency? this would help confirm your theory,

  • IOS-XE has independent v4 and v6 sessions, and each carries separate reachability information (LSA)
  • Junos has single v6 session, carrying both v4 and v6 reachability information (LSA)

each NOS might implement OSPFv3 differently, whether ipv4 and ipv6 share a single topology or if there are independent topologies.

  • single topology makes sense if all links are dual-stack, result would be a single SPF calculation during link events and lower CPU load.
  • multiple topology makes sense if links are not dual-stack, which implies the forwarding path should be different in one stack. this means there is a SPF calc for each stack, and likely more CPU load.

one you determine which mode both NOS operate, then add BFD back. my initial guess would be multi-topology functionality might be the difference here.

  • Hi Mark, thanks for your answer. I Already made some additional tests that i think confirmes my theory. I created an ACL that blocks BFD control-frames over IPv6 (UDP/3785). The result: At the JunOS side the whole OSPFv3 Session with IPv6 and IPv6 address-families goes down triggered by BFD. At Cisco side only the IPv6 OSPFv3 adjacency goes down intermediately initiated by BFD, IPv4 neighborship goes down when the dead-timeout had been reached. The only solution i see here is to put IPv4 Topology to a OSPFv2 Process which is quite challengeing in a network with more than 60 Routers. – Andreas Schaefer Feb 3 at 15:31
  • If you have a support contract, I would inquire what is supported by each vendor. You seem to be hitting a issue due to difference in the vendor implementation, IMO – Mark Feb 4 at 17:24
  • I'm currently waiting for answers from both sides, i will keep you informed. – Andreas Schaefer Feb 4 at 20:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.