виртуальный шлюз через NAT

В программах нет ничего особенного, но они создают специальную программу на USB-накопителе :они создают программу, называемую загрузчиком.

0
13.04.2021, 20:57
2 ответа

Возможно, вы захотите сбросить существующие нарушенные правила iptables и начать с нуля. На компьютере с Linux, выступающем в качестве шлюза, предположим, что выполняются следующие условия:

Шлюз Linux имеет два сетевых адаптера; eth0 ориентирован на локальную сеть, а eth1 — на глобальную сеть.

Включить пересылку IP-пакетов на шлюзе:

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

Создайте два тестовых виртуальных IP-адреса (VIP )на eth0 в соответствии с нашим планом тестирования

$ sudo ifconfig eth0:1 10.1.1.1 netmask 255.255.255.0
$ sudo ifconfig eth0:2 10.8.8.8 netmask 255.255.255.0

Настройте iptables согласно нашему плану

sudo iptables -t nat -A PREROUTING -d 10.1.1.1 -j DNAT --to 1.1.1.1
sudo iptables -t nat -A PREROUTING -d 10.8.8.8 -j DNAT --to 8.8.8.8
sudo iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

В этом случаекогда пользователь пингует VIP 10.1.1.1, он будет перенаправлен на Cloudflare1.1.1.1

Если пользователь пропингует VIP 10.8.8.8, он будет перенаправлен на Google 8.8.8.8

.
10.1.1.1 ---> 1.1.1.1
10.8.8.8 ---> 8.8.8.8
0
28.04.2021, 22:52

I tried it with NAT [...] that somehow works, however when I ping it from gateway I get [network unreachable]

Как следует из названия, цепочки PREROUTING и POSTROUTING используются только для пакетов, которые входят в шлюз и направляются наружу.

В частности, это означает, что они не применяются ни к каким пакетам, исходящим от шлюза, как, например, проверка связи, которую вы выполняете. Это никак не исправить, цепочки фильтров просто странные. Но для вашего варианта использования вам нужен только NAT от клиентов, так что это не имеет значения.

(Кстати, вам нужен только DNAT; это создаст запись CONNTRACK, и обратный NAT будет выполнен автоматически ).

0
28.04.2021, 22:52

Теги

Похожие вопросы