Как добавить (статический) многоадресный маршрут для многодомного контейнера Docker?
Мы хотим отделить пользовательский трафик от внутреннего трафика приложения, поэтому мы настроили многосетевые хосты и установили Docker. Контейнеры Docker подключены к обоим сетевым интерфейсам (основная сеть является мостовым интерфейсом по умолчанию, подключенным к хосту eth0, второй интерфейс подключен через MACVLAN к хосту eth1). Обычный трафик работает нормально, но мы хотим направить многоадресный трафик приложений (Hazelcast, Tomcat) на второй интерфейс:
# docker run --rm -ti myImage bash
# docker network connect macvlantest <containerid>
IP-адреса назначены правильно:
[root@7ac12ba74a6e /]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2769: eth0@if2770: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 02:42:ac:11:00:31 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 172.17.0.49/16 scope global eth0
valid_lft forever preferred_lft forever
2771: eth1@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
link/ether 02:42:ac:1d:01:06 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 172.29.1.6/16 scope global eth1
valid_lft forever preferred_lft forever
С вращением тоже все в порядке:
# ip route
default via 172.17.0.1 dev eth0
172.17.0.0/16 dev eth0 proto kernel scope link src 172.17.0.49
172.29.0.0/16 dev eth1 proto kernel scope link src 172.29.1.6
Конечно, теперь можно вручную добавить статический маршрут для направления трафика на второй интерфейс. Это потребует прохождения --cap-add NET_ADMIN
найти интерфейс с нужной сетью и назначить фактический многоадресный маршрут.
Есть ли способ добавить статический маршрут в контейнер по умолчанию? Или есть лучший способ обработки многоадресного трафика с помощью контейнеров Docker?
Поиск в Google не показал ничего полезного, связанного с многоадресной передачей и множественной адресацией