Перенаправление портов

Перенаправление портов - функция, присутствующая во многих современных маршрутизаторах. По сути, она позволяет сопоставить определённый внешний порт маршрутизатора с конкретным адресом и портом в LAN.

Это значит, например, что каждый пакет, отправленный на порт 9732 маршрутизатора со стороны WAN, маршрутизатор пересылает на 192.168.0.44:1001 в сети:

an009_port_fwd1

Как видно, это статическая конфигурация. Она задаётся на самом маршрутизаторе - к оборудованию Tibbo она не относится. На схеме выше показана сама настройка: соединение не установлено, но маршрутизатор знает, что делать с данными, пришедшими на порт 9732.

После правильной настройки перенаправления портов на маршрутизаторе каждый раз, когда устанавливается соединение с определённым портом «настоящего» IP-адреса маршрутизатора, данные пересылаются на определённый хост и порт в LAN. Таким образом:

an009_port_fwd2

Здесь показана та же схема, что и выше, но с установленным соединением. Как видно, удалённый хост действительно может инициировать соединение с сервером устройств внутри сети, потому что маршрутизатор знает, что делать с данными. Сравните эту схему со схемой в разделе Как NAT применяется к серверам устройств.

Заметки по настройке перенаправления портов

Чтобы перенаправление портов работало, должно выполняться несколько условий:

  • Внутри LAN у DS должен быть статический IP-адрес. Маршрутизатор знает, что пакеты нужно переслать на 192.168.0.44, поэтому если DS внезапно получит адрес 192.168.0.53, пакеты до него не дойдут. Значит, его адрес должен быть статическим.
  • Внешний («настоящий») IP-адрес маршрутизатора тоже должен быть статическим. Иначе удалённый хост (212.68.157.9 на схеме выше) не будет знать, куда подключаться.
  • Маршрутизатор должен быть правильно настроен на перенаправление портов через свой внутренний интерфейс. Способ зависит от модели и описан в руководстве к конкретному маршрутизатору.
  • Внутренний и внешний порты не обязательно совпадают: то, что вы настроили маршрутизатор на пересылку входящих соединений с порта 1001, не значит, что внутри сети они будут пересылаться на порт 1001. Это нужно задать правильно.
  • Помните: установление соединения - это не то же самое, что использование соединения. Подробно это описано в разделе Важное примечание выше.
  • DS должен принимать входящие соединения. То есть параметр Routing Mode (RM) должен быть установлен в «Server» или «Server/Client».
note_further-wtВ некоторых случаях (в зависимости от приложения) можно обойтись без статического IP-адреса на внешней стороне маршрутизатора, используя Dynamic DNS. Однако это выходит за рамки данной рекомендации. Подробнее читайте в статье Википедии Dynamic DNS.