2017-06-14 4 views
2

Actuellement, j'essaie d'envoyer des données de multidiffusion depuis l'application de mon docker à travers l'interface hôte eth2 de mon hôte. J'ai utilisé l'option --net=host dans docker et cela fonctionnait parfaitement, et malheureusement puisque j'ai besoin d'ouvrir plusieurs instances utilisant le même port, il est impossible pour moi d'utiliser net = host. je dois passer par le mode bridged de docker0Multicast du docker à l'hôte eth

j'ai eth0 dans l'interface de mon docker qui est lié à mon docker0 comme 10.101.131.60.

donc j'ai fait: route add -net 225.1.1.0/28 dev eth0 pour passer tous les paquets de multidiffusion que mon application envoie à 225.1.1.0/28 à mon eth0, qui est connecté à l'hôte comme docker0.

par conséquent, j'ai utilisé wireshark pour écouter si mon application jette vraiment le paquet de message à mon conteneur intérieur eth0, et il envoie vraiment des multidiffusions quand j'utilise wireshark dans le conteneur.

maintenant tout au long j'ai aussi utilisé wireshark pour écouter mon docker0 et les paquets étaient là. Maintenant, comment puis-je "Transférer tous mes paquets de multidiffusion" à travers docker0 à mon eth2? J'ai utilisé plusieurs approches iptables, mais aucune d'elles ne semblait être utile, peut-être que c'était ignoré?

toute aide serait appréciée ... merci!

Répondre