ARP behavior in FreeBSD vs Linux
Pieter de Boer
pieter at thedarkside.nl
Sun Sep 18 10:15:34 PDT 2005
Chuck Swiger wrote:
>> In contrast, on Linux (by default), it
>> responds as long as the target IP address in ARP Request matches with
>> any "local" IP address on the system, which is not necessarily an IP
>> address assigned to the interface through which the ARP request is
>> received.
> This sounds like "proxy ARPing" is enabled by default on your particular
> flavor of Linux. I don't think they all do that, hopefully, any more
> than ipforwarding should be enabled by default just because a machine
> has two NICs.
What Motonori Shindo described is actually the default behaviour for
Linux kernels (at least my 2.6.8-kernel does it by default). It could be
seen as a sort of proxy-arp, but only for the host itself, not other
systems. Let me try to describe when it happens. Say you have
192.168.42.42 bound on eth0 and have eth1 connected to some ethernet
LAN. When a host on that eth1-connected LAN sends an 'arp who-has
192.168.42.42', a Linux system will answer that arp-request with it's
eth1 MAC-address, although the IP-address is bound on eth0 and the arp
request comes in on eth0. FreeBSD obviously doesn't do this.
>> Is there any advantage/disadvantage in ARP implementation on FreeBSD
>> over that of Linux? Thanks.
I was unhappily surprised by this 'feature'. I find it pretty
counter-intuitive. I expect two interfaces to be seperated inside a
kernel, but Linux more or less binds them together. Incoming traffic on
the 'wrong' interface will gladly be accepted, too. This broke things
for me, because I didn't want to have that certain IP-address accessible.
That said, this happens only when you have two interfaces connected to
the same subnet, which is a bit evil anyhow. It may be beneficial for
Linux to do things this way, perhaps for redundancy-purposes (two
interfaces, one IP-address, IP reachable over both interfaces, when one
fails, the other takes over.. no idea if that works out-of-the-box).
--
Pieter
More information about the freebsd-net
mailing list