[technique] br0: received packet on eth0 with own address as source address

Laurent GUERBY laurent at guerby.net
Mar 6 Mar 00:12:14 CET 2012


On Mon, 2012-03-05 at 22:05 +0100, Antoine Lubineau wrote:
> Bonsoir,

Bonsoir Antoine,

> Depuis quelques jours (je n’ai pas le compte exact, mais ça doit se 
> trouver sur le Nagios de tetaneutral.net), une machine physique que je 
> partage avec des amis (crapaud.tetaneutral.net), installée à Myrys, a un 
> problème de réseau.
> 
> Environ toutes les 1 min 55 s, ce message apparaît dans le dmesg(1) :
> 
> br0: received packet on eth0 with own address as source address
> 
> et le réseau vers la machine coupe pendant quelques secondes : depuis 
> l’extérieur, j’ai environ 2 % de perte de paquets en moyenne avec ping 
> et ping6, et depuis une VM de Crapaud, aucune perte en ping, et 20 % de 
> perte en ping6.
> À noter que le réseau ne coupe pas entre les VM et l’extérieur, ni en 
> IPv4, ni en IPv6.
> 
> La machine héberge des machines virtuelles en KVM (gérées par Archipel), 
> dont les interfaces sont bridgées avec eth0 :
> 
> root at crapaud:~# cat /etc/network/interfaces
> auto lo
> iface lo inet loopback
> 
> auto br0
> iface br0 inet static
>      bridge_ports eth0
>      address 91.224.149.66
>      netmask 255.255.255.0
>      gateway 91.224.149.254
> 
> iface br0 inet6 static
>      bridge_ports eth0
>      address 2a01:6600:8081:4200::1
>      netmask 56
>      gateway fe80::31

Au passage il faut mettre la protection contre les RA IPv6 

http://chiliproject.tetaneutral.net/projects/tetaneutral/wiki/IPv6

   pre-up echo 0 > /proc/sys/net/ipv6/conf/$IFACE/accept_ra
   pre-up echo 0 > /proc/sys/net/ipv6/conf/$IFACE/autoconf

Et edit /etc/sysctl.d/local-ipv6.conf 

C'est sans doute pas le probleme mais ca sera toujours ca de fait :).

> root at crapaud:~# ip a
> ../..
> 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast 
> master br0 state UP qlen 1000
>      link/ether e0:69:95:9a:79:8a brd ff:ff:ff:ff:ff:ff
>      inet6 fe80::e269:95ff:fe9a:798a/64 scope link
>         valid_lft forever preferred_lft forever
> ../..
> 5: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
>      link/ether e0:69:95:9a:79:8a brd ff:ff:ff:ff:ff:ff
>      inet 91.224.149.66/24 brd 91.224.149.255 scope global br0
>      inet6 2a01:6600:8081:4200::1/56 scope global
>         valid_lft forever preferred_lft forever
>      inet6 fe80::e269:95ff:fe9a:798a/64 scope link
>         valid_lft forever preferred_lft forever
> 6: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast 
> master br0 state UNKNOWN qlen 500
>      link/ether fe:ad:b7:91:56:da brd ff:ff:ff:ff:ff:ff
>      inet6 fe80::fcad:b7ff:fe91:56da/64 scope link
>         valid_lft forever preferred_lft forever
> ../..
> 14: vnet8: […]
> 
> Chaque VM a bien une adresse MAC distincte, et la MAC de br0 ne bouge 
> pas (la fixer à la main ne change rien).

Est-ce que tu as mis le "ip link set  br0 address MAC" au boot ?
Comme la machine a rebooté il n'est peut-etre plus actif.

> J’ai essayé un coup de tcpdump(1) sur h3 (tcpdump -eni eth0 ether host 
> E0:69:95:9A:79:8A) comme indiqué par Laurent, mais je ne suis pas sûr de 
> savoir quoi y chercher.
> 
> Si vous avez ne serait-ce qu’un indice, je suis preneur :)

