Я пытаюсь получить доступ к узлу в моей локальной сети (фактически, к моей собственной машине) через внешний ip, к которому подключен мой маршрутизатор dsl, поэтому настройка такова:
/----------------------------/
/-------------/ / Router / /----------/
/ Host /-------/ 192.168.1.2 | 79.44.63.132 /----/ Internet /
/ 192.168.1.1 / / internal ip | external ip / /----------/
/-------------/ /----------------------------/
На моем маршрутизаторе я включил переадресацию портов для порта 1234, так что трафик к 79.44.63.132:1234 сопоставляется с 192.168.1.1:1234. Я могу получить доступ к 79.44.63.132:1234 извне, как и ожидалось, но когда я пытаюсь получить доступ к нему из сети, что-то идет не так. Более конкретно, когда я
telnet 79.44.63.132 1234
с 192.168.1.1 я получаю соединение с моей собственной машиной, но она не отвечает. Проверка трафика показывает, что маршрутизатор на самом деле не отбрасывает какие-либо пакеты, это NAT, как будто трафик поступил извне, т.е. пересылка форта и преобразование сетевого адреса приводят к тому, что пакеты переписываются как
/-------------------------/ /--------------------------/
/ payload: 10001010110101 / / payload: 10001010110101 /
/ from: 192.168.1.1:44713 / |--> / from: 79.44.63.132:63944 /
/ to: 79.44.63.132:1234 / / to: 192.168.1.1:1234 /
/-------------------------/ /--------------------------/
а также
/--------------------------/ /-------------------------/
/ payload: 00110110101101 / / payload: 00110110101101 /
/ from: 192.168.1.1:1234 / |--> / from: 79.44.63.132:1234 /
/ to: 79.44.63.132:63944 / / to: 192.168.1.1:44713 /
/--------------------------/ /-------------------------/
Итак, кажется, что это должно работать, но это не так. Что здесь могло пойти не так?