BFD multihop with Junos

Arzhel Younsi arzhel at younsi.org
Tue Mar 5 23:21:44 CET 2019


Hi,

I'm trying to setup BFD multihop session between Bird 1.6.3 and a Juniper MX router to fast failover eBGP multihop sessions.

I tried different configuration with no success, the current one is:
------------------------
protocol bfd {
    interface "*" {
        interval 300 ms;
        multiplier 3;
    };
    multihop {
        interval 300 ms;
        multiplier 3;
    };
}

protocol bgp {
    import none;
    multihop 2;
    export filter vips_filter;
    local 208.80.153.77 as 64605;
    neighbor 208.80.153.192 as 14907;
    bfd yes;
}
------------------------

And the Juniper side:
------------------------
type external;
multihop {
    ttl 2;
}
local-address 208.80.153.192;
import anycast_import;
family inet {
    unicast {
        prefix-limit {
            maximum 50;
            teardown;
        }
    }
}
export NONE;
peer-as 64605;
bfd-liveness-detection {
    minimum-interval 300;
}
multipath;
neighbor 208.80.153.77;
------------------------

The firewalls on both sides allow udp/4784 udp/3784 udp/3785 to/from each side.

The Bird's BFD state stays on Init, while Junos on Down.
------------------------
bird> show bfd sessions 
bfd1:
IP address                Interface  State      Since       Interval  Timeout
208.80.153.192            ---        Init       15:47:25      2.000    6.000
------------------------
cr1-codfw> show bfd session address 208.80.153.77 extensive 
                                                  Detect   Transmit
Address                  State     Interface      Time     Interval  Multiplier
208.80.153.77            Down                     0.000     1.000        3   
 Client BGP, TX interval 0.300, RX interval 0.300
 Local diagnostic None, remote diagnostic None
 Remote state AdminDown, version 1
 Replicated 
 Session type: Multi hop BFD
 Min async interval 0.300, min slow interval 1.000
 Adaptive async TX interval 2.000, RX interval 2.000
 Local min TX interval 2.000, minimum RX interval 0.300, multiplier 3
 Remote min TX interval 0.000, min RX interval 0.000, multiplier 0
 Local discriminator 3556, remote discriminator 0
 Echo mode disabled/inactive, no-absorb, no-refresh
 Multi-hop min-recv-TTL 254, route table 0, local-address 208.80.153.192
  Session ID: 0x4d954

1 sessions, 1 clients
Cumulative transmit rate 1.0 pps, cumulative receive rate 0.0 pps
------------------------

We can see that Bird does send and receive BFD control packets, from/to the proper IPs.
------------------------
dns2001:~$ sudo tcpdump -p -i eno1 "host 208.80.153.192"
16:11:23.585910 IP cr1-codfw.wikimedia.org.49152 > dns2001.wikimedia.org.4784: UDP, length 24
16:11:23.643194 IP dns2001.wikimedia.org.35807 > cr1-codfw.wikimedia.org.4784: UDP, length 24
------------------------
dns2001:~$ tailf /tmp/bird-debug.log 
2018-11-20 15:49:20 <TRACE> bfd1: Sending CTL to 208.80.153.192 [Init]
2018-11-20 15:49:20 <TRACE> bfd1: CTL received from 208.80.153.192 [Down C]
------------------------
Running "monitor traffic" on the proper Junos interface doesn't show any BFD, but I believe that's because it's offloaded to the hardware (not seen on the routing engine).

BGP on the other hand is properly established, so it's not a routing issue.

I have some more troubleshooting in our ticket https://phabricator.wikimedia.org/T209989

Any pointers on miss-configurations, items to verify or other troubleshooting commands are welcome.

Thank you.

-- 
Arzhel


More information about the Bird-users mailing list