Page 1 of 1

Netburner seeking input (multihome vs. non-multihome)

Posted: Mon Jun 04, 2012 3:47 pm
by dciliske
Here at Netburner, we're making an overhaul to how our devices obtain an IP address. Specifically we're looking to add Auto-IP and (much later) a DHCP server (it's currently just a note in design meetings though).
The question we can't seem to answer is: should Auto-IP be part of the main state machine or should it be on a separate multihome network interface?

For reference, our current proposed design for the state machine is as follows:
Image

Our primary desire with adding Auto-IP is in making the initial development process simpler, by allowing a user to simply connecting the device's ethernet port to their computer's port
and have the Netburner just come up with full connectivity (as DHCP takes ~4 minutes to fully timeout and "fail"). We also want to make it possible to hook a device up directly without
requiring that the computer to have a static IP (thus requiring a user to muck around with their network settings). That said, we also see how one might actually want Auto-IP in the field.

The comparison of the two approaches, in our opinion stands as follows:

Non-multihomed:
Pros:
- Smaller memory and runtime (during routing) footprint
- No potential issue with system choosing "wrong" interface (shouldn't happen but unexpected behavior cannot be guaranteed to not occur)

Cons:
- If DHCP retry is enabled, can drop connections as the interface switches from Auto-IP to DHCP
- The device must wait for some amount of DHCP timeout before configuring Auto-IP

Multihomed:
Pros:
- Auto-IP starts to configure whenever the ethernet link comes up
- Connections will not drop due to the device obtaining a DHCP lease

Cons:
- Memory overhead ~2.5k RAM (the current default number of interfaces for multihoming (10) uses ~25k of RAM)
- Runtime overhead at routing: the device must choose which of the interfaces to send out based on subnet
- Theoretic potential for sending out the "wrong" interface