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

Re: Comportement bizzare de eth0 et eth1



Le 24.05 2007, Pascal Hambourg ecrit ces mots :

> Salut,
> 
> west a écrit :
>> 
>> J'ai un serveur sur lequel j'ai 2 interfaces ethernet d'installées.
>> Toutes les 2 configurées en dhcp (voici le fichier 
>> /etc/network/interfaces):
>> 
>> # The loopback network interface
>> auto lo
>> iface lo inet loopback
>> 
>> # The primary network interface
>> auto eth0
>> iface eth0 inet dhcp
>> 
>> auto eth1
>> iface eth1 inet dhcp
>> 
>> 
>> Pour ne pas vous embrouiller je vais mettre "good" pour eth1 et "bad" 
>> pour eth0
> 
> C'est raté : deux lignes plus bas tu écris exactement le contraire !
> 
Oupppss !!

>> Le probleme:
>> 
>> eth1(bad) et eth0(good)sont connectés:
> 
> Au même réseau si j'en crois la sortie d'ifconfig. Ce qui est une 
> mauvaise idée à moins de savoir exactement ce qu'on fait, et d'où le 
> comportement que tu observes.
> 
oui le meme réseau, pour le moment, mais apres la 2eme interface sera 
connecté sur un autre réseau local.
je vérifiais juste que la 2eme carte fonctionnait avant de placer le 
serveur sur les 2 LANs

>> j'arrive à pinguer l'ip de eth1(bad), jusque la tout va bien.
>> j'arrive à pinguer l'ip de eth0(good), jusque la tout va bien.
>> 
>> Seule eth0(good)est connecté:
>> j'arrive à pinguer l'ip de eth0(good), jusque la tout va bien (normal 
>> tjrs connectée).
>> J'ARRIVE A PINGUER l'ip de eth1(bad), là c'est plus normal (en tout 
cas 
>> pour moi puisque déconnectée).
> 
> Peu importe que l'interface soit connectée, du moment qu'elle est 
> activée et configurée. Une adresse IP configurée sur une interface 
> active appartient à la machine tout entière et pas seulement à cette 
> interface. Par conséquent, la machine peut recevoir et répondre sur 
> cette adresse par l'autre interface, qui plus est sur le même réseau. 
Et 
> c'est pareil pour la résolution ARP : par défaut n'importe quelle 
> interface peut répondre pour n'importe quelle adresse locale, à moins 
de 
> régler quelques paramètres du noyau dans 
> /proc/sys/net/ipv4/conf/<interface>,all comme arp_announce, arp_filter 
> et/ou arp_ignore. Cf. networking/ip-sysctl.txt(.gz) dans la 
> documentation du noyau. Du coup l'interface qui reste connectée répond 
> pour les deux adresses.
> 
Oui je comprends ton explication, mais j'ai toujours penser qu'une carte 
normalement configurée, n'acceptait que les adresses qui lui sont propres 
+ les diffusions ( Il me semble que c'est le protocole Arp qui définit ce 
comportement) et le localhost répondait a toutes les adresses ip du 
poste.
D'oû mon étonnement de ce comportement, ont m'aurait menti ?

>> Seule eth1(bad) est connecté:
>> Je ne ping aucune adresse ip ( la aussi pas normal, j'aurai du avoir 
au 
>> moins l'ip de eth1(bad)).
> 
> Tu n'as probablement pas attendu assez longtemps, le temps que le cache 
> ARP de la machine source expire. Par conséquent elle continue à envoyer 
> les paquets à l'adresse MAC d'eth0 qui est maintenant déconnectée.
> 
j'ai refait des tests:

- avec cache arp vide ou pas, l'adresse mac de eth0 est quand meme 
retournée, malgré un ping sur l'ip de eth1. (j'au aussi supprimé 
manuellement)

-  avec tcpdump je confirme bien que c'est eth0 qui répond a un ping sur 
eth1.

- tcpdump sur eth1, il ne recoit rien, pourtant je ping bien sur son ip
quand je dis qu'il ne recoit rien je m'explique, la requete arp demandant 
l'adresse mac de son ip lui arrive bien, mais il ne réponds pas comme si 
cela ne lui concernait pas.

- Si je déconnecte eth0 je ne ping rien du tout, meme si je ping l'ip de 
eth1 qui est connecté je n'arrive à joindre ni l'un ni l'autre .
Si quelqu'un me donne un réponse a se comportement, je lui dis un gros 
merci d'avance !!

- En gros le serveur se comporte comme si l'interface eth1 n'existait pas 
et que eth0 était la seul interface configurée avec 2 adresses ip. Ca 
c'est le comportement global.

- pour info: j'ai pas de ip forwarding d'activé (c'est l'une des 
premieres choses que j'avais vérifié).


- j'ai changé l'ip de eth1 pour la placer sur un réseau différent de 
eth0, j'arrive à le pingué.
Donc on a bien ce comportement lorsque les 2 cartes sont sur le meme 
réseau. La finalité n'est pas de laissé sur le meme réseau ( je vous 
rassure encore une fois), mais maintenant que j'ai vu ça, j'aimerais bien 
comprendre, surtout le fait que eth1 ne réponde pas du tout au ping, meme 
si il est le  seul connecté !
Est ce le noyau qui désactive la 2eme interface lorqu'il voit qu'elle 
sont sur le meme réseau ?
Si c'est le cas, pourquoi ?
vous me direz peut etre que c'est parceque ca sert a rien, mais si j'ai 
envie de rajouter une 2eme interface au serveur sur une autre ip juste 
pour des taches d'administration ou de supervision, je ne vois pas 
pourqu'elle raison je ne pourrais pas le faire, je n'enfrain aucune rfc 
je pense et coté sécurité je ne vois pas ce que cela engendrera comme 
probleme.

>> Un arp -a(sur un autre psote) me donne pour les 2 adresses ip la meme 
>> adresse mac (celle de eth0(good))
> 
> Voilà, comme je disais.
> 
voir tests plus haut

>> !! Bizzare !!
> 
> Je ne trouve pas.
> 
et avec ces tests ?

PS:
je vous met la table de routage que j'avais oublié qui a peut etre la 
reponse car je vois 2 localnet:

Table de routage IP du noyau
Destination     Passerelle      Genmask         Indic Metric Ref    Use 
Iface
localnet        *               255.255.255.0   U     0      0        0 
eth0
localnet        *               255.255.255.0   U     0      0        0 
eth1
10.96.38.0      10.96.36.254    255.255.255.0   UG    0      0        0 
eth0

Mais pourquoi eth0 répond et pas eth1, daccord ils sont sur le meme 
réseau, mais lorsque je déconnecte eth0, eth1 ne répond pas.



Reply to: