Upnp что такое в роутере asus. Включение UPnP на роутере

Ранее я много раз слышал, что UPnP каким-то образом умеет самостоятельно открывать порты (производить Port Forwarding на роутере) по запросу от хоста из локальной сети. Однако, то, каким именно образом это происходит, и какие протоколы для этого используются, доселе было покрыто для меня пеленой тумана.

В данной статье я хочу кратко рассказать, как работают два механизма для проброса портов, а именно NAT Port Mapping Protocol и Internet Gateway Device (IGD) Protocol , входящий в набор протоколов UPnP. К своему удивлению я обнаружил, что в рунете информация по данному вопросу более чем скудна, что и сподвигло меня на написание данной заметки.

Для начала приведу краткий FAQ:

Q: Для чего нужны данные протоколы?
A: Для формирования на маршрутизаторе правила проброса определенного TCP/UDP порта (Port Forwarding) не вручную, а «автоматически», т.е. по запросу от хоста во внутренней сети.

Q: Как это реализуется?
A: Устройство за NAT отправляет маршрутизатору запрос с указанием внутреннего и внешнего номеров портов и типа протокола (TCP/UDP). Если указанный внешний порт свободен, маршрутизатор формирует у себя правило трансляции и рапортует запросившему компьютеру об успешном выполнении запроса.

Q: Проводится ли на маршрутизаторе аутентификация/авторизация запросов на открытие порта?
A: Нет, не проводится.

Теперь же рассмотрим работу данных протоколов более подробно (под катом).

Port Mapping Protocol

NAT-PMP описан в RFC 6886. Для своей работы он использует UDP-порт сервера 5351.

Рассмотрим работу протокола на конкретном примере - торрент-клиенте Vuze 5.7 для Windows 7.

Примечание: NAT-PMP во Vuze по умолчанию выключен. Его необходимо активировать в настройках плагинов.

1. Запускаем Wireshark. В строке фильтра вводим nat-pmp
2. Запускам Vuze.
3. Останавливаем перехват пакетов, смотрим результаты.

У меня получилось следующее:

Первые 2 это запрос внешнего адреса маршрутизатора и ответ с указанием этого самого адреса. Не будем на них подробно останавливаться и лучше рассмотрим, как происходит маппинг портов на примере пакетов 3-4.

Здесь мы видим, что запрашивается проброс внешнего UDP порта 48166 на такой же внутренний порт. Интересно, что внутри протокола не указывается адрес хоста, на который должна происходить трансляция (Inside Local в терминологии Cisco). Это означает, что маршрутизатор должен взять адрес источника пакета из IP-заголовка и использовать его в качестве Inside Local.

Параметр Requested Port Mapping Lifetime ожидаемо означает время жизни записи в таблице трансляций.

Как мы видим, маршрутизатор предполагаемо создал запрашиваемую трансляцию и ответил кодом Success . Параметр Seconds Since Start of Epoch означает время с момента инициализации таблицы трансляций (т.е. с момента последней перезагрузки роутера).

Маппинг TCP-портов происходит точно также и отличается только значением поля Opcode .

После того, как приложение прекратило использовать данные порты, оно может послать маршрутизатору запрос на удаление трансляции.
Главное отличие запроса на удаление от запроса на создание заключается в том, что параметр Lifetime устанавливается в ноль.

Вот что произойдет, если мы закроем Vuze.

На этом рассмотрение NAT-PMP закончено, предлагаю перейти к несколько более «мудреному» UPnP IGD.

Internet Group Device Protocol

Для обмена своими сообщениями данный протокол использует SOAP.

Однако, в отличие от NAT-PMP, IGD не использует фиксированный номер порта сервера, поэтому перед тем, как обмениваться сообщениями, нужно сперва этот порт узнать. Делается это при помощи протокола SSDP (данный протокол является частью UPnP и используется для обнаружения сервисов).

Запускаем торрент-клиент. Он формирует SSDP-запрос и отсылает его на мультикастовый адрес 239.255.255.250.

