
Мой маршрутизатор на базе Linux имеет 5 портов Ethernet. В настоящее время он работает как маршрутизатор между портами 1 и 2 и выделенным портом WAN, без NAT. Порт 1 — 192.168.1.1/24, порт 2 — 192.168.2.1/24, порт WAN — 192.168.0.1/24.
Исходящее WAN-соединение проходит через регистрирующее устройство, которое отслеживает использование, затем проходит через второй домашний маршрутизатор, который выполняет NAT и использует публичный IP-адрес на своем WAN-порту.
Упрощенно сеть выглядит следующим образом с префиксом IP 192.168.-:
server1--------Router1--------Logging device--------Router2----------
.1.2 .1.1 .0.1 .0.254 (public ip)
Конфигурация Router1 работает хорошо (это простой маршрутизатор), Router2 тоже (это простой шлюз). Однако я хотел бы удалить Router2 и сделать NAT между портами 3 и 4 Router1, с портом 4, использующим мой настоящий публичный IP.
Возможно ли это? Я бы хотел сохранить строгую изоляцию между портами 1-2-WAN и 3-4, чтобы убедиться, что весь трафик проходит через устройство регистрации (с его исходным IP-адресом источника).
Будет ли прозрачный мост решением? Могу ли я применить исходный NAT к этому мосту? Правильно ли сделана IP-адресация?
решение1
Предположим, что ваши 5 портов Ethernet на маршрутизаторе 1 имеют имена eth0 - eth4, следовательно, WAN находится на eth3:
iptables -t nat -A POSTROUTING --source 192.168.1.0/24 --out-interface eth3 -j MASQUERADE
iptables -t nat -A POSTROUTING --source 192.168.2.0/24 --out-interface eth3 -j MASQUERADE
Если в качестве вашего публичного IP-адреса используется фиксированный IP-адрес, замените «-j MASQUERADE» на «-j SNAT --to-source $PUBLIC_IP» (конечно, замените $PUBLIC_IP на ваш WAN-адрес!).
Конечно, вам нужно будет установить маршрут по умолчанию на eth3, но это не было частью вопроса. Вам также нужно будет направить входящий трафик на публичный IP-адрес.