Как связать трафик каждого клиента NAT с внешним IP-адресом?

У меня есть маршрутизатор NAT с 2 IP-адресами, скажем так 111.111.111.111 а также 222.222.222.222 связано с интерфейсами eth0 а также eth0:1 соответственно.

У меня есть два сервера, которые подключаются к этому шлюзу NAT через интерфейс tap0 (Клиенты OpenVPN), с IP-адресами 10.0.0.1 а также 10.0.0.2, Я хочу, чтобы они олицетворяли каждый из IP-адресов маршрутизатора NAT.

Пока я сделал следующее iptables правила:

iptables -A PREROUTING -d 111.111.111.111/32 -i eth0 -j DNAT --to-dest 10.0.0.1
iptables -A PREROUTING -d 222.222.222.222/32 -i eth0 -j DNAT --to-dest 10.0.0.2

Это маршрутизация всех входящих подключений к нужному серверу. Тем не менее, исходящие соединения все еще используют тот же IP-адрес для доступа в Интернет. Как я могу создать правило, которое заставит весь исходящий трафик этих локальных серверов использовать соответствующий внешний IP-адрес и достичь эффекта олицетворения, который я хочу?

1 ответ

Ладно, я сам все понял, очевидно, моя проблема заключалась в том, что это правило должно быть добавлено до -A POSTROUTING -o eth0 -j MASQUERADE один.

iptables -t nat -A POSTROUTING -s 10.0.0.1/32 -o eth0 -j SNAT --to 111.111.111.111
iptables -t nat -A POSTROUTING -s 10.0.0.2/32 -o eth0 -j SNAT --to 222.222.222.222
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Другие вопросы по тегам