Разное

Upnp igd что это: Открываем порты за NAT при помощи NAT-PMP и UPnP IGD / Хабр

07.02.1978

Содержание

Открываем порты за 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. Останавливаем перехват пакетов, смотрим результаты.

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

Всего видим 6 пакетов (3 запроса и 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 — документация Traffic Inspector Next Generation 1.8.0

Плагин

os-upnp представляет собой реализацию UPnP IGD протокола.

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

NAT-PMP — одна из реализаций протокола UPnP, разработанная Apple.

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

Установка плагина.

Перейдите в раздел Система -> Прошивка -> Плагины.

На вкладке Плагины нажмите на кнопку + напротив плагина os-upnp для его установки.

Настройка плагина.

Перейдите в раздел Службы -> Universal Plug and Play.-> Настройки

Выполните следующие настройки:

Включен — Включить плагин

Разрешить преобразование портов UPnP — Разрешить преобразование портов для протокола

UPnP

Разрешить преобразование портов NAT-PMP — Разрешить преобразование портов для протокола NAT-PMP

Внешний интерфейс — Интерфейс внешней сети с которого будет выполняться проброс (NAT) входящих соединений на устройство, использующее UPnP во внутренней сети.

Интерфейсы (обычно LAN) — Внутренний интерфейс на котором принимаются запросы от устройств, использующих UPnP, на открытие и проброс соединений из внешней сети.

Переопределить WAN-адрес — IP адрес внешнего интерфейса, если интерфейс использует несколько IP адресов и необходимо обрабатывать подключения только на одном из них.

Журналирование пакетов NAT-PMP — Запись входящих подключений в лог файрвола.

Запрет доступа по умолчанию — Запретить обработку запросов UPnP по умолчанию — В пользовательских разрешениях можно сделать разрешения для определенных хостов. (таким образом можно повысить безопасность)

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

Есть возможность задать до четырех таких правил.

Формат правила следующий:

[allow | deny] [ext port|ext port range] [ipaddr | ipaddr/cdir] [int port | int or range]

пример:

deny 0-65535 192.168.1.100 0-65535 — запретит использование UPnP для хоста 192.168.1.100

allow 20467 192.168.1.13 20467 — разрешит использовать UPnP хосту 192.168.1.13 для порта 20467 (используя подобные правила возможно создать исключения при общем запрете на использование протокола UPnP установкой параметра Запрет доступа по умолчанию)

Также не забудьте внести разрешающие правила в файрволе

Просмотр и управление подключениями.

Перейдите в раздел Службы -> Universal Plug and Play.-> Статус

На данной закладке вы увидите все активные сессии, созданные устройствами UPnP в вашей сети.

При желании вы можете закрыть все активные сессии, нажав на кнопку Очистить.

Настройка роутера D-Link DIR-615 Онлайм

Вы ещё тут и никуда не ушли? — я был о Вас худшего мнения, шучу! Сейчас пройдемся по разделам мученика нашего D-Link DIR-615 и узнаем где, что и для чего, вперед друзья мои!

Мастер настройки IPTV

Ну тут то всё понятно — телевидение, подключаем приставку к порту, который выбираем в этом меню.

Статус / Сетевая статистика

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

Статус / DHCP

Те, кто в данный момент подключены к роутеру тем или иным образом, какие у них IP-адреса, МАК-адреса и когда у них истекает аренда. Так же забавно наблюдать при незапароленом вай фае, как чуть более, чем пол дома подключилось к Вашей сети и «сосут» интернет, типа: iphone-sasha, MackBook-Andrey и тому подобные неимущие. Ещё забавнее, это собрать за несколько дней определенный контингент таких ребят и в один прекрасный момент все это дело запаролить

Дополнительно / VLAN

Допустим у вас к роутеру подключено четыре человека по кабелю и один по вай фаю, задача такая: двое по кабелю и один беспроводной парниша — одна сеть, двое оставшихся — другая, это именно эта функция

Дополнительно / UPnP IGD

Проще прощего: дает возможность видеть устройствам с данной технологией друг друга в сети, допустим тот же телевизор. Комп видит телик, телик видит комп — смотрим фильмы и радуемся

3G-модем / Информация

В этом блоке Вы узнаете информацию о подключенном 3G-модеме, его уровне сигнала, производителе, модели, ревизии, а так же его IMEI (уникальный номер)

USB-накопитель / Информация

Аналогично пункту выше — просто информация: объём накопителя, подключенного через USB и его файловая система

USB-накопитель / Samba

Даёт возможность расшарить вашу флешку или жесткий диск, подключенный к USB-порту роутера по этому протоколу, удобно, когда в сети несколько компьютеров на разных операционных системах. К примеру компы на Макинтош (Apple) и на Windows.

USB-накопитель / FTP

Возможность поднять FTP-сервер на роутере это уже не новость, но всё равно классно

Система / Пароль администратора

Позволяет поменять пароль на вход в роутер (не тот, который на wi-fi) и сменить Time-зону, что иногда помогает при работе с некоторыми провайдерами, в любом случае лучше выставить всё правильно, а вот пароль менять не советую, ибо забудете.

Система / Обновление ПО

Ну это в случае, если совсем всё плохо с Вашим провайдером у этой модели или не устраивает «как» работает устройство — прошивка роутера. Всё просто: скачиваем прошивку, разархивируем, указываем в нашем меню кнопкой на нашу распакованный файлик формата BIN и жмём Upload, заранее налив чай, ибо прошивка может длиться около пяти минут, тем самым оставив Вас без вКонтактика и асек-писек. Настройки роутера обнулятся и будут «как из коробки».

Система / Конфигурация

Замечательная функция роутера — сохранение и восстановление настроек, представьте, что Вы настроили интернет, вай фай, прописали кучу роутингов и подключили флешку с «кхм-кхм», было бы логично всё свои труды сохранить для случая «всё нае….сь» — это меню предоставляет именно такой функционал
На этом усё, надеюсь что-то из выше перечисленного Вам помогло в настройке

Как включить UPnP на роутере: распишем главное

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

Разделы статьи

Подключение и начальная конфигурация роутера

Аппаратное подключение выполняется следующим образом. Подключите кабель Ethernet к порту ether1, а остальные порты на роутере — к локальной сети (LAN). По умолчанию маршрутизатор Mikrotik защищён конфигурацией брандмауэра, поэтому о вопросах дополнительной защиты данных на начальных этапах можно не беспокоиться.

В начальной системе настройки клиент DHCP находится в интерфейсе WAN (ether1), остальные порты считаются вашей локальной сетью с DHCP-сервером, который настроен для автоматической конфигурации адресов на клиентских устройствах. Чтобы подключиться к маршрутизатору, необходимо настроить ваш компьютер на приём настроек DHCP и подключить Ethernet-кабель к одному из LAN-портов (проверьте нумерацию портов вашего устройства и переднюю панель маршрутизатора).

Зачем подключать роутер к VPN=»subtitle»>

Подключить компьютер к VPN несложно. Вам не нужно разбираться, «как все устроено», достаточно скачать с сайта провайдера VPN-сервиса специальную утилиту, запустить ее, ввести полученные при регистрации логин/пароль — и все. Но при этом «свободный Интернет» будет только на этом компьютере. Все остальные устройства — пусть даже и подключенные к тому же роутеру — будут по-прежнему «под колпаком». Можно, конечно, установить ту же утилиту на все остальные компьютеры, а на смартфоны — аналогичные мобильные приложения (которые тоже можно скачать с сайта провайдера сервиса). Но это слишком хлопотно, намного удобнее подключить через VPN сам роутер. Правда, тут уже потребуется немного разобраться.

Во-первых, не всякий роутер в принципе может работать VPN-клиентом. Если настроить подключение не удается, то вполне возможно, что прошивка вашего роутера просто не позволяет подключаться к VPN-серверу поверх обычного интернета. В этом случае можно воспользоваться альтернативной прошивкой для роутеров DD-wrt или Tomato, но это потребует определенных знаний и навыков.

Во-вторых, многие, способные подключаться к VPN, роутеры предлагают небольшой выбор протоколов для подключения (OpenVPN, PPTP, L2TP и т.д.), а иногда выбора нет вообще и доступный протокол только один. Если вы подсоединяетесь к определенному VPN-серверу, убедитесь, что у него найдется хотя бы один общий протокол с вашим роутером.

Изменение настроек компьютера

При неправильных настройках ПК или ноутбука сеть бывает недоступна. В таком случае может потребоваться изменить дополнительные настройки. Выполняется по следующему алгоритму:

  • Перейдите на Панель управления;
  • Откройте вкладку «Центр управления сетями и общим доступом»;
  • Выберите раздел «Изменить дополнительные параметры» в меню слева;
  • В разделе «Сетевое обнаружение» переместите флажок в положение «Включить»;
  • Нажмите кнопку «Сохранить изменения».

В Windows 10 процедура выполняется аналогично, за исключением того что пара пунктов называется по другому.

Не исключен вариант, что отдельно придется настраивать необходимые программы – например, UTorrent или Skype. Как правило, необходимая опция находится в разделе «Соединение» или Connection. Для активации достаточно установить галочку или переместить флажок в положение Enabled.

С уважением, автор блога Андрей Андреев.

Как подключить роутер к VPN=»subtitle»>

Зайдите в веб-интерфейс роутера, как это описано в руководстве по эксплуатации (обычно он находится по адресу 192.168.0.1 или 192.168.1.1). Если в меню найдется раздел «VPN-клиент», воспользоваться следует именно им — ваш роутер подготовлен для работы с VPN, и никаких проблем не предвидится.

Если такого раздела нет, попробуйте создать новое WAN-подключение. Для этого надо найти пункт меню «WAN» или «Internet». Иногда этот пункт расположен в корневом меню, иногда — в разделах «Connections», «Network» или «Settings». На открывшейся странице следует создать новое подключение и выбрать необходимый протокол.

Если вариантов выбора больше одного (и VPN-сервер, и роутер имеют несколько общих протоколов), то имейте в виду, что OpenVPN считается более безопасным, но он довольно сильно нагружает процессор роутера и может снижать скорость соединения.

При выборе PPTP и L2TP вам потребуется ввести данные, полученные от VPN-сервиса при регистрации: адрес сервера, пароль и логин. Иногда также требуется ввести IP-адреса DNS-серверов. Также следует задать получение IP-адреса от сервера (Dynamic IP).

При выборе OpenVPN вам может потребоваться загрузить конфигурационный файл с расширением .ovpn — он содержит настройки, относящиеся к конкретному серверу. Этот файл также можно загрузить с сайта VPN-сервиса.

Что такое VPN и зачем он нужен=»subtitle»>

VPN (Virtual Private Network, виртуальная частная сеть) — технология, позволяющая организовать локальную сеть поверх другой сети (чаще всего интернета). Чтобы пояснить, приведем такой пример. Допустим, вы военнослужащий срочной службы и хотите написать письмо девушке. Вы не собираетесь выдавать каких-либо секретов, но вам наверняка будет неприятно, что вашу переписку будут читать военные цензоры. Поэтому вы идете к прапорщику Семенову и договариваетесь с ним, что он будет отправлять ваши письма с городского почтового ящика. Семенов предлагает также, чтобы девушка писала ответы на адрес его городской квартиры, а он будет носить эти письма вам. Таким образом, прапорщик организовал виртуальную частную почту поверх обычной почты.

VPN-сервисы делают то же самое, подменяя ваш IP-адрес адресом своего сервера, зачастую расположенного в другой стране. Трафик между вами и VPN-сервером зашифрован, поэтому никто, даже ваш провайдер, не сможет определить, на какие сайты вы ходили и что там делали. Минус такой схемы в том, что бесплатные VPN-сервисы не отличаются высокой скоростью, да и уровень предоставляемой ими конфиденциальности зачастую сомнителен. А надежные и высокоскоростные VPN-сервисы требуют хоть и небольшой, но регулярной оплаты — в среднем, 2-5 долларов в месяц. Ну, так ведь и прапорщик Семенов вряд ли будет носить чужие письма «за спасибо».

Настройка UPNP

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

  • enabled. Базовая настройка, позволяющая включить функцию UPNP.
  • allow-disable-external-interface. Эту опцию можно включить или выключить, по умолчанию включена.

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

ВАЖНО. Если эта опция будет отключена, любой пользователь в вашей локальной сети сможет выполнить такое действие и отключить внешний интерфейс маршрутизатора Mikrotik без прохождения процедуры аутентификации. Включить опцию вы можете по своему желанию в любой момент.

  • show-dummy-rule. Эту опцию можно включить или выключить, по умолчанию включена.

Она обеспечивает обходной путь для некоторых функций, которые неправильно обрабатывают UPNP (при этом, например, появляются сообщения об ошибках). Эта опция даёт серверу инструкцию отправлять необходимый сигнал программным клиентам, которые выдают ошибку при работе с UPNP.

  • interface. Отображает название интерфейса, в котором работает процесс сейчас.
  • type. Указывает тип интерфейса. Внешний (external) — интерфейс, которому назначен глобальный IP-адрес. Внутренний (internal) — локальный интерфейс маршрутизатора, к которому подключаются клиенты.
  • forced-external-ip. Позволяет указать, какой именно публичный IP-адрес следует включить, если на внешнем интерфейсе доступно несколько IP-адресов.

Вход в интерфейс роутера

Нам нужно попасть в Web-интерфейс аппарата – для этого с подключенного устройства к локальной сети нужно открыть браузер и вписать в адресную строку IP или DNS адрес роутера. Данный адрес находится на этикетке под роутером. Чаще всего используют 192.168.1.1. или 192.168.0.1. Если у вас будут какие-то проблемы со входом в маршрутизатор – смотрите инструкцию тут.

Далее инструкции будут немного отличаться в зависимости от модели роутера.

D-Link

Старая прошивка

«Дополнительно» – «UPnP IGD».

Новая прошивка

«Расширенные настройки» – «UPnP IGD» – включаем галочку.

TP-Link

Новая прошивка

«Дополнительные настройки» – «NAT переадресация» – далее выбираем нашу функцию и включаем её в дополнительном окне.

Старая прошивка

Переходим в раздел «Переадресация», находим UPnP и включаем.

ASUS

«Интернет» – «Подключение» – тут уже должен быть выбран один из типов подключения, найдите нужную строку и включите функцию.

ZyXEL Keenetic

Новая прошивка

«Общие настройки» – кликаем «Изменить набор компонентов» – далее нам нужно найти данную службу и убедиться, что она установлена. Также её можно удалить.

Старая прошивка

  • Находим раздел «Система» (значок шестеренки).
  • Вверху нажимаем на вкладку «Обновление», и в списке убедитесь, чтобы была включена служба.

  • Если вы хотите выключить её – то убираем галочку. Если вы хотите её включить – то ставим галочку. Также если в столбце «Состояние» есть надпись: «Доступно обновление», то даже если функция включена, то её стоит обновить.

  • Чтобы изменения вступили в силу, пролистываем в самый низ списка и нажимаем на кнопку «Установить».

Netis

Включить функцию можно на вкладке «Переадресация».

LinkSys

«Administration» – «Management» – листаем в самый низ.

В нужно разделе переводим в состояние: «Enable» (Включено) или «Disable» (Выключено).

Tenda

Версия 1, 2, 3

Нужная функция находится в «Расширенных настройках».

Версия 4

Слева в меню выбираем «Advanced».

Листаем в самый низ и включаем функцию в режим «Enable».

Где включить nat pmp или upnp. Преимущества использования UPnP

Привет! Очень часто бывает, что после установки роутера отказываются работать такие программы как uTorrent, DC++ и подобные клиенты для P2P сетей. Это происходит по той причине, что программа не может получить файл на компьютер который находится в локальной сети (за роутером) . Но проблема может возникнуть не только с клиентами P2P сетей, но и с онлайн играми, настройкой WEB, или FTP серверов и т. д.

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

Есть такая полезная функция, как UPnP . Это такой себе автоматический переброс портов. В большинстве случаев, достаточно включить UPnP в настройках роутера (если он еще не включен) и все будет работать отлично. Но иногда, без ручного переброса портов не обойтись. Каждый способ имеет свои плюсы и минусы.

Ручной переброс портов, или UPnP?

В этой статье я хотел написать только о UPnP. О том как включить эту функцию на роутере и в программах DC++ и uTorrent (о ручной настройке постараюсь написать в отдельной статье) . Но давайте сначала разберемся, что лучше UPnP, или все же стоит настроить переброс вручную.

  • UPnP – это просто, не нужно что-то там прописывать, долго настраивать и т. д. Если вы боитесь что-то натворить в настройках маршрутизатора, то UPnP это то что нужно. Из минусов: может не работать в некоторых программах, серверах, играх. Ну и безопасность, UPnP может перебросить то, что перебрасывать как бы не нужно 🙂 (но это спорное мнение и оно не должно Вас пугать) .
  • Ручная настройка перенаправления портов требует более серьезных настроек. И этот способ немного неудобен тем, что при появлении новых программ, или каких-то изменениях существующих, придется постоянно настраивать перенаправление. Это не очень удобно.

Включаем UPnP в настройках роутера

Обычно, по умолчанию в настройках роутера сервис UPnP уже включен (в Tp-Link, точно) . Да и программы типа uTorrent даже через роутер работают без дополнительных настроек. А вот с DC++, насколько я заметил, бываю частые проблемы.

Давайте сначала проверим, активна ли функция UPnP в вашем маршрутизаторе.

Зайдите в настройки маршрутизатора. Обычно это адрес http://192.168.1.1, или http://192.168.0.1.

В Tp-Link:

Перейдите на вкладку Forwarding UPnP (Переадресация – UPnP) . Должен быть статус Enabled (Включено) .

Asus:

Может быть по-разному, но обычно это вкладка Интернет Подключение и там есть переключатель UPnP.

Эта функция может называться немного по другому. Вкладка WAN Port Trigger . Пункт Enable Port Trigger должен быть включен.

D-Link:

Переходим вверху на вкладку Advanced , затем слева выбираем Advanced Network и смотрим, стоит ли галочка возле Enable UPnP .

ZyXel:

Пункты меню могут немного отличатся, в зависимости от версии устройства, прошивки и т. п. Если не сможете найти, то напишите в комментария, разберемся:).

Проверяем настройки DC++ и uTorrent

Я покажу, как проверить включена ли функция UPnP в этих программах.

В DC++ зайдите в настройки на вкладку Настройки соединения и посмотрите, отмечен ли пункт Фаэрвол с UPnP (только WinXP+) .

В uTorrent переходим в пункт Настройки Настройки программы . Вкладка Соединение . Смотрим, что бы стояла галочка возле Переадресация UPnP .

Послесловие

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

Хотя, как я уже писал, иногда без ручной настройки переброса не обойтись.

Всего хорошего!

Ещё на сайте:

Настраиваем переброс портов (UPnP) на роутере для DC++, uTorrent и подобных программ обновлено: Октябрь 15, 2013 автором: admin

Прежде чем узнать, как включить upnp, давайте поговорим немного о теории.

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

Набор протоколов в основе своей работы использует популярные технологии и сетевые архитектуры: TCP/IP, HTTP и т.д.

Включение upnp в Windows 7

Алгоритм предельно прост. Первым делом вам необходимо перейти в панель управления: Пуск -> Панель управления .

Нам необходимо добраться до раздела, в котором собраны все настройки и параметры сетевой среды. Если у вас выбрано отображение по категориям, щелкайте кнопку «Сеть и интернет «. Если же перед вами отображены все значки, то сразу запускаем «Центр управления сетями и общим доступом «. Перед вами появиться главное окно сетевых настроек. В его левой части будет меню настроек. В нем находим и щелкаем «Изменить дополнительные параметры общего доступа «.

Перед нами появиться список доступных опций. Нас интересует область «Сетевое обнаружение»:

Выбираем пункт «Включить сетевое обнаружение » (это и есть Upnp). Нажимаем кнопку «Сохранить изменения «, затем «Ок «. Вам осталось только перезагрузить компьютер. При следующем запуске функции Upnp включаться автоматически.

23 марта 2016 в 11:13
  • Сетевые технологии

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

Сегодня uTorrent считается наиболее известным торрент-клиентом и это бесспорно! Программа хоть и небольшая, но содержит множество полезных функций с обширными настройками, в добавок она предоставляется бесплатно, постоянно совершенствуется и обновляется.

Интерфейс, интуитивная простота настроек и лёгкость использования покорили не один миллион пользователей, уТоррент поддерживается на всех известнейших трекерах в сети. Ранее у нас уже описывалась установка данного торрент-клиента, сегодня поясним как правильно настроить uTorrent на примере свежего релиза программы 3.4.3, рассмотрим наиболее важные настройки торрент-клиента , которые позволяют обеспечить наилучшую скорость обмена данными — скорость загрузки.

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

Для наиболее полноценного применения всего потенциала утилиты, сначала нужно загрузить новейшую версию BitTorrent-клиента — на русском языке, далее запускать приложение, открыть главное меню «Настройки » и найти подраздел «Настройки программы ». Давайте рассмотрим главные разделы повнимательней, дабы понять как настроить uTorrent правильно, чтобы к настройкам уже не возвращаться.

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

«Язык интерфейса » — указывается предпочитаемый язык, если Вы установили программу правильно — по умолчанию будет установлен русский язык, при желании можете изменить на украинский, белорусский и т.д. Ежели Вы скачали программное обеспечение непонятно откуда, и там не было или потеряли языковой пакет.lng, читаем — как установить русский язык, исправляем это языковое недоразумение.

«Запускать уТоррент вместе с Windows » — здесь следует отменить, убрать галочку, чтобы бит-торрент-клиент не запускался в авторежиме при старте ОС. Эта рекомендация применима к львиной доле программного обеспечения, ПО должно работать когда это действительно нужно, а не отгрызать ресурсы у компьютера постоянно.

«Запускать свернуто » — установив данный флажок, приложение активизирует работу в фоновом режиме, причем главное окно утилиты автоматически свернется в трей. Для его открытия потребуется двойным щелчком нажать по бело-зеленому значку «μ» на панели задач (он будет размещаться где-то возле часов с датой, значка громкости или сети).

«Автопроверка ассоциаций » — при запуске данного параметра торрент-файл, закачиваемый с интернет-сети, либо скачанный торрент, который вы попытаетесь запустить, в авторежиме будет запускаться через приложение уТоррент.

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

«Анти-босс » — достаточно ценная функция для юзеров, которые пользуются данной утилитой на работе. При помощи типового параметра вы сможете быстродейственно и надежно убрать с вашего экрана функционирующий BitTorrent, использовав конкретное сочетание кнопок. Чтобы установить пароль воспользуетесь кнопками Ctrl, Alt либо Shift в комбинации какой-нибудь цифрой либо буквой, как вы сами пожелаете.

«Добавить.!ut для незавершенных » — присвоит не докаченным материалам до окончания их загрузки специальное расширение.!ut, тем самым, в папке загрузки возможно будет отличить эти файлы от уже загруженных (у которых будет исходное расширение).

«Запретить спящий режим » — активированы энергосберегающие режимы ПК? — настройка будет полезна! Установка текущего параметра не позволит компьютеру «заснуть», до окончания всех загрузок торрент-клиента.

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


Здесь наладка uTorrent не требует серьёзного вмешательства, рекомендованные значения установлены разработчиками. С неотмеченными функциями можете поиграться — подстроить индивидуально, как будет удобней вам. На скорость загрузок, перегрузку на сеть они не повлияют. К примеру, можно выставить установки из предлагаемых вариантов, это видно на размещенном ниже скриншоте. Не забывайте нажать кнопку «Применить».


Здесь указываются пути и директории, где будут храниться хеш торрента и закачиваемые материалы. К важным настройкам относится пункт — «помещать загружаемые файлы в», ставим галочку и указываем папку для всех загрузок. Остальные пункты настраиваются по желанию, есть необходимость запускать скачанные торренты с трекеров автоматически — задаём папку, файлы будут ставится на загрузку автоматически.


Неопытным пользователям разобраться в регулировках сети будет немного сложнее, чем остальным юзерам. Но в реальности здесь нет никаких архи сложностей и как настроить uTorrent Вы обязательно разберётесь. Изначально утилита сама определяет необходимые настройки соединения, отвечающие самым распространенным. В ряде случаев, при использовании маршрутизатора, модема может потребоваться коррекция (донастройка), ознакомьтесь со следующими рекомендациями.

Современные модели маршрутизаторов, модемов используют встроенные протоколы управления UPnP для домашних, корпоративных ПК или NAT-PMP для Apple. Данные функции стандартизируют сетевое соединение, обеспечивают подключение схожих (ПК, ноутбуки, планшеты) устройств друг к другу. Отметьте галочкой соответствующие пункты соединения: «Переадресация NAT-PMP » — «Переадресация UPnP ».

