в настоящее время я пытаюсь отправить некоторые многоадресные данные из моего приложения докера через интерфейс хоста eth2 моего хоста. я использовал опцию --net=host
в докере, и это работало отлично, и, к сожалению, поскольку мне нужно открыть несколько экземпляров, использующих один и тот же порт, я больше не могу использовать net=host. мне нужно пройти bridged
режим docker0
в моем интерфейсе докера у меня есть eth0
, который связан с моим docker0
как 10.101.131.60.
поэтому я сделал: route add -net 225.1.1.0/28 dev eth0
для передачи всех многоадресных пакетов, которые мое приложение отправляет на 225.1.1.0/28, на мой eth0, который подключен к хосту как docker0
.
поэтому я использовал wirehark, чтобы прослушать, действительно ли мое приложение отправляет пакет сообщений в мой внутренний контейнер eth0
, и действительно ли оно отправляет многоадресные рассылки, когда я использую wireshark внутри контейнера.
теперь я также использовал wireshark для прослушивания моего docker0
, и пакеты были там. Теперь, как мне «перенаправить все мои многоадресные пакеты» через docker0 на мой eth2? Я использовал несколько подходов iptables, но ни один из них не оказался полезным, возможно, из-за того, что его игнорировали?
любая помощь будет оценена... спасибо!