Post

Default BFD timer mismatch: Arista EOS and FortiGate

When configuring BFD between platforms, matching timer values matters — mismatched defaults directly affect failure detection time.

ParameterArista EOSFortinet FortiOS
Min TX300ms250ms
Min RX300ms250ms
Detection Multiplier33
Detection Time900ms750ms

BFD negotiates the actual transmit interval to the higher of each side’s Min TX and the peer’s Min RX. Between EOS and a FortiGate with default settings, both sides converge on 300ms — FortiOS does not achieve the 750ms detection time it would see peering with another FortiGate. Detection time on both sides ends up at 900ms.

FortiGate

BFD can be enabled globally, but I think a best practice is to enable features like this as needed, so per interface and then per neighbor within a routing protocol. To configure it per-interface:

1
2
3
4
5
6
7
8
config system interface
    edit "port1"
        set bfd enable
        set bfd-desired-min-tx 300
        set bfd-required-min-rx 300
        set bfd-detect-mult 3
    next
end

Then BFD is enabled on the BGP neighbor:

1
2
3
4
5
6
7
config router bgp
    config neighbor
        edit "10.10.0.1"
            set bfd enable
        next
    end
end

Arista EOS

BFD timers are configured globally under router bfd:

These are the default values:

1
2
router bfd
   interval 300 min-rx 300 multiplier 3

BFD is then enabled per-neighbor within BGP, or within a peer group.

1
2
3
4
5
6
router bgp <ASN>
   neighbor 10.10.0.2 bfd
   !
   neighbor peer group FORTIGATE
   neighbor peer group FORTIGATE bfd
   neighbor 10.10.2.2 peer group FORTIGATE

Verification

FortiGate:

1
get router info bfd neighbor detail

A healthy session shows state: Up. Confirm the negotiated interval is 300ms if it has been adjusted as above.

You can get a summary view without detail.

Arista EOS:

1
show bfd peers detail

A healthy session shows State: Up. The Tx interval field confirms the negotiated transmit interval; it should read 300ms with the aligned configuration above.

As with FortiOS, you can get a summary view without detail.

This post is licensed under CC BY 4.0 by the author.