При возникновении проблем с портами, рекомендуется в uTorrent настроить параметр «Порт входящих соединений » самостоятельно. Чаще всего достаточно нажать на кнопку «генерировать». Не помогло? — воспользуемся советами — диапазон портов должен лежать в следующих пределах 1-65535, превышать его нельзя. Выбирая порт учитывайте то, что некоторые провайдеры стараясь уменьшить нагрузку на свою сеть блокируют работу портов от 1 до 9 999 (могут ограничить и выше), выбирайте комбинацию цифр за пределами 20 000. Также настоятельно рекомендуем убрать отметку с подпункта меню — «Случайный порт при запуске ».

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

Когда Вы подключаетесь через proxy-сервер (прокси – ближайший, ближний), то нужно включить параметр «Прокси-сервер». Сначала выберите тип, порт, потом IP-адрес сервера. Если необходима аутентификация (вход по паролю), запишите логин и пароль. Если имеется одно подключение, то необходимо включить «Использовать прокси для P2P-соединений».


Если Вам надо настроить uTorrent на максимальную скорость, использовав весь интернет-трафик, запишите в поле максимальной скорости приема ноль, или же укажите скорость, обговоренную в договоре с провайдером. Если Вы желаете одновременно использовать torrent-client и интернет для брожений по сайтам, то напишите цифру на 10-20% меньше максимума для загрузки и отдачи.

Если Вы теряетесь в цифрах, определить максимальную скорость поможет uTorrent, нажмите на кнопку «Настроить », выберите опцию — «Помощник настройки », запустите тест скорости, в результатах вы увидите показатели отдачи и загрузки, а также рекомендации по корректировке количества слотов.

Прежде чем Вы начнете настраивать скорость uTorrent, и вписывать скоростной режим в поля, нужно учесть — в уТоррент единица измерения данных построена по-честному в килобайтах или мегабайтах, а в договоре интернет-провайдера указано по-хитрому – килобит и мегабит. Вспоминаем, что есть байт и бит, 1 байт — это 8 бит, один килобайт равен 1024 байтам, от провайдеров мы получаем один килобит = 1000 бит, что в 8 раз меньше — 1 мегабит = 125 килобайт.

Давайте посчитаем, как настроить скорость uTorrent по вашему тарифному плану. Допустим, максимальная скорость, написанная в договоре = 3 мегабит/сек. Чтобы получить ее в килобитах, умножьте на 1000, получаем 3000 килобит, поделим на 8 и получим 375 килобайт – это ваша скорость загрузки в килобайтах. То есть, 3 мегабита = 3000 килобит = 375 килобайт в секунду! Возможность отдачи обычно значительно урезана и равна 1 мегабиту/сек = 125 KB/s.



Чтобы выставить эффективные настройки программы uTorrent в текущей категории, целесообразно отталкиваться от вашей скорости тарифного плана. Для этого предоставлены графы оптимальных значений, которые изображены на рисунках снизу. Такие регуляторы как: «Минимум доступных задач», «Минимальное время раздач», «Минимальное соотношение» (между объемом раздачи и скаченным) вы сможете поставить аналогично как иллюстрировано на 1-ом рисунке снизу. Хотя, они, зачастую, не столь значимы.



DHT, применяет хеш-сумму торрентов, производит поиск всех источников раздачи материала за границами трекера. Применяя BitTorrent в интернет сети, эту функцию следует включить. Если пользуетесь закрытыми трекерами, то работу сервера DHT запрещают и отключают.

Необходимость в опции «Поиск локальных пиров» появляется, когда говорится о весьма большой локальной сети. Быстродействие в локальной сети в разы выше, тем самым торрент почти мгновенно загружается, если имеется такой источник. Это исключение применимо для локалок, для быстродействия ПК в интернете — лучше выключить, это уменьшит нагрузку на центральный процессор компьютера.

«Scrape-запросы» созданы для получения статистических данных по торренту от трекера, а также сбора данных о пирах. Можно отключить. Скорость локальных пиров срезать не следует. Есть смысл «включить обмен пирами». Необходимо, чтобы было включено исходящее «шифрование протокола».


В стандартных настройках BitTorrent определяет объем кэша автоматически. Когда в строке состояния высвечиваются ошибочные данные «Диск перегружен», значит следует попытаться перенастроить число, убрать значок с нижнего пункта «автомат. увеличение» и поставить на первом, указав 256 или 512 и т.д. (выделить часть ОЗУ — с учетом количества оперативной памяти в Вашем ПК).

На этом ставим точку, это наиболее востребованные настройки для uTorrent, знание о которых будет полезно всем без исключения. Настраивайте программу под своё железо и уТоррент Вас не разочарует.

С наилучшими $ пожеланиями
Denker.

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

UPnP — что это?

Вообще, UPnP представляет собой аббревиатуру термина Universal Plug & Play. Иными словами, это некая виртуальная система, объединяющая подключения интеллектуальных устройств, находящихся в одной сети, между собой на основе протоколов TCP/IP, UDP, HTTP и т.д.

Разбираясь в теме «UPnP: что это такое?», простым языком можно описать это как создание возможности передачи и приема данных всеми устройствами, поддерживающими этот стандарт. В качестве простейшего примера можно привести, допустим, просмотр фото на том же телевизоре вместо смартфона. Как уже понятно, достаточно просто синхронизировать устройства между собой, чтобы произвести обоюдный доступ к данным.

Предварительные настройки Windows

Прежде чем приступать к рассмотрению вопроса о том, как настроить и включить UPnP, следует выполнить некоторые предварительные настройки в самой «операционке».

В ОС Windows, в зависимости от версии, это осуществляется несколько разнящимися способами, но общий принцип один и тот же.

Итак, нужно активировать сервер UPnP (Windows 7). Как включить его? Нет ничего проще. Нужно просто зайти в раздел программ и компонентов (в прошлых версиях Windows меню установки и удаления программ), находящийся в стандартной Панели управления, после чего выбрать параметры установки компонентов Windows. Здесь выбирается пункт сетевых служб, на котором ставится галочка, а справа используется пункт их состава. При входе в это меню обязательно нужно задействовать включение клиента обнаружения и управления, а также отметить UPnP. Далее просто сохраняются изменения, которые вступают в силу без перезагрузки. Это в равной степени относится и к системам XP, Vista, 8 или 10.

Тут стоит обратить внимание, что в некоторых случаях может понадобиться установочный диск Windows.

Как включить UPnP на роутере

Но и это еще не все. Если между устройствами предполагается осуществлять при помощи беспроводного соединения с использованием придется проверить настройки UPnP и на нем.

Хотя, как правило, практически все самые распространенные модели роутеров поставляются с уже включенной службой UPnP, тем не менее лучше все-таки проверить настройки. Для большинства моделей вход в меню роутера осуществляется при помощи введения в любом интернет-браузере адреса 192.168.1.1. В зависимости от модели меню могут разниться названиями или расположением отдельных элементов управления. Но в любом случае нужно найти параметр «Включить UPnP» или сделать доступным (в английском варианте — меню Enable UPnP Protocol или Enable UPnP Settings).

Включение UPnP в Skype

Теперь рассмотрим пример популярной программы для общения с использованием IP-телефонии Skype. Здесь тоже используется технология UPnP. Что это такое применительно к самому приложению? Это та же система для установления связи с другим устройством. Намного ведь приятнее общаться с друзьями, видя их изображение, скажем, на большом экране телевизионной панели.

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

Простейшая утилита для создания домашнего медиасервера

Собственно, вот мы и подошли к основному вопросу настройки и включения UPnP-сервера. Для начала, как уже понятно, нужно определиться с программой (UPnP-клиентом). В качестве самой простой, не требующей ручной настройки утилиты можно посоветовать Samsung PC Share Manager.

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

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

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

Использование программы «Домашний медиасервер»

Другое дело — использование более серьезного приложения Home Media Server (российская разработка). Тут, правда, в настройках придется покопаться.

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

Далее — вопрос транскодирования. В большинстве случаев выбирается режим «Фильмы (основной)», но если в системе установлена специальная утилита Ace Stream (один из компонентов Ace Player), лучше задействовать именно ее.

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

Попутно стоит отметить, что и на телевизионной приставке придется вручную включить использование сервера UPnP. Чаще всего для его задействования используется режим LAN. Может быть и другой, все зависит только от модификации самой приставки.

А вообще, настроек в программе очень много. С основными можно разобраться без проблем. Но если требуется использование каких-либо дополнительных параметров, придется потратить определенное время. Зато потом пользователь получает в свое распоряжение мощнейший инструмент синхронизации устройств любого типа. Попутно отметим, что для мобильных устройств может потребоваться установка специальных приложений и активация UPnP. Без этого ни о какой синхронизации и речи быть не может.

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

Вместо послесловия

Вот мы вкратце и рассмотрели тему «UPnP: что это такое?». Здесь указаны наиболее распространенные ситуации и правила настройки и работы с домашним медиасервером. Естественно, можно использовать и любые другие утилиты, однако изначальные принципы настройки и включения практически у всех UPnP-клиентов одинаковы. Если изучить хотя бы пару простейших программ, разобраться с остальными труда не составит.

