
На выделенном сервере с несколькими контейнерами за NAT я пытаюсь направить исходящий/выходной трафик из одного из контейнеров через определенный виртуальный интерфейс, подключенный к основному физическому интерфейсу. Оба интерфейса имеют назначенные им публичные IP-адреса.
Цепочка будет выглядеть следующим образом:
Контейнер OpenVZ (10.10.10.2) > Хост-система (eth0:0; IP:1.2.3.4) > Интернет
в отличие от нынешнего
Контейнер OpenVZ (10.10.10.2) > Хост-система (eth0; IP:5.6.7.8) > Интернет
Я считаю, что это можно сделать с помощью правила iptables postrouting.
решение1
Как оказалось, простое правило постмаршрутизации сработало.
iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o eth0 -j SNAT --to 1.2.3.4
Мне также пришлось удалить кучу правил постмаршрутизации MASQUERADE, которые только создавали большой беспорядок.