На выделенном сервере с несколькими контейнерами за 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
Как оказалось, простое правило постмаршрутизации помогло.
iptables -t nat -A POSTROUTING -s '10 .10.10.0 / 24 '-o eth0 -j SNAT --to 1.2.3.4
Мне также пришлось удалить кучу правил постмаршрутизации MASQUERADE, которые просто создавали большой беспорядок.