Hoi,

On 4/5/24 15:23, Ondrej Zajicek wrote:
I have almost implemented 'extended next hop' for OSPFv3. But then i
pivoted to supporting properly IPv4 loopback nexthop [*]. Now i have
doubts about usefulness of 'extended next hop', as any IPv4 router needs
at one IPv4 address anyways (at least to be able to send ICMP messages)
and there is no need to put IPv4 addresses on links. Are there any good
arguments for it?
In VPP, an interface that does not have an ip4 address, will not allow for ip4 traffic to enter it. In other words, there must be an ip4 address on the interface before forwarding is turned on. I know how to change that behavior in VPP, but it's not a problem in practice, because we can set 'unnumbered' interface and borrow an IPv4 address from another interface, usually a loopback interface with a /32 ip4 and /128 ip6.

I think it'd be super cool to use OSPFv3 without IPv4 transit networks and just reusing the loopback addresses, like so:

root@vpp0-2:~# ip -br a
lo               UNKNOWN        127.0.0.1/8 ::1/128
loop0            UNKNOWN        192.168.10.2/32 2001:678:d78:200::2/128 fe80::dcad:ff:fe00:0/64 e0               UP             192.168.10.2/32 2001:678:d78:200::2/128 fe80::5054:ff:fef0:1120/64 e1               UP             192.168.10.2/32 2001:678:d78:200::2/128 fe80::5054:ff:fef0:1121/64
*
*However, up-thread (message of 2024-04-30, 16:04) I had that configuration, saw the LSAs but did not see Linux (nor VPP) pick up the routes. My suspicion is that your commit will be inert in this scenario, because e0 already has an IPv4 address, so loopback_addr_used will remain 0.

The good news is, I have two patches to VPP that may still allow for this to work, one of them inhibits the 'unnumbered' interface from propagating its address to e0, and the other allows an interface to respond to ARP requests that are onlink but p2p and in another subnet. in other words, the configuration would look like this:

root@vpp0-2:~# ip -br a
lo               UNKNOWN        127.0.0.1/8 ::1/128
loop0            UNKNOWN        192.168.10.2/32 2001:678:d78:200::2/128 fe80::dcad:ff:fe00:0/64
e0               UP              fe80::5054:ff:fef0:1120/64
e1               UP              fe80::5054:ff:fef0:1121/64

.. and here I think your use-loopback commit will be active.,
*
*Let me build Bird with your use-loopback commit <https://gitlab.nic.cz/labs/bird/-/commit/280daed57d061eb1ebc89013637c683fe23465e8>*and* VPP with my unnumbered-inhibit commit <https://github.com/pimvanpelt/lcpng/commit/a960d64a87849d312b32d9432ffb722672c14878> *and* VPP accepting onlink ARP request (pending gerrit <https://gerrit.fd.io/r/c/vpp/+/40482>). I will then check to see if VPP is happy to set the correct nexthop (both in Bird2, but also in the VPP FIB). I'll report back after the weekend but thank you very much for working on this (and/or the extended next hop feature).

groet,
Pim

--
Pim van Pelt
PBVP1-RIPE -https://ipng.ch/

Reply via email to