Перенаправление или открытие портов с помощью UPnP. UPnP — что это такое? Как подключить и настроить UPnP

Возможности 18.07.2019
Возможности

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

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

Для того чтобы объяснить, что такое UPNP начнём издалека.
При подключении одного или нескольких компьютеров к Интернет (DSL и модем роутер), чаще всего используется технология NAT (Network Address Translation - преобразование сетевых адресов). NAT обеспечивает возможность нескольким компьютерам частной сети (с частными адресами из диапазонов 10.0.x.x, 192.168.x.x, 172.x.x.x) использовать один общий IP-адрес, обеспечивающим выход в глобальную сеть.
Лирическое отступление:
Популярности использования именно этой технологии кроется во все более обостряющимся дефиците адресов протокола IPv4. NAT дает наименее ресурсоемкое на сегодня решение проблемы дефицита адресов IPv4 , которая рано или поздно отпадет сама по себе с внедрением в жизнь протокола IPv6.
Конец отступления.
Кроме того, NAT образует дополнительную защиту частной сети, поскольку с точки зрения любого внешнего узла, связь с ней осуществляется лишь через один, совместно используемый IP-адрес. NAT - это не то же самое, что firewall или прокси-сервер, но это, тем не менее, важный элемент безопасности.

Пользователи DSL доступа должны понимать что у них присутствует NAT только когда модем содержит в себе функции роутера, т.е. имеет возможность подключить несколько компьютеров к Интернет. В этом случае настройки соединения (имя и пароль) вводятся в модем. Когда же модем не имеет функций роутера или подключается непосредственно к компьютеру по USB или используется vpn для подключения к провайдеру, никакого NAT не используется. NAT обеспечивает совместное использование одного глобального IP адреса, когда клиент инициирует контакт и принимает ответ через один и тот же порт, однако когда соединение запрашивается извне могут возникать проблемы.

Многие сетевые службы и приложения считают, что если они открыли прослушивающий socket, то любой компьютер в Интернет сможет инициировать с ними соединение. В случае присутствия на границе сети устройства NAT (DSL модем с функцией роутера), то для прохождения входящего соединения к службам внутри сети потребуется наличие соответствующего сопоставления портов. Поэтому такая служба будет доступна только клиентам частной сети, но не остальным узлам Интернета. Чаще всего эту проблему обходят, вручную настраивая сопоставление портов. Такая настройка позволяет устройству NAT передавать трафик, адресованный внутренней службе (программе) с указанием неких внешних IP-адреса и порта, на внутренние IP-адрес и порт используемой службы. Когда такое сопоставление указано, программа может получать входящие пакеты и становится доступной для клиентов, внешних по отношению к частной сети. Пока сопоставление портов не выполнено, связь с службой (программой) из Интернета не возможна.

Вручную настраивать сопоставление портов довольно сложно; это требует определенного опыта и знаний. Поэтому многие пользователи не могут работать с нужными им приложениями и службами без посторонней помощи. Большинство пользователей и не догадываются, что становятся жертвами NAT. Они знают только то, что при попытке воспользоваться приложениями одноранговой связи или приложениями, принимающими вызов из вне, им это не удается или удается не полностью.

Для решения подобных проблем была разработана технология NAT Traversal. NAT Traversal (прохождение NAT) - это набор возможностей, позволяющих сетевым приложениям определить, что они находятся за устройством NAT, узнаёт внешний IP-адрес и выполняет настройку сопоставления портов. Все это выполняется автоматически, и прозрачно для пользователя. NAT Traversal в процессе функционирования опирается на протоколы обнаружения и управления, являющиеся частью спецификации UPnP (Universal Plug and Play). UPnP позволяет избавить пользователей от необходимости вручную настраивать таблицы сопоставления NAT и решает приведенные выше проблемы, без каких-либо дополнительных настроек роутера (должна быть лишь активирована возможность UpnP).

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

Корректная работа приложения UpnP должна поддерживаться как самим приложением, так и роутером. Однако не все приложения поддерживают эту технологию в своем составе. Многие производители рассчитывают на поддержку UPNP операционной системы (Windows). Кроме того не во всех модемах UpnP включен по умолчанию.

Итак, если у нас есть приложения, которые не полностью функционируют, то нам необходимо активировать поддержку UpnP в модеме и включит ее в Windows.

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

Включение в Windows 7:
Если компьютер подключен к сети, параметры сетевой политики могут помешать выполнению данных действий.

По умолчанию брандмауэр Windows блокирует обнаружение сети (ранее это называлось технология UPnP), но имеется возможность разрешить его.

Откройте центр сетей и совместного доступа, нажав кнопку Пуск, Рисунок кнопки «Пуск»выбрав пункты Панель управления и Сеть и Интернет, а затем - Центр сети и общего доступа.

Если обнаружение сети отключено, нажмите кнопку со стрелкой Рисунок кнопки со стрелкой‌, чтобы развернуть раздел.
В меню Включить сетевое обнаружение выберите пункт Применить. Требуется разрешение администратора Введите пароль администратора или подтверждение пароля, если появится соответствующий запрос.

UPnP (аббревиатура Universal Plug and Play) – набор сетевых протоколов, публикуемых одноименным форумом.

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

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

В таком случае, чтобы дать доступ, например, к ресурсам 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» .

Скачиваем и устанавливаем программу.

После завершения установки следует указать, с какого каталога и какой тип контента будет транслироваться в сеть (кнопка «Добавить» на правой панели программы).

Выбор осуществляется путем установки зеленых точек напротив соответствующих каталогов и типа контента.

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

При использовании роутера у юзеров иногда возникают проблемы с доступом к торрент-файлам, онлайн-играм, аське и другим популярным ресурсам. Решить данную проблему может применение UPnP (Universal Plug and Play) — специального сервиса для прямого и быстрого поиска, подключения и автоматической настройки всех устройств в локальной сети. Фактически эта служба является альтернативой ручного проброса портов на маршрутизаторе. Нужно только включить функцию UPnP на роутере и на компьютере. Как это сделать?

Если у вас нет желания вручную открывать порты для различных сервисов на своём роутере, то можно попробовать в деле UPnP. Данная технология имеет как достоинства (простота использования, высокая скорость обмена данными), так и недостатки (пробелы в системе безопасности). Поэтому подходите к включению UPnP обдуманно и осознанно.

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

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


Включение UPnP на компьютере

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


В заключение обратите внимание на одну важную деталь. В некоторых программах, например , также необходимо будет настроить использование 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 отсутствует).

Рекомендуем почитать

Наверх