IP4 address conservation method

Jimmy Hess mysidia at gmail.com
Fri Jun 7 04:06:12 UTC 2013


On 6/6/13, William Herrin <bill at herrin.us> wrote:
>> Yes, the system default may be tuned for host/desktop usage
> No, it doesn't default to reasonable desktop settings for ARP... it
> defaults to a version of wrong that on a desktop with one NIC and one
> IP doesn't happen to break anything. It'd be nice if it defaulted to
> RFC compliant instead and let the few folks with wacky needs move it
> off the standard behavior.

I find Linux's arp defaults annoying also,  but they're not "wrong"
or "non-RFC compliant".

An interpretation that applies in the design of Linux networking, is
that IP addresses belong to the host,   and IP addresses do not belong
to IP interfaces  (excepting 'scope local' IPs, such as IPv6
link-local).

An interface has a source IP address assigned to it  for outgoing
traffic from the host.
All destination IPs for incoming traffic to the host belong to no
specific interface on the host.

Any  IP address  added to any interface, belongs to the host as a
valid destination IP,  and can be ARP'ed on any of the host's IP
interfaces.

Excepting a firewall rule to the contrary,  traffic for any of the
host's destination IPs can come in any interface.


This is a totally valid and correct  way of  a host managing that
host's IP addresses.
However, it is a tad inconvenient for the administrator,  in some
real-world circumstances; mainly unusual configs such as servers with
multiple NICs plugged into different subnets, or servers behind a load
balancer.


And the ARP behavior is counterintuitive,  because   regardless of
that fact, in Linux you _still_  configure  IP addresses on
interfaces;    every interface has a preferred IP, and maybe some
alias IPs.



In most case's  Linux's  choice not to restrict  ARP to a specific
interface  bound to the IP is not useful.


However,   it is useful if you have a host that has multiple NICs
plugged into the same network.



The kernel has its defaults,  but  distribution vendors such as
Redhat/Ubuntu/Debian, are free to supply their own defaults  through
sysctl.conf or their NetworkManager packages  or network configuration
scripts...

It's interesting to note they have so far chosen to go (mostly) with
the defaults.

I'm sure most people do not have a problem,  or else,  someone would
have updated the defaults by now

> -Bill
--
-JH




More information about the NANOG mailing list