April 18th, 2009

UPnP глюки

Обнаружил фичу, о которой раньше не знал -- UPnP.

Моя "домашняя сеть" выходит в интернет через точку доступа DLink DIR-615. Эта точка доступа -- довольно многофункциональный маршрутизатор. Ими можно управлять через Веб-интерфейс.

Одной из таких управляемых функций, интересных для меня, оказалась "Virtual Server". Она позволяет "отображать" IP порты любого из внутренних компьютеров во внешний мир. Это полезно для работы таких программ, как eMule, которые хотят возможности связаться с ними напрямую из внешнего интернета. При помощи функции "Virtual Server" я могу открыть канал доступа персонально для одной этой программы, оставляя остальную сеть недоступной для внешнего мира.

Недавно я увидел, что в Windows в окне "Сетевые подключения" имеется значок "подключение к интернету", который не соответствует ни одной сетевой карте или модему.

В результате небольшого исследования, я обнаружил, что существует протокол или возможность, которая называется UPnP. Что-то вроде Plug and Play, только в масштабах сети. При помощи этого протокола можно управлять устройством, не зная его адреса, не настраивая соединения с ним, автоматически.

Оказалось, что эта иконка появляется в ответ на присутствие в сети моего маршрутизатора. И оказалось, что можно прямо изнутри этой иконки, не заходя в веб интерфейс управления маршрутизатором, настраивать Virtual Server. Кроме того, оказалось, что программа eMule должна мочь сама настраивать это дело.

Однако, похоже, обнаружилось два глюка, которые сводят на нет все удодства. Во-первых, любое изменение параметров по UPnP оказывается неактивным. Маршрутизатор ещё надо перезагрузить, чтобы параметры оказались задействованы. А во-вторых, eMule почему-то вписывает в эти параметры неправильное значение, а именно, адрес своего компьютера как 127.0.0.1. То есть, маршрутизатор не знает, с какого компьютера отображать порт.