Как связать трафик каждого клиента 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