Проблема, по-видимому, заключается в правилах iptables по умолчанию, которые устанавливает DD-WRT.
Удаление строки MASQUERADE в POSTROUTING устраняет проблему, внешние подключения больше не отображаются как внутренний IP-адрес моего основного маршрутизатора.
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE 0 -- anywhere anywhere
SNAT 0 -- 192.168.1.0/24 anywhere to:1.1.1.1
RETURN 0 -- anywhere anywhere PKTTYPE = broadcast
Это удаляет первый элемент в приведенном выше списке:
iptables -t nat -D POSTROUTING 1
Более подробную информацию о вышеупомянутом исправлении можно найти здесь: https://www.reddit.com/r/HomeNetworking/comments/40swj2/firewall_log_shows_router_ip_for_all_incoming/cyxaz3t/
Теперь все должно работать нормально.
Примечание: если вы больше не можете получить доступ к своим услугам через внешний IP-адрес с внутреннего IP-адреса, вам может потребоваться выполнить одно или оба из следующих действий (мне потребовались оба):
Обязательно снимите флажок "Фильтровать перенаправление WAN NAT" в «DD-WRT -> Безопасность -> Брандмауэр»
Запустите следующее:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d 192.168.1.0/24 -j MASQUERADE
Замена обоих вхождений 192.168.1.0/24 на все, что имеет отношение к вашей настройке.
Чтобы сделать это проще, я рекомендую просто сохранить это в скрипте брандмауэра в «Администрирование -> Команды»
iptables -t nat -D POSTROUTING 1
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d 192.168.1.0/24 -j MASQUERADE