issue with next hop using freebsd loopback?

Benoit Chesneau benoitc at enki-multimedia.eu
Fri Jun 16 12:35:38 CEST 2023


Sorry for the cross posting. Just wanted to update there. But I'm not sure it's an issue with freebsd or bird there. I think Freebsd behaves normally there. 

Why the loopback address can't be used as the next hop there if a route exists? 
------- Original Message -------
On Friday, June 16th, 2023 at 12:23, Benoit Chesneau <benoitc at enki-multimedia.eu> wrote:


> After doing more testing onf Freebsd 13.2 , bird 2.13:
> 
> When 1.1.1.1/31 and 1.1.1.2/31 are set on the vlan interface, bird correctly announce them as the next hop.
> 
> However when 1.1.1.1/32 and 1.1.1.2/32 are set on the loopback interface of each instances then the local ip address of the vlan is used.
> 
> However when 1.1.1.1/31 and 1.1.1.2/31 are set on the loopback interface of each instances then nothing happen. On each nodes 1.1.1.1/31 and 1.1.1.2/31 resolve to the loopback interface instead of the remote node.
> 
> 
> Is the behaviour expected ?
> 
> 
> Benoît
> ------- Original Message -------
> On Friday, June 16th, 2023 at 09:49, Benoit Chesneau benoitc at enki-multimedia.eu wrote:
> 
> 
> 
> > I first posted this issue on the freebsd ml but it's probably more an issue to post there.
> > 
> > I have the loopbacks `1.1.1.1` and `1.1.1.2` of 2 nodes distributed using OSPF:
> > `filter ospfexport { if (source = RTS_DEVICE) then accept; reject; } protocol ospf v2 { tick 2; ipv4 { import all; export filter ospfexport; }; area 0 { stub no; interface "vlan1", "vlan2" { type ptp; cost 5; }; interface "lo1" { stub; }; }; }`
> > 
> > `1.1.1.1` is set on the loopback:
> > 
> > ```# ifconfig lo1lo1: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
> > 
> > options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
> > 
> > inet6 ::1 prefixlen 128
> > inet6 fe80::1%lo1 prefixlen 64 scopeid 0x9
> > inet 1.1.1.1 netmask 0xffffffff
> > groups: lo
> > nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
> > 
> > # birdc show route for 1.1.1.1BIRD 2.13 ready.
> > Table master4:
> > 1.1.1.1/32 unicast [ospf1 15:56:43.054] ! I (150/0) [1.1.1.1]
> > dev lo1
> > `The distribution works OK and I can ping each others:`
> > # route -n get 1.1.1.2 route to: 1.1.1.2
> > destination: 1.1.1.2
> > gateway: 10.3.1.1
> > fib: 0
> > interface: vlan2212
> > flags: <UP,GATEWAY,HOST,DONE,PROTO1>
> > 
> > recvpipe sendpipe ssthresh rtt,msec mtu weight expire
> > 0 0 0 0 9000 1 0
> > `But the IP of the loopback can't be used as BGP next hop in the following configuration:` protocol bgp rr_par_ipv4 { local 1.1.1.1 as 65001;
> > neighbor 1.1.1.1.2 as 65001;
> > default bgp_local_pref 40;
> > rr client;
> > ipv4 {
> > import all;
> > export all;
> > next hop self;
> > };
> > };
> > ``The source IP used as next hop is not 1.1.1.1 but the IP `10.3.1.2` of vlan1 used for the connection between 2 nodes:``
> > # ifconfig vlan1vlan2212: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 9000
> > 
> > options=680703<RXCSUM,TXCSUM,TSO4,TSO6,LRO,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
> > 
> > ether 50:65:f3:8b:98:71
> > inet 10.3.1.2 netmask 0xffffff00 broadcast 10.3.1.255
> > inet6 fe80::5265:f3ff:fe8b:9871%vlan2212 prefixlen 64 scopeid 0xd
> > groups: vlan
> > vlan: 20 vlanproto: 802.1q vlanpcp: 0 parent interface: mlxen0
> > media: Ethernet autoselect (40Gbase-CR4 <full-duplex,rxpause,txpause>)
> > 
> > status: active
> > nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
> > 
> > ``**Even if I force the next hop address (using `next hop address`) it still take the IP of the vlan. What's wrong?***``
> > $ bird --versionBIRD version 2.13
> > $ uname -nmr
> > myhostname 13.2-RELEASE amd64
> > ```
> > 
> > Benoît



More information about the Bird-users mailing list