Маршрутизатор формирует ответ и отправляет его уже юникастом:

Внутри ответа мы можем увидеть URL для взаимодействия с маршрутизатором по протоколу IGD.

Далее Vuze подключается к маршрутизатору по указанному URL и получает XML с информацией о данном устройстве, в том числе содержащую набор URI для управления некоторыми функциями маршрутизатора. После того, как нужный URI найден в rootDesc.xml, Vuze отправляет SOAP-запрос на содание NAT-трансляции по найденному URI.

Примечание: до того, как запросить создание трансляции, Vuze заставил маршрутизатор перечислить все имеющиеся Port Forwarding"и. Для чего это было сделано, я могу лишь догадываться.

SOAP-запрос на создание трансляции UDP-порта:

Как говорилось ранее, нужный URI (идет сразу после POST) Vuze взял из rootDesc.xml. Для добавления трансляции используется функция с названием AddPortMapping .

Также можно отметить, что, в противоположность NAT-PMP, Inside Local-адрес указывается внутри самого протокола.

Аналогично NAT-PMP, при закрытии торрент-клиента маппинги проброшенных портов удаляются. Делается это функцией DeletePortMapping :

Можно заметить, что для удаления правила достаточно указать только тип протокола (UDP) и номер внешнего порта, не указывая остальные параметры.

Заключение

В данной статье мы рассмотрели два достаточно простых способа по созданию на домашнем роутере правил Port Forwarding по команде от хоста из локальной сети. Остается лишь отметить, что если вы считаете работу данных протоколов угрозой безопасности вашей домашней сети, то их можно попытаться выключить (хотя, конечно, гораздо лучше доверить вопросы безопасности утилите, которая для этого предназначена - файрволу). В случае моего Zyxel Giga II, на котором, к слову, и проводились все тесты, это делается CLI-командой no service upnp (примечательно, что в веб-интерфейсе опция включения/отключения UPnP отсутствует).

Включение UPnP для работы с сервисами Torrent и DС++

Внимание! Данная статья относится к следующим категорям клиентов:
+ Физические лица г.Минска, adsl-доступ, настроенные по маршрутизируемой схеме подключения нескольких компьютеров через сервер: модем в режиме ENET_ENCAP, и VPN-соединение на компьютере-сервере;
+ Пользователи домашней сети, ethernet-доступ, которые используют маршрутизатор для выхода в Интернет.

Для справки : Служба UPnP (The Universal Plug and Play) позволяет компьютеру автоматически находить, подключать и настраивать устройства для работы с локальными сетями. Использование UPnP является более удобным, чем проброс портов на маршрутизаторе (или модеме, который выполняет роль маршрутизатора).

Настройку будем выполнят в два этапа.
I. На роутере (маршрутизаторе) или модеме;
II. На ПК.

Этап I. Включаем поддержку UPnP на роутере (модеме)

Для модемов и маршрутизаторов марки ZyXel

1. ZyXel 660 v.1 (TR EE, RU EE, HTW EE)
Advanced Setup –> UPnP . На открывшейся странице ставим галочку Enable the Universal Plug and Play (UPnP) Service и нажимаем кнопку Apply для сохранения.

2. ZyXel 660 v.2 (RT2 EE, RU2 EE, HTW2 EE)
Заходим на модем через веб-интерфейс в раздел Advanced –> UPnP . Ставим все маркеты как на скриншоте и нажимаем кнопку Apply для сохранения.

3. ZyXel p334W EE
Advanced –> UPnP Apply для сохранения.

4. ZyXel 330W EE
Заходим на маршрутизатор в раздел WAN , ставим галочку Enable UPnP и нажимаем кнопку Save для сохранения.

Для модемов и маршрутизаторов марки D-Link

1. D-link 500T
Заходим на модем, закладка Advanced - >UPnP , ставим галочку Enable UPnP и включаем DHCP_1_34, после чего нажимаем Apply для сохранения.

