Upnp что такое в роутере. Что такое UPnP? Создаем домашний медиа сервер (DLNA) — инструкция по установке

Для того что бы ответить на вопрос что такое 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 » и делайте настройку порта в ручную.

Начнем с того зачем нужен этот "проброс портов" (port forwarding)? В домашних ЛВС он нужен для нормальной работы P2P клиентов (µTorrent, DC++ и т.п.), для игры по сети (когда сервер игры на вашем ПК), а также для работы WEB-, FTP-, короче для любых серверов

Вобщем "проброс портов" можно осуществить двумя способами:

Этот способ подходит для P2P клиентов (почти все они могут использовать данную технологию). При использовании UPnP проброс портов осуществляется автоматически, но этот способ подходит не для всех приложений. Для этого Вам потребуется:

Проброс портов вручную

Этот сложнее, но более правильный и верный способ. При пробросе портов вручную (фиксированный) IP-адрес

Проброс портов используя UPnP (Universal Plug and Play)

Включить UPnP на роутере Asus RT-N16

Включить UPnP на роутере Asus WL520GU

Включить UPnP на роутере D-Link DIR-330

Включить UPnP на роутере NetGear WNR3500

Включить UPnP на роутере TP-Link TL-WR541G / TL-WR542G

Включить UPnP на роутере TrendNet TEW-652BRP

Включить UPnP на роутере ZyXel KEENETIC

Настройка проброса портов в µTorrent

Настройка проброса портов в DC++

Проброс портов вручную

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

Делаем адрес нашего ПК статическим

Узнаем текущую конфигурацию сети

Вызываем окно "Выполнить" сочитанием клавиш Win+R и набираем в строке "cmd", затем жмем открыть (или клавишу Enter)

В открывшемся окне набираем "ipconfig -all" жмем Enter. Комманда выведет текущую конфигурацию сети, в ней нас интересует:

  • Имя компьютера
  • Физический адрес
  • IPv4-адрес (для WinXP - IP-адрес)
  • Маска подсети
  • Основной шлюз
  • DNS-сервер(ы)

Связываем MAC-адрес (Физический адрес) с IP-адресом

Нужно зайти в настройки DHCP-сервера нашего маршрутизатора и присвоить IP-адрес нашему ПК, указав физический адрес сетевой карты (и при необходимости имя компьютера).

Примечание: IP-адрес можно использовать тотже что и в текущей конфигурации. Также он может быть изменем. Пример: Ваш Основной шлюз 192.168.1.1 тогда Ваш адрес может лежать в диапазоне 192.168.1.2 - 192.168.1.254) Физический адрес на роутерах различных производителей (моделей) может иметь разный вид. Пример: 00-25-B3-69-22-7C, 00:25:B3:69:22:7C или 0025B369227C

Задаем параметры IP нашей сетевой карты (скоректировав при этом границы диапазона адресов раздаваемых DHCP-сервером)

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

Для WinXP сетевые подключения можно найти зайдя в Панель Управления -> Сетевые подключения Vista/Win7: Панель Управления -> (Сеть и Интернет) -> Центр управления сетями и общим доступом -> Изменить параметры адаптера

Нам нужно настроить протокол TCP/IPv4 (для WinXP - TCP/IP). Находим его в списке, дважды кликаем по нему. В появившемся окне выбираем "Использовать следующий IP-адрес", вбиваем в соответствующие поля IP-адрес, Маску подсети и Основной шлюз (значения берем из текущей кофигурации сети см. выше) . То же делаем и для DNS-сервера: выбираем "Использовать следующие адреса DNS-серверов" и вводим значение в поле "Предпочтительный DNS-сервер" (если ipconfig показал два DNS-сервера, то второй нужно поместить в поле "Альтернативный DNS-адрес"). Далее жмем "ОК" еще раз "ОК".

Примечание: IP-адрес можно использовать тотже что и в текущей конфигурации. Также он может быть изменем. Пример: Ваш Основной шлюз 192.168.1.1 тогда Ваш адрес может лежать в диапазоне 192.168.1.2 - 192.168.1.254)

После настройки TCP/IP переходим к настройки DHCP-сервера нашего маршрутизатора. Нам нужно что бы выбранный нами IP-адрес был за границами пула (диапазона) IP-адресов раздаваемых DHCP-сервером, во избежании казусов. Для этого мы эти границы чуток подвинем. Сдвинуть можно как верхнюю так и нижнюю границы - тут как вам удобно. Пример: наш IP-адрес 192.168.0.4, логично изменить начальный адрес пула (подвинуть нижнюю границу), тогда DHCP-сервер будет раздавать IP-адреса, скажем, начиная с 192.168.0.5 заканчивая 192.168.0.254. При этом наш IP-адрес не будет присвоен другому устройству. Ниже показано где это сделать. Примечание: При изменении начального или конечного IP-адреса , не забывайте что мы меняем только последнее число (после 3-ей точки)