J'ai laissé tourner un tcpdump sur h3 aussi et rien d'interessant, en
boucle des trucs du genre :

20:51:19.136091 e0:69:95:9a:79:8a > ff:ff:ff:ff:ff:ff, ethertype Unknown (0x88a2), length 60: 
20:51:19.136097 e0:69:95:9a:79:8a > ff:ff:ff:ff:ff:ff, ethertype Unknown (0x88a2), length 60: 
20:51:44.735719 e0:69:95:9a:79:8a > 01:00:5e:00:00:01, ethertype IPv4 (0x0800), length 60: 0.0.0.0 > 224.0.0.1: igmp query v2
20:51:44.735781 e0:69:95:9a:79:8a > 33:33:00:00:00:01, ethertype IPv6 (0x86dd), length 86: fe80::e269:95ff:fe9a:798a > ff02::1: HBH ICMP6, multicast listener querymax resp delay: 1000 addr: ::, length 24
20:51:44.741128 e0:69:95:9a:79:8a > 01:00:5e:00:00:01, ethertype IPv4 (0x0800), length 60: 0.0.0.0 > 224.0.0.1: igmp query v2
20:52:02.495776 00:01:2e:2b:d2:07 > e0:69:95:9a:79:8a, ethertype ARP (0x0806), length 42: Reply 91.224.149.254 is-at 00:01:2e:2b:d2:07, length 28
20:52:19.295200 e0:69:95:9a:79:8a > ff:ff:ff:ff:ff:ff, ethertype Unknown (0x88a2), length 60: 
20:52:19.295230 e0:69:95:9a:79:8a > ff:ff:ff:ff:ff:ff, ethertype Unknown (0x88a2), length 60: 
20:52:32.431062 00:01:2e:2b:d2:07 > e0:69:95:9a:79:8a, ethertype ARP (0x0806), length 42: Reply 91.224.149.254 is-at 00:01:2e:2b:d2:07, length 28
20:53:19.454419 e0:69:95:9a:79:8a > ff:ff:ff:ff:ff:ff, ethertype Unknown (0x88a2), length 60: 
20:53:19.454427 e0:69:95:9a:79:8a > ff:ff:ff:ff:ff:ff, ethertype Unknown (0x88a2), length 60: 
20:53:50.173902 e0:69:95:9a:79:8a > 01:00:5e:00:00:01, ethertype IPv4 (0x0800), length 60: 0.0.0.0 > 224.0.0.1: igmp query v2
20:53:50.173933 e0:69:95:9a:79:8a > 33:33:00:00:00:01, ethertype IPv6 (0x86dd), length 86: fe80::e269:95ff:fe9a:798a > ff02::1: HBH ICMP6, multicast listener querymax resp delay: 1000 addr: ::, length 24
20:53:50.238096 e0:69:95:9a:79:8a > 01:00:5e:00:00:01, ethertype IPv4 (0x0800), length 60: 0.0.0.0 > 224.0.0.1: igmp query v2
20:54:19.613685 e0:69:95:9a:79:8a > ff:ff:ff:ff:ff:ff, ethertype Unknown (0x88a2), length 60: 
20:54:19.613692 e0:69:95:9a:79:8a > ff:ff:ff:ff:ff:ff, ethertype Unknown (0x88a2), length 60: 
20:55:19.772868 e0:69:95:9a:79:8a > ff:ff:ff:ff:ff:ff, ethertype Unknown (0x88a2), length 60: 
20:55:19.772876 e0:69:95:9a:79:8a > ff:ff:ff:ff:ff:ff, ethertype Unknown (0x88a2), length 60: 

Peut-etre poller sur 

brctl showmacs eth0

Et/ou sur du tcpdump en capture sur les tap du bridge, comme le probleme
a l'air regulier tu dois pouvoir attraper le bon paquet.

Laurent





Plus d'informations sur la liste de diffusion technique