Назад | Перейти на главную страницу

IP-маскарадинг с использованием HAProxy

В настоящее время у меня есть решение, которое хорошо подходит для 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.