Ранее я много раз слышал, что 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

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

Технология UPnP с точки зрения потребителя

Простота, возможность выбора и повышение эффективности работы. Сетевые продукты, использующие технологию Universal Plug and Play, заработают сразу, как только будут физически подключены к сети. UPnP поддерживает практически все технологии сетевых инфраструктур, как проводные, так и беспроводные. В их число, в частности, входят: кабельный Ethernet, беспроводные сети Wi-Fi (IEEE802.11B), порт IEEE 1394 («Firewire »), сети на основе телефонных линий и сети на основе линий электропитания. Подключение всех этих устройств и персонального компьютера друг к другу упростит пользователям доступ к новейшим службам и приложениям.

Клиентские программы могут быть не только для пользователей персональных компьютеров (такие как Windows Media Player), но и вшитыми в аппаратные устройства (мультимедийные сетевые плееры, мобильные телефоны и т. п.).

Для Linux написано мало серверных программ, из которых наиболее известна MediaTomb (http://mediatomb.cc/), управление которой осуществляется средствами веб-интерфейса.

UPnP Forum

Universal Plug and Play Forum (Форум UPnP) - это открытая ассоциация представителей отрасли, образованная в июне 1999 г. с целью выработки стандартов технологии UPnP, которые упростили бы объединение интеллектуальных устройств в рамках домашних и - со временем - корпоративных сетей. Участники форума создают и публикуют протоколы управления устройствами UPnP и протоколы управления службами. В начале июня 2001 г. в состав Форума UPnP входило свыше 350 компаний. Руководство работой форума осуществляет Управляющий комитет по UPnP (UPnP Steering Committee), состоящий из 22 членов. Кроме того, имеются Технический комитет, Комитет по маркетингу и различные рабочие комитеты, занимающиеся конкретными категориями устройств. Списки участников форума, а также информация о порядке присоединения к нему доступны на веб-узле форума (EN).

Технические элементы

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

UPnP поддерживает сети нулевой конфигурации и автоматическое обнаружение устройств: устройство присоединяется к сети в динамическом режиме, получает IP-адрес, по запросу сообщает о своих возможностях и собирает информацию о наличии и возможностях других устройств. Присутствие серверов DHCP и DNS необязательно; они могут использоваться только в случае, если будут доступны в сети. Более того, устройство может автоматически выйти из сети, и это не приведёт к каким-либо нарушениям в её работе.

Технология UPnP опирается на весь опыт развития Интернета, в ней активно используются многие его компоненты, в том числе , TCP , UDP , HTTP и XML . Проект развития UPnP предусматривает многостороннее сотрудничество заинтересованных компаний в области создания стандартных протоколов управления устройствами (DCP). Как и в случае интернета, эти стандарты будут основываться на протоколах проводного доступа, имеющих декларативный характер, составленных на языке XML и поддерживающих связь через протокол HTTP.

См. также


Wikimedia Foundation . 2010 .

Смотреть что такое "UPnP" в других словарях:

    UPnP - UPnP, Universal Plug and Play … Universal-Lexikon

    UPNP

    UPnP - Universal Plug and Play Pile de protocoles 7 Application 6 Présentation 5 Session 4 Tr … Wikipédia en Français

    UpNp - Universal Plug and Play Pile de protocoles 7 Application 6 Présentation 5 Session 4 Tr … Wikipédia en Français

    UPNP

    UPnP - Universal Plug and Play (UPnP) dient zur herstellerübergreifenden Ansteuerung von Geräten (Stereoanlagen, Router, Drucker, Haussteuerungen) über ein IP basierendes Netzwerk, mit oder ohne zentrale Kontrolle durch ein Residential Gateway. Es… … Deutsch Wikipedia

    Upnp - Universal Plug and Play (UPnP) dient zur herstellerübergreifenden Ansteuerung von Geräten (Stereoanlagen, Router, Drucker, Haussteuerungen) über ein IP basierendes Netzwerk, mit oder ohne zentrale Kontrolle durch ein Residential Gateway. Es… … Deutsch Wikipedia

    Universal Plug and Play универсальная автоматическая настройка сетевых устройств. Реализация технологии автоматической настройки сети Linux и Windows. Состоит из набора сопутствующих протоколов. Содержание 1 Что такое UPnP? 2 Что означает… … Википедия

    UPNP - abbr. Universal Plug N Play (PNP) Syn: UPnP …

    UPnP - abbr. Universal Plug N Play (PNP) Syn: UPNP … United dictionary of abbreviations and acronyms

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