UPnP — что это такое? Как подключить и настроить UPnP. Смотреть что такое "UPnP" в других словарях

Что такое функция Universal Plug and Play в роутерах NBG и ADSL-модемах P-660?

Universal Plug and Play - это архитектура, позволяющая автоматически расширять одноранговые сети путем добавления в них различных сетевых устройств и новых хостов. Эта технология разработана, чтобы облегчить и стандартизировать подключение новых устройств в неуправляемых сетях, будь они дома, в малом офисе, общественных местах или присоединены к Интернету.

Universal Plug and Play - распределенная, открытая архитектура организации сети, которая усиливает TCP/IP- и веб-технологию, чтобы автоматически обеспечить цельную организацию сети для управления и передачу данных между сетевыми устройствами в доме, офисе и общественных местах.
UPnP - больше чем только простое расширение модели Plug and Play. Она разработана, чтобы поддержать «нулевое конфигурирование» сети, «невидимую» ее организацию и обеспечить автоматическую открытость сети для широкого спектра сетевых устройств различных производителей. Устройство может динамически присоединиться к сети, получить IP-адрес, передать свои способности и узнать о присутствии и способностях других устройств. DHCP и серверы DNS являются дополнительными и используются, только если доступны в сети. Наконец, устройство может быть отключено от сети без дополнительного ее конфигурирования, при этом не оставив о себе никакой информации.


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

UPnP также поддерживает прохождение NAT , что может автоматически решить многие проблемы, связанные с настройкой и использованием NAT. UPnP автоматически назначает динамическому порту, который используется приложением, соответствующий шлюз Internet и удаляет эту связь, когда соединение завершено.
Ключевые компоненты UPnP - это устройства (devices), сервисы (services) и точки контроля (control points).
Devices: Сетевые устройства, такие, как сетевые шлюзы, TV, бытовая техника, принтеры и т.д., которые предоставляют сервисы.
Services: Сервисы предоставляются устройствами, например сервис времени предоставляется устройством часы. В UPnP сервисы описываются в XML-формате. Точки контроля могут устанавливать или получать значения от устройств.
Control points: Точки контроля предназначены для управления сетевыми устройствами. При добавлении новой точки контроля (например, подключаете laptop) к сети устройство может просканировать сети на нахождение различных UPnP-совместимых устройств. Такие устройства ответят своими URL-адресами и описанием своих функциональных возможностей.



На рисунке изображены два компьютера - РС1 и РС2, оба прописанные на сервере MSN, которые хотят установить сеанс видеоконференции. РС1 за маршрутизатором, использующим PPPoE-соединение и поддерживающим UPnP. Так как маршрутизатор поддерживает UPnP, необходимости в конфигурировании таблиц NAT нет. Пока функция UPnP включена на маршрутизаторе, РС1 будет использовать и вносить изменения в таблицу NAT автоматически. Заметим: мы подразумеваем, что РС1 поддерживает UPnP и соответственно, скорее всего, работает под управлением ОС Windows. РС1 в данном случае является точкой контроля сети, а модем ZyXEL - устройством сети с поддержкой UPnP.



Для активации UPnP на устройствах ZyXEL серии NBG необходимо в веб-конфигураторе перейти в меню Management - UPnP и отметить три поля: «Enable the Universal Plug and Play (UPnP) Feature », «Allow users to make port forwarding changes through UPnP » и «».
Первое поле включает функции UPnP на устройстве.
Второе поле позволяет приложениям на пользовательских компьютерах менять конфигурацию данного устройства. Например, если включено данное поле, то пользователи MSN-приложений могут назначать динамические порты в таблице маршрутизатора.
Третье поле позволяет UPnP проходить сквозь Firewall (межсетевой экран).


Для использования UPnP на устройствах ZyXEL серии P660 необходимо в веб-конфигураторе перейти в меню Advanced - UPnP и отметить три поля: «Active the Universal Plug and Play (UPnP) Feature », «Allow users to make configuration changes through UPnP » и «Allow UPnP to pass through Firewall ».



В устройстве ZyXEL P-330W используется другой интерфейс веб-конфигуратора и для активации UPnP на этом устройстве нужно в веб-конфигураторе перейти в меню WAN и установить галочку в поле «Enable UPnP ».


Пример настройки UPnP в интернет-центрах серии Keenetic c микропрограммой NDMS V2 можно найти в статье: «Использование функции 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 отсутствует).

Технология Universal Plug and Play позволяет программам, поддерживающим UPnP, такие как BitTorrent, KTorrent, открывать порты на роутере автоматически , без необходимости ручной настройки. Это необходимо, например для современных Торрент-клиентов, чтобы обеспечить максимальную скорость скачивания и отдачи.

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

Альтернатива — ручная настройка портов в маршрутизаторе.

