2001-12-04 23:26:16

by Q A

[permalink] [raw]
Subject: ARP shows client is given wrong MAC Address for system with 2 NICs

Hello,

I am not on the linux-kernel mailing list so please
reply all.

My problem:

Note that in the following description _(A) refers to
the interface that was brought on line first in the
system after boot up. That is if eth0 came up first,
_(A) refers to eth0. If eth1 came up first, _(A)
refers to eth1. Read on and you will see the problem.


I have a system with 2 NICs in one box. When I telent
to IP(A) and I am allowed to connect with no problems
and are given MAC(A) which I check with the arp
command. I then telnet to IP(B) and are given MAC(A).
Yes, MAC(A). I then ifdown NIC(B) device and telent
to IP(B) and connect with no problems.

Now looking at ARP I see I am connected to NIC(A)
because I have the MAC(A) according to ARP. I then
bring up NIC(B) and shutdown NIC(A) while still
connected as it looks to NIC(A). I look at ARP and I
see I still have the MAC(A). I press enter in the
telnet window connected to what I ARP tells me is
NIC(A) and everything works. I check ARP and see
that the I now have MAC(B) for the connection.

I really need to fix this soon so that I can bring
this box online.

The system:
uname -a...
Linux system-name 2.4.9-13SGI_XFS_PR1enterprise #1 SMP
Fri Nov 2 23:44:39 CST 2001 i686 unknown

lsmod...
Module Size Used by
nfs 94706 0 (autoclean)
lockd 60515 0 (autoclean) [nfs]
sunrpc 84519 0 (autoclean) [nfs
lockd]
autofs 13596 6 (autoclean)
e1000 47194 0 (autoclean)
eepro100 19799 1 (autoclean)
lvm-mod 64482 16
usb-ohci 23358 0 (unused)
usbcore 66308 1 [usb-ohci]
raid1 16069 4
raid0 4314 1
cciss 21124 4
aic7xxx 119883 8
sd_mod 12859 8
scsi_mod 110515 2 [aic7xxx sd_mod]

This is eth1: e1000
This is eth0: eepro100


Based on RH Linux 7.1 and as you can see SGI XFS.



I found two notes on this subject on the net.

Both are from this list.
One has the subject: RE: ARP out the wrong interface
>From Date: Feb, 09 2001

This one notes that 2.2.18 and 2.4 have a patch to
allow you to:

# sysctl -w net.ipv4.conf.all.arpfilter=1

Yet I only found net.ipv4.conf.all.arp_filter
setting this to 1(on) has no effect on the problem.

The second one has subject: RE: [2.2] Network
Interface aliasing
>From Date: Nov, 9 1999

This on talks about IP in the 2.2 kernel. It talks
about an "optimization to reduce work on hosts
monitoring in promiscuous mode." "The decision is
made on IP level and by IP address, MAC level details
are inessential." So I gather what I am seeing is to
optimise network trafic. But I think there is a bug.


I am not a kernel programmer. Please have a look and
let me know what more info you need.

Thanks,

Q

__________________________________________________
Do You Yahoo!?
Buy the perfect holiday gifts at Yahoo! Shopping.
http://shopping.yahoo.com


2001-12-05 19:04:06

by Richard B. Johnson

[permalink] [raw]
Subject: Re: ARP shows client is given wrong MAC Address for system with 2 NICs


[SNIPPED...]
There is an ARP cache, always has been, always will be. This is so
an ARP (Address Resolution Protocol) probe doesn't have to occur for
every data transmission. It is presumed that an IP address, including
your own, won't jump around from device-to-device.

You are moving your IP address to another device (MAC address). What
do you expect?

You can delete the old entries from your ARP cache, but it has to
be done for every system that would be affected or you can just wait
for the ARP cache entry to expire.

/sbin/arp -d ipaddress


Cheers,
Dick Johnson

Penguin : Linux version 2.4.1 on an i686 machine (799.53 BogoMips).

I was going to compile a list of innovations that could be
attributed to Microsoft. Once I realized that Ctrl-Alt-Del
was handled in the BIOS, I found that there aren't any.


2001-12-05 19:55:06

by Chris Friesen

[permalink] [raw]
Subject: Re: ARP shows client is given wrong MAC Address for system with 2 NICs

"Richard B. Johnson" wrote:

> You are moving your IP address to another device (MAC address). What
> do you expect?
>
> You can delete the old entries from your ARP cache, but it has to
> be done for every system that would be affected or you can just wait
> for the ARP cache entry to expire.
>
> /sbin/arp -d ipaddress

It is also possible to send out a gratuitous arp packet that will force everyone
else on the subnet to update their arp caches. This is the normal technique for
moving an IP address from one NIC to another.

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]

2001-12-06 02:15:19

by Q A

[permalink] [raw]
Subject: Re: ARP shows client is given wrong MAC Address for system with 2 NICs



Thanks, but I am not moving the IP from one to the
other. I am just saying it doesn't matter _(A) does
not have to be eth0. Try setting up a system with 2
NICs and follow my notes. I have checked another
system with a normal 2.4.3 kernel.

Thanks for yours and everyone elses help.

Q


--- "Richard B. Johnson" <[email protected]>
wrote:
>
> [SNIPPED...]
> There is an ARP cache, always has been, always will
> be. This is so
> an ARP (Address Resolution Protocol) probe doesn't
> have to occur for
> every data transmission. It is presumed that an IP
> address, including
> your own, won't jump around from device-to-device.
>
> You are moving your IP address to another device
> (MAC address). What
> do you expect?
>
> You can delete the old entries from your ARP cache,
> but it has to
> be done for every system that would be affected or
> you can just wait
> for the ARP cache entry to expire.
>
> /sbin/arp -d ipaddress
>
>
> Cheers,
> Dick Johnson
>
> Penguin : Linux version 2.4.1 on an i686 machine
> (799.53 BogoMips).
>
> I was going to compile a list of innovations
> that could be
> attributed to Microsoft. Once I realized that
> Ctrl-Alt-Del
> was handled in the BIOS, I found that there
> aren't any.
>
>


__________________________________________________
Do You Yahoo!?
Send your FREE holiday greetings online!
http://greetings.yahoo.com

2001-12-06 05:11:07

by Ben Greear

[permalink] [raw]
Subject: Re: ARP shows client is given wrong MAC Address for system with 2 NICs

Have you tried turning on arp-filtering? It generally
acts more sane in a 2+ NIC machine. Try:

echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter



Q A wrote:

>
> Thanks, but I am not moving the IP from one to the
> other. I am just saying it doesn't matter _(A) does
> not have to be eth0. Try setting up a system with 2
> NICs and follow my notes. I have checked another
> system with a normal 2.4.3 kernel.
>
> Thanks for yours and everyone elses help.
>
> Q
>
>
> --- "Richard B. Johnson" <[email protected]>
> wrote:
>
>>[SNIPPED...]
>>There is an ARP cache, always has been, always will
>>be. This is so
>>an ARP (Address Resolution Protocol) probe doesn't
>>have to occur for
>>every data transmission. It is presumed that an IP
>>address, including
>>your own, won't jump around from device-to-device.
>>
>>You are moving your IP address to another device
>>(MAC address). What
>>do you expect?
>>
>>You can delete the old entries from your ARP cache,
>>but it has to
>>be done for every system that would be affected or
>>you can just wait
>>for the ARP cache entry to expire.
>>
>> /sbin/arp -d ipaddress
>>
>>
>>Cheers,
>>Dick Johnson
>>
>>Penguin : Linux version 2.4.1 on an i686 machine
>>(799.53 BogoMips).
>>
>> I was going to compile a list of innovations
>>that could be
>> attributed to Microsoft. Once I realized that
>>Ctrl-Alt-Del
>> was handled in the BIOS, I found that there
>>aren't any.
>>
>>
>>
>
>
> __________________________________________________
> Do You Yahoo!?
> Send your FREE holiday greetings online!
> http://greetings.yahoo.com
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
>


--
Ben Greear <[email protected]> <Ben_Greear AT excite.com>
President of Candela Technologies Inc http://www.candelatech.com
ScryMUD: http://scry.wanfear.com http://scry.wanfear.com/~greear


2001-12-06 18:20:34

by Bernd Eckenfels

[permalink] [raw]
Subject: Re: ARP shows client is given wrong MAC Address for system with 2 NICs

In article <[email protected]> you wrote:
> You can delete the old entries from your ARP cache, but it has to
> be done for every system that would be affected or you can just wait
> for the ARP cache entry to expire.

> /sbin/arp -d ipaddress

You can also advertise your new ARP Address. This is typically known as
gratious arp and is used within duplicate address detection. Most systems
will update their cache. You can use arping on Linux to do that (and more).

Greetings
Bernd