IP-маскарадинг с использованием HAProxy - PullRequest
0 голосов
/ 03 марта 2020

В настоящее время у меня есть решение, которое хорошо работает для NAT.

                         Destination --------+-------- Source IP:Port (172.22.0.42:443)
                                             |
                                             | eth0
                                        +---------+
                                        |         |
                                        |   NAT   |
                                        |         |
                                        +---------+

Вот так выглядит моя установка. У моего NAT-блока есть только один интерфейс eth0, и моя цель - выполнить маскировку IP-адресов.

В приведенном выше сценарии я выполняю его, используя iptables

echo 1 >  /proc/sys/net/ipv4/ip_forward

iptables -t nat -F
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Это означает, что когда трафик c инициируется из 172.22.0.42, он направляется на экземпляр NAT (уже настроенные маршруты в облаке), а затем IP маскируется. В основном, изменение исходного IP-адреса с 172.22.0.42 на IP-адрес блока NAT. Затем Traffi c маршрутизируется в другом месте в зависимости от настроенной маршрутизации.

С iptables он работает отлично. Но теперь я хочу, чтобы тот же поток работал с HAProxy. Поэтому вместо использования iptables, я настраиваю то же самое с HAProxy.

Мой вопрос, поддерживает ли HAProxy это?

Я рассматривал пример как таковой

frontend all
    bind :443

    # Mask the last octet of the IP
    http-request set-src src,ipmask(24)

Но это просто скрывает IP-адрес sr c. Я хочу убедиться, что IP-адрес sr c заменен IP-адресом поля NAT.

...