Помимо торрент-клиентов, UPnP поддерживают такие программы, как Skype и Pidgin.

Пример настройки UPnP в маршрутизаторе WR1043ND надо:

  1. На странице Forwarding -> UPnP включить поддержку UPnP: статус Enabled, т.е. Включён
  2. Если какие-либо программы с поддержкой UPnP уже были запущены — выйти из них и заново войти
  3. Убедиться на странице Forwarding -> UPnP что программа появилась в списке Current UPnP Settings List

Примечание:

Teredo — сетевой протокол, предназначенный для передачи IPv6 пакетов через сети IPv4, в частности через устройства, работающие по технологии NAT, путём их инкапсуляции в UDP дейтаграммы. В примере выше порт для Teredo открыт программой Bittorrent, он нужен для поддержки IPv6.

При запуске последних версий Bittorrent вы увидите добавление Teredo к общему списку, т.е. будет открыто 2 порта: TCP и UDP, и плюс Teredo.

UPnP (аббревиатура Universal Plug and Play) – набор сетевых протоколов, публикуемых одноименным форумом. Форум UPnP представляет собой открытую ассоциацию представителей отрасли с целью выработки стандартов технологии UPnP, цель которой упрощение объединения интеллектуальных устройств изначально на уровне домашних, а в последствии – корпоративных сетей.

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

Настройка UPnP

Настройка UpnP может понадобится в случае, если подключение к Интернет осуществляется не непосредственно с компьютера, а с использованием роутера.В таком случае, чтобы дать доступ, например, к ресурсам FTP-сервера, размещенному на ПК, необходимо выполнить операцию проброса портов на роутере и назначить компьютеру статический IP-адрес.

Обратите внимание! С использованием функции UPnP на роутере, все настройки проброса портов осуществляются в автоматическом режиме, поэтому данный способ подойдет людям, только начинающим изучения компьютер. Минусом UpnP является снижение уровня безопасности домашней сети.

В большинстве случаев, пользователь получает роутер с активированным режимом UpnP. Проверим активацию данного режима в настройках нашего роутера. Для этого в любом доступном браузере следует написать IP-адрес вашего маршрутизатора (как правило это 192.168.0.1 или 192.168.1.1), ввести логин и пароль. Дальше приведем несколько скриншотов, которые помогут вам проверить активирован ли этот режим на наиболее распространенных роутерах.

TP-Link

Раздел «Forwarding» (Переадресация), подраздел «UpnP» - «Status - Enabled (Включено)»

D-Link

Раздел «Advanced», подраздел «Advanced Network» установлен флажок в поле «Enable UPnP».

ASUS

Раздел «Интернет», вкладка «Подключение» - «Включить UpnP» флажок установлен в поле «Да».

После того как режим UPnP был включен на роутере, необходимо его также включить и в приложении, которое требует проброс портов. Например, для включения UpnP в Skype необходимо зайти в раздел «Дополнительно», подраздел «Соединение» и поставить флажок возле «Включить UpnP».

Создаем домашний медиа-сервер DLNA

DLNA - технология позволяющая объединять в единую цифровую сеть устройства с целью приема/передачи и просмотра в режиме on-line различного медиа-контента. На практике это выглядит следующим образом, есть компьютер с жестким диском большей емкости на котором хранятся фотографии, фильмы, аудиозаписи и другой медиаконтент.

Что если вы хотите просмотреть один из фильмов не на экране ПК, а на телевизоре с большой диагональю? Или к вам пришли друзья и вы хотите показать фотографии из отпуска либо на большом экране телевизора либо на телефоне, т. к. не хотите заходить в дом. А что если каждый член семьи хочет смотреть свои медиафайлы на своем персональном девайсе (телефоне, планшете)? Проблема решается созданием на базе ПК медиасервера и объединением всех устройств в единую сеть с помощью роутера.

Обращаем ваше внимание, что роутеры поддерживающие стандарт 802.11N (скорость передачи данных до 300Мб/с) не всегда справляются с передачей больших потоковых объемов видео высокого качества по Wi-Fi и на экране телевизора происходят замирания. В таком случае рекомендуем использовать проводное соединение.

В качестве программного обеспечения, с помощью которого будет создан медиа-сервер будет использована бесплатная программа «Домашний медиа-сервер UpnP, DLNA, HTTP». Скачиваем и устанавливаем программу.

После завершения установки следует указать, с какого каталога и какой тип контента будет транслироваться в сеть (кнопка «Добавить» на правой панели программы). Выбор осуществляется путем установки зеленых точек напротив соответствующих каталогов и типа контента. Для добавления ресурсов размещенных на сетевых или съемных дисках необходимо поставить флажки в соответствующих графах в нижней части окна.

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 отсутствует).

Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: