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

Re: kernel announcing ip address on wrong interface



Andreas Pflug <pgadmin@pse-consulting.de> wrote:
> Using the 3.2 kernel, I have the strange situation that an ip address
> moves to an unconfigured interface.

> network/interfaces looks like this:

> auto eth0 
> iface eth0 inet manual
>  up ifconfig eth0 promisc up

> auto eth1
> iface eth1 inet manual
>  up ifconfig eth1 promisc up

> auto eth2
> iface eth2 inet manual
>  up ifconfig eth2 promisc up

Why do you force promiscous mode? This should normally be not needed.

> auto bond0
> iface bond0 inet manual
>  up ifenslave bond0 eth1 eth2

Why do you manually use ifenslave instead of just using the provided
stanzas like this?

auto bond0
iface bond0 inet manual
 slaves eth1 eth2

> auto backbone
> iface backbone inet static
>  address 192.168.0.1
>  netmask 255.255.255.0
>  bridge_ports bond0

> eth0 has a mac address of x.x.x.x.x.01, eth1/2 y.y.y.y.y.02

> Now I randomly observe on the firewall (freebsd based) the message
> "kernel:arp: 192.168.0.1 moved from y.y.y.y.y.02 to x.x.x.x.x.01"(or
> other way round), which means that the traffic to 192.168.0.1 (and
> subsequent VM traffic on that XEN host) is travelling down the wrong
> interface.

> Actually, eth0 and eth1/2 are connected to the same network, but vlan
> and mtu restrictions are different so some networking trouble will
> happen intermittently. This happens with no ip address on eth0
> configured; to stop the misbehaviour I'd have to down the interface.
> This happens on several machines with different drivers.

What do you mean by "but vlan and mtu restrictions are different"? If
eth0 and eth1/2 are connected to different VLANs, then they are _not_
connected to the same network. But if they are, you are asking for
exactly the problems you are seeing.

Please clarify your setup.

>>From my understanding, the kernel isn't expected to ever ARP announce
> the 192.168.0.1 address on eth0. Can anybody shed some light on what's
> happening here?

It is, if all eth's are conneted to the same network. Google "weak host
model".

In Linux, the IPs don't "belong" to an interface but to the host at all.
The kernel will happily announce (via ARP) any IP it "owns", even the
ones on 'lo', on any interface. This behavior is configurable, but it is
always better so first correct any network configuration errors or
misconceptions.

Grüße,
dven.

-- 
Sigmentation fault. Core dumped.


Reply to: