[quagga-dev 9459] Re: [DESIGN] zebra unnumbered IP address infrastructure

Juliusz Chroboczek jch at pps.jussieu.fr
Wed Jun 20 13:43:58 BST 2012

> - generally, Quagga needs some way to configure an unnumbered setup.
>   Implicit assumptions (e.g. assuming a /32 prefix is unnumbered) only
>   lead to surprises for the user.  Therefore, there needs to be some
>   configuration somewhere.

Linux does IPv4 unnumbered links differently from Cisco.  On Cisco, an
unnumbered link borrows an IP address from another interface.  On Linux,
you simply configure multiple interfaces with the same IP.

In order to support this in your routing protocol, you need to specify
both the interface and the gateway IP when installing a route, either
with or without the "onlink" flag.

Note that Quagga-RE has support for Linux-style unnumbered interfaces
with Babel.  I've been lobbying for the same to be done for RIP, but
Denis is nervous about breaking it.

Note further that the issue doesn't exist for IPv6 -- link-local
addresses avoid the issue.

>   (1) making the routing daemons behave in ignorance of the subnet mask
>       and accept neighbors with random IPs

That's what the "onlink" flag does.  See commit b9c1e9 in Quagga-RE.

>   (2) selecting a source address to be used for originating packets on
>       the unnumbered interface and handling that address correctly (ARP)
>       and (2 1/2) configuring this address to possibly be shared among
>       multiple unnumbered interfaces

On Linux, that's done automatically by the kernel if you configure the
same address on multiple interfaces.

>   (3) correctly handling routes resulting from this setup (on-link
>       routes)

I'm not sure what you mean by that.

> So, comments very welcome, prototype code will follow in a bit,

I fear that you're trying to do your own thing, and ignoring the
existing support in the Linux kernel.

-- Juliusz

More information about the Quagga-dev mailing list