[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: NIC War



Ian Melnick wrote:
 nic1: ipA, macA
 nic2: ipB, macB
On the network attached to nic1 one you send an arp request:
"who-has ipA tell x.x.x.x"
where "ipA" is the ip you believe is assigned to nic1. nic1 does not respond. nic2 responds with:
"ipA is-at macB".


Yes, this is what's happening.

Take a look at arp_filter in /usr/src/linux/Documentation/networking/ip-sysctl.txt (assuming /usr/src/linux is your unpacked kernel source).

"
arp_filter - BOOLEAN
    1 - Allows you to have multiple network interfaces on the same
    subnet, and have the ARPs for each interface be answered
    based on whether or not the kernel would route a packet from
    the ARP'd IP out that interface (therefore you must use source
    based routing for this to work). In other words it allows control
    of which cards (usually 1) will respond to an arp request.

    0 - (default) The kernel can respond to arp requests with addresses
    from other interfaces. This may seem wrong but it usually makes
    sense, because it increases the chance of successful communication.
    IP addresses are owned by the complete host on Linux, not by
    particular interfaces. Only for more complex setups like load-
    balancing, does this behaviour cause problems.

    arp_filter for the interface will be enabled if at least one of
    conf/{all,interface}/arp_filter is set to TRUE,
    it will be disabled otherwise

Namely the description of the default option (0).

Now, I've never come accross this problem myself, but does it seem plausible that the default behavior here is creating the problem for you? Maybe I misunderstand your situation.

dircha



Reply to: