BGP peering doesn't come up

root@vyos:/home/vyos# tcpdump -nni any port 179
tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]… for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
^C
0 packets captured
1 packet received by filter
0 packets dropped by kernel

between vyos and cisco, there are a fire wall but it let the traffic pass,
I used the multihop command, as you know ebgp ttl is 1 by default, so even if I don’t use the loopback for BGP peering, I had to configure it. 2 interface isn’t in same subnet.
I really don’t know what is missing in configuration.

from the neighbor ebgp-multihop Command Reference (Usage Guidelines) :

To prevent the creation of loops through oscillating routes, the multihop will not be established if the only route to the multihop peer is the default route (0.0.0.0).

You should make sure you have a SPECIFIC route to the peer on each side. Just trusting to the default route will NOT work - I’m sure that FRR works the same way, so probably both BGP speakers are saying “can’t get there from here” even though you can ping it.

2 Likes

Definitely this is a network issue and not a vyos for sure since the packets are not even being received for processing. May be reverse engineering would help? Like capturing packets at every other hops and so on. Even if the packets are lets say dropped by Vyos with iptables you should at lease see the packets

Thanks! after I made a static route to cisco router, bgp peering is up !

2 Likes

He must have used interface-route like

set protocols static interface-route 169.254.21.1/32 next-hop-interface vti2
1 Like

BGP won’t come up if the route to the peer is default route. It has to be specific.

1 Like