IgD — это… Что такое IgD?

  • IGD — can refer to: *Internet Gateway Device as defined in UPnP. *İGD, İlerici Gençler Derneği, Progressive Young Association of Turkey *Immunoglobulin D, an antibody protein involved in the maturation of B cells. *Intergobular domain, a region of the… …   Wikipedia

  • IGD — steht als Abkürzung für: Immunglobulin D (IgD) die Islamische Gemeinschaft in Deutschland das Fraunhofer Institut für Graphische Datenverarbeitung in Darmstadt Diese Seite ist eine Begriffsklärung z …   Deutsch Wikipedia

  • IgD — Abreviatura de inmunoglobulina D. Diccionario Mosby Medicina, Enfermería y Ciencias de la Salud, Ediciones Hancourt, S.A. 1999 …   Diccionario médico

  • IgD — — иммуноглобулин D человека, фактор инициации (англ. аббрев.). Мономерный белок (185 кДа), найденный на поверхности лимфоцитов …   Генетика. Энциклопедический словарь

  • IgD — Als Immunglobulin D (IgD) bezeichnet man ein Y förmiges Antikörpermolekül, welches mit einer Konzentration von 0,03 mg/ml, das entspricht weniger als 1% der Serum Immunoglobuline, im menschlichen Serum vorkommt. Seine genaue Funktion ist bisher… …   Deutsch Wikipedia

  • IgD — Abbreviation for immunoglobulin D. * * * idiopathic growth hormone deficiency; Integrated Genome Database; interglobal distance; isolated gonadotropin deficiency * * * IgD .ī .jē dē n 1) a minor class of immunoglobulins including antibodies that… …   Medical dictionary

  • IGD — Institut für Graphische Datenverarbeitung Institut der Frauenhofergesellschaft (FhG, http://www. igd.fhg.de/) …   Acronyms

  • IGD — Institut für Graphische Datenverarbeitung Institut der Frauenhofergesellschaft (FhG, http://www.igd.fhg.de/) …   Acronyms von A bis Z

  • IgD — см. Иммуноглобулины D …   Большой медицинский словарь

  • IgD — …   Википедия

  • Пробрасываем порты. Нюансы Port Forward .

    В данной статье рассмотрим всё, что связано с Port Forward (проброс портов) – автоматически и вручную.

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

    Для этих целей в ПО Wive-NG предусмотрен блок настроек , именуемый Firewall (Сетевой Экран).

    По сути, раздел веб-интерфейса Firewall (Сетевой Экран) — это не что иное, как GUI, позволяющий создавать правила iptables, не прибегая к консоли. Разумеется, последний вариант (консоль) позволяет осуществить более гибкую настройку политик разрешений и запретов, и если есть такая возможность, то лучше «подружиться» с iptables (тем более, что это штатное средство unix-систем, и понимание логики его работы будет применимо и к работе с другими unix-based устройствами). Однако, базовые пользовательские задачи вполне решаются посредством web.

    1. Настройки проброса портов (Port Forwarding).

    Иногда нам необходимо организовать удаленный доступ к устройству, находящемуся в локальной сети, по тому или иному протоколу. К примеру, доступ к web-интерфейсу IP телефона (по умолчанию, порт 80), или же работу с удаленным рабочим столом по протоколу RDP (по умолчанию порт в Windows 3389). Также, может возникнуть задача обеспечения функционирования сервиса, запущенного в локальной сети, который ведет прием и передачу данных по конкретному диапазону равнозначных портов (к примеру, SIP сервер, или же раздача контента посредством torrent клиента).

    Но с точки зрения того, кто находится в глобальной сети, все эти устройства имеют один и тот же IP адрес (либо доменное имя). Именно тут на помощь приходит проброс портов (port forward).

    Включение проброса портов (port forward)

    Для включения сервиса необходимо обратиться к пунктам меню:
    Сетевой экран (Firewall) → Сетевой экран (Firewall) → Настройка проброса портов (Port Forwarding), и включить сервис.

    Настройка проброса портов через web интерфейс достаточно проста , и состоит из следующих шагов:

    1. Выбор интерфейса, для которого дейстует правило. По умолчанию это WAN, но если Ваш оператор использует VPN, то следует указывать его.
    2. Протокол. Возможные варианты: TCP (например , доступ к web), UDP (например, работа VoIP ). Также доступен вариант выбора обоих TCP и UDP . Данный вариант стоит использовать только в случае, если целевой сервис использует и TCP и UDP (например, torrent). Во всех остальных случаях (например, Вы точно не уверены нужно ли TCP или же UDP) рекомендуется ознакомиться с документацией, выяснить, какой протокол используется и указать нужный, дабы избежать бреши в безопасности и эксплуатации ее троянами.
    3. Порты, на которые будет производиться обращение извне, для переадресации на нужное устройство / сервис, для которого создается правило. Т.е, по сути, то, за счёт чего маршрутизатор поймет, к чему именно в локальной сети Вы обращаетесь. Можно указать как один порт, так и диапазон.
    4. IP адрес в локальной сети, соответствующий устройству, к которому Вы обращаетесь.
    5. Порты, которые соответствует необходимому сервису на самом устройстве в локальной сети, к которому происходит обращение.
    Важно: рекомендуется использовать одинаковые порты dst и src, т.к данная схема снижает нагрузку на CPU и гарантирует корректрую работу программного и аппаратного offload.
    6. NAT loopback — т.е, будет ли работать доступ при обращении на глобальный адрес и src порт из локальной сети. Важно: корректная работа NAT loopback  (в силу того, что по сути это грязный хак на уровне нетфильтра с подменой адресов на лету на уровне фаервола) зависит от множества факторов, включая операционную систему, src/dst порты на клиенте и сервере, а так же частично несовместима с software offload и т. д. Поэтому установленное положительное значение не является гарантией корректной работы данной службы.
    Рекомендуется вместо использования NAT loopback в настройках DNS добавить локальные DNS записи для ваших серверов с локальными же именами и использовать их для обращения к серверам внутри сети. Это гораздо более верное со всех точек зрение решение.
    7. Комментарий в свободнонй форме, позволяющий не держать в голове, какое правило и зачем Вы создавали.
    8. Действие, а именно — что вы хотите сделать с правилом: добавить (новое) либо удалить (уже существующее).

    Важно: После завершения работы с правилами (добавление , удаление) необходимо нажать Применить / Apply, в противном случае все добавленные правила не будут сохранены. Добавление правила (нажатие Добавить / Add) в ходе редактирования таблицы port forwarding само по себе не является мгновенной записью созданного правила в конфигурацию роутера, а лишь предварительно сохраняет его на странице.

    Настройка проброса портов (Port forward) на роутере

    Например, правило вида:

    Interface (Интерфейс) = WAN,
    Protocol (Протокол) = TCP,
    Src Ports (Порт ист. ) = 8888,
    Dst IP (IP назначения) = 192.168.1.124,
    Dst Ports (Порт назн.) = 80,
    Comment (Комментарий) = ‘IP Phone’

    будет означать, что при обращении по адресу http://Ваш_IP_адрес:8888 либо http://Ваш_Домен:8888 весь TCP трафик будет перенаправляться на устройство, имеющее IP адрес 192.168.1.124 в Вашей локальной сети, а именно — на 80 порт.

    А правило вида

    TCP&UDP / 3389 / 192.168.1.150 / 3389 / ‘RDP’

    гласит о том, что в Вашей сети есть ПК, живущий на IP адресе 192.168.1.150, к удаленному рабочему столу на котором Вы подключитесь, сказав “http://Ваш_Домен:3389” (т.к в примере выбран интерфейс VPN, то судя по всему, указать статический IP просто невозможно — для решения этой проблемы можно воспользоваться аккаунтом на одном из DynDNS сервисов (такая возможность также доступна штатно в ПО Wive-NG).

    Настройка Dynamic DNS

    Важно: необходимо удостовериться в следующих моментах:
    -указываемый Вами порт назначения (dst) действительно настроен на целевом устройстве для необходимого сервиса.
    -доступ по указанному порту доступен с WAN на устройстве (если настраиваемый роутер является шлюзом для целевого устройства), и в целом доступ извне не блокируется локальным firewall.
    Например, в настройках IP телефона из примера необходимо проверить две вещи: порт доступа к web / http = 80 , доступ к web / http разрешен для wan интерфейса всем, либо как минимум конкретному хосту роутера.

    Важно: правило не будет работать, если IP адрес целевого устройства в локальной сети изменится. Для исключения такой возможности, есть два варианта:
    1. Настройка статического адреса сетевого интерфейса на целевом устройстве. Т.е, отказ от получения IP адреса от DHCP сервера роутера .
    2. Закрепление IP адреса, выдаваемого DHCP сервером роутера, за MAC адресом конкретного устройства. Осуществить это можно , зайдя в раздел меню Сервисы → Сервер DHCP и создав новую пару MAC — IP с соответствующим комментарием. Если в текущий момент времени устройство имеет активную аренду IP адреса от DHCP сервера роутера, то его текущий выданный IP , а также MAC можно будет увидеть на этой же странице в соответствующем списке.

    Настройка статической пары MAC-IP на DHCP сервере роутера

    Если же Вам необходимо пробросить диапазон портов, необходимо учесть следующее:
    1. Стоит по возможности избегать проброса с разными портами src/dst, т.к при использовании комплексных протоколов обслуживаемых ALG (FTP/RTSP/SIP/PPTP/L2TP etc) т.к., могут возникать разночтения.
    2. Ширина диапазонов src и dst портов должна совпадать.
    3. Порты должны быть равнозначны. Т.е, работа сервиса не должна зависеть от конкретного выбранного порта из диапазона. Такими случаями, например, являются: data порты FTP сервера, порты для передачи голоса SIP сервера, порты раздачи torrent, и т.д.
    4. Если необходимо настроить NETMAP, т.е проброс 1:1 (фиксированные пары src и dst портов диапазона), то необходимо каждую пару создавать отдельным правилом. В общем случае при указании диапазона соединение осуществляется на первый доступный порт для которого в conntrack отсутствует запись.

    Уже созданные правила проброса портов можно проверить в консоли в Chain FORWARD, скомандовав iptables -L -v -n -t nat . Необходимо помнить, что для получения корректных данных счетчиков (например, в диагностических целях), весь возможный offload должен быть отключен, иначе большая часть трафика в счетчик не попадет. Разумеется, если такой цели не стоит, offload использовать можно и нужно.

    2. Пара слов про UPNP

    На сегодняшний день многие приложения, включая torrent-клиенты, умеют UPNP IGD (Universal Plug and Play Internet Gateway Device), что позволяет не пробрасывать порты вручную для этих приложений, а воспользоваться автоматичесим пробросом. OS Wive-NG также поддерживает эту возможность. Основным условием является включение UPNP как на роутере, так и в настройках клиента.
    Включить UPNP можно в блоке настроек Сервисы → Разное → Сервис

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

    3. Пара слов про настройки ALG (Шлюз прикладного уровня)

    ALG (Application Layer Gateway, Шлюз прикладного уровня) анализирует проходящий трафик, распрозает конкретные протоколы и осуществляет ретрансляцию на стандартный порт, соответствующий протоколу. Это позволяет нескольким клиентским устройствам, находящимся за NAT (т.е, в локальной сети маршрутизатора) одновременно и беспрепятственно вести обмен трафиком ряда прикладных протоколов с внешними хостами без настройки проброса портов. В linux данная опция называется Conntrack NAT Helpers.

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

    В Wive-NG ручная настройка ALG не требуется — достаточно выбрать интересующий протокол из списка.

    4. Пара слов про DMZ (Демилитаризованная зона)

    DMZ позволяет выделить опредленный хост в локальной сети в сегмент, общедоступный с WAN по всем портам, открытым на этом хосте (будь то локальный сервер или другое устройство). В этом случае, все соединения, инициированные из WAN будут попадать в DMZ, и ровно на те порты , которые были указаны в качестве портов назначения в соединении. Доступ к остальным устройствам локальной сети из WAN, включая сам маршрутизатор, будет при этом закрыт.

    Настройка DMZ на роутере

    Пример: при указании в качестве DMZ адреса 192. 168.1.124 , все соединения на глобальный адрес маршрутизатора будут перенаправлены на соответствующие порты устройства 192.168.1.124. К примеру, попытка подключиться к web-интерфейсу через браузер с указанием в адресной строке http://my_ip:80 , будет интерпретировано маршрутизатором как обращение к машине 192.168.1.124 на 80 порт. Будет ли установлено такое соединение, зависит исключительно от того, открыт или закрыт указанный порт на устройстве, расположенном на 192.168.1.124.

    Важно: при включении DMZ NAT loopback соединения с LAN на маршрутизатор будут обрабатываться тем же образом, что и соединения с WAN. То есть, доступ к маршрутизатору будет утерян, тк все запросы будут перенаправлены на соответствующие порты по адресу, указанному в качестве DMZ.

    Важно: чтобы избежать конфликта, не следует одновременно с DMZ настраивать правила firewall, содержащие в себе тот же адрес, что указан в качестве DMZ.

    Особенности фильтрации трафика по IP / MAC / портам рассмотрим в следующей статье…..

    Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

    Universal Plug and Play (UPnP) Устройство интернет-шлюза (IGD) — протокол управления портами (PCP) Функция взаимодействия

    Universal Plug and Play (UPnP) Устройство интернет-шлюза (IGD) — протокол управления портами (PCP)

    Universal Plug and Play (UPnP) Устройство Интернет-шлюза (IGD) — Протокол управления портами (PCP) Функция взаимодействия
    draft-bpw-pcp-upnp-igd-interworking-01

    В этом документе описывается поведение функции взаимодействия UPnP IGD (шлюза в Интернет) / PCP.Функция взаимодействия UPnP IGD-PCP (IGD-PCP IWF) должна быть встроена в маршрутизаторы CP, чтобы обеспечить прозрачное управление NAT в средах, где UPnP используется на стороне LAN, а PCP — на внешней стороне маршрутизатора CP.

    Ключевые слова «ДОЛЖЕН», «НЕ ДОЛЖЕН», «ОБЯЗАТЕЛЬНО», «ДОЛЖЕН», «НЕ ДОЛЖЕН», «ДОЛЖЕН», «НЕ ДОЛЖЕН», «РЕКОМЕНДУЕТСЯ», «МОЖЕТ» и «ДОПОЛНИТЕЛЬНО» в этом документе. должны интерпретироваться, как описано в RFC 2119 [RFC2119] .

    Этот Интернет-проект представлен в полном соответствии с положениями BCP 78 и BCP 79.

    Internet-Drafts являются рабочими документами Инженерной группы Интернета (IETF). Обратите внимание, что другие группы также могут распространять рабочие документы как Интернет-проекты. Список текущих Интернет-проектов находится по адресу http: / & # 8288; / & # 8288; datatracker.ietf.org / & # 8288; drafts / & # 8288; current / & # 8288 ;.

    Интернет-проекты — это черновики документов, срок действия которых не превышает шести месяцев, и они могут быть обновлены, заменены или отменены другими документами в любое время. Неуместно использовать Интернет-черновики в качестве справочного материала или цитировать их иначе, как «незавершенную работу».«

    Срок действия этого Интернет-проекта истекает 24 июня 2011 года.

    Авторские права (c) 2010 IETF Trust и лица, указанные в качестве авторов документа. Все права защищены.

    Этот документ регулируется BCP 78 и Правовыми положениями IETF Trust, касающимися документов IETF (http: / & # 8288; / & # 8288; trustee.ietf.org / & # 8288; license — & # 8288; info) в действует на дату публикации этого документа. Пожалуйста, внимательно ознакомьтесь с этими документами, поскольку они описывают ваши права и ограничения в отношении этого документа.Компоненты кода, извлеченные из этого документа, должны включать упрощенный текст лицензии BSD, как описано в разделе 4.e Правовых положений Trust, и предоставляются без гарантии, как описано в упрощенной лицензии BSD.


    PCP [ID.ietf-pcp-base] обсуждает реализацию функций управления NAT, которые полагаются на устройства NAT операторского класса, такие как DS-Lite AFTR [ID.ietf-softwire-dual-stack-lite] или NAT64 [ID.ietf -behave-v6v4-xlate-stateful]. Тем не менее, в средах, где UPnP используется в локальной сети, функция взаимодействия между UPnP IGD и PCP должна быть встроена в маршрутизатор CP (пример показан на рисунке 1).

    Рассматриваются две конфигурации:

    • В маршрутизатор CP нет встроенной функции NAT. Это требуется, например, при развертывании DS-Lite или NAT64;
    • Маршрутизатор CP поддерживает функцию NAT.
     UPnP-PCP
    Взаимодействие управления UPnP
       Точечная функция PCP-сервер
         | | |
         | (1) AddPortMapping | |
         | ---------------------> | |
         | | (2) Запрос PCP PINxy |
         | | --------------------------> |
         | | | 

    Рисунок 1: Пример потока

    Функция взаимодействия UPnP IGD-PCP (IGD-PCP IWF) поддерживает локальную таблицу сопоставления, в которой хранятся все активные сопоставления, заданные внутренними контрольными точками UPnP.Этот выбор конструкции ограничивает количество сообщений PCP, которыми должен обмениваться сервер PCP.

    Триггеры для деактивации функции взаимодействия UPnP IGD-PCP от маршрутизатора CP и использования режима только PCP выходят за рамки этого документа.

    В остальном PINxy относится к одному из кодов операций PCP PIN44, PIN46, PING64 и PIN66, определенных в [I-D.ietf-pcp-base].

    В этом документе используются следующие сокращения:

    Маршрутизатор CP Маршрутизатор в помещении клиента
    DS-Lite Облегченный двойной стек
    IGD Интернет-шлюз
    IWF Функция взаимодействия
    NAT Преобразование сетевых адресов
    PCP Протокол управления портами
    UPnP Универсальный Plug and Play

    Напомним, что на рисунке 2 показана модель архитектуры, принятая UPnP IGD [IGD2].На рисунке 2 используется следующая терминология UPnP:

    • Клиент — это хост, расположенный в локальной сети.
    • Контрольная точка IGD — это контрольная точка UPnP, использующая UPnP для управления IGD (устройством Интернет-шлюза).
    • Host представляет собой удаленный узел, доступный в Интернете.
     + ------------- +
    | IGD Control |
    | Точка | ----- +
    + ------------- + | + ----- + + ------ +
                        + --- | | | |
                            | IGD | ------- | Хост |
                        + --- | | | |
    + ------------- + | + ----- + + ------ +
    | Клиент | ----- +
    + ------------- +
    
     

    Рисунок 2: UPnP IGD модель

    Эта модель недействительна, если PCP используется для управления, например, NAT операторского класса (a.k.a., Provider NAT), в то время как внутренние узлы продолжают использовать UPnP. В таких сценариях на Рисунке 3 показана обновленная модель.

     + ------------- +
    | IGD Control |
    | Точка | ----- +
    + ------------- + | + ----- + + -------- + + ------ +
                        + --- | IGD- | | Провайдер | | |
                            | PCP | ------- | NAT | - <Интернет> --- | Пэр |
                        + --- | IWF | | | | |
    + ------------- + | + ----- + + -------- + + ------ +
    | Локальный хост | ----- +
    + ------------- +
                          Сторона LAN Внешняя сторона
    <====== UPnP IGD ===============> <====== PCP =====>
    
     

    Рисунок 3: Модель взаимодействия UPnP IGD-PCP

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

     + ------------- +
    | IGD Control |
    | Точка | ----- +
    + ------------- + | + ----- + + ---- + + ------ +
                        + --- | IGD- | | | | Удаленный |
                            | PCP | ------- | NAT2 | - <Интернет> --- | Хост |
                        + --- | IWF | | | | |
    + ------------- + | + ----- + + ---- + + ------ +
    | Локальный хост | ----- + NAT1
    + ------------- +
    
     

    Рисунок 4: Сценарий каскадного NAT

    Для обеспечения успешного взаимодействия между UPnP IGD и PCP в маршрутизатор CP встроена функция взаимодействия.В модели, показанной на рисунке 3, все серверно-ориентированные функции UPnP IGD, клиент PCP [I-D.ietf-pcp-base] и функция взаимодействия UPnP IGD-PCP встроены в маршрутизатор CP (т. Е. IGD). В остальной части документа функция взаимодействия IGD-PCP относится к клиенту PCP и функции взаимодействия IGD-PCP UPnP.

    Функция взаимодействия UPnP IGD-PCP отвечает за формирование правильно сформированного сообщения PCP (соответственно, UPnP IGD) из полученного сообщения UPnP IGD (соответственно, PCP).

    Предоставляются три таблицы для определения соответствия между UPnP IGD и PCP:

    1. В таблице 1 показано соответствие между параметрами WANIPConnection и параметрами PCP;
    2. Таблица 2 фокусируется на соответствии между поддерживаемыми методами;
    3. В таблице 3 перечислены сообщения об ошибках IGD и соответствующие им сообщения PCP.

    Обратите внимание, что некоторые улучшения были интегрированы в WANIPConnection, как описано в [IGD2].

    UPnP IGD-PCP: переменные
    WANIP Подключение PCP Комментарии
    PortMappingEnabled Не применимо Если установлено значение 1, этот параметр НЕ ДОЛЖЕН воспроизводиться в качестве аргумента в сообщениях PCP. Если установлено значение 0, это режим PCP по умолчанию (без явной индикации в сообщениях PCP).PCP не поддерживает отключение динамического преобразования NAT, поскольку первоначальная цель PCP — облегчить прохождение NAT операторского класса. Поддержка такой функции для каждого абонента может привести к перегрузке NAT операторского класса.
    PortMappingLeaseDuration Запрошенное время жизни сопоставления PCP рекомендует 7200 в качестве значения по умолчанию. Если для параметра PortMappingLeaseDuration установлено значение 0, максимальное значение времени жизни МОЖЕТ быть включено в соответствующее сообщение PCP. PCP допускает максимальное значение 65536 секунд, в то время как UPnP IGD допускает 604800 секунд (т.е.е., одна неделя) как максимальная граница. 3600 — это рекомендуемое значение аренды в UPnP IGD: 2 [IGD2].
    Внешний порт Номер внешнего порта PCP не поддерживает явные значения подстановочных знаков. Если ExternalPort является значением с подстановочным знаком, случайное значение номера внешнего порта ДОЛЖНО быть заключено в соответствующее сообщение PCP.
    Внутренний порт Внутренний номер порта
    Протокол сопоставления портов Транспортный протокол IGD поддерживает только TCP и UDP.
    Внутренний клиент Внутренний IP-адрес InternalClient может быть IP-адресом или полным доменным именем. В PCP поддерживается только схема IP-адресов. Если точка управления IGD использует полное доменное имя, функция взаимодействия должна преобразовать его в IP-адрес при передаче сообщения серверу PCP.
    Внешний IP-адрес Внешний IP-адрес
    Отображение портов Описание Не применимо Не поддерживается базовым PCP.Если этот параметр присутствует в сообщениях UPnP IGD, этот параметр НЕ ДОЛЖЕН распространяться в соответствующих сообщениях PCP. Если локальный клиент PCP поддерживает параметр PCP для передачи описания, этот параметр МОЖЕТ использоваться.
    RemoteHost REMOTE_PEER PCP РЕКОМЕНДУЕТ настроить межсетевой экран маршрутизатора CP вместо перегрузки NAT операторского класса. Можно использовать опцию REMOTE_PEER PCP.
    Возможные типы соединений Не применимо Вне области действия PCP
    Состояние подключения Не применимо Вне области действия PCP
    PortMappingNumberOfEntries Не применимо Управляется локально функцией взаимодействия UPnP IGD-PCP
    SystemUpdateID Не применимо Управляется локально функцией взаимодействия UPnP IGD-PCP

    Оба метода IGD: 1 и IGD: 2 перечислены в таблице 2.

    .
    IGD-PCP: методы
    WANIP Подключение PCP Комментарии
    GetGenericPortMappingEntry Не применимо Этот запрос не передается на сервер PCP. Функция взаимодействия IGD-PCP поддерживает обновленный список активных отображений, созданных на сервере PCP внутренними хостами. См. Раздел 5.8 для получения дополнительной информации.
    GetSpecificPortMappingEntry Не применимо В нормальных условиях функция взаимодействия IGD-PCP поддерживает обновленный список активного отображения, созданный на сервере PCP.Функция взаимодействия IGD-PCP локально обрабатывает этот запрос и предоставляет обратно запись о сопоставлении портов на основе ExternalPort, PortMappingProtocol и RemoteHost. См. Дополнительную информацию в Разделе 5.8.
    AddPortMapping PINxy Мы рекомендуем использовать AddAnyPortMapping () вместо AddPortMapping (). См. Раздел 5.7.2
    DeletePortMapping PINxy с запрошенным временем жизни, равным 0 См. Раздел 5.9
    GetExternalIPAddress PCP еще не поддерживает метод получения внешнего IP-адреса. Выдача PINxy может использоваться как средство для получения внешнего IP-адреса
    DeletePortMappingRange () PINxy со сроком жизни 0 Индивидуальные запросы выдаются функцией взаимодействия IGD-PCP. Обратитесь к Разделу 5.9 для получения более подробной информации
    GetListOfPortMappings () Не применимо Функция взаимодействия IGD-PCP поддерживает обновленный список активного сопоставления, созданный на сервере PCP.Функция взаимодействия IGD-PCP обрабатывает этот запрос локально. См. Дополнительную информацию в Разделе 5.8.
    AddAnyPortMapping () PINxy Не обнаружено никаких проблем с проксированием этого запроса на сервер PCP. За более подробной информацией обратитесь к Разделу 5.7.1

    В таблице 3 перечислены коды ошибок UPnP IGD и соответствующие коды ошибок PCP. Коды ошибок, характерные для IGD: 2, помечены соответственно.

    .
    UPnP IGD-PCP: ошибки
    Код ошибки IGD Код ошибки PCP
    401 (InvalidAction) 129 (UNSUPP_OPCODE)
    402 (InvalidArgs) TBD (MALFORMED_REQUEST)
    501 (сбой действия) 154 (UNABLE_TO_DELETE_ALL) (??)
    606 (ActionNotAuthorized) (только для IGD: 2) 151 (НЕ РАЗРЕШЕНО)
    713 (SpecifiedArrayIndexInvalid) Не применимо, поскольку запросы Get * не передаются на сервер PCP
    714 (NoSuchEntryInArray) PCP всегда возвращает положительный ответ, даже если удаляемое отображение не существует.Этот код ошибки не применим для запросов Get *, которые не передаются на сервер PCP
    715 (WildCardNotPermitedInSrcIP) TBD (MALFORMED_REQUEST)
    716 (WildCardNotPermitedInSrcExtPort) Не применимо
    718 (ConflictInMappingEntry) Не применимо
    724 (требуется SamePortValues) Не применимо
    725 (Поддерживается только постоянная аренда) Не применимо
    726 (RemoteHostOnlySupportsWildcard) 130 (UNSUPP_OPTION)
    727 (только внешний порт поддерживает Wildcard) Не применимо
    728 (NoPortMapsAvailable) (только для IGD: 2) 4 (NO_RESOURCES) или 152 (USER_EX_QUOTA)
    729 (ConflictWithOtherMechanisms) (только для IGD: 2) TBD (MECHANISM_CONFLICT)
    730 (PortMappingNotFound) (только для IGD: 2) Не применимо
    732 (WildCardNotPermittedInPort) (только для IGD: 2) TBD (MALFORMED_REQUEST)
    733 (InconsistentParameter) (только для IGD: 2) Не применимо

    В этом разделе рассматриваются сценарии с NAT или без NAT в маршрутизаторе CP.

    Функция взаимодействия IGD-PCP реализует один из методов обнаружения, указанных в [I-D.ietf-pcp-base] (например, DHCP [I-D.bpw-pcp-dhcp]). Функция взаимодействия IGD-PCP ведет себя как клиент PCP при обмене данными с подготовленным сервером PCP.

    Чтобы не влиять на доставку локальных услуг, требующих управления локальным IGD во время любого события сбоя, чтобы достичь сервера PCP (например, IP-адрес / префикс не назначен маршрутизатору CP), функция взаимодействия IGD-PCP НЕ ДОЛЖНА быть вызванным.Действительно, оборудование UPnP используется для управления этим устройством и, следовательно, приводит к успешной работе внутренних служб.

    Когда сервер PCP становится доступным, функция взаимодействия IGD-PCP ДОЛЖНА синхронизировать свои состояния, как указано в разделе 5.10.

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

    Следовательно, для этой цели не требуется функция взаимодействия IGD-PCP.

    Внутренние контрольные точки UPnP не знают о наличии функции взаимодействия IGD-PCP в маршрутизаторе CP (IGD). В частности, контрольные точки UPnP НЕ ДОЛЖНЫ знать о деактивации NAT в маршрутизаторе CP.

    Никаких изменений в точке управления UPnP не требуется.

    Функция взаимодействия IGD-PCP ДОЛЖНА хранить локально все сопоставления, созданные внутренними контрольными точками UPnP на сервере PCP. Сопоставления переадресации портов ДОЛЖНЫ храниться в постоянном хранилище.В противном случае при сбросе или перезагрузке функция взаимодействия IGD-PCP ДОЛЖНА синхронизировать свои состояния, как указано в разделе 5.10.

    После получения ответа PCP PINxy от сервера PCP функция взаимодействия IGD-PCP ДОЛЖНА получить вложенное отображение (я) и ДОЛЖНА сохранить его в локальной таблице отображения. Локальная таблица сопоставления — это образ таблицы сопоставления, поддерживаемый сервером PCP для данного подписчика.

    Если NAT не встроен в маршрутизатор CP, содержимое полученных сообщений WANIPConnection и PCP не изменяется функцией взаимодействия IGD-PCP (т.е., содержимое сообщений WANIPConnection копируется в сообщения PCP (и наоборот) в соответствии с таблицей 1).

    В отличие от сценария с одним уровнем NAT (раздел 5.5), функция взаимодействия IGD-PCP ДОЛЖНА обновлять свое содержимое полученных сообщений сопоставления IP-адресом и / или номером порта, принадлежащим внешнему интерфейсу маршрутизатора CP (т. Е. После операция NAT1 на рисунке 4), а не так, как изначально позиционировалась контрольной точкой UPnP.

    Все сообщения WANIPConnection, выдаваемые контрольной точкой UPnP (соотв., PCP Server) перехватываются функцией взаимодействия IGD-PCP. Затем соответствующие сообщения (см. Таблицу 1, Таблицу 2 и Таблицу 3) генерируются функцией взаимодействия IGD-PCP и отправляются на подготовленный сервер PCP (соответственно, в соответствующую точку управления UPnP). Содержимое сообщений PCP, полученных сервером PCP, отражает информацию о сопоставлении, которая применяется в первом NAT. В частности, внутренний IP-адрес и / или номер порта запросов заменяются IP-адресом и номером порта, назначенными NAT маршрутизатора CP.Для обратного пути сообщения ответа PCP перехватываются функцией взаимодействия IGD-PCP. Обновлено содержимое соответствующих сообщений WANIPConnection:

    • Внутренний IP-адрес и / или номер порта, изначально заданные точкой управления UPnP и сохраненные в NAT маршрутизатора CP, используются для обновления соответствующих полей в полученных ответах PCP.
    • Внешний IP-адрес и номер порта не изменяются функцией взаимодействия IGD-PCP.
    • Запись сопоставления NAT в первом NAT обновляется результатом запроса PCP.

    Время жизни сопоставлений, созданных во всех задействованных NAT, ДОЛЖНО быть тем, которое назначено завершающим сервером PCP. В любом случае время жизни ДОЛЖНО быть меньше или равно значению, назначенному завершающим сервером PCP.

    Для создания сопоставления можно использовать два метода: AddPortMapping () или AddAnyPortMapping ().

    AddAnyPortMapping () — РЕКОМЕНДУЕМЫЙ метод.

    Когда точка управления UPnP выдает AddAnyPortMapping (), этот запрос принимается сервером UPnP.Затем запрос ретранслируется в функцию взаимодействия IGD-PCP, которая генерирует запрос PCP PINxy (см. Таблицу 1 для отображения между параметрами WANIPConnection и PCP). После получения ответа PCP PINxy от сервера PCP отображение XML возвращается в запрашивающую точку управления UPnP (содержание сообщений соответствует рекомендациям, перечисленным в Разделе 5.6 или Разделе 5.5 в соответствии с развернутым сценарием). Пример потока показан на рисунке 5.

    Если от сервера PCP получена ошибка PCP, функция взаимодействия IGD-PCP генерирует соответствующий код ошибки WANIPConnection Таблица 3 и отправляет его запрашивающей точке управления UPnP.

     UPnP-PCP
    Взаимодействие управления UPnP
       Точечная функция PCP-сервер
         | | |
         | (1) AddAnyPortMapping | |
         | ---------------------> | |
         | | (2) Запрос PCP PINxy |
         | | (запрошенный внешний порт = 0) |
         | | ----------------------------> |
         | | |
         | | (3) Ответ PCP PINxy |
         | | (назначен внешний порт = 6598) |
         | | <---------------------------- |
         | (4) AddAnyPortMapping | |
         | ReservedPort = 6598 | |
         | <--------------------- | |
    
     

    Рисунок 5: Пример потока при использовании AddAnyPortMapping ()

    Специальная опция HONOR_EXTERNAL_PORT определена в [I-D.ietf-pcp-base] для переключения поведения в сообщении запроса PCP. Эти параметры вставляются IGD-PCP IWF при отправке своих запросов на сервер PCP, только если конкретный внешний порт запрашивается точкой управления UPnP. Когда используется подстановочный знак (т. Е. 0), параметр HONOR_EXTERNAL_PORT не требуется вставлять в запрос PCP к серверу PCP (см. Рисунок 6). В остальном мы предполагаем, что конкретный внешний порт запрашивается точкой управления UPnP.

     UPnP-PCP
    Взаимодействие управления UPnP
       Точечная функция PCP-сервер
         | | |
         | (1) AddPortMapping | |
         | ExternalPort = 0 | |
         | ---------------------> | |
         | | (2) Запрос PCP PINxy |
         | | (запрошенный внешний порт = 0) |
         | | ----------------------------> |
         | | |
         | | (3) Ответ PCP PINxy |
         | | (назначен внешний порт = 1365) |
         | | <---------------------------- |
         | (4) AddPortMapping | |
         | ExternalPort = 1356 | |
         | <--------------------- | |
    
     

    Рисунок 6: Пример AddPortMapping () с внешним портом

    с подстановочными знаками

    После получения AddPortMapping () от точки управления UPnP функция взаимодействия IGD-PCP сначала проверяет, не используется ли запрошенный номер внешнего порта другой внутренней точкой управления UPnP.В случае, если сопоставление, связанное с запрошенным номером внешнего порта, обнаружено в локальной таблице сопоставления, IGD-PCP IWF ДОЛЖЕН отправить обратно сообщение об ошибке ConflictInMappingEntry запрашивающей точке управления UPnP (см. Рисунок 7).

     UPnP-PCP
    Взаимодействие управления UPnP
       Точечная функция PCP-сервер
         | | |
         | (1) AddPortMapping | |
         | ExternalPort = 2356 | |
         | ---------------------> | |
         | | |
         | (2) Ошибка: | |
         | ConflictInMappingEntry | |
         | <--------------------- | |
         | | |
         | (3) AddPortMapping | |
         | ExternalPort = 4586 | |
         | ---------------------> | |
         | | |
         | (4) Ошибка: | |
         | ConflictInMappingEntry | |
         | <--------------------- | |
         | | |
    
     

    Рисунок 7: Локальное поведение IWF

    Этот обмен (рисунок 7) повторяется до тех пор, пока точка управления UPnP не запросит номер внешнего порта, который не используется.Затем IGD-PCP IWF генерирует запрос PCP PINxy со всей запрошенной информацией о сопоставлении, как указано точкой управления UPnP, если NAT не встроен в маршрутизатор CP или не обновлен, как указано в разделе 5.6. Кроме того, IGD-PCP IWF вставляет параметр HONOR_EXTERNAL_PORT в сгенерированный запрос PCP.

    Если запрошенный внешний порт используется, сообщение об ошибке PCP ДОЛЖНО быть отправлено сервером PCP в IGD-PCP IWF с указанием CANNOT_HONOR_EXTERNAL_PORT в качестве причины ошибки. IGD-PCP IWF передает отрицательное сообщение в контрольную точку UPnP, указывая ConflictInMappingEntry как код ошибки.Контрольная точка UPnP повторно выдает новый запрос с новым запрошенным номером внешнего порта. Этот процесс повторяется до тех пор, пока не будет получен положительный ответ или не будет достигнуто максимальное количество повторных попыток.

    Если сервер PCP может обработать запрошенный внешний порт, запрашивающей IWF IGD-PCP отправляется положительный ответ. После получения ответа от сервера PCP возвращенное отображение ДОЛЖНО быть сохранено функцией взаимодействия IGD-PCP в своей локальной таблице отображения, а положительный ответ ДОЛЖЕН быть отправлен запрашивающей точке управления UPnP.Этот ответ прекращает обмен.

    На рисунке 8 показан пример обмена потоками, который происходит, когда сервер PCP удовлетворяет запрос от IGD-PCP IWF. На рисунке 9 показан обмен сообщениями при использовании запрошенного внешнего порта.

     UPnP-PCP
    Взаимодействие управления UPnP
       Точечная функция PCP-сервер
         | | |
         | (1) AddPortMapping | |
         | ExternalPort = 8080 | |
         | ---------------------> | |
         | | (2) Запрос PCP PINxy |
         | | запрошенный внешний порт = 8080 |
         | | HONOR_EXTERNAL_PORT |
         | | ----------------------------> |
         | | |
         | | (3) Ответ PCP PINxy |
         | | назначен внешний порт = 8080 |
         | | <---------------------------- |
         | (4) AddPortMapping | |
         | ExternalPort = 8080 | |
         | <--------------------- | |
    
     

    Рисунок 8: Пример потока (положительный ответ)

     UPnP-PCP
    Взаимодействие управления UPnP
       Точечная функция PCP-сервер
         | | |
         | (1) AddPortMapping | |
         | ExternalPort = 8080 | |
         | ---------------------> | |
         | | (2) Запрос PCP PINxy |
         | | запрошенный внешний порт = 8080 |
         | | HONOR_EXTERNAL_PORT |
         | | ----------------------------> |
         | | (3) Ответ PCP PINxy |
         | | CANNOT_HONOR_EXTERNAL_PORT |
         | | <---------------------------- |
         | (4) Ошибка: | |
         | ConflictInMappingEntry | |
         | <--------------------- | |
         | (5) AddPortMapping | |
         | ExternalPort = 5485 | |
         | ---------------------> | |
         | | (6) Запрос PCP PINxy |
         | | запрошенный внешний порт = 5485 |
         | | HONOR_EXTERNAL_PORT |
         | | ----------------------------> |
         | | (7) Ответ PCP PINxy |
         | | CANNOT_HONOR_EXTERNAL_PORT |
         | | <---------------------------- |
         | (8) Ошибка: | |
         | ConflictInMappingEntry | |
         | <--------------------- | |
                                ....
         | (а) AddPortMapping | |
         | ExternalPort = 6591 | |
         | ---------------------> | |
         | | (b) Запрос PCP PINxy |
         | | запрошенный внешний порт = 6591 |
         | | HONOR_EXTERNAL_PORT |
         | | ----------------------------> |
         | | (c) Ответ PCP PINxy |
         | | CANNOT_HONOR_EXTERNAL_PORT |
         | | <---------------------------- |
         | (d) Ошибка: | |
         | ConflictInMappingEntry | |
         | <--------------------- | |
    
     

    Рисунок 9: Пример потока (отрицательный ответ)

    Для вывода списка активных сопоставлений точка управления UPnP может выдавать GetGenericPortMappingEntry (), GetSpecificPortMappingEntry () или GetListOfPortMappings ().

    Эти методы НЕ ДОЛЖНЫ быть проксированы на сервер PCP, поскольку локальное отображение поддерживается функцией взаимодействия IGD-PCP.

    Контрольная точка UPnP переходит к удалению одного или списка сопоставлений, вызывая DeletePortMapping () или DeletePortMappingRange (). Когда одно из этих сообщений получено функцией взаимодействия IGD-PCP, она сначала проверяет, присутствует ли запрошенное отображение, которое должно быть удалено, в локальной таблице отображения. Если сопоставление, соответствующее запросу, не найдено в локальной таблице, сообщение об ошибке отправляется обратно в контрольную точку UPnP (см. Рисунок 10).

     UPnP-PCP
    Взаимодействие управления UPnP
       Точечная функция PCP-сервер
         | | |
         | (1) DeletePortMapping | |
         | ---------------------> | |
         | | |
         | (2) Ошибка: | |
         | NoSuchEntryInArray | |
         | <--------------------- | |
         | | |
    
     

    Рисунок 10: Локальное удаление (IGD-PCP IWF)

    , если сопоставление совпадает с локальной таблицей, запросы на удаление PCP PINxy генерируются с учетом входных аргументов:

    • как включено в DeletePortMapping (), если NAT не включен в маршрутизаторе CP; В случае использования DeletePortMappingRange () IGD-PCP IWF генерирует отдельные запросы для охвата всего диапазона;
      • [[Примечание: добавьте рисунок, чтобы проиллюстрировать поведение при обработке DeletePortMappingRange ()]]
    • или соответствующий локальный IP-адрес и номер порта, назначенные локальным NAT, если NAT включен в маршрутизаторе CP.

    После получения сервером PCP он переходит к удалению соответствующей записи (ов). Ответ на удаление PCP PINxy отправляется обратно, если удаление соответствующей записи (записей) было успешным; в противном случае сообщение об ошибке PCP отправляется обратно в функцию взаимодействия IGD-PCP, включая соответствующую причину ошибки (например, Not Authorized).

    Когда от сервера PCP получен положительный ответ, функция взаимодействия IGD-PCP обновляет свою локальную таблицу сопоставления (т. Е. Удаляет соответствующую запись (и)) и уведомляет точку управления UPnP о результате операции удаления.

    [[Примечание: этот раздел требует дальнейшего обсуждения среди авторов]]

    В нормальных условиях, поскольку действительная копия таблицы сопоставления хранится локально в маршрутизаторе CP, функции взаимодействия IGD-PCP НЕ СЛЕДУЕТ выдавать какие-либо последующие запросы PCP для обработки запроса, полученного от контрольной точки UPnP, для перечисления активных сопоставлений. Тем не менее, в случае потери синхронизации (например, перезагрузка, сбой системы, отключение питания и т. Д.), Функции взаимодействия IGD-PCP СЛЕДУЕТ генерировать метод get для получения всех активных сопоставлений на сервере PCP и обновления его локальной таблицы сопоставления без ожидает явного запроса от точки управления UPnP.При этом функция взаимодействия IGD-PCP поддерживает обновленную таблицу отображения.

    В случае массивной перезагрузки CP-маршрутизаторов (например, лавинного перезапуска) СЛЕДУЕТ избегать пакетов запросов PCP. Для этой цели мы рекомендуем использовать заданный таймер, обозначенный как PCP_SERVICE_WAIT. Этот таймер можно предварительно настроить в маршрутизаторе CP или настроить с помощью специальных средств, таких как DHCP. После перезагрузки маршрутизатора CP сообщения PCP НЕ ДОЛЖНЫ отправляться немедленно. Выбирается случайное значение от 0 до PCP_SERVICE_WAIT.Это значение называется RAND (PCP_SERVICE_WAIT). По истечении RAND (PCP_SERVICE_WAIT) маршрутизатору CP СЛЕДУЕТ перейти к своим операциям синхронизации (т. Е. Получить все активные сопоставления, которые были проинструктированы внутренними контрольными точками UPnP).

    [[Примечание: квота на подписчика может быть исчерпана из-за неограниченного времени жизни и устаревших сопоставлений в IGD из-за перезагрузок и т. Д.]]

    Этот документ не запрашивает IANA.

    Примечание для редактора RFC: этот раздел может быть удален при публикации как RFC.

    Этот документ определяет процедуру для указания сопоставлений PCP для сторонних устройств, принадлежащих тому же абоненту. Идентификация означает, что злоумышленник не должен давать указания сопоставлениям от имени третьей стороны. Такие средства уже обсуждаются в разделе 7.4.4 [I-D.ietf-pcp-base].

    Следует учитывать соображения безопасности, изложенные в [I-D.ietf-pcp-base] и [Sec_DCP].

    Авторы выражают благодарность F. Fontaine и C. Jacquenet за их обзор и комментарии.

    [RFC2119] Брэднер, С., «Ключевые слова для использования в RFC для обозначения уровней требований», BCP 14, RFC 2119, март 1997 г.
    [I-D.ietf-pcp-base] Wing, D, Cheshire, S, Boucadair, M, Penno, R and P Selkirk, "Port Control Protocol (PCP)", Internet-Draft draft-ietf-pcp-base-17, октябрь 2011 г.
    [I-D.ietf-softwire-dual-stack-lite] Durand, A, Droms, R, Woodyatt, J and Y Lee, «Широкополосное развертывание Dual-Stack Lite после исчерпания IPv4», Internet-Draft draft-ietf-softwire-dual-stack-lite-11, май 2011 г.
    [I-D.ietf-behavior-v6v4-xlate-stateful] Багнуло, М., Мэтьюз, П. и И. Бейджнум, «Stateful NAT64: преобразование сетевых адресов и протоколов с клиентов IPv6 на серверы IPv4», Internet-Draft draft-ietf-behavior-v6v4-xlate-stateful-12, июль 2010 г.
    [I-D.bpw-pcp-dhcp] Boucadair, M, Penno, R and D Wing, «Параметры DHCP и DHCPv6 для протокола управления портами (PCP)», Internet-Draft draft-bpw-pcp-dhcp-04, апрель 2011 г.
    [Sec_DCP] UPnP Forum, «Защита устройства: 1», ноябрь 2009 г.
    [IGD2] Форум UPnP`` WANIPConnection: 2 Service (http: // upnp.org / specs / gw / UPnP-gw-WANIPConnection-v2-Service.pdf) ", сентябрь 2010 г.
    Рейнальдо Пенно Penno Juniper Networks 1194 N Mathilda Avenue Саннивейл, Калифорния 94089 Соединенные Штаты Америки Электронная почта: [email protected]
    Дэн Винг Крыло Cisco Systems, Inc. 170 West Tasman Drive Сан - Хосе, Калифорния 95134 Соединенные Штаты Америки Электронная почта: [email protected]
    Описание служб UPnP, SSDP и переадресации портов

    | Rapid7

    Это была ночь перед Рождеством,
    , когда по всему дому,
    Ни одно существо не шевелилось, даже мышь.
    Чулки осторожно повесили у дымохода,
    в надежде, что Святой Николай скоро будет там.

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

    И поскольку вы, возможно, не в курсе,
    позвольте мне поделиться с вами тем, что я узнал,
    , чтобы вы также могли заботиться,
    , как переносить вперед с праздничным настроением UPnP.

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

    Службы переадресации портов UPnP обычно включены по умолчанию на большинстве потребительских маршрутизаторов с выходом в Интернет с трансляцией сетевых адресов (NAT), поставляемых поставщиками интернет-услуг (ISP) для поддержки сетей IPv4.Это сделано для того, чтобы устройства во внутренней сети могли автоматизировать настройку необходимых функций переадресации портов TCP и UDP на маршрутизаторе с выходом в Интернет, чтобы устройства в Интернете могли подключаться к службам во внутренней сети.

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

    Чтобы все это работало, UPnP использует протокол обнаружения, известный как Simple Service Discovery Protocol (SSDP). Эта служба обнаружения SSDP для UPnP представляет собой службу UDP, которая отвечает на порт 1900 и может быть перечислена путем широковещательной рассылки сообщения M-SEARCH через многоадресный адрес 239.255.255.250. Это сообщение M-SEARCH вернет информацию об устройстве, включая URL-адрес и номер порта для файла описания устройства ‘rootDesc.xml ’. Вот пример возвращенного ответа M-SEARCH от маршрутизатора NETGEAR Wi-Fi в моей сети:

    Чтобы отправить многоадресное сообщение M-SEARCH, вот простой скрипт Python:

      # простой скрипт для перечисления UPNP устройства
     
    импортный сокет
     
    # Тело сообщения M-Search
    MS = \
        'M-ПОИСК * HTTP / 1.1 \ r \ n' \
        'HOST: 239.255.255.250: 1900 \ r \ n' \
        'ST: upnp: rootdevice \ r \ n' \
        'MX: 2 \ r \ n' \
        'MAN: "ssdp: discover" \ r \ n' \
        '\ r \ n'
     
    # Настроить UDP-сокет для многоадресной рассылки
    SOC = сокет.сокет (socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
    SOC.settimeout (2)
     
    # Отправить сообщение M-Search на многоадресный адрес для UPNP
    SOC.sendto (MS.encode ('utf-8'), ('239.255.255.250', 1900))
     
    # прослушать и записать возвращенные ответы
    пытаться:
        в то время как True:
            данные, адрес = SOC.recvfrom (8192)
            печать (адрес, данные)
    кроме socket.timeout:
            проходить
      

    Следующим шагом будет доступ к файлу rootDesc.xml. В этом случае это доступно на моем устройстве через http://192.168.2.74:5555/rootDesc.xml. Глядя на ответ M-SEARCH выше, мы видим, что IP-адрес rootDesc.xml - 169.254.39.187. 169.254. *. * Известен как автоматический частный IP-адрес. Нередко можно увидеть адрес в этом диапазоне, возвращаемый запросом M-SEARCH. Попытка получить к нему доступ не удастся, потому что он неверен. Чтобы получить доступ к файлу rootDesc.xml, вам нужно будет использовать настоящий IP-адрес устройства, который в моем случае был 192.168.2.74 и был показан в заголовке ответа сообщения M-SEARCH.

    После того, как rootDesc.xml, вы увидите некоторые очень интересные вещи в списке, но в этом случае нас интересует только перенаправление портов. Если доступна служба переадресации портов, она будет указана в файле rootDesc.xml как тип службы WANIPConnection, как показано ниже:

    . WANIPCn.xml можно открыть в той же службе http и в том же местоположении порта TCP, что и rootDesc.xml. файл. Файл WANIPCn.xml определяет различные доступные действия, и он часто включает следующие примеры действий:

    • AddPortMapping
    • GetExternalIPAddress
    • DeletePortMapping
    • GetStatusInfo
    • GetGenericPortMappingEntry
    • GetGenericPortMappingEntry
    • Mapping каждое из этих действий быть списком аргументов.Этот список аргументов определяет значения аргументов, которые могут быть отправлены через сообщения Simple Object Access Protocol (SOAP) на управляющий URL-адрес по адресу http://192.168.2.74:5555/ctl/IPConn, который используется для настройки параметров или получения статуса на маршрутизатор. SOAP - это спецификация обмена сообщениями, в которой для обмена информацией используется формат расширяемого языка разметки (XML).

      Ниже приведены несколько захваченных сообщений SOAP, первое из которых показывает AddPortMapping. Это настроит сопоставление портов на маршрутизаторе с IP-адресом 192.168.1.1. В этом случае добавляется порт TCP 1234, и он настроен для сопоставления интернет-стороны маршрутизатора с внутренним IP-адресом 192.168.1.241, поэтому любой, кто подключается к TCP-порту 1234 на внешнем IP-адресе маршрутизатора, будет подключен к порту 1234 на внутреннем хосте по адресу 192.168.1.241.

      В следующем захваченном сообщении SOAP показано действие DeletePortMapping, используемое для удаления сопоставления портов, созданного в приведенном выше сообщении SOAP:

      В заключение этого простого введения в службы UPnP, SSDP и переадресации портов я настоятельно рекомендую вам это сделать. не экспериментируйте на своем личном маршрутизаторе с выходом в Интернет или модеме DSL, где вы можете повлиять на состояние безопасности вашей домашней сети.Но я рекомендую вам настроить тестовую среду. Это легко сделать с помощью любого обычного домашнего маршрутизатора или точки доступа Wi-Fi с услугами маршрутизатора. Их часто можно купить использованными, или у вас может даже быть один, который вы обновили. Удивительно, насколько просто изменить маршрутизатор с помощью этих служб UPnP путем отправки сообщений SOAP, и я надеюсь, что вы воспользуетесь этим введением и поиграете с этими службами, чтобы еще больше расширить свои знания в этой области. Если вам нужны дополнительные инструменты для экспериментов со службами переадресации портов, вы можете использовать UPnP IGD SOAP Port Mapping Utility в Metasploit для создания и удаления этих сопоставлений портов.

      Но я слышал, как он воскликнул, прежде чем он скрылся из виду -
      Счастливого Рождества всем и всем доброй ночи UPnP

      НИКОГДА НЕ ПРОПУСТИТЕ БЛОГ

      Получайте самые свежие истории, опыт и новости о безопасности сегодня.

      Подписывайся

      Другие блоги HaXmas

      Домашние устройства с поддержкой UPnP и уязвимости

      Ранее в этом году пользователи потоковых ключей Chromecast, устройств Google Home и смарт-телевизоров были засыпаны сообщением, рекламирующим канал YouTuber PewDiePie.Утверждается, что этот захват является частью продолжающейся битвы за количество подписчиков на сайте обмена видео. Сообщается, что хакеры, стоящие за этим, воспользовались плохо настроенными маршрутизаторами, на которых была включена служба Universal Plug and Play (UPnP), в результате чего маршрутизаторы перенаправляли общедоступные порты на частные устройства и были открыты для общедоступного Интернета.

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

      После вышеупомянутого инцидента мы изучили события, связанные с UPnP в домашних сетях, и обнаружили, что у многих пользователей все еще включен UPnP на своих устройствах. Мы собрали данные с помощью нашего бесплатного инструмента сканирования Интернета вещей, который может охватывать несколько операционных систем, включая платформы Mac, Windows, Android и iOS.В этом блоге мы обсуждаем данные за январь 2019 года.

      Тип устройства Общее количество устройств Количество устройств с включенным UPnP Доля устройств с включенным UPnP
      Маршрутизаторы 46 614 35 400 76%
      Медиаустройства 21 496 5 832 27%
      Игровые приставки 5,138 960 19%
      ПК 33 173 5,778 17%
      Устройства NAS 4 333 474 11%
      Камеры 2,105 189 9%
      Смарт-телевизоры 10 005 503 5%
      Принтеры 17 265 568 3%

      Таблица 1.Самые популярные типы устройств с включенным UPnP

      В январе мы обнаружили 76 процентов маршрутизаторов с включенным UPnP. Более того, 27 процентов мультимедийных устройств, например DVD-плееры и устройства потоковой передачи мультимедиа, также имеют включенный UPnP. Уязвимые реализации UPnP при использовании могут превратить маршрутизаторы и другие устройства в прокси-серверы, чтобы скрыть происхождение ботнетов, распределенных атак типа «отказ в обслуживании» (DDoS) или спама, а также сделать практически невозможным отследить, какие злонамеренные действия выполняются.Ранее уже появлялись сообщения о том, что маршрутизаторы с уязвимыми реализациями UPnP были вынуждены подключаться к портам и даже отправлять спам или другие вредоносные сообщения на хорошо известные почтовые службы.

      IoT-ботнет Satori, например, прославился тем, что использовал уязвимость UPnP. Уязвимость, обозначенная как CVE-2014-8361, представляет собой уязвимость внедрения команд в интерфейсе Realtek SDK miniigd UPnP SOAP. Еще в мае 2015 года было выпущено публичное уведомление об уязвимости с применимыми смягчениями, но, судя по последним данным, которые мы собрали, многие устройства все еще используют более старые, потенциально уязвимые версии UPnP.

      Рис. 1. Результаты, связанные с UPnP с 1900 в качестве порта, в Shodan (данные от 5 марта 2019 г.)

      Мы также расширили возможности сканирования с помощью поисковой системы Shodan. Сканирование стандартного порта, используемого UPnP (1900), дало результат 1 649 719 устройств, доступных для поиска в общедоступном Интернете. Известные библиотеки UPnP также были перечислены в поисковой системе, в том числе MiniUPnPd и Custom (библиотека UPnP от Broadcom) в качестве того, что используют большинство устройств с возможностью поиска.

      В процентах
      MiniUPnPd 35%
      На заказ 20%
      LibUPnP (портативный SDK / Intel SDK) 1%

      Таблица 2. Три лучшие библиотеки UPnP в результатах Shodan (данные за 5 марта 2019 г.)

      Уязвимости, связанные с UPnP, и текущие реализации устройств в домашних сетях Результаты

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

      MiniUPnPd

      Данные нашего инструмента сканирования IoT показали, что 16 процентов этих устройств с включенным UPnP используют библиотеку MiniUPnPd.MiniUPnPd - это хорошо известный демон UPnP для маршрутизаторов NAT (преобразование сетевых адресов), обеспечивающий службы протокола сопоставления портов. Интересно, что на обнаруженных нами устройствах установлены старые версии MiniUPnPd: 24 процента используют MiniUPnPd 1.0, 30 процентов используют MiniUPnPd 1.6 и только пять процентов устройств используют версию MiniUPnPd 2.x (miniupnpd 2.1 - последняя версия).

      Версии В процентах
      miniupnpd 1.0 24,47%
      miniupnpd 1.1 0%
      miniupnpd 1.2 0,28%
      miniupnpd 1.3 0,49%
      miniupnpd 1.4 3,68%
      miniupnpd 1.5 10,81%
      miniupnpd 1,6 29,98%
      miniupnpd 1,7 4,23%
      miniupnpd 1,8 8.48%
      miniupnpd 1.9 11,34%
      miniupnpd 2.0 4,96%
      miniupnpd 2.1 0,39%
      Прочие 0,89%
      miniupnpd (все) 100,00%

      Таблица 3. Распределение MiniUPnPd

      Устройства со старыми версиями указанного демона должны быть защищены от известных уязвимостей с высоким риском.Например, CVE-2013-0230, переполнение буфера на основе стека в ExecuteSoapAction MiniUPnPd 1.0 , позволяет злоумышленникам выполнять произвольный код. CVE-2013-0229, уязвимость в функции ProcessSSDPRequest в MiniUPnPd до 1.4 , позволяет злоумышленникам вызвать отказ в обслуживании (DoS) с помощью созданного запроса, который вызывает переполнение буфера. Затем есть CVE-2017-1000494, ошибка неинициализированной переменной стека в MiniUPnPd <2.0 , которая позволяет злоумышленникам вызывать DoS (ошибку сегментации и повреждение памяти).

      Сервер UPnP Windows

      Мы также обнаружили, что 18 процентов устройств используют UPnP на базе Windows. Эти устройства, в частности машины Microsoft Windows XP (Windows NT 5.1), должны проверять, был ли применен патч MS07-019. (Также важно отметить, что срок службы Windows XP подошел к концу в апреле 2014 года, что означает, что она больше не поддерживается Microsoft, и проблемы с безопасностью останутся без исправлений.) Windows XP поставляется с функцией UPnP, которая включается автоматически из коробки.Патч устраняет уязвимость, связанную с повреждением памяти UPnP (CVE-2007-1204), которая позволяет удаленному злоумышленнику запускать произвольный код в контексте учетной записи локальной службы.

      Libupnp (портативный SDK для устройств UPnP)

      Портативный комплект разработки программного обеспечения (SDK) для устройств UPnP (libupnp) - еще одна хорошо известная библиотека UPnP, которая поддерживает несколько операционных систем. По нашим данным, 5% обнаруженных устройств используют пакет библиотеки libupnp. Хотя это и не является значительным числом, мы отметили, что большинство устройств с указанной библиотекой имеют версии старше 1.6.18 / 1.6.19 (текущая версия - 1.8.4). Пользователи версий до 1.6.18 должны помнить о переполнении буфера на основе стека в функции unique_service_name, обозначенной как CVE-2012-5958, которая позволяет удаленным атакам выполнять произвольный код через пакет User Datagram Protocol (UDP). .

      Заключение и решения Trend Micro

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

      Домашние пользователи также могут следовать этим мерам для дополнительной безопасности:

      1. Просканируйте домашние сети с помощью инструмента Trend Micro ™ HouseCall ™ для домашних сетей и проверьте, на каких устройствах открыт порт UPnP 1900.

      2. Перейдите на страницу настроек устройства (например, страницу настроек маршрутизатора), чтобы отключить UPnP.

      3. При необходимости настройте параметры переадресации портов вручную.

      Решение Trend Micro Home Network Security может проверять интернет-трафик между маршрутизатором и всеми подключенными устройствами.Наш инструмент сканирования Интернета вещей интегрирован в сканер Trend Micro HouseCall для домашних сетей.

      Пользователи решения Trend Micro Home Network Security защищены от уязвимостей UPnP и связанных атак с помощью следующих правил:

      • 1134286 WEB Realtek SDK Miniigd UPnP SOAP Command Execution (CVE-2014-8361)
      • 1134287 WEB Выполнение команды SOAP домашнего шлюза Huawei (CVE-2017-17215)

      RFC 6970: Устройство интернет-шлюза Universal Plug and Play (UPnP)

      RFC 6970: Устройство интернет-шлюза Universal Plug and Play (UPnP) - функция взаимодействия протоколов управления портами (IGD-PCP IWF) [RFC Home] [ТЕКСТ | PDF | HTML] [Tracker] [IPR]

      ПРЕДЛАГАЕМЫЙ СТАНДАРТ
       Инженерная группа Интернета (IETF) M.Boucadair
      Запрос комментариев: 6970 France Telecom
      Категория: Стандарты Track R. Penno
      ISSN: 2070-1721 D. Wing
                                                                         Cisco
                                                                     Июль 2013
      
      
                           Универсальный Plug and Play (UPnP)
       Устройство интернет-шлюза - функция взаимодействия протокола управления портами
                                   (IGD-PCP IWF)
      
      Абстрактный
      
         В этом документе описывается поведение универсального Plug and Play.
         (UPnP) Интернет-шлюз - взаимодействие протоколов управления портами
         Функция (IGD-PCP IWF).UPnP IGD-PCP IWF должен быть
         встроены в маршрутизаторы в помещениях клиента (CP) для обеспечения прозрачности
         Управление NAT в средах, где UPnP IGD используется на стороне LAN
         и PCP используется на внешней стороне маршрутизатора CP.
      
      Статус этой памятки
      
         Это документ Internet Standards Track.
      
         Этот документ является продуктом Инженерной группы Интернета.
         (IETF). Он представляет собой консенсус сообщества IETF. Она имеет
         получил публичное рецензирование и был одобрен к публикации
         Инженерная группа управления Интернетом (IESG).Дополнительная информация о
         Интернет-стандарты доступны в разделе 2 RFC 5741.
      
         Информация о текущем статусе этого документа, исправлениях,
         а о том, как оставить отзыв, можно узнать по адресу
         http://www.rfc-editor.org/info/rfc6970.
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      Boucadair, et al. Стандарты Track [Страница 1] 

      RFC 6970 UPnP IGD-PCP IWF Июль 2013 г.
      
      
      Уведомление об авторских правах
      
         Авторские права (c) IETF Trust 2013 г. и лица, указанные в качестве
         авторы документа.Все права защищены.
      
         Этот документ подпадает под действие BCP 78 и Правового регулирования IETF Trust.
         Положения, касающиеся документов IETF
         (http://trustee.ietf.org/license-info) действует на дату
         публикация этого документа. Пожалуйста, просмотрите эти документы
         внимательно, поскольку они уважительно описывают ваши права и ограничения
         к этому документу. Компоненты кода, извлеченные из этого документа, должны
         включить упрощенный текст лицензии BSD, как описано в Разделе 4.e
         Правовые положения Trust и предоставляются без гарантии, как
         описано в упрощенной лицензии BSD.Оглавление
      
         1. Введение ............................................... ..... 3
            1.1. Требования Язык ...................................... 3
         2. Сокращения ............................................... ......... 4
         3. Модель архитектуры .............................................. 4
         4. UPnP IGD-PCP IWF: Обзор ...................................... 6
            4.1. UPnP IGD-PCP: переменные состояния .............................. 6
            4.2. IGD-PCP: Методы ........................................... 7
            4.3. UPnP IGD-PCP: ошибки ....................................... 8
         5. Технические характеристики IGD-PCP IWF ................................ 9
            5.1. Обнаружение сервера PCP ....................................... 9
            5.2. Управление межсетевым экраном ................................... 10
            5.3. Таблица сопоставления портов ........................................ 10
            5.4. Функция взаимодействия без NAT в IGD .............. 10
            5.5. NAT встроен в IGD................................... 11
            5.6. Создание сопоставления ........................................ 12
                 5.6.1. AddAnyPortMapping () ................................ 12
                 5.6.2. AddPortMapping () ................................... 13
            5.7. Листинг один или набор сопоставлений .......................... 16
            5.8. Удалить одно или набор сопоставлений: DeletePortMapping () или
                 DeletePortMappingRange () .................................. 16
            5.9. Обновление сопоставления ........................................ 19
            5.10. Быстрое восстановление ........................................... 20
         6. Соображения безопасности ........................................ 21
         7. Благодарности ............................................... .21
         8. Ссылки ............................................... ...... 22
            8.1. Нормативные ссылки ...................................... 22
            8.2. Информационные ссылки .................................... 22
      
      
      
      
      
      
      
      Boucadair, et al.Стандарты Track [Страница 2] 

      RFC 6970 UPnP IGD-PCP IWF Июль 2013 г.
      
      
      1. Введение
      
         Спецификация протокола управления портами (PCP) [RFC6887] обсуждает
         реализация функций управления NAT, которые зависят от Carrier Grade
         Устройства NAT, такие как семейство адресов Dual-Stack Lite (DS-Lite)
         Маршрутизатор перехода (AFTR) [RFC6333] или NAT64 [RFC6146]. В
         среды, в которых универсальный шлюз для подключения к Интернету
         (UPnP IGD) используется в локальной сети, функция взаимодействия
         между UPnP IGD и PCP должен быть встроен в IGD
         (см. пример, показанный на рисунке 1).UPnP IGD-PCP
         Взаимодействие управления UPnP
            Точечная функция PCP-сервер
              | IGD |
              | | |
              | (1) AddPortMapping () | |
              | -----------------------> | |
              | | (2) Запрос PCP MAP |
              | | --------------------------> |
              | | |
      
                                Рисунок 1: Пример потока
      
         В этом документе рассматриваются две конфигурации:
      
         o В IGD не встроена функция NAT (раздел 5.4). Это
            требуется, например, при развертывании DS-Lite или NAT64.
      
         o IGD включает функцию NAT (раздел 5.5).
      
         Функция взаимодействия UPnP IGD-PCP (UPnP IGD-PCP IWF) поддерживает
         локальная таблица сопоставления, в которой хранятся все активные сопоставления, созданные
         внутренние контрольные точки IGD. Этот выбор дизайна ограничивает количество
         сообщений PCP для обмена с сервером PCP.
      
         Триггеры для деактивации UPnP IGD-PCP IWF из IGD и
         использование режима только PCP выходит за рамки этого документа.Соображения, связанные с сосуществованием UPnP IGD-PCP
         Функция взаимодействия и прокси-сервер PCP [PCP-PROXY] не входят в сферу действия.
      
      1.1. Требования Язык
      
         Ключевые слова «ДОЛЖНЫ», «НЕ ДОЛЖНЫ», «ОБЯЗАТЕЛЬНО», «ДОЛЖНЫ», «НЕ ДОЛЖНЫ»,
         «ДОЛЖЕН», «НЕ ДОЛЖЕН», «РЕКОМЕНДУЕТСЯ», «МОЖЕТ» и «ДОПОЛНИТЕЛЬНО» в этом
         документ следует интерпретировать, как описано в RFC 2119 [RFC2119].
      
      
      
      
      Boucadair, et al. Стандарты Track [Страница 3] 

      RFC 6970 UPnP IGD-PCP IWF Июль 2013 г.
      
      
      2.Аббревиатуры
      
         В этом документе используются следующие сокращения:
      
            DS-Lite - двойной стек Lite
            IGD - Интернет-шлюз
            IGD: 1 - номенклатура форума UPnP для версии 1 IGD [IGD1]
            IGD: 2 - номенклатура форума UPnP для версии 2 IGD [IGD2]
            IWF - функция взаимодействия
            NAT - преобразование сетевых адресов
            PCP - протокол управления портами
            UPnP - универсальный Plug and Play
      
      3. Модель архитектуры
      
         Напомним, что на рисунке 2 показана модель архитектуры в том виде, в котором она была принята.
         на форуме UPnP [IGD2].На рисунке 2 следующий UPnP
         используется терминология:
      
         o «Клиент» относится к хосту, расположенному в локальной сети.
      
         o «IGD Control Point» - это устройство, использующее UPnP для управления IGD.
            (Интернет-шлюз).
      
         o IGD - маршрутизатор, поддерживающий UPnP IGD. Обычно это NAT или
            брандмауэр.
      
         o «Хост» - это удаленный узел, доступный в Интернете.
      
                      + ------------- +
                      | IGD Control |
                      | Точка | ----- +
                      + ------------- + | + ----- + + ------ +
                                          + --- | | | |
                                              | IGD | ------- | Хост |
                                          + --- | | | |
                      + ------------- + | + ----- + + ------ +
                      | Клиент | ----- +
                      + ------------- +
      
                               Рисунок 2: Модель UPnP IGD
      
         Эта модель недействительна, когда PCP используется для контроля, например,
         NAT операторского класса (он же Provider NAT), в то время как внутренние узлы продолжают
         используйте UPnP IGD.В таких сценариях на Рисунке 3 показана обновленная модель.
      
      
      
      
      
      
      Boucadair, et al. Стандарты Track [Страница 4] 

      RFC 6970 UPnP IGD-PCP IWF Июль 2013 г.
      
      
         + ------------- +
         | IGD Control |
         | Точка | ---- +
         + ------------- + | + ----- + + -------- + + ------ +
                            + --- | IGD- | | Провайдер | | Удаленный |
                                | PCP | ------ | NAT | - <Интернет> --- | Хост |
                            + --- | IWF | | | | |
         + ------------- + | + ----- + + -------- + + ------ +
         | Локальный хост | ---- +
         + ------------- +
                              Сторона LAN Внешняя сторона
         <====== UPnP IGD ==============> <===== PCP =====>
      
                       Рисунок 3: Модель взаимодействия UPnP IGD-PCP
      
         В обновленной модели, изображенной на рисунке 3, один или два уровня NAT
         можно встретить в пути к данным.Ведь помимо
         NAT операторского класса, IGD может включать функцию NAT (рисунок 4).
      
         + ------------- +
         | IGD Control |
         | Точка | ---- +
         + ------------- + | + ----- + + -------- + + ------ +
                            + --- | IGD- | | Провайдер | | Удаленный |
                                | PCP | ------ | NAT | - <Интернет> --- | Хост |
                            + --- | IWF | | | | |
         + ------------- + | + ----- + + -------- + + ------ +
         | Локальный хост | ---- + NAT1 NAT2
         + ------------- +
      
                            Рисунок 4: Сценарий каскадного NAT
      
         Чтобы обеспечить успешное взаимодействие между UPnP IGD и PCP,
         функция взаимодействия встроена в IGD.В модели определено
         на рисунке 3 все серверные функции UPnP IGD, клиент PCP
         [RFC6887] и функция взаимодействия UPnP IGD-PCP встроены в
         IGD. В остальной части документа «IGD-PCP IWF» относится к
         Функция взаимодействия UPnP IGD-PCP, которая включает клиент PCP
         функциональность.
      
         Без участия IGD-PCP IWF точка управления IGD
         получит внешний IP-адрес и номер порта, у которых есть
         ограниченный объем и не может использоваться для связи с хостами
         расположен за NAT2 (т.е.е., присвоенные IGD, а не те
         назначается NAT2, как показано на рисунке 4).
      
         UPnP IGD-PCP IWF отвечает за создание правильно сформированного PCP
         сообщение из полученного сообщения UPnP IGD, и наоборот.
      
      
      
      Boucadair, et al. Стандарты Track [Страница 5] 

      RFC 6970 UPnP IGD-PCP IWF Июль 2013 г.
      
      
      4. UPnP IGD-PCP IWF: обзор
      
         Предоставлены три таблицы для определения соответствия между
         UPnP IGD и PCP:
      
         (1) Раздел 4.1 обеспечивает отображение между состояниями WANIPConnection
              переменные и параметры PCP;
      
         (2) Раздел 4.2 посвящен соответствию поддерживаемых
              методы;
      
         (3) В разделе 4.3 перечислены сообщения об ошибках PCP и соответствующие им сообщения.
              Сообщения об ошибках IGD.
      
         Обратите внимание, что некоторые улучшения были интегрированы в WANIPConnection,
         как описано в [IGD2].
      
      4.1. UPnP IGD-PCP: переменные состояния
      
         Ниже перечислены только переменные состояния UPnP IGD, применимые к
         IGD-PCP IWF:
      
         ExternalIPAddress: Внешний IP-адрес
            Переменная только для чтения со значением из последнего ответа PCP, или
            пустая строка, если ничего еще не получено.Это состояние хранится
            на основе IGD-Control-Point.
      
         PortMappingNumberOfEntries: управляется локально UPnP IGD-PCP IWF.
      
         PortMappingEnabled:
            PCP не поддерживает отключение динамического преобразования NAT, поскольку
            первоначальная цель PCP - облегчить прохождение Carrier Grade
            NAT. Поддержка такой функции для каждого абонента может перегрузить
            NAT операторского класса.
            Допускается только "1": т.е. функция взаимодействия UPnP IGD-PCP
            ДОЛЖЕН отправить обратно ошибку, если указано значение, отличное от 1.PortMappingLeaseDuration: запрошенное время жизни сопоставления
            В IGD: 1 [IGD1] значение 0 означает бесконечность; в IGD: 2 это
            переназначен на максимальное значение IGD 604800 секунд [IGD2]. PCP позволяет
            для максимального значения 4294967296 секунд.
            Функция взаимодействия UPnP IGD-PCP имитирует длинные и ровные
            бесконечное время жизни с использованием обновлений (см. раздел 5.9). Поведение
            UPnP IGD-PCP IWF в случае неудачного обновления
            в настоящее время не определено (см. Раздел 5.9).
      
      
      
      
      
      
      Boucadair, et al.Стандарты Track [Страница 6] 

      RFC 6970 UPnP IGD-PCP IWF Июль 2013 г.
      
      
            IGD: 1 не определяет поведение в случае потери состояния; IGD: 2
            не требует, чтобы это состояние сохранялось в стабильном хранилище, т.е.
            позволить состоянию пережить сбросы / перезагрузки. UPnP IGD-PCP
            Функция взаимодействия ДОЛЖНА поддерживать поведение IGD: 2.
      
         RemoteHost: IP-адрес удаленного узла
            Обратите внимание, что IGD: 2 допускает доменное имя, которое должно быть разрешено в
            IP-адрес.Сопоставляется с полем IP-адреса удаленного узла
            ФИЛЬТР опция.
      
         ExternalPort: номер внешнего порта
            Сопоставляется с полем «Предлагаемый внешний порт» в сообщениях MAP.
      
         InternalPort: номер внутреннего порта
            Сопоставляется с полем «Внутренний порт» в сообщениях MAP.
      
         PortMappingProtocol: Протокол
            Сопоставляется с полем протокола в сообщениях MAP. Обратите внимание, что UPnP
            IGD поддерживает только TCP и UDP.
      
         InternalClient: внутренний IP-адрес
            Обратите внимание, что IGD: 2 допускает доменное имя, которое должно быть разрешено в
            IP-адрес.Сопоставляется с полем внутреннего IP-адреса
            THIRD_PARTY вариант.
      
         PortMappingDescription: не поддерживается в базовом PCP.
            Если локальный клиент PCP поддерживает опцию PCP для передачи
            описание (например, [PCP-DESCR-OPT]), эту опцию СЛЕДУЕТ использовать для
            передать описание отображения.
      
         SystemUpdateID (только IGD: 2): управляется локально UPnP IGD-PCP
            IWF.
      
         A_ARG_TYPE_PortListing (только IGD: 2): управляется локально UPnP
            IGD-PCP IWF.
      
      4.2. IGD-PCP: Методы
      
         IGD: 1 и IGD: 2 методы, применимые к взаимодействию UPnP IGD-PCP
         Обе функции перечислены здесь.GetGenericPortMappingEntry (): этот запрос не передается на PCP.
            сервер.
      
            Функция взаимодействия IGD-PCP поддерживает список активных
            сопоставления, созданные на сервере PCP внутренними хостами. Видеть
            Раздел 5.7 для получения дополнительной информации.
      
      
      
      
      Boucadair, et al. Стандарты Track [Страница 7] 

      RFC 6970 UPnP IGD-PCP IWF Июль 2013 г.
      
      
         GetSpecificPortMappingEntry (): MAP с опцией PREFER_FAILURE.Этот запрос передается на сервер PCP путем выдачи MAP-запроса.
            с опцией PREFER_FAILURE. РЕКОМЕНДУЕТСЯ использовать короткие
            время жизни (например, 60 секунд).
      
         AddPortMapping (): КАРТА
            См. Раздел 5.6.2.
      
         AddAnyPortMapping () (только IGD: 2): MAP
            См. Раздел 5.6.1.
      
         DeletePortMapping (): MAP с параметром Requested Lifetime, равным 0.
            См. Раздел 5.8.
      
         DeletePortMappingRange () (только IGD: 2): MAP с запрошенным временем жизни
            установлен на 0.
            Индивидуальные запросы выдаются IGD-PCP IWF.Видеть
            Раздел 5.8 для более подробной информации.
      
         GetExternalIPAddress (): КАРТА
            Это можно узнать из любого активного сопоставления. Если нет
            активные сопоставления, IGD-PCP IWF МОЖЕТ запросить кратковременное сопоставление
            (например, в службу Discard (TCP / 9 или UDP / 9) или какой-либо другой
            порт). Однако, как только это сопоставление истечет, последующее неявное
            или явное динамическое сопоставление может быть сопоставлено с другим
            внешний IP-адрес. См. Раздел 11.6 [RFC6887] для получения дополнительной информации.
            обсуждение.GetListOfPortMappings (): дополнительную информацию см. В Разделе 5.7.
            Функция взаимодействия IGD-PCP поддерживает список активных
            сопоставления, созданные на сервере PCP. Взаимодействие IGD-PCP
            Функция обрабатывает этот запрос локально.
      
      4.3. UPnP IGD-PCP: ошибки
      
         В этом разделе перечислены коды ошибок PCP и соответствующие UPnP IGD.
         коды. Коды ошибок, характерные для IGD: 2, помечены соответственно.
      
         1 UNSUPP_VERSION: 501 «ActionFailed»
      
         2 NOT_AUTHORIZED: IGD: 1 718 "ConflictInMappingEntry" / IGD: 2 606
            «Действие не разрешено»
      
         3 MALFORMED_REQUEST: 501 «ActionFailed»
      
      
      
      
      
      
      Boucadair, et al.Стандарты Track [Страница 8] 

      RFC 6970 UPnP IGD-PCP IWF Июль 2013 г.
      
      
         4 UNSUPP_OPCODE: 501 «ActionFailed»
            [RFC6887] позволяет настроить сервер PCP для отключения
            поддержка кода операции MAP, но IGD-PCP IWF не может работать в
            эта ситуация.
      
         5 UNSUPP_OPTION: 501 «ActionFailed»
            Этот код ошибки может быть получен, если PREFER_FAILURE не поддерживается.
            на сервере PCP. Обратите внимание, что PREFER_FAILURE не является обязательным для
            поддержка, но AddPortMapping () не может быть реализована без нее.6 MALFORMED_OPTION: 501 «ActionFailed»
      
         7 NETWORK_FAILURE: 501 «ActionFailed»
      
         8 NO_RESOURCES: IGD: 1 501 «ActionFailed» / IGD: 2 728
            "NoPortMapsAvailable"
            Не отличить от USER_EX_QUOTA.
      
         9 UNSUPP_PROTOCOL: 501 «ActionFailed»
      
         10 USER_EX_QUOTA: IGD: 1 501 «ActionFailed» / IGD: 2 728
            "NoPortMapsAvailable"
            Не отличить от NO_RESOURCES.
      
         11 CANNOT_PROVIDE_EXTERNAL: 718 «ConflictInMappingEntry» (см.
            Раздел 5.6.2) или 714 «NoSuchEntryInArray» (см. Раздел 5.8).
      
         12 ADDRESS_MISMATCH: 501 «ActionFailed»
      
         13 EXCESSIVE_REMOTE_PEERS: 501 «ActionFailed»
      
      5. Спецификация IGD-PCP IWF
      
         В этом разделе рассматриваются сценарии с NAT или без NAT в IGD.
      
         В данной спецификации предполагается, что сервер PCP настроен на
         принять код операции MAP.
      
         IGD-PCP IWF обрабатывает "Mapping Nonce" так же, как и любой PCP.
         клиент [RFC6887].
      
      5.1. Обнаружение сервера PCP
      
         IGD-PCP IWF реализует один из методов обнаружения, указанных в
         [RFC6887] (напр.g., DHCP [PCP-DHCP-OPT]). Взаимодействие IGD-PCP
         Функция ведет себя как клиент PCP при обмене данными с подготовленным
         Сервер (ы) PCP.
      
      
      
      
      Boucadair, et al. Стандарты Track [Страница 9] 

      RFC 6970 UPnP IGD-PCP IWF Июль 2013 г.
      
      
         Если IGD не назначен адрес IPv4 / префикс IPv6 или IGD
         невозможно определить, должен ли он связываться с вышестоящим сервером PCP,
         НЕ ДОЛЖНА активироваться функция взаимодействия IGD-PCP.Если IGD определяет, что он должен установить связь с
         вышестоящий сервер PCP (например, из-за конфигурации DHCP или наличия
         ранее был связан с сервером PCP), "501 ActionFailed"
         сообщение об ошибке возвращается запрашивающей точке управления IGD, если
         IGD-PCP IWF не может установить связь с этим сервером PCP.
         Обратите внимание, что IGD-PCP IWF переходит к проверке сообщения PCP и
         повторная передача выполняется так же, как и для любого клиента PCP [RFC6887].
      
      5.2. Контроль межсетевого экрана
      
         Чтобы настроить политики безопасности, которые будут применяться к входящим и
         исходящий трафик, UPnP IGD может использоваться для управления локальным межсетевым экраном
         двигатель.Поэтому для этой цели не требуется IGD-PCP IWF.
      
         Использование IGD-PCP IWF для управления восходящим PCP-управляемым
         брандмауэр выходит за рамки этого документа.
      
      5.3. Таблица сопоставления портов
      
         IGD-PCP IWF ДОЛЖЕН хранить локально все сопоставления, созданные
         внутренние контрольные точки IGD на сервере PCP. Все сопоставления ДОЛЖНЫ
         храниться в постоянном хранилище.
      
         После получения ответа PCP MAP от сервера PCP IGD-PCP
         Функция взаимодействия ДОЛЖНА извлекать вложенное отображение и ДОЛЖНА
         сохраните его в локальной таблице сопоставления.Таблица локального сопоставления - это
         образ таблицы сопоставления, поддерживаемый сервером PCP для
         данный подписчик.
      
         Каждая запись сопоставления, хранящаяся в локальной таблице сопоставления, связана
         со временем жизни, как описано в [RFC6887]. Дополнительные соображения
         специфические для функции взаимодействия IGD-PCP, обсуждаются в
         Раздел 5.9.
      
      5.4. Функция взаимодействия без NAT в IGD
      
         Если в IGD не встроен NAT, содержимое полученного
         Сообщения WANIPConnection и PCP не изменяются IGD-PCP.
         Функция взаимодействия (т.е., содержимое сообщений WANIPConnection
         отображаются в сообщения PCP (и отображаются обратно) в соответствии с
         Раздел 4.1).
      
      
      
      
      
      
      Boucadair, et al. Стандарты Track [Страница 10] 

      RFC 6970 UPnP IGD-PCP IWF Июль 2013 г.
      
      
      5.5. NAT встроен в IGD
      
         Когда NAT встроен в IGD, IGD-PCP IWF обновляет содержимое
         отображения сообщений, полученных от точки управления IGD. Эти
         сообщения будут содержать IP-адрес и / или номер порта, принадлежащие
         внутренний хост.IGD-PCP IWF ДОЛЖЕН обновлять такие сообщения с помощью
         IP-адрес и / или номер порта, принадлежащий внешнему интерфейсу
         IGD (т.е. после операции NAT1, как показано на рисунке 4).
      
         IGD-PCP IWF перехватывает все сообщения WANIPConnection, отправленные
         Контрольная точка IGD. Для каждого такого сообщения IGD-PCP IWF затем
         генерирует один или несколько соответствующих запросов (см. разделы 4.1, 4.2,
         и 4.3) и отправляет их на подготовленный сервер PCP.
      
         Каждый запрос, отправленный IGD-PCP IWF на сервер PCP, ДОЛЖЕН отражать
         информация о сопоставлении, как предписано в первом NAT.Особенно,
         внутренний IP-адрес и / или номер порта запросов
         заменяется IP-адресом и / или номером порта, назначенным
         NAT ИГД. Для обратного пути IGD-PCP IWF перехватывает PCP
         ответные сообщения и генерирует ответные сообщения WANIPConnection.
         Содержимое сгенерированных ответных сообщений WANIPConnection:
         установить следующим образом:
      
         o Внутренний IP-адрес и / или номер порта, изначально заданные
            Контрольная точка IGD и хранящаяся в IGD NAT используются для обновления
            соответствующие поля в полученных ответах PCP.o Внешний IP-адрес и номер порта не изменяются
            Функция взаимодействия IGD-PCP.
      
         o Запись сопоставления NAT в IGD обновляется в результате
            каждый запрос PCP.
      
         Время жизни отображений, созданных в IGD, ДОЛЖНО быть
         один, назначенный оконечным сервером PCP. В любом случае
         время жизни НЕ ДОЛЖНО быть меньше, чем время, назначенное завершающим
         PCP-сервер.
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      Boucadair, et al. Стандарты Track [Страница 11] 

      RFC 6970 UPnP IGD-PCP IWF Июль 2013 г.
      
      
      5.6. Создание сопоставления
      
         Для создания сопоставления можно использовать два метода: AddAnyPortMapping () и
         AddPortMapping ().
      
      5.6.1. AddAnyPortMapping ()
      
         Когда точка управления IGD выдает вызов AddAnyPortMapping (), это
         запрос получен IGD. Затем запрос передается на
         IGD-PCP IWF, который генерирует запрос PCP MAP (см. Раздел 4.1 для
         отображение между параметрами WANIPConnection и PCP).
      
         Если IGD-PCP IWF не может отправить запрос MAP на свой сервер PCP,
         он следует поведению, определенному в разделе 5.1.
      
         После получения ответа PCP MAP от сервера PCP
         соответствующий метод UPnP IGD возвращается запрашивающему IGD
         Контрольная точка (содержание сообщений соответствует
         рекомендации, перечисленные в Разделе 5.5 или Разделе 5.4, в соответствии с
         развернутый сценарий). Пример потока показан на рисунке 5.
      
         Если от сервера PCP получена ошибка PCP, соответствующий
         Код ошибки WANIPConnection (см. Раздел 4.3) генерируется
         IGD-PCP IWF и отправляется запрашивающей точке управления IGD.Если
         возвращается ошибка короткого времени жизни (например, NETWORK_FAILURE,
         NO_RESOURCES), PCP IWF МОЖЕТ повторно отправить тот же запрос PCP.
         сервер через 30 секунд. Если получен отрицательный ответ, ошибка
         затем передается в запрашивающую точку управления IGD.
      
            Обсуждение: Некоторые приложения (например, uTorrent, Vuze, eMule) ждут
            90 секунд или более для ответа после отправки запроса UPnP.
            Если возникает ошибка короткого срока службы, повторная отправка запроса может привести к
            на положительный ответ сервера PCP.Контрольные точки IGD
            поэтому не осведомлены о временных ошибках.
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      Boucadair, et al. Стандарты Track [Страница 12] 

      RFC 6970 UPnP IGD-PCP IWF Июль 2013 г.
      
      
                                     UPnP-PCP
         Взаимодействие управления UPnP
            Точечная функция PCP-сервер
              | | |
              | (1) AddAnyPortMapping () | |
              | ExternalPort = 8080 | |
              | ------------------------> | |
              | | (2) Запрос PCP MAP |
              | | Предлагаемый внешний порт = 8080 |
              | | ----------------------------> |
              | | |
              | | (3) Ответ PCP MAP |
              | | Назначенный внешний порт = 6598 |
              | | <---------------------------- |
              | (4) AddAnyPortMapping () | |
              | ReservedPort = 6598 | |
              | <------------------------ | |
      
                      Рисунок 5: Пример потока: AddAnyPortMapping ()
      
      5.6.2. AddPortMapping ()
      
         Специальная опция под названием «PREFER_FAILURE» определена в [RFC6887] для
         переключить поведение в сообщении запроса PCP. Этот вариант
         вставляется IGD-PCP IWF при отправке запросов к PCP
         сервер, только если конкретный внешний порт запрашивается IGD
         Контрольная точка.
      
         После получения AddPortMapping () от точки управления IGD
         IGD-PCP IWF ДОЛЖЕН генерировать запрос PCP MAP со всеми запрошенными
         информация о сопоставлении, указанная точкой управления IGD, если нет NAT
         встроен в IGD или обновлен, как указано в Разделе 5.5. В
         кроме того, IGD-PCP IWF ДОЛЖЕН вставить параметр PREFER_FAILURE в
         сгенерированный запрос PCP.
      
         Если IGD-PCP IWF не может отправить запрос MAP на свой сервер PCP,
         он следует поведению, определенному в разделе 5.1.
      
         Если запрошенный внешний порт недоступен, сервер PCP будет
         отправить ответ об ошибке CANNOT_PROVIDE_EXTERNAL:
      
         1. Если возвращается ошибка короткого срока службы, IGD-PCP IWF МОЖЕТ повторно отправить
             тот же запрос к серверу PCP через 30 секунд без
             передача ошибки в контрольную точку IGD.IGD-PCP IWF МОЖЕТ
             повторяйте этот процесс, пока не получите положительный ответ или
             достигнут максимальный предел повторных попыток. Когда максимальный предел повторных попыток
             достигнута, IGD-PCP IWF передает отрицательное сообщение IGD
             Контрольная точка с кодом ошибки ConflictInMappingEntry.
      
      
      
      Boucadair, et al. Стандарты Track [Страница 13] 

      RFC 6970 UPnP IGD-PCP IWF Июль 2013 г.
      
      
             Максимальный предел повторных попыток зависит от реализации; по умолчанию
             значение равно 2.2. Если возвращается ошибка длительного срока службы, IGD-PCP IWF передает
             отрицательное сообщение в контрольную точку IGD с
             ConflictInMappingEntry в качестве кода ошибки.
      
         Контрольная точка IGD может отправить новый запрос с другим
         запрошенный номер внешнего порта. Этот процесс обычно повторяется
         контрольной точкой IGD до тех пор, пока не будет получен положительный ответ или
         достигнут максимальный предел повторных попыток.
      
         Если сервер PCP может создать или обновить сопоставление с
         запрошенный внешний порт, он отправляет положительный ответ IGD-PCP
         IWF.После получения ответа от сервера PCP IGD-PCP
         IWF сохраняет возвращенное сопоставление в своей локальной таблице сопоставления и отправляет
         соответствующий положительный ответ на запрос IGD Control
         Точка. Этот ответ прекращает обмен.
      
         На рисунке 6 показан пример обмена потоком, который происходит, когда
         Сервер PCP удовлетворяет запрос от IGD-PCP IWF. Рисунок 7
         показывает обмен сообщениями, когда запрошенный внешний порт не
         доступный.
      
                                    UPnP-PCP
         Взаимодействие управления UPnP
            Точечная функция PCP-сервер
              | | |
              | (1) AddPortMapping () | |
              | ExternalPort = 8080 | |
              | -----------------------> | |
              | | (2) Запрос PCP MAP |
              | | Предлагаемый внешний порт = 8080 |
              | | PREFER_FAILURE |
              | | ----------------------------> |
              | | |
              | | (3) Ответ PCP MAP |
              | | Назначенный внешний порт = 8080 |
              | | <---------------------------- |
              | (4) AddPortMapping () | |
              | ExternalPort = 8080 | |
              | <----------------------- | |
      
                       Рисунок 6: Пример потока (положительный ответ)
      
      
      
      
      
      
      
      Boucadair, et al.Стандарты Track [Страница 14] 

      RFC 6970 UPnP IGD-PCP IWF Июль 2013 г.
      
      
                                    UPnP-PCP
         Взаимодействие управления UPnP
            Точечная функция PCP-сервер
              | | |
              | (1) AddPortMapping () | |
              | ExternalPort = 8080 | |
              | -----------------------> | |
              | | (2) Запрос PCP MAP |
              | | Предлагаемый внешний порт = 8080 |
              | | PREFER_FAILURE |
              | | ----------------------------> |
              | | (3) Ответ PCP MAP |
              | | CANNOT_PROVIDE_EXTERNAL |
              | | <---------------------------- |
              | (4) Ошибка: | |
              | ConflictInMappingEntry | |
              | <----------------------- | |
              | (5) AddPortMapping () | |
              | ExternalPort = 5485 | |
              | -----------------------> | |
              | | (6) Запрос PCP MAP |
              | | Предлагаемый внешний порт = 5485 |
              | | PREFER_FAILURE |
              | | ----------------------------> |
              | | (7) Ответ PCP MAP |
              | | CANNOT_PROVIDE_EXTERNAL |
              | | <---------------------------- |
              | (8) Ошибка: | |
              | ConflictInMappingEntry | |
              | <----------------------- | |
                                       ....
              | (а) AddPortMapping () | |
              | ExternalPort = 6591 | |
              | -----------------------> | |
              | | (b) Запрос PCP MAP |
              | | Предлагаемый внешний порт = 6591 |
              | | PREFER_FAILURE |
              | | ----------------------------> |
              | | (c) Ответ PCP MAP |
              | | CANNOT_PROVIDE_EXTERNAL |
              | | <---------------------------- |
              | (d) Ошибка: | |
              | ConflictInMappingEntry | |
              | <----------------------- | |
      
                       Рисунок 7: Пример потока (отрицательный ответ)
      
      
      
      
      
      Boucadair, et al.Стандарты Track [Страница 15] 

      RFC 6970 UPnP IGD-PCP IWF Июль 2013 г.
      
      
            Примечание. Согласно некоторым экспериментам, некоторая контрольная точка UPnP 1.0
            реализации, например uTorrent, просто попробуйте тот же внешний порт
            несколько раз (обычно 4 раза), а затем сбой, если порт
            в использовании. Также обратите внимание, что некоторые приложения используют
            GetSpecificPortMappingEntry (), чтобы определить,
            существуют.
      
      5.7. Перечисление одного или набора сопоставлений
      
         Чтобы перечислить активные сопоставления, точка управления IGD может выдать
         GetGenericPortMappingEntry (), GetSpecificPortMappingEntry () или
         GetListOfPortMappings ().
      
         Методы GetGenericPortMappingEntry () и GetListOfPortMappings () ДОЛЖНЫ
         НЕ передаваться на сервер PCP, поскольку поддерживается локальное сопоставление.
         IGD-PCP IWF.
      
         После получения GetSpecificPortMappingEntry () от элемента управления IGD
         Дело в том, что IGD-PCP IWF ДОЛЖЕН сначала проверить, есть ли внешний порт
         номер используется запрашивающей точкой управления IGD.Если внешний
         порт уже используется запрашивающей точкой управления IGD,
         IGD-PCP IWF ДОЛЖЕН отправить обратно запись сопоставления, соответствующую запросу.
         Если нет, IGD-PCP IWF ДОЛЖЕН передать серверу PCP запрос MAP,
         с коротким временем жизни (например, 60 секунд), включая PREFER_FAILURE
         вариант. Если IGD-PCP IWF не может отправить запрос MAP своему PCP
         server, он следует поведению, определенному в Разделе 5.1. Если
         запрошенный внешний порт используется, будет отправлено сообщение об ошибке PCP
         сервером PCP в IGD-PCP IWF, указывая
         CANNOT_PROVIDE_EXTERNAL как причина ошибки.Затем IGD-PCP IWF
         передает отрицательное сообщение в контрольную точку IGD. Если порт
         не используется, отображение будет создано сервером PCP и
         положительный ответ будет отправлен обратно в IGD-PCP IWF. Один раз
         полученный IGD-PCP IWF, он ДОЛЖЕН передать отрицательное сообщение на
         Контрольная точка IGD с указанием NoSuchEntryInArray в качестве кода ошибки, поэтому
         что точка управления IGD знает, что запрошенное отображение не существует.
      
      5.8. Удалить одно или набор сопоставлений: DeletePortMapping () или
            DeletePortMappingRange ()
      
         Контрольная точка IGD запрашивает удаление одного или списка
         сопоставления с помощью функции DeletePortMapping () или DeletePortMappingRange ().В IGD: 2 мы предполагаем, что IGD применяет соответствующие меры безопасности.
         политики, чтобы определить, имеет ли контрольная точка права на
         удалить одно или несколько сопоставлений. Если авторизация не удалась, "606
         Код ошибки «Действие не авторизовано» возвращается запрашивающему
         Контрольная точка.
      
      
      
      
      Boucadair, et al. Стандарты Track [Страница 16] 

      RFC 6970 UPnP IGD-PCP IWF Июль 2013 г.
      
      
         Когда DeletePortMapping () или DeletePortMappingRange () получает
         IGD-PCP IWF, он сначала проверяет, должны ли быть запрошенные сопоставления
         удаленные присутствуют в локальной таблице сопоставления.Если нет сопоставления
         соответствие запросу найдено в локальной таблице, код ошибки
         отправлено обратно в контрольную точку IGD: "714 NoSuchEntryInArray" для
         DeletePortMapping () или "730 PortMappingNotFound" для
         DeletePortMappingRange ().
      
         На рисунке 8 показан пример контрольной точки IGD, запрашивающей удаление
         отображение, которое не создается в локальной таблице IWF.
      
                                     UPnP-PCP
         Взаимодействие управления UPnP
            Точечная функция PCP-сервер
              | | |
              | (1) DeletePortMapping () | |
              | ------------------------> | |
              | | |
              | (2) Ошибка: | |
              | NoSuchEntryInArray | |
              | <------------------------ | |
              | | |
      
                         Рисунок 8: Локальное удаление (IGD-PCP IWF)
      
         Если сопоставление совпадает с локальной таблицей, будет отправлен запрос на удаление MAP PCP.
         сгенерировано.Если в IGD не включен NAT, IGD-PCP IWF использует
         входные аргументы, включенные в DeletePortMapping (). Если NAT
         включен в IGD, IGD-PCP IWF вместо этого использует соответствующий IP
         адрес и номер порта, назначенные локальным NAT.
      
         Если IGD-PCP IWF не может отправить запрос MAP на свой сервер PCP,
         он следует поведению, определенному в разделе 5.1.
      
         При получении положительного ответа от сервера PCP IGD-PCP
         IWF обновляет свою локальную таблицу сопоставления (т. Е. Удаляет соответствующие
         запись) и уведомляет контрольную точку IGD о результате
         операция удаления.Как только запрос на удаление PCP MAP получен
         сервер PCP удаляет соответствующую запись. КАРТА PCP
         Ответ SUCCESS отправляется обратно, если удаление соответствующего
         запись прошла успешно; в противном случае сообщение об ошибке PCP, содержащее
         соответствующая причина ошибки (см. раздел 4.3) отправляется обратно в
         IGD-PCP IWF.
      
      
      
      
      
      
      
      
      Boucadair, et al. Стандарты Track [Страница 17] 

      RFC 6970 UPnP IGD-PCP IWF Июль 2013 г.
      
      
         Если используется DeletePortMappingRange (), IGD-PCP IWF выполняет поиск в
         его локальная таблица сопоставления для получения отдельных сопоставлений, созданных
         запрашивающей контрольной точкой (т.д., авторизационные проверки), что
         соответствуют диапазону сигнализируемых портов (т. е. внешний порт находится в пределах
         Аргументы «StartPort» и «EndPort» функции DeletePortMappingRange ()). Если
         сопоставление не найдено, отправляется код ошибки «730 PortMappingNotFound»
         к точке управления IGD (рисунок 9). Если одно или несколько сопоставлений
         обнаружено, IGD-PCP IWF генерирует индивидуальные запросы на удаление MAP PCP
         соответствующие этим сопоставлениям (см. пример, показанный на рисунке 10).
      
         IGD-PCP IWF МОЖЕТ отправить положительный ответ запрашивающему IGD.
         Control Point без ожидания получения всех ответов от PCP
         сервер.UPnP-PCP
         Взаимодействие управления UPnP
            Точечная функция PCP-сервер
              | | |
              | (1) DeletePortMappingRange () | |
              | StartPort = 8596 | |
              | EndPort = 9000 | |
              | Протокол = UDP | |
              | -----------------------------> | |
              | | |
              | (2) Ошибка: | |
              | PortMappingNotFound | |
              | <----------------------------- | |
              | | |
      
               Рисунок 9: Пример потока: ошибка при обработке
                               DeletePortMappingRange ()
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      Boucadair, et al.Стандарты Track [Страница 18] 

      RFC 6970 UPnP IGD-PCP IWF Июль 2013 г.
      
      
         На рисунке 10 показаны обмены, которые происходят, когда IWF получает
         DeletePortMappingRange (). В этом примере только два сопоставления, имеющие
         номер внешнего порта в диапазоне 6000-6050 сохраняется в
         местный стол. IWF отправляет два запроса MAP для удаления этих
         сопоставления.
      
                                          UPnP-PCP
         Взаимодействие управления UPnP
            Точечная функция PCP-сервер
              | | |
              | (1) DeletePortMappingRange () | |
              | StartPort = 6000 | |
              | EndPort = 6050 | |
              | Протокол = UDP | |
              | -----------------------------> | |
              | | |
              | | (2a) Запрос PCP MAP |
              | | Протокол = UDP |
              | | внутренний IP-адрес |
              | | внутренний порт |
              | | внешний IP-адрес |
              | | внешний порт = 6030 |
              | | Запрошенное время жизни = 0 |
              | | -------------------------> |
              | | |
              | | (2b) Запрос PCP MAP |
              | | Протокол = UDP |
              | | внутренний IP-адрес |
              | | внутренний порт |
              | | внешний IP-адрес |
              | | внешний порт = 6045 |
              | | Запрошенное время жизни = 0 |
              | | -------------------------> |
              | | |
              | (3) Положительный ответ | |
              | <----------------------------- | |
              | | |
      
                    Рисунок 10: Пример DeletePortMappingRange ()
      
      5.9. Обновление карты
      
         Из-за несовместимости отображения времени жизни между UPnP
         IGD и PCP, IGD-PCP IWF ДОЛЖЕН моделировать длинные и даже бесконечные
         жизни. Действительно, для запросов с запрошенным бесконечным
         PortMappingLeaseDuration, IGD-PCP IWF ДОЛЖЕН установить Запрошенный
         Срок действия соответствующего запроса PCP на 4294967296. Если
         PortMappingLeaseDuration не бесконечен, IGD-PCP IWF ДОЛЖЕН установить
      
      
      
      Boucadair, et al. Стандарты Track [Страница 19] 

      RFC 6970 UPnP IGD-PCP IWF Июль 2013 г.
      
      
         Запрошенное время жизни соответствующего запроса PCP к тому же
         значение как PortMappingLeaseDuration.Кроме того, IGD-PCP
         Функция взаимодействия ДОЛЖНА поддерживать дополнительный таймер, установленный для
         изначально запрошенный PortMappingLeaseDuration. После получения
         положительный ответ от сервера PCP, IGD-PCP IWF передает
         соответствующий ответ UPnP IGD на запрашивающую точку управления IGD
         с PortMappingLeaseDuration, установленным на то же значение, что и у
         первоначальный запрос. Затем IGD-PCP IWF ДОЛЖЕН периодически обновлять
         построил сопоставление PCP до истечения PortMappingLeaseDuration.Ответы, полученные при обновлении сопоставления, НЕ ДОЛЖНЫ передаваться на
         точка управления IGD.
      
         Если во время обновления отображения обнаруживается ошибка, IGD-PCP
         Функция межсетевого взаимодействия не имеет средств информирования контрольной точки IGD.
         ошибки.
      
      5.10. Быстрое восстановление
      
         Когда IGD-PCP IWF совмещен с DHCP-сервером, состояние
         поддерживаемая IGD-PCP IWF ДОЛЖНА обновляться с использованием состояния в
         локальный DHCP-сервер. В частности, если срок действия IP-адреса истекает или
         выпущенный внутренним хостом, IGD-PCP IWF ДОЛЖЕН удалить все
         сопоставления, привязанные к этому внутреннему IP-адресу.При изменении внешнего IP-адреса IGD-PCP IWF
         IGD-PCP IWF МОЖЕТ обновить поддерживаемые им сопоставления. Это может быть
         достигается только в том случае, если полная таблица состояний поддерживается IGD-PCP IWF.
         Если квота порта на сервере PCP не превышена, IGD-PCP IWF
         получит новый внешний IP-адрес и номера портов. IGD-PCP
         У IWF нет средств уведомления внутренних контрольных точек IGD о
         изменение внешнего IP-адреса и номеров портов. Устаревшие сопоставления
         будут обслуживаться сервером PCP до истечения срока их службы.Примечание. Если происходит изменение адреса, протоколы, чувствительные к
            изменение адреса (например, TCP) вызовет сбой.
      
         [RFC6887] определяет процедуру для сервера PCP для уведомления PCP
         клиенты изменений, связанных с поддерживаемыми им сопоставлениями. Когда
         получено незапрашиваемое ОБЪЯВЛЕНИЕ, IGD-PCP IWF делает одно или несколько
         Запросы MAP с параметром PREFER_FAILURE для переустановки своего
         сопоставления. Если сервер PCP не может создать запрошенные сопоставления
         (сигнализируется ответом об ошибке CANNOT_PROVIDE_EXTERNAL),
         IGD-PCP IWF не имеет средств уведомления внутренних контрольных точек IGD о
         любые изменения внешнего IP-адреса и номеров портов.Boucadair, et al. Стандарты Track [Страница 20] 

      RFC 6970 UPnP IGD-PCP IWF Июль 2013 г.
      
      
         Незапрошенные ответы PCP MAP, полученные от сервера PCP, обрабатываются
         как любой нормальный ответ MAP. Если в ответе указано, что
         внешний IP-адрес или порт изменились, IGD-PCP IWF не имеет средств
         уведомления внутренней точки управления IGD об этом изменении.
      
         Дальнейший анализ сценариев отказа PCP для IGD-PCP
         Функции взаимодействия обсуждаются в [PCP-FAILURE].6. Соображения безопасности
      
         IGD: ДОЛЖНЫ быть выполнены 2 требования к контролю доступа и уровни авторизации.
         применяется по умолчанию [IGD2]. Когда используется IGD: 2, работа от имени
         третьей стороны ДОЛЖНЫ быть разрешены, только если аутентификация и
         используется авторизация [IGD2]. Когда доступен только IGD: 1,
         НЕ ДОЛЖНЫ быть разрешены операции от имени третьей стороны.
      
         В этом документе определяется процедура создания сопоставлений PCP для третьих лиц.
         сторонние устройства, принадлежащие одному абоненту. Средства для
         предотвращение создания злоумышленником сопоставлений от имени
         третья сторона должна быть включена, как описано в разделе 13.1 из
         [RFC6887]. В частности, параметр THIRD_PARTY НЕ ДОЛЖЕН быть включен.
         если только сеть, по которой должны отправляться сообщения PCP, не полностью
         доверенные - например, списки контроля доступа (ACL), установленные на
         Клиент PCP, сервер PCP и сеть между ними, чтобы
         эти ACL разрешают связь только от доверенного клиента PCP к
         PCP-сервер.
      
         Контрольная точка IGD, которая выдает AddPortMapping (),
         AddAnyPortMapping () или GetSpecificPortMappingEntry () в
         более короткие временные рамки создадут много картографических записей на PCP
         сервер.Способы избежать исчерпания ресурсов порта
         (например, квота порта, как описано в разделе 17.2 [RFC6887]) СЛЕДУЕТ
         быть включенным.
      
         Соображения безопасности, обсуждаемые в [RFC6887] и [Sec_DCP]
         следует принимать во внимание.
      
      7. Благодарности
      
         Авторы выражают благодарность Ф. Фонтену, К. Жаккне, X. Дэну,
         Г. Черногория, Д. Талер, Р. Тирумалесвар, П. Селкирк, Т. Лимон,
         В. Гурбани и П. Йи за их обзор и комментарии.
      
         Ф. Дюпон участвовал в создании предыдущих версий этого документа.Спасибо
         обращайтесь к нему за его подробными отзывами и комментариями.
      
      
      
      
      
      
      Boucadair, et al. Стандарты Track [Страница 21] 

      RFC 6970 UPnP IGD-PCP IWF Июль 2013 г.
      
      
      8. Ссылки
      
      8.1. Нормативные ссылки
      
         [IGD1] UPnP Forum, "WANIPConnection: 1 шаблон службы
                    Версия 1.01 ", ноябрь 2001 г., .
      
         [IGD2] UPnP Forum, "WANIPConnection: 2 Service", сентябрь 2010 г.,
                    .
      
         [RFC2119] Брэднер, С., «Ключевые слова для использования в RFC для обозначения
                    Уровни требований », BCP 14, RFC 2119, март 1997 г.
      
         [RFC6887] Wing, D., Cheshire, S., Boucadair, M., Penno, R., and P.
                    Селкирк, «Протокол управления портом (PCP)», RFC 6887,
                    Апрель 2013.
      
      8.2. Информативные ссылки
      
         [PCP-DESCR-OPT]
                    Букадаир, М., Пенно, Р., и Д. Винг, "Описание PCP"
                    Вариант », Работа в процессе, май 2013 г.[PCP-DHCP-OPT]
                    М. Букадар, Р. Пенно и Д. Винг, «Параметры DHCP для
                    протокол управления портами (PCP) », Работа в процессе,
                    Март 2013 г.
      
         [PCP-FAILURE]
                    Букадар, М. и Р. Пенно, "Анализ портового контроля
                    Сценарии отказа протокола (PCP) ", Работа в процессе,
                    Май 2013.
      
         [PCP-PROXY]
                    Букадаир М., Пенно Р. и Д. Винг, Port Control
                    Протокол (PCP) Proxy Function », Работа в процессе,
                    Июнь 2013.[RFC6146] Багнуло, М., Мэтьюз, П., и И. ван Бейнум, "Stateful
                    NAT64: преобразование сетевых адресов и протоколов из IPv6
                    Клиенты к серверам IPv4 », RFC 6146, апрель 2011 г.
      
      
      
      
      
      
      
      
      Boucadair, et al. Стандарты Track [Страница 22] 

      RFC 6970 UPnP IGD-PCP IWF Июль 2013 г.
      
      
         [RFC6333] Дюран, А., Дромс, Р., Вудят, Дж., И Ю. Ли,
                    "Широкополосное развертывание Dual-Stack Lite после IPv4
                    Исчерпание ", RFC 6333, август 2011 г.[Sec_DCP] Форум UPnP, «Защита устройств: 1 услуга», февраль 2011 г.,
                    .
      
      Адреса авторов
      
         Мохамед Букадаир
         France Telecom
         Ренн 35000
         Франция
      
         Электронная почта: [email protected]
      
      
         Рейнальдо Пенно
         Cisco Systems, Inc.
         170 West Tasman Drive
         Сан-Хосе, Калифорния 95134
         Соединенные Штаты Америки
      
         Электронная почта: [email protected]
      
      
         Дэн Винг
         Cisco Systems, Inc.
         170 West Tasman Drive
         Сан-Хосе, Калифорния 95134
         Соединенные Штаты Америки
      
         Электронная почта: dwing @ cisco.ком
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      Boucadair, et al. Стандарты Track [стр. 23]
       

      Услуги - UPnP и NAT-PMP

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

      Служба UPnP и NAT-PMP на pfSense®, которую можно найти по адресу Services> UPnP & NAT-PMP , позволяет клиентским ПК и другим устройствам, например игровым консолям, автоматически разрешить требуемый входящий трафик.Есть много популярных программ и систем которые поддерживают UPnP, такие как Skype, uTorrent, mIRC, IM-клиенты, Wii U, PlayStation 4 и XBox One. NAT-PMP поддерживается продуктами Apple.

      UPnP использует протокол Simple Service Discovery Protocol (SSDP) для обнаружения сети, который использует порт UDP 1900. Демон UPnP, используемый pfSense, miniupnpd, также использует TCP-порт 2189. При использовании строгого набора правил локальной сети вручную добавьте правила брандмауэра в разрешить доступ к этим службам, особенно если правило LAN-to-Any по умолчанию были удалены или в мостовых конфигурациях.NAT-PMP также обрабатывается miniupnpd и использует порт UDP 5351.

      UPnP и NAT-PMP и IPv6

      На момент написания этой статьи службы UPnP и NAT-PMP в текущих версиях pfSense поддерживает IPv6, но поддержка клиентов по-прежнему нестабильна.

      Проблемы безопасности

      UPnP и NAT-PMP - классический пример решения «Безопасность vs. удобство». компромисс. По самой своей природе эти услуги небезопасны. Любая программа в сети может пропускать и пересылать любой трафик - потенциальная безопасность ночной кошмар.С другой стороны, ввод и поддержка NAT может быть сложной задачей. порт форвардов и связанные с ними правила, особенно когда дело доходит до игры консоли. Чтобы найти подходящий порты и настройки, но UPnP просто работает и требует небольшого администрирования усилие. Ручная переадресация портов для соответствия этим сценариям, как правило, чрезмерно разрешительные, потенциально разоблачающие сервисы, которые не должны открываться из Интернет. Переадресация портов также всегда включена, где UPnP может быть временным.

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

      Конфигурация

      Для настройки UPnP и NAT-PMP:

       <[разрешить | запретить]> <[внешний порт | диапазон портов]> <[внутренний IP | IP / CIDR]> <[внутренний порт | диапазон портов]>
       

      Служба UPnP и / или NAT-PMP будет запущена автоматически.

      Примеры разрешений пользователей UPnP

      Запретить доступ к внешнему порту 80 пересылка со всего в локальной сети, 192.168.1.1 , с подсетью /24 , на локальный порт 80 :

       отрицать 80 192.168.1.1/24 80
       

      Разрешить 192.168.1.10 перенаправлять любой непривилегированный порт:

       разрешить 1024-65535 192.168.1.10 1024-65535
       

      Статус

      Состояние процесса демона UPnP можно посмотреть в Статус> Службы .Страница состояния службы показывает, запущен или остановлен демон, и позволяет служба, которую нужно остановить, запустить или перезапустить. При нормальных обстоятельствах, В ручном управлении демоном нет необходимости.

      Список перенаправляемых в настоящее время портов и клиентов, аналогичный показанному на рисунке. Экран состояния UPnP и NAT-PMP, на котором показаны клиентские ПК с перенаправленными портами, можно просмотреть в разделе «Состояние »> «UPnP & NAT-PMP ».

      Экран состояния UPnP и NAT-PMP, показывающий клиентские ПК с перенаправленными портами

      Устранение неполадок

      Большинство проблем с UPnP связаны с мостом.В этом случае важно есть правила брандмауэра, разрешающие UPnP на UDP-порт 1900. Поскольку это многоадресный трафик, местом назначения будет широковещательный адрес подсети или, в некоторых случаях, делая его надо будет какой-то . См. Журналы брандмауэра по адресу Статус> Системные журналы на вкладке брандмауэра , чтобы узнать, не блокируется ли трафик. Платить особое внимание к адресу назначения, так как он может отличаться от ожидал.

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

      Linux UPnP Интернет-шлюз

      2007-02-08

      Выпущен linux-igd 1.0 с раундом мелких исправлений по сравнению с версией 0.95. Разработка версии 1.x сейчас запланирована и продолжается, и она должна включать некоторые приятные моменты, такие как автоматические инструменты, улучшения отчетов IGD и дополнительные обновления безопасности, а также совместимость с проектом Portable UPnP.

      - Дэниел Дж. Блюман

      2006-08-16

      Сейчас это происходит немного поздно, но по состоянию на 13 августа у нас было новых 0.95 версия linux-igd! Этот выпуск основан на новом коде CVS, написанном на C вместо C ++, как в предыдущем выпуске, поэтому у него не так много общего с более ранними выпусками. Конечно, это также может привести к появлению некоторых новых ошибок, но, надеюсь, в основном это исправление. Ожидается, что разработка Linux-igd вернется в нормальное русло, и выпуск 1.0 уже запланирован. Большое спасибо Дэниелу Блюману, который собрал этот релиз. Вы можете получить новую версию здесь, это очень рекомендуется.

      - Юхо

      2006-06-20

      Я только что немного почистил сайт, его таблицы выглядели ужасно и ломались с firefox при каждой второй загрузке.Надеюсь, теперь будет лучше. Linux-igd был практически мертв все эти годы, и теперь я, Магнус и некоторые другие люди пытаемся возродить его хотя бы временно. Последний выпуск сильно устарел, а в CVS есть новая версия, написанная на C, которую, кажется, все равно используют. Поэтому мы планируем выпустить новую бета-версию текущей CVS и посмотреть, что нужно сделать, чтобы, возможно, выпустить версию 1.0. Как видите, Дайм обещал версию 1.0 еще до февраля 2003 года, но этого не произошло.Надеюсь, во-вторых, нам повезет больше. Я постараюсь продолжить обновлять эти сайты и, возможно, даже получить их через валидатор. А пока следите за обновлениями.

      - Юхо

      2003-04-24

      Просто чтобы кто-нибудь знал, что происходит. На данный момент я единственный первичный уполномоченный, и я все еще студент колледжа. Старшие классы не слишком снисходительны, поэтому я был привязан к школе. Через несколько недель я вернусь и поеду в Мексику. В промежутках между ними мы решим большинство проблем с компиляцией.

      Всем известно, что linux-igd по-прежнему нуждается в upnpsdk-1.0.4, а не в новом libupnp-1.2.1. Есть проблемы с ним и с Messenger, которые связаны с тем, как Microsoft форматирует некоторые сообщения. У нас он работает, но с Microsoft пока не работает. Так что, когда это прояснится, мы выпустим. Извините, все было так медленно, ребята, но у меня просто не было времени на себя, тем более на проект в последнее время.
      Ура

      2003-01-13

      Хорошо, на сайт добавлен новый релиз.По сути, это просто дополнительные чистки и дополнения, относительно небольшие, я полагаю. Но просто получаю готов к новому выпуску, и я бы предпочел иметь его в версиях, а не в CVS, чтобы больше людей протестировали и использовали исправления. Проверить журнал изменений Больше подробностей. Кроме того, мы ищем тех, кто умеет работать с Autoconf и Automake. Если кто-то захочет помочь, напишите мне, пожалуйста. Также, мы много проверяем форумы, поэтому все сообщают о проблемах. Спасибо за хорошие комментарии. Скоро появятся новые версии, продолжайте проверять или используйте функцию мониторинга проекта в sourceforge.Ваше здоровье.

      - Дайм

      2002-12-24

      Маленький рождественский подарок каждому !!! После большой реструктуризации и получения работающей передачи файлов, я хотел немного подкинуть выпускаем вместе для вас, ребята. Проверьте журнал изменений, но главное - передача файлов теперь работает, время работы указано в значке Windows XP, вы можете вручную добавлять и удалять сопоставления портов в Windows XP, заходя в свойства соединения, затем щелкая настройки (это не работает постоянно, например, когда сопоставлений портов нет, но работает после создания сопоставлений).Код претерпел большую реструктуризацию, и я собираюсь укрепить все и проверьте всю память, сделайте ее стабильной, вставьте некоторые вещи автоконфигурации и выпустите версию 1.0, надеюсь, до конца января. Еще одно важное замечание, я сейчас Помещаю мою регулярную работу по расписанию в CVS, так что загляните в CVS, если вам нужны самые передовые вещи (хотя я, кажется, регулярно что-то ломаю, но сейчас я постараюсь этого не делать). С Рождеством всех и с Новым годом!

      - Дайм

      2002-08-04

      Linux-IGD теперь доступен для BSD! Особая благодарность Йен-Мин Ли (http: // www.leeym.com/) для переноса обоих Intel Linux UPnP SDK и Linux-IGD для FreeBSD. И SDK, и IGD теперь доступный в коллекции портов FreeBSD. Проверить это сообщение на форумах для получения дополнительной информации. На данный момент версия BSD доступна только в FreeBSD. сайт портов. С нетерпением ждем новой версии linux-igd, включающей ipchains, iptables и ipfilter служба поддержки. Я предполагаю, что когда-нибудь нам, возможно, придется изменить часть имени «linux».

      - Эрик

      2002-07-18

      Рад слышать столько отчетов о том, что программное обеспечение работает для всех.Как всегда, ждите комментариев и предложений. Надеюсь, в ближайшем будущем я внесу некоторые изменения, чтобы можно было очистить еще пару краев. ЗАМЕТКА: Люди спрашивали об этом, поэтому позвольте мне прояснить это. Шлюз UPnP НЕ выполняет передачу файлов. Microsoft имеет реализована поддержка UPnP для всех функций MSN и Windows Messenger, ЗА ИСКЛЮЧЕНИЕМ передачи файлов. Недавно мы разговаривали с людьми в Microsoft и они заверяют нас, что он будет добавлен в ваши клиенты Messenger в следующей основной версии, будь то 4.7 или 4.8 или что угодно. А пока проверьте http://reaim.sourceforge.net. Я слышал, что это работает для некоторых людей, но мне еще предстоит заставить его работать. Присоединяйтесь к списку рассылки для получения обновлений. Мир.

      - Дайм

      2002-05-24

      Извините за позднее обновление, но мы поместили более новую версию 0.75 в раздел загрузок. Это дает программе настоящую поддержку демона и улавливает сигнал SIGTERM, чтобы позволить вам просто остановить демон с помощью killall upnpd, который отключит любой порт вперед чисто.Кроме того, теперь вы заметите, что на вашем компьютере XP есть значок в сети. Подключения, представляющие IGD. Скоро мы добавим в него статистику и функциональность. Кроме того, на следующий день у нас будет CVS. Но пока посмотрите версию 0.75. Это просто немного чище, с меньшим количеством отладки в / var / log / debug. Как всегда, проверьте списки рассылки для получения помощи. Мир.

      - Дайм

      2002-05-03

      Привет, мир! Мы только что запустили сайт и выпустили первый версия Linux UPnP Internet Gateway Device.Пожалуйста, найдите минутку, чтобы посмотреть по всему сайту. По общему признанию, на данный момент там не так много, но в следующие несколько дней мы добавим больше. Вы можете получить начальную бета-версию linux-igd со страницы загрузок. Нам нужно много люди, чтобы опробовать программу и сообщить нам, как она сработала для них. И для Те из вас, кто посмелее, дайте нам знать, что можно улучшить с помощью кода. Главное сейчас - просто вытащить этот код и попытаться получить еще люди на борту, желающие помочь.Пока я использую программное обеспечение, и оно работающий!!! Ха-ха. Удачи.

      - Дайм

      2002-05-03

      Пройдет день или около того, прежде чем списки рассылки и форумы будут полностью настроены. вверх, а пока присылайте мне свои вопросы или комментарии по электронной почте [email protected] Peace.

      - Дайм

      Universal Plug and Play (UPnP) Устройство Интернет-шлюза (IGD) - Протокол управления портами (PCP) Функция взаимодействия

      Универсальный Plug and Play (UPnP) Устройство Интернет-шлюза (IGD) - Протокол управления портами (PCP) Функция взаимодействия

      Universal Plug and Play (UPnP) Устройство Интернет-шлюза (IGD) - Протокол управления портами (PCP) Функция взаимодействия
      draft-ietf-pcp-upnp-igd-interworking-08

      В этом документе описывается поведение функции взаимодействия UPnP IGD (шлюза в Интернет) / PCP.Функция взаимодействия UPnP IGD-PCP (IGD-PCP IWF) должна быть встроена в маршрутизаторы CP (Customer Premises), чтобы обеспечить прозрачное управление NAT в средах, где UPnP IGD используется на стороне LAN, а PCP - на внешней стороне сети. Маршрутизатор CP.

      Ключевые слова «ДОЛЖЕН», «НЕ ДОЛЖЕН», «ОБЯЗАТЕЛЬНО», «ДОЛЖЕН», «НЕ ДОЛЖЕН», «ДОЛЖЕН», «НЕ ДОЛЖЕН», «РЕКОМЕНДУЕТСЯ», «МОЖЕТ» и «ДОПОЛНИТЕЛЬНО» в этом документе. должны интерпретироваться, как описано в RFC 2119 [RFC2119] .

      Этот Интернет-проект представлен в полном соответствии с положениями BCP 78 и BCP 79.

      Internet-Drafts являются рабочими документами Инженерной группы Интернета (IETF). Обратите внимание, что другие группы также могут распространять рабочие документы как Интернет-проекты. Список текущих Интернет-проектов находится на http://datatracker.ietf.org/drafts/current/.

      Интернет-проекты - это черновики документов, срок действия которых не превышает шести месяцев, и они могут быть обновлены, заменены или отменены другими документами в любое время. Неуместно использовать Интернет-черновики в качестве справочного материала или цитировать их иначе, как «незавершенную работу».«

      Срок действия этого Интернет-проекта истекает 13 октября 2013 г.

      Авторские права (c) 2013 IETF Trust и лица, указанные в качестве авторов документа. Все права защищены.

      Этот документ регулируется BCP 78 и Правовыми положениями IETF Trust, касающимися документов IETF (http://trustee.ietf.org/license-info), действующими на дату публикации этого документа. Пожалуйста, внимательно ознакомьтесь с этими документами, поскольку они описывают ваши права и ограничения в отношении этого документа.Компоненты кода, извлеченные из этого документа, должны включать упрощенный текст лицензии BSD, как описано в разделе 4.e Правовых положений Trust, и предоставляются без гарантии, как описано в упрощенной лицензии BSD.


      PCP [I-D.ietf-pcp-base] обсуждает реализацию функций управления NAT, которые полагаются на устройства NAT операторского класса, такие как DS-Lite AFTR [RFC6333] или NAT64 [RFC6146]. Тем не менее, в средах, где UPnP IGD (Internet Gateway Device) используется в локальной сети, функция взаимодействия между UPnP IGD и PCP должна быть встроена в IGD (см. Пример, показанный на рисунке 1).

      Рассматриваются две конфигурации:

      • В IGD не встроена функция NAT. Это требуется, например, при развертывании DS-Lite или NAT64;
      • IGD включает функцию NAT.
       UPnP IGD-PCP
      Взаимодействие управления UPnP
         Точечная функция PCP-сервер
           | IGD |
           | | |
           | (1) AddPortMapping | |
           | ---------------------> | |
           | | (2) Запрос PCP MAP |
           | | --------------------------> |
           | | | 

      Рисунок 1: Пример потока

      Функция взаимодействия UPnP IGD-PCP (UPnP IGD-PCP IWF) поддерживает локальную таблицу сопоставления, в которой хранятся все активные сопоставления, созданные внутренними контрольными точками UPnP.Этот выбор конструкции ограничивает количество сообщений PCP, которыми должен обмениваться сервер PCP.

      Триггеры для деактивации UPnP IGD-PCP IWF из IGD и использования режима только PCP выходят за рамки этого документа.

      Соображения, связанные с сосуществованием функции взаимодействия UPnP IGD-PCP и прокси-сервера PCP [I-D.ietf-pcp-proxy], выходят за рамки рассмотрения.

      В этом документе используются следующие сокращения:

      • DS-Lite - двойной стек Lite
      • IGD - Интернет-шлюз
      • IGD: 1 - номенклатура форума UPnP для версии 1 IGD [IGD1]
      • IGD: 2 - номенклатура форума UPnP для версии 2 IGD [IGD2]
      • IWF - Функция взаимодействия
      • NAT - преобразование сетевых адресов
      • PCP - протокол управления портами
      • UPnP - универсальный Plug and Play

      Напомним, что на рисунке 2 показана модель архитектуры, принятая UPnP IGD [IGD2].На рисунке 2 используется следующая терминология UPnP:

      • «Клиент» - это хост, расположенный в локальной сети.
      • «IGD Control Point» - это устройство, использующее UPnP для управления IGD (Интернет-шлюз).
      • 'IGD' - маршрутизатор, поддерживающий UPnP IGD. Обычно это NAT или межсетевой экран.
      • «Хост» - это удаленный узел, доступный в Интернете.
       + ------------- +
      | IGD Control |
      | Точка | ----- +
      + ------------- + | + ----- + + ------ +
                          + --- | | | |
                              | IGD | ------- | Хост |
                          + --- | | | |
      + ------------- + | + ----- + + ------ +
      | Клиент | ----- +
      + ------------- +
      
       

      Рисунок 2: UPnP IGD модель

      Эта модель недействительна, если PCP используется для управления, например, NAT операторского класса (a.k.a., Provider NAT), в то время как внутренние узлы продолжают использовать UPnP IGD. В таких сценариях на Рисунке 3 показана обновленная модель.

       + ------------- +
      | IGD Control |
      | Точка | ---- +
      + ------------- + | + ----- + + -------- + + ------ +
                         + --- | IGD- | | Провайдер | | |
                             | PCP | ------ | NAT | - <Интернет> --- | Пэр |
                         + --- | IWF | | | | |
      + ------------- + | + ----- + + -------- + + ------ +
      | Локальный хост | ---- +
      + ------------- +
                           Сторона LAN Внешняя сторона
      <====== UPnP IGD ==============> <===== PCP =====>
      
       

      Рисунок 3: Модель взаимодействия UPnP IGD-PCP

      В обновленной модели, изображенной на рисунке 3, на пути данных могут встречаться один или два уровня NAT.Действительно, в дополнение к NAT операторского класса IGD может включать функцию NAT (рисунок 4).

       + ------------- +
      | IGD Control |
      | Точка | ----- +
      + ------------- + | + ----- + + ---- + + ------ +
                          + --- | IGD- | | | | Удаленный |
                              | PCP | ------- | NAT2 | - <Интернет> --- | Хост |
                          + --- | IWF | | | | |
      + ------------- + | + ----- + + ---- + + ------ +
      | Локальный хост | ----- + NAT1
      + ------------- +
      
       

      Рисунок 4: Сценарий каскадного NAT

      Для обеспечения успешного взаимодействия между UPnP IGD и PCP в IGD встроена функция взаимодействия.В модели, показанной на рисунке 3, все серверные функции UPnP IGD, клиент PCP [I-D.ietf-pcp-base] и функция взаимодействия UPnP IGD-PCP встроены в IGD. В остальной части документа IGD-PCP IWF ссылается на функцию взаимодействия UPnP IGD-PCP, которая включает функциональность клиента PCP.

      Без участия IGD-PCP IWF точка управления UPnP будет извлекать внешний IP-адрес и номер порта, имеющие ограниченную область действия и которые не могут использоваться для связи с хостами, расположенными за пределами NAT2 (т.е., назначенные IGD, а не назначенные NAT2 на рисунке 4).

      UPnP IGD-PCP IWF отвечает за создание правильно сформированного сообщения PCP из полученного сообщения UPnP IGD и наоборот.

      Предоставляются три таблицы для определения соответствия между UPnP IGD и PCP:

      (1)
      Раздел 4.1 обеспечивает отображение между переменными состояния WANIPConnection и параметрами PCP;
      (2)
      Раздел 4.2 посвящен соответствию между поддерживаемыми методами;
      (3)
      Раздел 4.3 перечислены сообщения об ошибках PCP и соответствующие им сообщения IGD.

      Обратите внимание, что некоторые улучшения были интегрированы в WANIPConnection, как описано в [IGD2].

      Ниже перечислены только переменные состояния UPnP IGD, применимые к IGD-PCP IWF:

      Внешний IP-адрес:
      Внешний IP-адрес
      Переменная только для чтения со значением из последнего ответа PCP или пустой строкой, если ничего еще не получено. Это состояние сохраняется для каждой контрольной точки UPnP.
      PortMappingNumberOfEntries:
      Управляется локально UPnP IGD-PCP IWF.
      PortMappingEnabled:

      PCP не поддерживает отключение динамического преобразования NAT, поскольку первоначальная цель PCP - облегчить прохождение NAT операторского класса. Поддержка такой функции для каждого абонента может привести к перегрузке NAT операторского класса.
      Разрешена только "1": т.е. функция взаимодействия UPnP IGD-PCP ДОЛЖНА отправить обратно ошибку, если указано значение, отличное от 1.
      PortMappingLease Длительность:
      Запрошенное время жизни отображения
      В IGD: 1 [IGD1] значение 0 означает бесконечность, в IGD: 2 оно переназначено на максимум IGD 604800 секунд [IGD2]. PCP допускает максимальное значение 4294967296 секунд.
      Функция взаимодействия UPnP IGD-PCP имитирует длительный и даже бесконечный срок службы с помощью обновлений (см. Раздел 5.9). Поведение в случае неудачного продления в настоящее время не определено.
      IGD: 1 не определяет поведение в случае потери состояния, IGD: 2 не требует сохранения состояния в стабильном хранилище, т.е.е., чтобы позволить состоянию пережить сбросы / перезагрузки. Функция взаимодействия UPnP IGD-PCP ДОЛЖНА поддерживать поведение IGD: 2.
      RemoteHost:
      IP-адрес удаленного узла
      Обратите внимание, что IGD: 2 допускает доменное имя, которое должно быть преобразовано в IP-адрес.
      Внешний порт:
      Номер внешнего порта
      Сопоставляется с рекомендуемым внешним портом в сообщениях MAP.
      Внутренний порт:
      Номер внутреннего порта
      Сопоставляется с полем внутреннего порта в сообщениях MAP.
      PortMapping Протокол:
      Транспортный протокол
      Отображается в поле протокола в сообщениях MAP. Обратите внимание, что UPnP IGD поддерживает только TCP и UDP.
      Внутренний клиент:
      Внутренний IP-адрес
      Обратите внимание, что IGD: 2 разрешает доменное имя, которое должно быть преобразовано в IP-адрес.
      PortMapping Описание:
      Не поддерживается базовым PCP.
      Если локальный клиент PCP поддерживает опцию PCP для передачи описания (например, [I-D.ietf-pcp-description-option]), этот параметр СЛЕДУЕТ использовать для ретрансляции описания сопоставления.
      SystemUpdateID (только IGD: 2):
      Управляется локально UPnP IGD-PCP IWF.
      A_ARG_TYPE_PortListing (только IGD: 2):
      Управляется локально UPnP IGD-PCP IWF.

      Здесь перечислены методы IGD: 1 и IGD: 2, применимые к функции взаимодействия UPnP IGD-PCP.

      GetGenericPortMappingEntry:
      Этот запрос не передается на сервер PCP.
      Функция взаимодействия IGD-PCP поддерживает список активных сопоставлений, созданных на сервере PCP внутренними хостами. См. Раздел 5.7 для получения дополнительной информации.
      GetSpecificPortMappingEntry:
      MAP с опцией PREFER_FAILURE
      Этот запрос ретранслируется на сервер PCP путем выдачи запроса MAP с опцией PREFER_FAILURE. РЕКОМЕНДУЕТСЯ использовать короткий срок службы (например, 60 секунд).
      AddPortMapping:
      MAP
      См. Раздел 5.6.2.
      AddAnyPortMapping (только IGD: 2):
      MAP
      См. Раздел 5.6.1.
      DeletePortMapping:
      MAP с запрошенным сроком службы, равным 0.
      См. Раздел 5.8.
      DeletePortMappingRange (только IGD: 2):
      MAP с запрошенным временем жизни, равным 0.
      Индивидуальные запросы выдает IGD-PCP IWF. См. Раздел 5.8 для более подробной информации.
      GetExternalIPAddress:
      MAP
      Это можно узнать из любого активного сопоставления. Если нет активных сопоставлений, IGD-PCP IWF МОЖЕТ запросить кратковременное сопоставление (например,g., в службу Discard (TCP / 9 или UDP / 9) или какой-либо другой порт). Однако по истечении срока действия этого сопоставления последующее неявное или явное динамическое сопоставление может быть сопоставлено с другим внешним IP-адресом. См. Раздел 11.6 [I-D.ietf-pcp-base] для более подробного обсуждения.
      GetListOfPortMappings:
      Для получения дополнительной информации см. Раздел 5.7.
      Функция взаимодействия IGD-PCP поддерживает список активных сопоставлений, созданных на сервере PCP. Функция взаимодействия IGD-PCP обрабатывает этот запрос локально.

      В этом разделе перечислены коды ошибок PCP и соответствующие коды UPnP IGD. Коды ошибок, характерные для IGD: 2, помечены соответственно.

      1 UNSUPP_VERSION:
      501 «ActionFailed»
      Не должно происходить.
      2 НЕ РАЗРЕШЕНО:
      IGD: 1 718 «ConflictInMappingEntry» / IGD: 2 606 «Действие не разрешено»
      3 НЕПРАВИЛЬНЫЙ ЗАПРОС:
      501 "ActionFailed"
      4 UNSUPP_OPCODE:
      501 «ActionFailed»
      Не должно происходить.[I-D.ietf-pcp-base] позволяет настроить сервер PCP для отключения поддержки кода операции MAP, но IGD-PCP IWF не может работать в этой ситуации.
      5 UNSUPP_OPTION:
      501 «ActionFailed»
      Не должно происходить, кроме случаев, когда PREFER_FAILURE не поддерживается на сервере PCP. Обратите внимание, что PREFER_FAILURE не является обязательным для поддержки, но AddPortMapping () не может быть реализован без него.
      6 НЕПРАВИЛЬНЫЙ_ОПЦИЯ:
      501 «ActionFailed»
      Не должно происходить.
      7 NETWORK_FAILURE:
      Неприменимо
      Не должно произойти после успешного установления связи с сервером PCP.
      8 NO_RESOURCES:
      IGD: 1 501 «ActionFailed» / IGD: 2 728
      «NoPortMapsAvailable»
      Нельзя отличить от USER_EX_QUOTA.
      9 UNSUPP_PROTOCOL:
      501 «ActionFailed»
      Не должно происходить.
      10 USER_EX_QUOTA:
      IGD: 1 501 «ActionFailed» / IGD: 2 728
      «NoPortMapsAvailable»
      Нельзя отличить от NO_RESOURCES.
      11 CANNOT_PROVIDE_EXTERNAL:
      718 «ConflictInMappingEntry» (см. Раздел 5.7.2) или 714 «NoSuchEntryInArray» (см. Раздел 5.8).
      12 ADDRESS_MISMATCH:
      501 «ActionFailed»
      Не должно происходить.
      13 EXCESSIVE_REMOTE_PEERS:
      501 "ActionFailed"
      Не должно происходить, поскольку функции взаимодействия IGD-PCP не требуется использовать параметр FILTER.

      В этом разделе рассматриваются сценарии с NAT или без NAT в IGD.

      В этой спецификации предполагается, что сервер PCP настроен для приема кода операции MAP.

      IGD-PCP IWF обрабатывает "Mapping Nonce" так же, как и любой клиент PCP [I-D.ietf-pcp-base].

      IGD-PCP IWF реализует один из методов обнаружения, указанных в [I-D.ietf-pcp-base] (например, DHCP [I-D.ietf-pcp-dhcp]). Функция взаимодействия IGD-PCP ведет себя как клиент PCP при обмене данными с подготовленными серверами PCP.

      Если IGD не назначен адрес IPv4 / префикс IPv6 или IGD не может определить, должен ли он связываться с вышестоящим сервером PCP, функция взаимодействия IGD-PCP НЕ ДОЛЖНА запускаться.

      Если IGD определяет, что он должен установить связь с вышестоящим сервером PCP (например, из-за конфигурации DHCP или ранее разговаривал с сервером PCP), запрашивающей точке управления UPnP возвращается сообщение об ошибке «501 ActionFailed» в случае, если IGD-PCP IWF не может установить связь с этим сервером PCP.

      Для настройки политик безопасности, применяемых к входящему и исходящему трафику, UPnP IGD может использоваться для управления локальным механизмом межсетевого экрана.Поэтому для этой цели не требуется IGD-PCP IWF.

      Использование IGD-PCP IWF для управления восходящим межсетевым экраном, управляемым PCP, выходит за рамки этого документа.

      IGD-PCP IWF ДОЛЖЕН хранить локально все сопоставления, созданные внутренними контрольными точками UPnP на сервере PCP. Все сопоставления ДОЛЖНЫ храниться в постоянном хранилище.

      После получения ответа PCP MAP от сервера PCP функция взаимодействия IGD-PCP ДОЛЖНА извлечь вложенное отображение и ДОЛЖНА сохранить его в локальной таблице отображения.Локальная таблица сопоставления - это образ таблицы сопоставления, поддерживаемый сервером PCP для данного подписчика.

      Если NAT не встроен в IGD, содержимое полученных сообщений WANIPConnection и PCP не изменяется функцией взаимодействия IGD-PCP (т. Е. Содержимое сообщений WANIPConnection отображается в сообщения PCP (и отображается обратно) в соответствии с разделом 4.1. ).

      Когда NAT встроен в IGD, IGD-PCP IWF обновляет содержимое сообщений сопоставления, полученных от точки управления UPnP.Эти сообщения будут содержать IP-адрес и / или номер порта, которые принадлежат внутреннему хосту. IGD-PCP IWF ДОЛЖЕН обновлять такие сообщения IP-адресом и / или номером порта, принадлежащим внешнему интерфейсу IGD (то есть после операции NAT1 на рисунке 4).

      IGD-PCP IWF перехватывает все сообщения WANIPConnection, отправленные контрольной точкой UPnP. Для каждого такого сообщения IGD-PCP IWF затем генерирует один или несколько соответствующих запросов (см. Раздел 4.1, Раздел 4.2 и Раздел 4.3) и отправляет их на подготовленный сервер PCP.

      Каждый запрос, отправляемый IGD-PCP IWF серверу PCP, ДОЛЖЕН отражать информацию о сопоставлении, которая применяется в первом NAT. В частности, внутренний IP-адрес и / или номер порта запросов заменяются IP-адресом и / или номером порта, назначенными NAT IGD. Для обратного пути IGD-PCP IWF перехватывает ответные сообщения PCP и генерирует ответные сообщения WANIPConnection. Содержимое сгенерированных ответных сообщений WANIPConnection устанавливается следующим образом:

      • Внутренний IP-адрес и / или номер порта, изначально заданные точкой управления UPnP и сохраненные в IGD NAT, используются для обновления соответствующих полей в полученных ответах PCP.
      • Внешний IP-адрес и номер порта не изменяются функцией взаимодействия IGD-PCP.
      • Запись сопоставления NAT в IGD обновляется результатом запроса PCP.

      Время жизни отображений, созданных в IGD, ДОЛЖНО быть тем, которое назначено завершающим сервером PCP. В любом случае время жизни НЕ ДОЛЖНО быть меньше, чем время, назначенное завершающим сервером PCP.

      Для создания сопоставления можно использовать два метода: AddAnyPortMapping () или AddPortMapping ().

      Когда точка управления UPnP выдает AddAnyPortMapping (), этот запрос принимается IGD. Затем запрос ретранслируется в IGD-PCP IWF, который генерирует запрос PCP MAP (см. Раздел 4.1 для сопоставления между параметрами WANIPConnection и PCP). После получения ответа PCP MAP от сервера PCP соответствующий метод UPnP IGD возвращается запрашивающей точке управления UPnP (содержимое сообщений соответствует рекомендациям, перечисленным в Разделе 5.5 или Разделе 5.4, в соответствии с развернутым сценарием).Пример потока показан на рисунке 5.

      Если от сервера PCP получена ошибка PCP, IGD-PCP IWF генерирует соответствующий код ошибки WANIPConnection (см. Раздел 4.3) и отправляет его запрашивающей точке управления UPnP. Если возвращается ошибка короткого срока службы (например, NETWORK_FAILURE, NO_RESOURCES), PCP IWF МОЖЕТ повторно отправить тот же запрос на сервер PCP через 30 секунд. Если получен отрицательный ответ, ошибка передается запрашивающей контрольной точке UPnP.

      • Обсуждение: Некоторые приложения (e.g., uTorrent, Vuze, eMule) ждать ответа 90 секунд или более после отправки запроса UPnP. Если возникает ошибка короткого срока службы, повторная отправка запроса может привести к положительному ответу от сервера PCP. Таким образом, контрольные точки UPnP не знают о временных ошибках.
       UPnP-PCP
      Взаимодействие управления UPnP
         Точечная функция PCP-сервер
           | | |
           | (1) AddAnyPortMapping | |
           | ExternalPort = 8080 | |
           | ---------------------> | |
           | | (2) Запрос PCP MAP |
           | | Предлагаемый внешний порт = 8080 |
           | | ----------------------------> |
           | | |
           | | (3) Ответ PCP MAP |
           | | Назначенный внешний порт = 6598 |
           | | <---------------------------- |
           | (4) AddAnyPortMapping | |
           | ReservedPort = 6598 | |
           | <--------------------- | |
      
       

      Рисунок 5: Пример потока при использовании AddAnyPortMapping ()

      Специальная опция под названием PREFER_FAILURE определена в [I-D.ietf-pcp-base] для переключения поведения в сообщении запроса PCP. Эта опция вставляется IGD-PCP IWF при отправке своих запросов на сервер PCP, только если конкретный внешний порт запрашивается точкой управления UPnP.

      После получения AddPortMapping () от контрольной точки UPnP, IGD-PCP IWF ДОЛЖЕН сгенерировать запрос PCP MAP со всей запрошенной информацией о сопоставлении, указанной контрольной точкой UPnP, если NAT не встроен в IGD или не обновлен, как указано в разделе 5.5. Кроме того, IWF IGD-PCP ДОЛЖНА вставить параметр PREFER_FAILURE в сгенерированный запрос PCP.

      Если запрошенный внешний порт недоступен, сервер PCP отправит сообщение об ошибке CANNOT_PROVIDE_EXTERNAL:

      1. Если возвращается ошибка короткого срока службы, IGD-PCP IWF МОЖЕТ повторно отправить тот же запрос на сервер PCP через 30 секунд без передачи ошибки в контрольную точку UPnP. IGD-PCP IWF МОЖЕТ повторять этот процесс до тех пор, пока не будет получен положительный ответ или не будет достигнут некоторый максимальный предел повторных попыток. Когда достигается максимальный предел повторных попыток, IGD-PCP IWF передает отрицательное сообщение в контрольную точку UPnP с ConflictInMappingEntry в качестве кода ошибки.
      2. Если возвращается ошибка длительного срока службы, IGD-PCP IWF передает отрицательное сообщение в контрольную точку UPnP с ConflictInMappingEntry в качестве кода ошибки.

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

      Если сервер PCP может создать или обновить сопоставление с запрошенным внешним портом, он отправляет положительный ответ IGD-PCP IWF.После получения ответа от сервера PCP IWF IGD-PCP сохраняет возвращенное отображение в своей локальной таблице отображения и отправляет положительный ответ запрашивающей точке управления UPnP. Этот ответ прекращает обмен.

      На рисунке 6 показан пример обмена потоками, который происходит, когда сервер PCP удовлетворяет запрос от IGD-PCP IWF. На рисунке 7 показан обмен сообщениями, когда запрошенный внешний порт недоступен.

       UPnP-PCP
      Взаимодействие управления UPnP
         Точечная функция PCP-сервер
           | | |
           | (1) AddPortMapping | |
           | ExternalPort = 8080 | |
           | ---------------------> | |
           | | (2) Запрос PCP MAP |
           | | Предлагаемый внешний порт = 8080 |
           | | PREFER_FAILURE |
           | | ----------------------------> |
           | | |
           | | (3) Ответ PCP MAP |
           | | Назначенный внешний порт = 8080 |
           | | <---------------------------- |
           | (4) AddPortMapping | |
           | ExternalPort = 8080 | |
           | <--------------------- | |
      
       

      Рисунок 6: Пример потока (положительный ответ)

       UPnP-PCP
      Взаимодействие управления UPnP
         Точечная функция PCP-сервер
           | | |
           | (1) AddPortMapping | |
           | ExternalPort = 8080 | |
           | ---------------------> | |
           | | (2) Запрос PCP MAP |
           | | Предлагаемый внешний порт = 8080 |
           | | PREFER_FAILURE |
           | | ----------------------------> |
           | | (3) Ответ PCP MAP |
           | | CANNOT_PROVIDE_EXTERNAL |
           | | <---------------------------- |
           | (4) Ошибка: | |
           | ConflictInMappingEntry | |
           | <--------------------- | |
           | (5) AddPortMapping | |
           | ExternalPort = 5485 | |
           | ---------------------> | |
           | | (6) Запрос PCP MAP |
           | | Предлагаемый внешний порт = 5485 |
           | | PREFER_FAILURE |
           | | ----------------------------> |
           | | (7) Ответ PCP MAP |
           | | CANNOT_PROVIDE_EXTERNAL |
           | | <---------------------------- |
           | (8) Ошибка: | |
           | ConflictInMappingEntry | |
           | <--------------------- | |
                                  ....
           | (а) AddPortMapping | |
           | ExternalPort = 6591 | |
           | ---------------------> | |
           | | (b) Запрос PCP MAP |
           | | Предлагаемый внешний порт = 6591 |
           | | PREFER_FAILURE |
           | | ----------------------------> |
           | | (c) Ответ PCP MAP |
           | | CANNOT_PROVIDE_EXTERNAL |
           | | <---------------------------- |
           | (d) Ошибка: | |
           | ConflictInMappingEntry | |
           | <--------------------- | |
      
       

      Рисунок 7: Пример потока (отрицательный ответ)

      • Примечание: Согласно некоторым экспериментам, некоторые UPnP 1.0 Реализации Control Point, например uTorrent, просто пробуют один и тот же внешний порт несколько раз (обычно 4 раза), а затем терпят неудачу, если порт используется. Также обратите внимание, что некоторые приложения используют GetSpecificPortMappingEntry () для проверки наличия сопоставления.

      Для вывода списка активных сопоставлений точка управления UPnP может выдавать GetGenericPortMappingEntry (), GetSpecificPortMappingEntry () или GetListOfPortMappings ().

      Методы GetGenericPortMappingEntry () и GetListOfPortMappings () НЕ ДОЛЖНЫ проксироваться на сервер PCP, поскольку локальное отображение поддерживается IGD-PCP IWF.

      После получения GetSpecificPortMappingEntry () от контрольной точки UPnP, IGD-PCP IWF ДОЛЖЕН сначала проверить, используется ли номер внешнего порта запрашивающей контрольной точкой UPnP. Если внешний порт уже используется запрашивающей точкой управления UPnP, IGD-PCP IWF ДОЛЖЕН отправить обратно положительный ответ. Если нет, IGD-PCP IWF ДОЛЖЕН ретранслировать на сервер PCP запрос MAP с коротким временем жизни (например, 60 секунд), включая опцию PREFER_FAILURE. Если запрошенный внешний порт используется, сообщение об ошибке PCP будет отправлено сервером PCP в IGD-PCP IWF с указанием CANNOT_PROVIDE_EXTERNAL в качестве причины ошибки.Затем IGD-PCP IWF передает отрицательное сообщение в контрольную точку UPnP. Если порт не используется, отображение будет создано сервером PCP, и положительный ответ будет отправлен обратно в IGD-PCP IWF. После получения IGD-PCP IWF он ДОЛЖЕН передать отрицательное сообщение в контрольную точку UPnP с указанием NoSuchEntryInArray в качестве кода ошибки, чтобы контрольная точка UPnP знала, что запрошенное отображение не существует.

      Контрольная точка UPnP запрашивает удаление одного или списка сопоставлений, вызывая DeletePortMapping () или DeletePortMappingRange ().

      В IGD: 2 мы предполагаем, что IGD применяет соответствующие политики безопасности, чтобы определить, имеет ли контрольная точка права на удаление одного или набора отображений. В случае сбоя авторизации запрашивающей контрольной точке ДОЛЖЕН быть возвращен код ошибки «606 Action Not Authorized».

      Когда функция DeletePortMapping () или DeletePortMappingRange () получает IGD-PCP IWF, она сначала проверяет, присутствуют ли запрошенные отображения, которые должны быть удалены, в локальной таблице отображения. Если сопоставление, соответствующее запросу, не найдено в локальной таблице, в контрольную точку UPnP отправляется код ошибки: «714 NoSuchEntryInArray» для DeletePortMapping () или «730 PortMappingNotFound» для DeletePortMappingRange ().

      На рис. 8 показан пример контрольной точки UPnP, запрашивающей удаление отображения, которое не создано в локальной таблице IWF.

       UPnP-PCP
      Взаимодействие управления UPnP
         Точечная функция PCP-сервер
           | | |
           | (1) DeletePortMapping | |
           | ---------------------> | |
           | | |
           | (2) Ошибка: | |
           | NoSuchEntryInArray | |
           | <--------------------- | |
           | | |
      
       

      Рисунок 8: Локальное удаление (IGD-PCP IWF)

      Если соответствие в локальной таблице совпадает, генерируется запрос на удаление PCP MAP.Если в IGD не включен NAT, IGD-PCP IWF использует входные аргументы, включенные в DeletePortMapping (). Если NAT включен в IGD, IGD-PCP IWF вместо этого использует соответствующий IP-адрес и номер порта, назначенные локальным NAT.

      Когда от сервера PCP получен положительный ответ, IGD-PCP IWF обновляет свою локальную таблицу сопоставления (т. Е. Удаляет соответствующую запись) и уведомляет точку управления UPnP о результате операции удаления. Как только запрос на удаление PCP MAP получен сервером PCP, он удаляет соответствующую запись.Ответ PCP MAP SUCCESS отправляется обратно, если удаление соответствующей записи было успешным; в противном случае сообщение об ошибке PCP отправляется обратно в IGD-PCP IWF с указанием соответствующей причины ошибки (см. раздел 4.3).

      Если используется DeletePortMappingRange (), IGD-PCP IWF выполняет поиск в своей локальной таблице сопоставления для получения отдельных сопоставлений, созданных запрашивающей точкой управления (т. Е. Проверки авторизации) и соответствующих диапазону сигнализируемых портов (т. Е. Внешний порт является в аргументах «StartPort» и «EndPort» функции DeletePortMappingRange ()).Если сопоставление не найдено, в контрольную точку UPnP отправляется код ошибки «730 PortMappingNotFound» (рисунок 9). Если найдено одно или несколько сопоставлений, IGD-PCP IWF генерирует индивидуальные запросы на удаление MAP PCP, соответствующие этим сопоставлениям (см. Пример, показанный на рисунке 10).

      • IWF МОЖЕТ отправить положительный ответ запрашивающей точке управления UPnP, не дожидаясь получения всех ответов от сервера PCP. Маловероятно, что возникнет проблема на участке PCP, поскольку IWF проверила права авторизации, а также наличие отображения в локальной таблице.
       UPnP-PCP
      Взаимодействие управления UPnP
         Точечная функция PCP-сервер
           | | |
           | (1) DeletePortMappingRange () | |
           | StartPort = 8596 | |
           | EndPort = 9000 | |
           | Протокол = UDP | |
           | ---------------------------> | |
           | | |
           | (2) Ошибка: | |
           | PortMappingNotFound | |
           | <--------------------------- | |
           | | |
      
       

      Рисунок 9: Пример потока при обнаружении ошибки при обработке DeletePortMappingRange ()

      Этот пример иллюстрирует обмены, которые происходят, когда IWF получает DeletePortMappingRange ().В этом примере только два сопоставления, имеющие номер внешнего порта в диапазоне 6000-6050, поддерживаются в локальной таблице. IWF выдает два запроса MAP для удаления этих сопоставлений.

       UPnP-PCP
      Взаимодействие управления UPnP
         Точечная функция PCP-сервер
           | | |
           | (1) DeletePortMappingRange () | |
           | StartPort = 6000 | |
           | EndPort = 6050 | |
           | Протокол = UDP | |
           | ---------------------------> | |
           | | |
           | | (2a) Запрос PCP MAP |
           | | протокол = UDP |
           | | внутренний IP-адрес |
           | | внутренний порт |
           | | внешний IP-адрес |
           | | внешний порт = 6030 |
           | | Запрошенное время жизни = 0 |
           | | --------------------------> |
           | | |
           | | (2c) Запрос PCP MAP |
           | | протокол = UDP |
           | | внутренний IP-адрес |
           | | внутренний порт |
           | | внешний IP-адрес |
           | | внешний порт = 6045 |
           | | Запрошенное время жизни = 0 |
           | | --------------------------> |
           | | |
           | (2b) Положительный ответ | |
           | <--------------------------- | |
           | | |
       

      Рисунок 10: Пример DeletePortMappingRange ()

      Из-за несовместимости отображения времени жизни между UPnP IGD и PCP IGD-PCP IWF ДОЛЖЕН имитировать долгое и даже бесконечное время жизни.Действительно, для запросов, имеющих запрошенное бесконечное значение PortMappingLeaseDuration, IGD-PCP IWF ДОЛЖЕН установить Requested Lifetime соответствующего запроса PCP равным 4294967296. Если PortMappingLeaseDuration не бесконечен, IGD-PCP IWF ДОЛЖЕН установить Requested Lifetime соответствующего запроса PCP равным то же значение, что и PortMappingLeaseDuration. Кроме того, функция взаимодействия IGD-PCP ДОЛЖНА поддерживать дополнительный таймер, установленный на начальное запрошенное значение PortMappingLeaseDuration. После получения положительного ответа от сервера PCP IGD-PCP IWF ретранслирует соответствующий ответ IGD UPnP запрашивающей точке управления UPnP с PortMappingLeaseDuration, установленным на то же значение, что и значение исходного запроса.Затем IWF IGD-PCP ДОЛЖНА периодически обновлять построенное отображение PCP до истечения PortMappingLeaseDuration. Ответы, полученные при обновлении сопоставления, НЕ ДОЛЖНЫ ретранслироваться в контрольную точку UPnP.

      В случае, если во время обновления отображения обнаруживается ошибка, функция взаимодействия IGD-PCP не имеет средств для информирования контрольной точки UPnP.

      Когда IWF совмещен с DHCP-сервером, состояние, поддерживаемое IWF, ДОЛЖНО обновляться с использованием состояния на локальном DHCP-сервере.В частности, если срок действия IP-адреса истекает или он освобождается внутренним хостом, IWF ДОЛЖНА удалить все сопоставления, привязанные к этому внутреннему IP-адресу.

      При изменении внешнего IP-адреса IWF IWF МОЖЕТ обновить поддерживаемые ею сопоставления. Это может быть достигнуто только в том случае, если полная таблица состояний поддерживается IWF. Если квота порта на сервере PCP не превышена, IWF получит новый внешний IP-адрес и номера портов. У IWF нет средств для уведомления об изменении внешнего IP-адреса и порта на внутренние контрольные точки UPnP.Устаревшие сопоставления будут поддерживаться сервером PCP до истечения их срока службы.

      [I-D.ietf-pcp-base] определяет процедуру, с помощью которой сервер PCP уведомляет клиентов PCP об изменениях, связанных с поддерживаемыми им сопоставлениями. Когда получено незапрашиваемое ОБЪЯВЛЕНИЕ, IWF делает один или несколько запросов MAP с опцией PREFER_FAILURE, чтобы переустановить свои сопоставления. Если сервер PCP не может создать запрошенные сопоставления (о чем свидетельствует ответ об ошибке CANNOT_PROVIDE_EXTERNAL), у IWF нет средств для уведомления об изменении внешнего IP-адреса и порта на внутренние контрольные точки UPnP.

      Незапрошенные ответы PCP MAP, полученные от сервера PCP, обрабатываются как любой обычный ответ MAP. Если ответ указывает, что внешний IP-адрес или порт изменились, у IWF нет средств для уведомления внутренней точки управления UPnP об этом изменении.

      Дальнейший анализ сценариев отказа PCP для функции взаимодействия IGD-PCP обсуждается в [I-D.boucadair-pcp-failure].

      Этот документ не запрашивает IANA.

      Примечание для редактора RFC: этот раздел может быть удален при публикации как RFC.

      ДОЛЖНА использоваться структура авторизации IGD: 2 [IGD2]. Когда доступен только IGD: 1, НЕ ДОЛЖНЫ быть разрешены операции от имени третьей стороны.

      Этот документ определяет процедуру для создания сопоставлений PCP для сторонних устройств, принадлежащих тому же абоненту. Должны быть включены средства предотвращения создания злоумышленником сопоставлений от имени третьей стороны, как описано в Разделе 13.1 [I-D.ietf-pcp-base].

      Соображения безопасности, обсуждаемые в [I-D.ietf-pcp-base] и [Sec_DCP] следует учитывать.

      Авторы выражают благодарность F. Fontaine, C. Jacquenet, X. Deng, G. Montenegro, D. Thaler, R. Tirumaleswar, P. Selkirk, T. Lemon, V. Gurbani и P. Yee за их обзор и Комментарии.

      F. Dupont участвовал в создании предыдущих версий этого документа. Спасибо ему за его подробные обзоры и вклад.

      [RFC2119] Брэднер, С., «Ключевые слова для использования в RFC для обозначения уровней требований», BCP 14, RFC 2119, март 1997 г.
      [I-D.ietf-pcp-base] Wing, D., Cheshire, S., Boucadair, M., Penno, R. и P. Selkirk, "Port Control Protocol (PCP)", Internet-Draft draft-ietf-pcp-base-29, ноябрь 2012 г.
      [RFC6333] Дюран, А., Дромс, Р., Вудят, Дж. И Й. Ли, «Широкополосное развертывание Dual-Stack Lite после исчерпания IPv4», RFC 6333, август 2011 г.
      [RFC6146] Багнуло, М., Мэтьюз, П. и И. ван Бейнум, "Stateful NAT64: преобразование сетевых адресов и протоколов от клиентов IPv6 к серверам IPv4", RFC 6146, апрель 2011 г.
      [I-D.boucadair-pcp-failure] Букадаир, М. и Р. Пенно, «Сценарии отказа протокола управления портом (PCP)», Internet-Draft draft-boucadair-pcp-failure-05, февраль 2013 г.
      [I-D.ietf-pcp-description-option] Boucadair, M., Penno, R. and D. Wing, «Вариант описания PCP», Internet-Draft draft-ietf-pcp-description-option-00, март 2013 г.
      [I-D.ietf-pcp-proxy] Boucadair, M., Penno, R. и D. Wing, "Функция прокси протокола управления портом (PCP)", Internet-Draft draft-ietf-pcp-proxy-02, февраль 2013 г.
      [I-D.ietf-pcp-dhcp] Boucadair, M., Penno, R. и D. Wing, «Параметры DHCP для протокола управления портами (PCP)», Internet-Draft draft-ietf-pcp-dhcp-06, февраль 2013 г.
      [Sec_DCP] UPnP Forum, «Защита устройства: 1», ноябрь 2009 г.
      [IGD1] UPnP Forum, "WANIPConnection: 1 Service (http://www.upnp.org/specs/gw/UPnP-gw-WANIPConnection-v1-Service.pdf) », ноябрь 2001 г.
      [IGD2] UPnP Forum, "WANIPConnection: 2 Service (http://upnp.org/specs/gw/UPnP-gw-WANIPConnection-v2-Service.pdf)", сентябрь 2010 г.
      Рейнальдо Пенно Penno Cisco Systems, Inc.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *