В настоящее время у меня есть решение, которое хорошо подходит для NAT.
Destination --------+-------- Source IP:Port (172.22.0.42:443)
|
| eth0
+---------+
| |
| NAT |
| |
+---------+
Вот как выглядит моя установка. Мой блок NAT имеет только один интерфейс eth0
и моя цель - сделать оба IP Masquerading.
В приведенном выше сценарии я выполняю это с помощью iptables
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -F
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Это означает, что когда трафик инициируется из 172.22.0.42
, он направляется в экземпляр NAT (уже настроенные маршруты в облаке), а затем IP маскируется. В основном изменение исходного IP-адреса с 172.22.0.42
на IP-адрес NAT-бокса. После этого трафик направляется в другое место в зависимости от настроенной маршрутизации.
С iptables работает отлично. Но теперь я хочу, чтобы тот же поток работал с HAProxy. Поэтому вместо использования iptables
, я настраиваю то же самое с HAProxy.
У меня вопрос, поддерживает ли это HAProxy?
Я рассматривал пример как таковой
frontend all
bind :443
# Mask the last octet of the IP
http-request set-src src,ipmask(24)
Но это просто скрывает IP-адрес src. Я хочу убедиться, что IP-адрес src заменен IP-адресом NAT.