How to configure src address for kernel routes installed by quagga?


I am trying to set up a clos fabric in combination with Ceph and stumbling over the following issue with quagga and installed kernel routes which quagga learned by BGP.

The interface config on hosts looks as follows:
auto eth0
iface eth0 address 192.168.10.21/24 auto dummy0 iface dummy0 address 10.10.100.21/32
I need to use dummy0 as loopback interface, because Ceph does not recognize configured addresses on lo, but if I do so, quagga installs the routes learned via BGP like this:
10.10.100.23 via 169.254.0.1 dev enp3s0d1 src 192.168.10.21
enp3s0d1 is one the machine's BGP interfaces. As a consequence of this the machine uses its ip address from eth0 to open connections to host 10.10.100.23, which results in routing problems.

If I would use lo as loopback interface instead of dummy0:
auto lo  iface lo     address 10.10.100.21/32
I'd get the following route entry:
10.10.100.23 via 169.254.0.1 dev enp3s0d1 src 10.10.100.21  
which would be the intended one, but as mentioned above this results in problems with Ceph.

It seems that dummy interfaces are the least preferred options when installing routes. If I remove eth0 from config, the route gets installed as intended, too, but removing eth0 permanently from configuration is no option, because this is the management interface of the machine.

Is there any way to configure this behaviour? I hope I was able to describe the issue understandably. Any help would really be appreciated.

Cheers,

Jan

0 replies

Be the first to reply!

Reply