web-dev-qa-db-fra.com

Problème avec le pont passant L2 mais pas le trafic L3

J'espère que quelqu'un ici peut m'aider.

J'ai configuré un pont sur mon système Ubuntu pour lui permettre de se connecter à un VM exécuté dans KVM. Le pont est capable d’envoyer des demandes et des réponses ARP, donc j’ai un trafic bidirectionnel, mais aucun trafic IP ne peut passer.

La mise en réseau est la suivante: vnet0 -> pont -> eth1 -> VLAN avec les hôtes que je tente d’envoyer par ping

Ping tous échouent en essayant de traverser eth1. J'ai effectué des TCPDUMP sur mes interfaces vnet0, bridge et eth1. Je peux voir que le problème est qu’aucun paquet IP ne quitte eth1 lorsqu’il est envoyé depuis vnet0 alors qu’il semble bien passer par l’interface du pont. A noter également que j'utilise un adaptateur USB 3.0 gigabit pour cette connexion.

Dépannage jusqu'à présent:

  1. IPv6 désactivé via sysctl.conf pensant que cela pourrait poser problème
  2. Déplacé l'adaptateur USB vers un autre port USB
  3. Pont supprimé et créé plusieurs fois
  4. Redémarre

Stumped. Une idée pourquoi seul L2 peut passer? Ma VM apprend les adresses MAC des systèmes via eth1 via arp mais ne peut pas envoyer de paquets IP via.

Merci

2
Livewireorg

Après avoir frappé ma tête contre le bureau pendant environ une heure, je l'ai compris. J'ai basé ma configuration/etc/network/interfaces à partir de ce que j'avais sur une autre machine fonctionnant sous 14.04. Le fichier d'interface cassé ne montrant que les bits pertinents:

auto eth1
iface eth1 inet manuel
up ifconfig eth1 up

pont automatique E-MGMT
iface E-MGMT-Bridge inet manual
bridge_stp off
bridge_fd 0
bridge_ports eth1

En 16.04, cela détruit la couche 3 tout en autorisant le trafic de couche 2 tel que les images ARP, CDP et STP. Très étrange. Pour que cela fonctionne dans la version 16.04, vous devez supprimer la strophe eth1 et définir uniquement le pont et non l'interface physique à laquelle elle fait référence de la manière suivante:

pont automatique E-MGMT
iface E-MGMT-Bridge inet manual
bridge_stp off
bridge_fd 0
bridge_ports eth1

J'ai dû redémarrer, puis j'ai pu envoyer une requête ping de mon VM sur le pont au réseau réel connecté à mon commutateur. Je ne sais pas si quelqu'un d'autre a eu ce problème ou si je suis juste chanceux .

1
Livewireorg

Si vous voyez seulement ARP mais pas de "vrai" trafic, alors iptables pourrait être votre problème. Vérifiez si la stratégie FORWARDING de iptables est définie sur ACCEPT. Si vous souhaitez plutôt utiliser la stratégie DROP, vérifiez si des règles de transfert ont été ajoutées pour autoriser votre trafic KVM.

0
scai