Pourquoi Linux nécessite-t-il de déplacer l'IP de l'interface eth vers l'interface de pont

27

Lorsqu'une interface réseau (par exemple, eth0) est ajoutée à un pont Linux (par exemple, br0), l'adresse IP doit être supprimée de eth0 et ajoutée à br0 pour que le réseau fonctionne correctement.

Je me souviens avoir lu dans un fichier Lisezmoi d'Open vSwitch (que je ne trouve pas pour le moment) que le déplacement de l'adresse IP est nécessaire en raison de la façon dont le noyau Linux est implémenté. Qu'est-ce qui concerne l'implémentation de Linux qui nécessite que l'adresse IP soit déplacée de la carte réseau vers le pont?

Lorin Hochstein
la source

Réponses:

10

La carte réseau représente le câble de liaison montante. Un câble est la couche 1, pas la couche 3.

Maintenant, le pont fonctionne comme le périphérique qui est adressé pour le trafic réseau (entrant) sur le serveur - soit sur la couche 2 (Ethernet / MAC) et / ou la couche 3 (IP).

Le périphérique qui répond aux demandes ARP est donc le pont - ce qui est bien, car il doit distribuer le trafic vers les autres interfaces de ce pont.

Si le périphérique répondant était le NIC, le trafic ne serait pas transmis plus loin au pont.

Sur certains guides, il est donc même recommandé de supprimer le MAC de la carte réseau (liaison montante).

Nils
la source
Donc, en parlant des mécanismes linux réels (pas de bonnes pratiques), cela signifie que si je mets une interface sous un pont, elle n'est plus considérée par le noyau comme une interface adressable L2 / L3? droite ? Comme rien n'empêche de lui attribuer un MAC / IP, c'est déroutant.
Jocelyn delalande
1
@Jocelyn L'inverse. S'il est toujours adressable en L2 / 3, il bloquera l'autre trafic. Il ne doit donc pas être adressé directement si sur un pont.
Nils
ok, mais par défaut le port reste adressable sur L2 (conserve un MACaddr si je ne le supprime pas), non? pourquoi laisse-t-il le trafic L2 se diriger vers le pont?
Jocelyn delalande
2
@Jocelyn Tant qu'il ne répond pas aux requêtes arp, tout ira bien sur l2 / 3. S'il ne capture pas les paquets, il laissera passer les paquets dans la partie réseau du noyau.
Nils
D'accord. J'ai demandé parce que j'ai remarqué qu'un certain trafic a été abandonné lors de l'attribution d'une adresse au port; mais cela a été causé par rp_filter.
Jocelyn delalande
1

Le pont distribue le trafic là où il doit aller lorsque plusieurs interfaces se trouvent dans un pont. Plus ou moins, les interfaces individuelles dans le pont fonctionnent maintenant sur la couche 2 selon ce que le pont détermine, et non indépendamment sur la couche 3. Vous voulez donc aborder le pont dans son ensemble, pas les interfaces individuelles en son sein.

LawrenceC
la source