2. D-link 2500U/2540U/2600U/2640U
Заходим на модем, раздел Advanced Setup - >LAN , ставим галочку Enable UPnP. Нажимаем Save для сохранения и Save/Reboot для перегрузки модема.

3. D-link 2740U
Заходим на модем, раздел Setup - >LAN , ставим галочку Enable UPnP. Нажимаем Save Settings для сохранения. Далее переходим в подраздел Save/Reboot и нажимаем кнопку Save/Reboot для перегрузки модема.

4. Маршрутизатор D-link DIR 300
Заходим в настройки маршрутизатора, раздел Advanced –> Advanced Network . Ставим галочку Enable UPnP и нажимаем Save Sett ings для сохранения.

Для модема Billion 5210S


Access Management –> UPnP , и ставим переключатели UPnP и Auto-configured в положение Activated . Для сохранения нажимаем кнопку Save .

Для модемов Acorp

1. Acorp lan 120/420
Заходим в настройки модема, раздел Advanced –> UPnP и отмечаем маркер Enable UPnP . Нажимаем Apply для сохранения.

2. Acorp lan 410
Заходим в настройки модема, раздел Services –> UPnP и отмечаем маркер Enable напротив UPnP . Нажимаем Apply Changes для сохранения.


Для модема Linksys AG241V2

Заходим в настройки модема, раздел Administration –> Management –> UPnP , отмечаем маркеры как на скриншоте и нажимаем кнопку Save Settings для сохранения.

Для модема Huawei

Заходим в настройки модема, раздел Advanced –> UPnP и отмечаем маркер Enable . Нажимаем Submit для сохранения.

Этап II. Включение UPnP на ПК

Windows 7

1 . Заходим в Пуск –> Панель управления –> Сеть и Интернет –> Центр управления сетями и общим доступом .
Далее выбираем меню слева Изменить дополнительные параметры общего доступа.

2. В появившемся окне для редактирования нажимаем на стрелку напротив Общий (текущий профиль).

3. Ставим точку в пункте Включить сетевое обнаружение и нажимаем Сохранить изменения .

Windows XP
1. Заходим в Пуск –> Настройки –> Панель управления –> Сетевые подключения .
Далее в меню Дополнительно выберите Дополнительные сетевые компоненты .

2. В появившемся окне выделяем Сетевые службы и нажимаем кнопку Состав

3. В списке состава Сетевых служб отмечаем галочкой службу Пользовательский интерфейс UPnP и нажимаем кнопку Ok .

5. И ждем окончания установки.

6. В результате в Сетевых подключениях у Вас должен появиться Шлюз Интернета , в свойствах которого автоматически будут появляться правила для файлообменных клиентов.

Для того что бы ответить на вопрос что такое UPnP можно прочитать общепринятую теорию. UPnP - это служба (набор сетевых протоколов), направленная на автоматическую настройку сетевых устройств в домашней и корпоративной сетях. Это архитектура многоранговых соединений между компьютерами и устройствами, которые находятся как дома, так и на работе. UPnP основан на различных стандартах и технологиях интернета, одними из которых являются TCP/IP, HTTP и XML.

Основное предназначение UPnP – это поиск и подбор определенных параметров для доступа к локальной или глобальной сети, чтобы, к примеру, не вводить IP-адрес и указывать порт. Использование UPnP позволило сделать настройку подключения к интернету для большинства пользователя простой.

По сути данная технологи позволяет присоединять устройства к сети в динамическом режиме (получение IP-адреса). Когда пользователь настраивает роутер, то самый простой способ получить доступ к интернету - это в параметрах настройки выбрать динамический IP-адрес. В этом случае и будет использована технология UPnP.

Данная технология используется на любых устройствах компьютерного типа, с любыми операционными системами. Самым популярным является использование на персональных стационарных компьютерах с операционными системами Windows XP и Windows 7. Ниже показано как включить, проверить и настроить UPnP для операционной системы Windows 7.

Как включить UPnP на операционной системе Windows 7

Для того, чтобы ответить на вопрос как включить UPnP, необходимо выполнить небольшой список действий, а именно:

Возможно придется включить сетевое обнаружение в домашнем или рабочем профиле для полноценной работы службы.

Также рекомендую проверить состояние этой службы в системной утилите "Службы". Делается это так: "WIN+R" и вводим команду "services.msc". И находим службу Plug and Play и смотрим, чтобы запуск не был отключен.

Как проверить UPnP

Для того, чтобы ответить на вопрос как проверить UPnP, нужно определить работу данной службы в роутере и в программе. В настройках роутера нужно проверить разрешена ли поддержка UPnP, а также посмотреть инструкцию к устройству.

Чтобы проверить UPnP в программе, можно узнать информацию про поддержку технологии данной программы в интернете, но в большинстве из них данная функция присутствует. Одни из них, такие как µTorrent сами настраиваются под работу роутера, а другие - через настройки UPnP в операционной системе.

Как настроить UPnP

Чтобы ответить на вопрос как настроить UPnP, необходимо включить данную службу описанным способ выше, затем проверить ее состояние в роутере и в сетевых программах, которые хотите использовать. В программе достаточно поставить галочку напротив пункта «UPnP». Для этого зайдите в меню «Настройки» программы, для некоторых программ этот пункт будет в подменю «Дополнительные настройки» или в подменю «Соединение». Затем проверить успешность обращения к роутеру в секции Лог(и).

Для упрощенной настройки UPnP можно воспользоваться специальными программами. Одна из них, которая подходит для данной цели - это UPnP Test Program. Если после всей настройки UPnP работает плохо или, как оказалось, данная служба не поддерживается роутером, уберите галочку в пункте «UPnP » и делайте настройку порта в ручную.

23 марта 2016 в 11:13

Открываем порты за NAT при помощи NAT-PMP и UPnP IGD

  • Сетевые технологии

Ранее я много раз слышал, что UPnP каким-то образом умеет самостоятельно открывать порты (производить Port Forwarding на роутере) по запросу от хоста из локальной сети. Однако, то, каким именно образом это происходит, и какие протоколы для этого используются, доселе было покрыто для меня пеленой тумана.

В данной статье я хочу кратко рассказать, как работают два механизма для проброса портов, а именно NAT Port Mapping Protocol и Internet Gateway Device (IGD) Protocol , входящий в набор протоколов UPnP. К своему удивлению я обнаружил, что в рунете информация по данному вопросу более чем скудна, что и сподвигло меня на написание данной заметки.

Для начала приведу краткий FAQ:

Q: Для чего нужны данные протоколы?
A: Для формирования на маршрутизаторе правила проброса определенного TCP/UDP порта (Port Forwarding) не вручную, а «автоматически», т.е. по запросу от хоста во внутренней сети.

Q: Как это реализуется?
A: Устройство за NAT отправляет маршрутизатору запрос с указанием внутреннего и внешнего номеров портов и типа протокола (TCP/UDP). Если указанный внешний порт свободен, маршрутизатор формирует у себя правило трансляции и рапортует запросившему компьютеру об успешном выполнении запроса.

Q: Проводится ли на маршрутизаторе аутентификация/авторизация запросов на открытие порта?
A: Нет, не проводится.

Теперь же рассмотрим работу данных протоколов более подробно (под катом).

Port Mapping Protocol

NAT-PMP описан в RFC 6886. Для своей работы он использует UDP-порт сервера 5351.

Рассмотрим работу протокола на конкретном примере - торрент-клиенте Vuze 5.7 для Windows 7.

Примечание: NAT-PMP во Vuze по умолчанию выключен. Его необходимо активировать в настройках плагинов.

1. Запускаем Wireshark. В строке фильтра вводим nat-pmp
2. Запускам Vuze.
3. Останавливаем перехват пакетов, смотрим результаты.

