2001-04-19 00:42:27

by NIIBE Yutaka

[permalink] [raw]
Subject: ARP handling in case of having multiple interfaces on same segment

Sometime, we have setting like following (say, in the migration
process of changing IP networks, or perhaps wrong way of load
balancing):

+----------+
|eth0 eth1 |
+----------+
| |
-------+---+------------

Current implementation of Linux doesn't handle this case. The problem
is ARP handling. When ARP broadcast packet comes to the host, both
interfaces receive the packet, and regardless of the device, we reply
to that packet. I think that we should not reply if the packet is not
related to that interface. If the ARP request is for eth1's address,
we should not send reply from eth0.

IIRC, I had fixed this issue six years ago, but now see same thing.
Kind a dejagnu...

How do you think? For me, this is bug.
--


2001-04-19 17:08:57

by Chris Friesen

[permalink] [raw]
Subject: Re: ARP handling in case of having multiple interfaces on same segment

NIIBE Yutaka wrote:
>
> Sometime, we have setting like following (say, in the migration
> process of changing IP networks, or perhaps wrong way of load
> balancing):
>
> +----------+
> |eth0 eth1 |
> +----------+
> | |
> -------+---+------------
>
> Current implementation of Linux doesn't handle this case. The problem
> is ARP handling. When ARP broadcast packet comes to the host, both
> interfaces receive the packet, and regardless of the device, we reply
> to that packet. I think that we should not reply if the packet is not
> related to that interface. If the ARP request is for eth1's address,
> we should not send reply from eth0.


Under later 2.2 kernels there is something called arp_filter that can be enabled
to give the exact behaviour you want. Apparently it is not yet in 2.4, but I
think that it should definately be added.

See the "ARP responses broken!" thread for more on this.

Chris


--
Chris Friesen | MailStop: 043/33/F10
Nortel Networks | work: (613) 765-0557
3500 Carling Avenue | fax: (613) 765-2986
Nepean, ON K2H 8E9 Canada | email: [email protected]