Я пытаюсь реализовать NAT 1: 1 на Linux Box. Настройка довольно проста, у него два интерфейса: eth0 - внешний интерфейс, eth1 - внутренний. За eth1 находится изолированная сеть 192.168.100.0/24, в то время как eth0 подключается к остальной сети на 192.168.0.0/24 (эта сеть не имеет значения). Что я хочу сделать, так это разрешить изолированной сети обмениваться данными через Linux, используя внешний IP-адрес другой сети, 192.168.50.0/24. Таким образом, в основном Linux-бокс nats 192.168.100.10 из внутренней сети в 192.168.50.10 маршрутизируется из Linux-бокса. Я настроил маршруты для направления трафика, предназначенного для 192.168.50.0/24, на интерфейс eth0 Linux-бокса на всех внешних устройствах.
На этом этапе трафик, предназначенный для 192.168.50.0/24, поступает на eth0 компьютера Linux, но, похоже, он никогда не переводится, поскольку я никогда не вижу трафика для 192.168.50.10 или 192.168.100.10 на внутреннем интерфейсе eth1. Ниже представлена моя базовая конфигурация NAT. У меня вопрос, нужно ли мне еще что-то делать? Я не стал беспокоиться о добавлении маршрутов в Linux для сети 192.168.50.0/24, так как из-за этой конфигурации NAT ящик никогда не маршрутизирует пакеты с этим адресом.
-A POSTROUTING -o eth0 -s 192.168.100.10 -j SNAT --to-source 192.168.50.10
-A PREROUTING -i eth0 -d 192.168.50.10 -j DNAT --to-destination 192.168.100.10
-A INPUT -j ACCEPT
-A FORWARD -j ACCEPT
Обратите внимание, что весь остальной трафик также разрешен через iptables по умолчанию, поэтому это не должно быть проблемой блокировки.
Вам необходимо подтвердить выполнение следующих условий:
echo 1 > /proc/sys/net/ipv4/ip_forward
или установив соответствующую строку в /etc/sysctl.conf
.Кажется, что у вас осталась первая точка!
Это может быть проблема ARP. Увидеть Shorewall Индивидуальные встречи Нат ноты. Для подобных вещей я предпочитаю инструмент построения брандмауэра, например Shorewall.