Итак, у меня работает несколько контейнеров-докеров, и каждый из них настроен на использование определенного сетевого интерфейса для исходящего трафика.
Скажем, для примера, что есть сеть докеров под названием docker_1, использующая интерфейс eth1, и я пометил ее исходящий трафик с помощью 0x0c3f (--set-mark 0x0c3f).
Теперь, если eth1 не работает, контейнер по умолчанию будет использовать eth0 для исходящего трафика, это нежелательное поведение. Я бы хотел, чтобы контейнер никогда не использовал eth0, даже если eth1 недоступен.
Я пробовал запустить:
iptables -t filter -I OUTPUT -p tcp -o eth0 -m mark --mark 0x0c3f -j REJECT
Это не работает.
Кто-нибудь знает, что не работает должным образом?
Спасибо.
Проблема в том, что вам нужно использовать FORWARD, а не выходную цепочку. Попробуйте изменить "ВЫХОД" на "ВПЕРЕД"