Переадресация порта DD-WRT не работает для внутренней подсети

У меня роутер с прошивкой dd-wrt. Я настроил 2-й IP-адрес с помощью команд Iptables и переадресовал один порт. Работает нормально. Однако это не работает внутри. Попытка перейти внутрь на 89.25.1.1:443 не сработает. Просто внешне.

# Ip for INTRANET
ifconfig vlan2:1 89.25.1.1 netmask 255.255.255.248 broadcast 89.25.1.15

# Routes for IIS HTTPS
iptables -t nat -I POSTROUTING -o vlan2 -s 192.168.51.7 -j SNAT --to 89.25.1.1
iptables -t nat -I PREROUTING -i vlan2 -d 89.25.1.1 -p tcp --dport 443 -j DNAT --to 192.168.51.7:443
iptables -I FORWARD -i vlan2 -d 192.168.51.7 -p tcp --dport 443 -j ACCEPT

Как я мог это исправить, чтобы он работал и внутри?

1 ответ

Я не знаю, как выглядят ваши интерфейсы. я догадываюсь vlan2 Ваш внешний интерфейс, что означает, что проблема в этом правиле:

iptables -t nat -I PREROUTING -i vlan2 -d 89.25.1.1 -p tcp --dport 443 -j DNAT --to 192.168.51.7:443

-i vlan2 означает, что правило соответствует, только если пакет поступает на vlan2 интерфейс - что это не так, он приходит из внутренней сети, так что это vlan1 или как там это называется в вашей конфигурации. Для того, чтобы иметь тот же самый dnat, было бы хорошо просто пропустить ограничение интерфейса с помощью -i параметр полностью, т.е. просто используйте

iptables -t nat -I PREROUTING -d 89.25.1.1 -p tcp --dport 443 -j DNAT --to 192.168.51.7:443
Другие вопросы по тегам