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

David Lamparter equinox at opensourcerouting.org
Wed Jun 20 14:56:29 BST 2012

On Wed, Jun 20, 2012 at 02:43:58PM +0200, Juliusz Chroboczek wrote:
> > - 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.

Yes, either that or you don't configure an address at all.  That also
works and seems to be ran that way in production by some people.

> 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.

Yes, that's point (3) below.

> 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.

RIP unnumbered is, uh, academic.  I've found a reference to it in a book
at the university library, but after asking around there seem to be no
users (and big name vendor support seems questionable).

> >   (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.

No, that's (3). (1) is ospfd accepting packets and forming adjacencies
with neighbors that don't match some subnet mask.  A simple enable bit
for ospfd to behave differently.

> >   (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.

Yes, as long as you put the address on the interface.  Some people have
been running setups with "truly" unnumbered interfaces, where this
suddenly breaks.

> >   (3) correctly handling routes resulting from this setup (on-link
> >       routes)
> I'm not sure what you mean by that.

The "onlink" routes.

> > 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.

No I'm not starting to hack the Linux kernel :).  Also, getting this on
BSD is desirable; support for other OSes is indeed one of the reasons
for adding an explicit "ip unnumbered" configuration statement.  If,
say, GNU Hurd, requires a special rain dance to enable unnumbered IPs,
we can support that too.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 230 bytes
Desc: Digital signature
URL: <http://lists.quagga.net/pipermail/quagga-dev/attachments/20120620/dfb31cf3/attachment-0001.sig>

More information about the Quagga-dev mailing list