У меня получилось следующее:

Первые 2 это запрос внешнего адреса маршрутизатора и ответ с указанием этого самого адреса. Не будем на них подробно останавливаться и лучше рассмотрим, как происходит маппинг портов на примере пакетов 3-4.

Здесь мы видим, что запрашивается проброс внешнего UDP порта 48166 на такой же внутренний порт. Интересно, что внутри протокола не указывается адрес хоста, на который должна происходить трансляция (Inside Local в терминологии Cisco). Это означает, что маршрутизатор должен взять адрес источника пакета из IP-заголовка и использовать его в качестве Inside Local.

Параметр Requested Port Mapping Lifetime ожидаемо означает время жизни записи в таблице трансляций.

Как мы видим, маршрутизатор предполагаемо создал запрашиваемую трансляцию и ответил кодом Success . Параметр Seconds Since Start of Epoch означает время с момента инициализации таблицы трансляций (т.е. с момента последней перезагрузки роутера).

Маппинг TCP-портов происходит точно также и отличается только значением поля Opcode .

После того, как приложение прекратило использовать данные порты, оно может послать маршрутизатору запрос на удаление трансляции.
Главное отличие запроса на удаление от запроса на создание заключается в том, что параметр Lifetime устанавливается в ноль.

Вот что произойдет, если мы закроем Vuze.

На этом рассмотрение NAT-PMP закончено, предлагаю перейти к несколько более «мудреному» UPnP IGD.

Internet Group Device Protocol

Для обмена своими сообщениями данный протокол использует SOAP.

Однако, в отличие от NAT-PMP, IGD не использует фиксированный номер порта сервера, поэтому перед тем, как обмениваться сообщениями, нужно сперва этот порт узнать. Делается это при помощи протокола SSDP (данный протокол является частью UPnP и используется для обнаружения сервисов).

Запускаем торрент-клиент. Он формирует SSDP-запрос и отсылает его на мультикастовый адрес 239.255.255.250.

Маршрутизатор формирует ответ и отправляет его уже юникастом:

Внутри ответа мы можем увидеть URL для взаимодействия с маршрутизатором по протоколу IGD.

Далее Vuze подключается к маршрутизатору по указанному URL и получает XML с информацией о данном устройстве, в том числе содержащую набор URI для управления некоторыми функциями маршрутизатора. После того, как нужный URI найден в rootDesc.xml, Vuze отправляет SOAP-запрос на содание NAT-трансляции по найденному URI.

Примечание: до того, как запросить создание трансляции, Vuze заставил маршрутизатор перечислить все имеющиеся Port Forwarding"и. Для чего это было сделано, я могу лишь догадываться.

SOAP-запрос на создание трансляции UDP-порта:

Как говорилось ранее, нужный URI (идет сразу после POST) Vuze взял из rootDesc.xml. Для добавления трансляции используется функция с названием AddPortMapping .

Также можно отметить, что, в противоположность NAT-PMP, Inside Local-адрес указывается внутри самого протокола.

Аналогично NAT-PMP, при закрытии торрент-клиента маппинги проброшенных портов удаляются. Делается это функцией DeletePortMapping :

Можно заметить, что для удаления правила достаточно указать только тип протокола (UDP) и номер внешнего порта, не указывая остальные параметры.

Заключение

В данной статье мы рассмотрели два достаточно простых способа по созданию на домашнем роутере правил Port Forwarding по команде от хоста из локальной сети. Остается лишь отметить, что если вы считаете работу данных протоколов угрозой безопасности вашей домашней сети, то их можно попытаться выключить (хотя, конечно, гораздо лучше доверить вопросы безопасности утилите, которая для этого предназначена - файрволу). В случае моего Zyxel Giga II, на котором, к слову, и проводились все тесты, это делается CLI-командой no service upnp (примечательно, что в веб-интерфейсе опция включения/отключения UPnP отсутствует).