Разное

Igd upnp: Недопустимое название — Викиучебник

08.12.1979

Содержание

Реализация клиента Python UPnP / IGD? Ru Python

Я ищу реализацию с открытым исходным кодом клиента UPnP в Python и, более конкретно, его части интернет-шлюза (IGD).

На данный момент я смог найти решения UPnP Media Server в таких проектах, как PyMediaServer , PyMedS , BRisa или Coherence .

Я уверен, что смогу использовать эти базы кода в качестве запуска, но часть Media Server представит ненужную сложность.

Итак, можете ли вы рекомендовать библиотеку Python для клиента UPnP (и, надеюсь, IGD)? Альтернативой будет отправка вызовов в библиотеку C, такую ​​как MiniUPnP , но я бы предпочел бы чистую реализацию Python.

Обновление: интересное, родственное обсуждение SSDP и UPnP доступно на StackOverflow .

Исходный код MiniUPnP содержит пример кода Python с использованием библиотеки C в качестве модуля расширения (см. testupnpigd.py ), который я считаю правильным решением моей проблемы.

Обоснование: это не чистое решение Python, которое я искал, но:

  • значительные усилия уже были инвестированы в эту библиотеку,
  • он легковес (он не касается проблем с Media Server),
  • IGD обычно используется только при настройке соединения, поэтому не интегрировать его более жестко с кодом Python, похоже, не проблема,
  • в качестве бонуса он также обеспечивает реализацию NAT-PNP (Apple одновременно с IGD, частью Bonjour ).

Я думаю, вы должны действительно рассмотреть Бризу. Недавно он стал чистым python UPnP Framework, не ориентированным только на Media Server.

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

В проекте также отсутствует обратная связь :-). Я предлагаю вам использовать последний код svn, если вы хотите попробовать BRisa.

Вы также можете связаться с разработчиками на #brisa на irc.freenode.org, мы либо в сети, либо на холостом ходу.

NAT (Преобразование сетевых адресов) В» RouteWorld. Мир маршрутов. Наш мир.

Все видеоНовые видеоПопулярные видеоКатегории видео

АвтоВидео-блогиДТП, аварииДля маленькихЕда, напитки
ЖивотныеЗакон и правоЗнаменитостиИгрыИскусство
КомедииКрасота, модаКулинария, рецептыЛюдиМото
МузыкаМультфильмыНаука, технологииНовостиОбразование
ПолитикаПраздникиПриколыПриродаПроисшествия
ПутешествияРазвлеченияРжачСемьяСериалы
СпортСтиль жизниТВ передачиТанцыТехнологии
ТоварыУжасыФильмыШоу-бизнесЮмор

Главные новостиГосавтоинспекция ищет очевидцев!»>Итоги профилактического мероприятия «Безопасная дорога»»>Правила пожарной безопасности в весенне-летний пожароопасный период»>Пожарные Верхней Салды приняли участие во Всероссийском открытом уроке»>Противопожарные проверки и инструктажи в храмах перед Пасхой»>Итоги оперативно-профилактического мероприятия «Тонировка»»>О новых возможностях и перспективах развития «Титановой долины»»>Салдинцы все чаще становятся жертвами мошенников с сайтов объявлений»>Представители ветеранской организации МО МВД России «Верхнесалдинский» возложили цветы к Памятнику героям-ликвидаторам аварии на Чернобыльской АЭС»>Салдинские полицейские просят граждан класть трубку, если речь заходит о деньгах»>Сыграем в 0707 = Теле2 = (:ХоХмА:) едем в Москву»>Компактный ирригатор RL 210 от Revyline с быстрой доставкой в Сочи»>Можно ли купить недорого ноутбук для корпоративных целей»>Ортодонтический воск «Ревилайн» в ассортименте в Ижевске»>Как завоевать доверие аудитории? Как эксперту завоевать доверие аудитории на вебинаре?»>Компактный ирригатор Revyline RL 650 доступен в Оренбурге»>Эксклюзивная мебель на заказ»>Сотрудники Белгородского линейного отдела раскрыли кражу»>День не должен наступить►S.W.A.N.: Chernobyl Unexplored►Прохождение►Часть 3″>Можно ли делать МРТ с имплантами зубов? Можно ли проходить МРТ при наличии зубных имплантов?»>Склад ответственного хранения»>Фторопластовые втулки ф4, ф4К20 куплю по России неликвиды, невостребованные»>Стержень фторопластовый ф4, ф4к20 куплю по России излишки, неликвиды»>Куплю кабель апвпу2г, ввгнг-ls, пвпу2г, пввнг-ls, пвкп2г, асбл, сбшв, аабл и прочий по России»>Куплю фторопласт ФУМ лента, ФУМ жгут, плёнка фторопластовая неликвиды по России»>Силовой кабель закупаем в Екатеринбурге, области, по РФ неликвиды, излишки»>Фторопластовая труба ф4, лента ф4ПН куплю с хранения, невостребованную по РФ»>Фторопластовый порошок куплю по всей России неликвиды, с хранения»>Куплю провод изолированный СИП-2, СИП-3, СИП-4, СИП-5 невостребованный, неликвиды по РФ»>Фторкаучук скф-26, 26 ОНМ, скф-32 куплю по всей России неликвиды, невостребованный»>Фото LASTOCHKA-OMSK»>Фото [email protected]»>Фото [email protected]»>Фото west o.»>Фото Ольга Ганцева( Назарова)»>Фото ВАЛЕРИЙ ЦАРЬКОВ»>Фото сергей рева»>Фото Бог -есть любовь»>Фото lalapta108″>Фото Светлана Власова (Верхунова)»>Студийные наушники32 мин. назадDarkside – отличный выбор для всех ценителей кальяна45 мин. назадСтероиды1 ч. 2 мин. назадМагазин для маникюра и педикюра1 ч. 22 мин. назадКак правильно выбрать тонометр?2 ч. 58 мин. назадУничтожение тараканов3 ч. 22 мин. назадналоговый кодекс3 ч. 41 мин. назадДостопримечательности Москвы5 ч. 7 мин. назадМотоциклы8 ч. 27 мин. назадконтора с нормальным выводом9 ч. 52 мин. назад Последние комментарииАнна ВолковаКак оказалось стала задача не такая уж и простая: максимально быстро пройти сертифицирование товара. Гдето стоимость просто косм…23 ч. 49 мин. назадanna0303добрый день! воспользовалось данной статьей как рекомаендацией и заказала себе на сайте https://my-gadget.com.ua/ портативную ко…12 мая 2021 г. 15:42:39Создание сайтов в Краснодаре SeoZhdanovУборка квартир от клининговой компании в Краснодаре «Тотал-клин» https://total-cleaning.ru/ #totalcleaningru #клининговаякомпан…12 мая 2021 г. 11:31:07rom kovСпасибо за статью!11 мая 2021 г. 15:18:02IgorНужно сказать что бренд Zlato очень хвалят, по крайней мере мои знакомые те кто покупал ювелирные изделия этой компании, но что …10 мая 2021 г. 12:53:24grischaevaУ фирмы можно приобрести сертифицированное программное обеспечение desigo, контроллеры siemens, датчики и другое оборудование …8 мая 2021 г. 22:31:27rom kovСкажу, что обязательно нужно изучить как можно больше информации и обзоры почитать в интернете о разных букмекерских конторах, к…7 мая 2021 г. 9:40:28rom kovК сожалению, банки кредиты выдают только тем, у кого высокий оклад, местная прописка, официальный доход. Если этого у вас нет, т…7 мая 2021 г. 6:46:35Лилия РазумовскаяПриятный молодой человек и познавательное видео! У меня племяшка как раз хочет пойти учиться на стоматолога) ?) Мне кажется, эт…6 мая 2021 г. 9:34:35Alex1985Заказывать цветы рекомендую в проверенных магазинах, я покупаю в Roses Delivery. , очень нравятся голландские и кенийские розы….5 мая 2021 г. 13:49:44ДомойИГРОВЫЕ ПРИСТАВКИИзменение типа NAT на PS4

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

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

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

Сначала проверьте существующий тип NAT. Вы можете сделать это, перейдя на страницу настроек PS4, затем выбрав Сеть, а затем Просмотреть состояние подключения. Ваш тип NAT будет указан внизу страницы и должен быть одним из 3 типов. Если вы не видите одного из них в списке, вам, к сожалению, может потребоваться обратиться за помощью к специалисту. Однако в 99,99% случаев вы увидите один из них:

  • Открытый — ваш NAT полностью открыт. Это означает, что вы, вероятно, не будете испытывать проблем с соединением, но ваша сеть наиболее уязвима. Если ваше соединение в порядке, возможно, стоит изменить его на один из других типов.
  • Умеренный — настройка по умолчанию. Какой-то трафик приоритетен, какой-то не проходит. Это соединение используется в большинстве PS4 и маршрутизаторов.
  • Строгий — если у вас возникли проблемы, это одна из вероятных причин. Как и следовало ожидать, «Строгий» — это жесткая настройка, которая, вероятно, будет мешать большинству домашних подключений к Интернету на PS4.

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

После входа в меню администратора маршрутизатора найдите параметр «Universal Plug’n’Play» (или UPnP). Опять же, его место положение может отличаться. Включите его (если он еще не включен). Есть два способа дальнейшей настройки, но мы посмотрим на самый безопасный – нам же не нужно, чтобы что-нибудь случилось с вашей PS4.

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

Как только вы нашли нужную инструкцию, Sony посоветовала, какие конкретные порты, по ее мнению, следует открыть, чтобы оптимизировать соединение. Список следующий:

  • TCP: 80, 443, 3478, 3479, 3480
  • UDP: 3478, 3479

После завершения этого процесса перезагрузите PS4. Обычная перезагрузка должна пройти как надо, но если вы не заметили никаких изменений после простого перезапуска, выполните принудительную перезагрузку (нажмите и удерживайте кнопку питания в течение нескольких секунд). Проверьте настройки интернета, и вы увидите, что тип NAT переключился со строгого на умеренный. Это должно позволить вам спокойно играть онлайн. Не забудьте про PS Plus!

Слишком запутанно? Дайте нам знать, и если мы пропустили что-нибудь, и что у вас получилось!

Статический IP для PS4

Возможно, вам потребуется назначить постоянный, статический IP-адрес на PlayStation 4, чтобы установить соединение NAT Type 2. Установка постоянного IP адреса гарантирует, что ваша консоль всегда будет иметь тот же внутренний IP, даже после перезагрузки приставки. Некоторые маршрутизаторы дают возможность вручную назначить IP-адрес, так что сперва вам необходимо проверить, возможен ли такой вариант в вашем роутере. Если нет, тогда можно провести настройку статического IP через меню консоли PS4.

Данное руководство разбито на две части. Прочитайте все от начала и до конца.

Как вручную настроить статический IP-адрес на PlayStation 4 через роутер

Отыщите в своем роутере путь для ручной настройки IP-адреса. Не все маршрутизаторы поддерживают эту функцию. Процесс настройки будет отличаться в зависимости от модели роутера, которой вы пользуетесь. Если ваш модем позволяет провести ручную настройку IP-адреса, тогда просто назначьте постоянный IP для PlayStation 4. В этом случае никаких изменений в настройках самой приставки делать не придется. Роутер самостоятельно будет назначать внутренний IP для PS4, функции которого идентичны статическому.

В случае, если ваш роутер не поддерживает ручной настройки IP, вам придется проделать настройки через консоль PS4. Для этого следуйте инструкции ниже:

  1. Можно попробовать навсегда привязать PS4 к IP-адресу, который вы используете сейчас. Чтобы найти этот IP, включите PS4 и сделайте следующее:

Запишите этот IP и MAC адрес PS4 на листок. Кроме того, вам необходимо будет запомнить IP-адрес вашего роутера, который указан в качестве шлюза по умолчанию (Default Gateway). Как это сделать, описано в следующем пункте нашего руководства.

  1. Через компьютер зайдите в настройки роутера (делается это через браузер, путем ввода IP роутера, например, 192.168.1.1. или 192.168.1.0. / 192.168.0.1). Вам необходимо будет навсегда присвоить PS4 IP-адрес, который вы записали раньше, при выполнении первого пункта.

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

В этом роутере от Asus есть строки для ввода IP-адреса, после чего в выпадающему меню выбирается MAC-адрес. Используйте цифры адресов, которые вы записали при выполнении первого пункта этого руководства. В нашем примере, после записи цифр, необходимо нажать кнопку «Добавить» (Add).

В некоторых маршрутизаторах нельзя назначить IP-адреса, которые входят в диапазон DHCP роутера (диапазон адресов, который автоматически назначается роутером различным устройствам в вашей сети). Если это ваш случай, то нужно будет выбрать IP адрес вне диапазона DHCP роутера. Как сделать это, смотрите пункты 2-4 следующего раздела этого руководства («Как настроить статический IP-адрес в PS4»).

  1. После того, как вы привязали PS4 к определенному IP-адресу, протестируйте подключение консоли, чтобы убедиться в нормальной работоспособности. Чтобы провести тест соединения, сделайте следующее:
  • Выберите «Настройки» в главном меню
  • Выберите «Сеть»
  • Нажмите на «Тест интернет подключения» (Test Internet Connection). Подождите, пока идет проверка подключения.

В случае успешного прохождения проверки соединения, вы увидите надпись «Проверка Интернет-соединения прошла успешно» (Internet Connection Successful).

  1. Открытие портов (opening ports) или Port Forwarding в вашем роутере означает перенаправление всего трафика на определенный внутренний IP-адрес. Чтобы получить соединение NAT Type 2, вам нужно направить следующие порты на IP-адрес приставки PS4:
  • TCP: 80, 443, 1935, 3478-3480
  • UDP: 3478-3479

Более подробная информация о том, как это сделать, есть тут.

  1. После того, как вы назначали постоянный IP адрес для PS4 и перенаправили порты в роутере, проверьте Интернет-соединение. Как это сделать, смотрите в п.3 этого руководства.

Поздравляем, ваше соединение должно быть установлено на NAT Type 2.

Если у вас не получилось установить подключение NAT Type 2, проверьте, все ли верно вы сделали. Повторно просмотрите данные, которые вы ввели в строку IP-адреса и MAC-адреса.

Если трудности с настройкой подключением NAT Type 2 остались, проверьте, правильно ли установлено соединение. У вас может быть не один роутер в локальной сети. Чтобы определить количество роутеров в сети, вы можете воспользоваться бесплатной программой Router Detector. Очень важно, что в сети был только один модем, в ином случае настроить сеть без лишней головной боли достаточно тяжело.

Как настроить статический IP-адрес в PS4

Если у вас роутер, в котором нельзя вручную назначить внутренние IP-адреса, для настройки постоянного IP в PS4 выполните следующие действия:

  1. Узнайте, какой IP-адрес, маску подсети, шлюз и DNS использует PS4 в настоящее время. Чтобы сделать это, следуйте инструкции ниже:

Запишите IP-адрес, маску подсети, шлюз, главный DNS и дополнительный (Primary DNS и secondary DNS). Вам нужно будет ввести все эти цифры в консоль чуть позже.

  1. Далее, войдите в настройки маршрутизатора через ПК.

Чтобы войти в настройки роутера, напишите его IP-адрес в строке браузера. Найти IP можно в списке адресов, которые вы записали при выполнении пункта 1. IP роутера – это адрес шлюза по умолчанию (Default Gateway).

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

Вам необходимо через настройки посмотреть диапазон адресов DHCP, которые использует модем для автоматического назначения IP устройствам в сети.

Ниже есть скриншот, как должна выглядеть строка с этим диапазоном. Использовано меню роутера Linksys. Диапазон DHCP обведен красным.

  1. Вам нужно будет выбрать число между 2 и 254, которое находится за пределами диапазона DHCP, чтобы назначить IP вашей приставке.

В приведенном выше примере, маршрутизатор Linksys использует диапазон от 100 до 149, чтобы назначать IP-адреса для устройств во внутренней сети. В этом случае можно выбрать, например, число 31, тогда полный IP адрес для PS4 будет выглядеть так: 192.168.0.31. Вот еще несколько примеров, чтобы вы лучше разобрались:

  • Если диапазон DHCP 200-254, вы можете выбрать цифры от 2 до 50
  • Если роутер использует диапазон 50-200, тогда от 2 до 49
  1. Чтобы проверить, может ли выбранный вами IP быть использован, сделайте следующее:
  • Через меню «Пуск» откройте «Выполнить»
  • Введите команду «cmd» без кавычек и нажмите Enter
  • После этого должно появиться черное окошко
  • Далее, в строке ввода введите: «Ping (пробел) IP». Например: Ping 192.168.1.54
  • Нажмите Enter.

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

  1. Далее вам понадобится PS4, чтобы установить IP-адрес, который вы выбрали.

Теперь сделайте следующее:

Если вы в точности выполнили все вышеописанные действия, то статический IP будет настроен правильно. Если возникают какие-либо проблемы, проверьте правильность ввода информации, в частности, проверьте цифры, которые вы ввели в строку IP-адреса, шлюза, DNS. Чтобы перепроверить это, откройте главное меню PS4, выберите Настройки => Сеть => Просмотреть статус сети.

  1. Открытие портов (opening ports) или Port Forwarding в вашем роутере означает перенаправление всего трафика на определенный внутренний IP-адрес. Чтобы получить соединение NAT Type 2, вам нужно направить следующие порты на IP-адрес приставки PS4:
  • TCP: 80, 443, 1935, 3478-3480
  • UDP: 3478-3479

Более подробная информация о том, как перенаправить порты, есть тут.

  1. После того, как вы назначили статический IP-адрес для PlayStation 4 и правильно перенаправили порты вашего роутера, можете сделать проверку Интернет-соединения. Как это сделать, читайте немного выше.

Поздравляем с установкой соединения NAT Type 2! При возникновении любых проблем, в первую очередь советуем проверять правильность ввода цифр при указании адреса шлюза, IP, DNS и маски подсети.

Используемые источники:

  • https://salda.ws/video.php
  • https://toconsole.ru/%d0%b8%d0%b7%d0%bc%d0%b5%d0%bd%d0%b5%d0%bd%d0%b8%d0%b5-%d1%82%d0%b8%d0%bf%d0%b0-nat-%d0%bd%d0%b0-ps4/
  • https://gamesqa.ru/article/kak-nastroit-nat-soedinenie-i-staticheskij-ip-na-ps4-552/

Обход Nat: UPnP / IGD vs NAT-PMP



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

Я немного сбит с толку, так как, похоже, существуют два разных протокола для настройки NAT, UPnP/IGD и NAT-PMP. Какой из них я должен использовать? Поддерживаются ли они оба всеми NATs? Или я должен поддерживать оба, чтобы убедиться, что хотя бы один из них будет поддержан NAT?

network-programming p2p nat upnp portforwarding
Поделиться Источник Jules Olléon     05 января 2011 в 08:00

3 ответа


  • UPnP Nat Traversal для беспроводного подключения данных 3G/4G на Android

    Есть ли какой-либо способ использовать UPnP для обхода NAT на Android с подключением 3G/4G, и если да, то зависит ли это от оператора?

  • Обход NAT с Java

    Я хочу подключиться к компьютерам, каждый из которых находится за маршрутизатором NAT. Я читал, что STUN работает только с одним компьютером за маршрутизатором NAT. Это правда? Если да, то как я могу решить эту проблему с двойным NAT? Спасибо, Томас



4

NAT-PMP (теперь PCP) — это проект ietf, поэтому он должен быть тем, который вы реализуете. Тем не менее, для обеспечения совместимости вы должны разрешить приложению беззвучно возвращаться к UPnP/IGD,, поскольку не все устройства NAT поддерживают PCP/NAT-PMP, а многие старые устройства поддерживают только UPnP/IGD.

Поделиться T0xicCode     08 августа 2013 в 06:26



1

Рассмотрите возможность использования STUN вместо NAT-PMP или UPnP-IGD. Как правило, он работает везде и почти наверняка будет работать через крупномасштабных поставщиков услуг NAT и NAT64.

Поделиться james woodyatt     12 января 2011 в 01:07



1

Придерживайтесь пробивки отверстий UDP. Он работает почти на всех маршрутизаторах, за исключением тех случаев, когда оба клиента находятся за сетями 4G LTE (они часто имеют случайное распределение портов) и маршрутизаторами, которые блокируют ВЕСЬ трафик UDP. Если вам нужно надежно отправлять данные, вы можете использовать reliable UDP.

Поделиться Unknown     24 сентября 2015 в 23:52


Похожие вопросы:


Эмуляция роутера UPnP

Я хочу добавить в приложение опцию автоматической переадресации портов (Nat Traversal). Я знаю, что это можно сделать с помощью UPnP (в частности, той части, которая взаимодействует с устройством,…


Децентрализованное приложение более NAT

В настоящее время я пишу приложение P2P с использованием golang. Я выбрал шум для этого, так как он обеспечивает простой в использовании сетевой стек. Мое приложение предоставляет REST API, доступ к…


TCP NAT-обход /- пробивка С.NET

Я пишу приложение, в котором очень важно напрямую связывать клиентов друг с другом и поддерживать их связь. После проведения некоторых исследований с использованием превосходных методов (google) Я…


UPnP Nat Traversal для беспроводного подключения данных 3G/4G на Android

Есть ли какой-либо способ использовать UPnP для обхода NAT на Android с подключением 3G/4G, и если да, то зависит ли это от оператора?


Обход NAT с Java

Я хочу подключиться к компьютерам, каждый из которых находится за маршрутизатором NAT. Я читал, что STUN работает только с одним компьютером за маршрутизатором NAT. Это правда? Если да, то как я…


Преимущества uPNP/IGD перед носками?

Мне любопытно, почему он более распространен. Есть ли у него лучший API? Я помню, как давным-давно, когда я впервые узнал о NAT (я использовал его для совместного использования модема dialup…


Python UPnP/реализация клиента IGD?

Я ищу реализацию с открытым исходным кодом клиента UPnP в Python и, более конкретно, его части устройства интернет-шлюза (IGD). На данный момент мне удалось найти только UPnP Media серверных…


Программно определите тип маршрутизатора NAT

Мне нужно программно определить тип маршрутизатора NAT в моей программе. Я действительно просмотрел некоторые из STUN связанных ответов и UPnP связанных сведений о SO. Но никаких окончательных…


Обход NAT и IPv6

Мне любопытно узнать о полезности механизмов обхода NAT и NAT, как только deployment и использование IPv6 увеличатся. У нас есть так много механизмов обхода NAT (включая проприетарные), которые…


libutp (µTP) и NAT обход (UDP пробивка отверстий)

Согласно статье в Википедии, Микротранспортный протокол поддерживает обход NAT с использованием пробивки отверстий UDP. Но, глядя на страницу проекта libutp, я не могу найти такой ссылки в…

rfc6970

 Инженерная группа Интернета (IETF) М. Букадар
Запрос комментариев: 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]. В
   среды, в которых универсальный шлюз для подключения к Интернету с технологией Plug and Play
   (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]
 

Интернет-шлюз (IGD) V 2.0

Уведомление об устаревании: По состоянию на 30 марта 2015 г. устройства DCP IGD V1.0 устарели. Новые типы устройств Internet Gateway Device V2.0, перечисленные ниже, необходимы для сертификации UPnP + и обеспечивают многочисленные улучшения безопасности (например, DeviceProtection DCP), а также поддержку IPv6. Поставщики, желающие внедрить и сертифицировать устройства шлюза Интернета, должны использовать это устройство шлюза Интернета версии 2.0 DCP.


Следующие файлы содержат стандартизированные описания устройств и служб для шлюза в Интернет v2 (IGD: 2). В соответствии с Разделом 2.1 (c) (ii) Соглашения о членстве в форуме UPnP, эти DCP были утверждены Руководящим комитетом как стандартизированные DCP 2 сентября 2010 г. Соответствующие декларации IP размещены на этом веб-сайте.

Описание службы WANIPv6FirewallControl: 1, приведенное ниже, было принято Руководящим комитетом как стандартизованный DCP в соответствии с разделом 2.1 (c) (ii) Соглашения о членстве в Форуме UPnP от 9 декабря 2010 г.

Интернет-шлюзУстройство: 2

WANConnection Устройство: 2

WAND Устройство: 2

WANIP Подключение: 2

WANIPv6FirewallControl: 1


Следующие файлы содержат стандартные описания устройств и служб для служб устройства шлюза Интернета версии 1.0 (IGD: 1). Эти стандарты прошли 45-дневную проверку участниками форума UPnP и были утверждены Руководящим комитетом 12 ноября 2001 г.

LAND Обслуживания: 1

LANHostConfigManagement: 1

Layer3Forwarding: 1

WANCableLinkConfig: 1

WANCommonInterfaceConfig: 1

WANDSLLinkConfig: 1

WANEthernetLinkConfig: 1

WANPOTSLinkConfig: 1

WANPPPC Подключение: 1


Файлы данных XML для тестирования

Файлы схемы

UPnP Hacks: взлом IGD

Профиль UPnP Internet Gateway Device (IGD) реализован на многих маршрутизаторах. и широкополосные кабельные или ADSL-модемы.В профиле есть несколько подпрофилей. Многие из эти профили - не что иное, как контейнеры для одного или нескольких других подпрофили. Что касается безопасности, есть несколько профилей, которые интересно:

  • LANHostConfigManagement
  • WANIPConnection / WANPPPConnection
The Профиль LANHostConfigManagement позволяет программа для запроса и, возможно, установки различных параметров конфигурации для, для например DNS, DHCP и другие. Профили WANIPConnection и WANPPPConnection позволяют программам адаптировать правила брандмауэра, среди других вещей.

Профиль LANHostConfigManagement позволяет программам запрашивать и устанавливать локальные настройки маршрутизатора, такие как DNS и DHCP. Профиль определяет несколько методов, которые представляют интерес для злоумышленник:

  • SetDNSServer
  • DeleteDNSServer
  • SetIPRouter
  • DeleteIPRouter
Эти методы должны позволить злоумышленнику полностью перенастроить маршрутизатор по сети. В соответствии со стандартом они обязаны внедрять. Однако на практике эти методы либо не реализованы, возвращают ошибку при вызове или UPnP и DNS / DHCP / маршрутизация не связаны с системой UPnP.Никогда не болит хотя бы проверить.

Такие программы, как Live Messenger, удаленная помощь Windows, X-Box live, различные сетевые консоли и игры, а также довольно много клиентов Bittorrent используют действия, которые определены в подпрофилях IGD WANPPPConnection (ADSL-модемы) и WANIPConnection (IP-маршрутизаторы), чтобы упростить использование сеть. Благодаря этим действиям профиль IGD решает фундаментальную проблему. трансляции сетевых адресов (NAT): вы не можете легко использовать предопределенный порт больше, если вы используете NAT.Если этот порт требуется более чем одной программе, если только вы использовать что-то вроде прокси. В качестве примера предположим, что Live Messenger иметь фиксированный порт для передачи файлов. Если вы находитесь за NAT с несколькими людьми, кто все хочет передавать файлы с помощью Live Messenger, в то же время у вас есть проблема. Вот почему многие программы динамически выделяют порт, чтобы избежать конфликтует с другими программами.

Для этого программы используют следующие действия, доступные в UPnP IGD профиль:

  • AddPortMapping :: добавляет отображение портов в конфигурацию брандмауэра
  • DeletePortMapping :: удаляет существующий portmapping
Эти действия реализованы как запросы SOAP, как объяснено в другом месте.

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

AddPortMapping

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

  • NewRemoteHost
  • NewExternalPort
  • NewProtocol
  • NewInternalPort
  • NewInternalClient
  • NewEnabled
  • NewPortMappingDescription
  • NewPortMappingDescription
  • New Параметр NewRemoteHost можно использовать чтобы ограничить отображение портов только для одного внешнего хоста, но на практике это никогда не использовался.NewExternalPort Параметр используется для указания порта TCP или UDP на стороне WAN маршрутизатора. который следует переадресовать. Этот параметр нельзя оставлять пустым, в противном случае ошибка возвращается, потому что команда больше не имеет смысла. В Параметр NewProtocol может принимать два значения: UDP или TCP. Новый Внутренний Порт Параметр указывает порт на клиентском компьютере, на который поступает весь входящий трафик. на NewExternalPort для протокола указанный NewProtocol должен быть перенаправлен на. НовыйВнутреннийКлиент Параметр устанавливает клиентский компьютер, на который должен отправляться трафик.Параметр NewEnabled сообщает маршрутизатору, отображение портов должно быть включено. На практике всегда установлено значение True. В Параметр NewPortMappingDescription: удобочитаемая строка, описывающая соединение. Используется в сормовой паутине интерфейсы маршрутизаторов, чтобы пользователь мог видеть, какая программа использует какой порт. В последний параметр - NewLeaseDuration, который сообщает маршрутизатору, как долго должно быть активным отображение портов. Поскольку большинство программ не знаю этого заранее, он часто устанавливается в 0, что означает «без ограничений».

    DeletePortMapping

    Команда SOAP DeletePortMapping занимает три параметры:

    • NewRemoteHost
    • NewExternalPort
    • NewProtocol
    The три параметра описывают отображение портов, которое следует удалить. Ценности параметры такие же, как для команды AddPortMapping.

    Спецификации профиля IGD позволяют любой контрольной точке не использовать AddPortMapping для перенаправления портов на другие машины в локальной сети.Хотя это может быть удобно, это действительно простой способ открывать файловые серверы, принтеры и другие машины / устройства извне Мир.

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

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

    Непроизвольная луковая маршрутизация / перенаправление порта

    Некоторые стеки не проверяют, действительно ли параметр NewInternalClient является IP-адресом в локальной сети. Эти стеки позволяют указать маршрутизируемый IP-адрес вместо частный адрес в локальной сети. Межсетевой экран на маршрутизаторе будет выполнять NAT на входящие пакеты для указанного порта и протокола и отправить их в любой Указан NewInternalClient. Если это внешний IP-адрес, которого нет в локальной сети, пакеты будут отправляться туда когда кто-то подключается к роутеру из WAN.Маршрутизатор эффективно превратился в непреднамеренный луковый маршрутизатор, поскольку почти все устройства имеют удаленные ведение журнала через системный журнал отключено по умолчанию, и соединения трудно отследить способ.

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

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

    Выполнение команд оболочки на маршрутизаторах на базе Linux

    Другие стеки выполняют меньше проверок, но просто предполагают, что все, что указано в NewInternalClient - это всегда IP адрес. Значение параметра извлекается из запроса SOAP и просто передается сценариям, запущенным на маршрутизаторе.Эти программы в случае маршрутизатора на базе Linux, работающего с полными привилегиями root. Иногда эти программы представляют собой простую оболочку Борна или сценарии bash, выполняющие команда, иногда это программы C, которые создают команду оболочки, которая затем выполняется с помощью системы () системный вызов. Один стек даже доходит до использования PHP-подобного веб-сайта, который создает сценарии оболочки, которые затем выполняются.

    Используя некоторые простые программирование сценария оболочки с использованием обратных кавычек (часто используемый метод для присвоения вывод программы в переменную в обычных сценариях оболочки) можно выполнять команды на маршрутизаторе.В зависимости от стека может быть ограничения на место, чтобы ограничить длину NewInternalClient максимальной длиной строки, представляющей Адрес IPv4 (4 * 3 цифры, + 3 * 1 точка = 15 символов). Это все еще оставляет достаточно места для команд, например, для перезагрузки маршрутизатора. У других роутеров есть ограничение в 255 символов или без ограничения вообще.

    Решения

    Очень простое решение, которое исправит вышеупомянутые ошибки: проверьте Вход. В C доступно несколько стандартных функций, которые могут помочь проверить действительность адреса для предотвращения подделки, например inet_aton ().Проверяет, является ли IP-адрес, указанный в NewInternalClient, действительным адресом LAN тоже не должно быть слишком сложно реализовать.

    Использование system () в программах на C для вызова iptables для сопоставления портов немного глупо, если вы понимаете, что:

    • использование system () означает порождение дополнительного процесса, а
    • там являются вполне допустимыми альтернативами, такими как libiptc, которые решат за вас множество проблем. Говорящий насчет libiptc, дорогой Broadcom, пожалуйста уважайте лицензию этой библиотеки.
    Конечно, все вводимые данные должны быть не только NewInternalClient в AddPortMapping, но и все параметры для всех функций SOAP.

    Что такое UPnP и почему это опасно?

    Помните первую крупномасштабную атаку Mirai в конце прошлого года? Это было направлено на IP-камеры и использовало настройки конфигурации маршрутизатора, которые многие потребители никогда не удосужились изменить. Однако главным виновником был Universal Plug and Play или UPnP, который включен по умолчанию на миллионах маршрутизаторов по всему миру.

    Что такое UPnP?

    Если вы когда-нибудь подключали USB-клавиатуру к ноутбуку, значит, вы испытали «подключи и работай», но с сетевыми устройствами часто не все так просто. Как новый принтер, камера, кофейник или игрушка узнает, как подключиться к вашей сети, а затем настроить маршрутизатор, чтобы разрешить доступ к портам?

    Хотите изучить основы работы с программами-вымогателями и заработать кредит CPE? Попробуйте наш бесплатный курс.

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

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

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

    UPnP: опасность

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

    Хакеры теперь обнаружили еще более дьявольское использование UPnP с банковским трояном Pinkslipbot, также известным как QakBot или QBot.

    Примерно с 2000 года QakBot заражает компьютеры, устанавливает регистратор ключей, а затем отправляет банковские учетные данные на удаленные серверы управления и контроля (C2).

    Помните C2?

    Когда мы писали нашу первую серию статей о тестировании на проникновение, мы описали, как трояны удаленного доступа (RAT), находящиеся на компьютерах жертв, отправляют команды удаленно с серверов хакеров через соединение HTTP или HTTPS.

    Это скрытый подход после эксплуатации, потому что он очень затрудняет для ИТ-безопасности обнаружение каких-либо отклонений. В конце концов, администратору или техническому специалисту, наблюдающему за сетью, может показаться, что пользователь просматривает веб-страницы, даже если RAT получает встроенные команды для регистрации нажатий клавиш или поиска PII, а также для извлечения паролей, номеров кредитных карт и т. Д.к C2s.

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

    И именно здесь Pinkslipbot внесла существенное новшество. Он представил, за неимением лучшего термина, вредоносное ПО среднего уровня, которое заражает компьютеры, но не принимает учетные данные пользователей! Вместо этого вредоносное ПО среднего уровня устанавливает прокси-сервер C2, который передает HTTPS на реальные серверы C2.

    Среднее вредоносное ПО: серверы C2 могут быть где угодно!

    Таким образом, инфраструктура Pinkslipbot не имеет фиксированного домена для их серверов C2. По сути, и весь Интернет - это их игровое поле! Это означает, что практически невозможно вести список известных доменов или адресов, которые нужно отфильтровать.

    Какое отношение имеет UPnP к Pinkslipbot?

    Когда Pinkslipbot захватывает потребительский портативный компьютер, он проверяет, включен ли UPnP. Если это так, вредоносное ПО Pinkslipbot отправляет маршрутизатору запрос UPnP, чтобы открыть общедоступный порт.Это позволяет Pinslipbot затем действовать как ретранслятор между компьютерами, зараженными RAT, и серверами C2 хакеров (см. Диаграмму).

    Это дьявольски, и я неохотно даю этим парням (черную) подсказку.

    Один из способов затруднить проведение подобных атак - просто отключить UPnP или функцию переадресации портов на домашних маршрутизаторах. Вам это, наверное, не нужно!

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

    Сделайте это сейчас!

    Security Stealth Wars: IT не побеждает (с защитой периметра)

    Фишинг, вредоносное ПО FUD, взлом без вредоносных программ с помощью PowerShell, а теперь и скрытые серверы C2. Хакеры берут верх в постэксплуатации: их действия практически невозможно заблокировать или обнаружить с помощью традиционных методов защиты периметра и сканирования вредоносных программ.

    Что делать?

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

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

    Я думаю, вы знаете, к чему это идет. Защитное программное обеспечение, основанное - подождите, - User Behavior Analytics (UBA) может обнаружить одну часть атаки, которую не может быть скрыт : поиск PII в файловой системе, доступ к важным папкам и файлам и копирование содержание.

    По сути, вы предоставляете хакерам небольшую часть поля кибер-битвы, только чтобы потом победить их.

    [MS-UPIGD]: шаблоны устройств и служб UPnP: расширения устройства шлюза Интернета (IGD)

    • 4 минуты на чтение

    В этой статье

    Указывает UPnP: шаблоны устройств и служб: Интернет Расширения шлюзового устройства (IGD).Эти расширения структуры определяют расширения к схеме устройства Universal Plug-n-Play (UPnP), которая описывает Интернет шлюзовое устройство.

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

    Опубликованная версия

    Дата

    Версия протокола

    Редакция класса

    Загрузки

    25.06.2021

    7.0

    Майор

    PDF | DOCX | Diff

    Нажмите здесь, чтобы загрузить zip-файл со всеми файлами PDF для протоколов Windows.

    Предыдущие версии

    Дата

    Версия протокола

    Редакция класса

    Загрузки

    07.04.2021

    6.0

    Майор

    PDF | DOCX | Diff

    12.09.2018

    5,0

    Майор

    PDF | DOCX | Diff

    15.09.2017

    4,0

    Майор

    PDF | DOCX | Diff

    01.06.2017

    3.0

    Нет

    PDF | DOCX | Diff

    14.07.2016

    3,0

    Нет

    PDF | DOCX | Diff

    16.10.2015

    3,0

    Нет

    PDF | DOCX

    30.06.2015

    3.0

    Майор

    PDF | DOCX

    15.05.2014

    2,0

    Нет

    PDF | DOCX

    13.02.2014

    2,0

    Нет

    PDF | DOCX

    14.11.2013

    2.0

    Нет

    PDF | DOCX

    08.08.2013

    2,0

    Майор

    PDF | DOCX

    31.01.2013

    1,1

    Незначительный

    25.10.2012

    1.0

    Нет

    12.07.2012

    1,0

    Нет

    30.03.2012

    1,0

    Нет

    16.12.2011

    1,0

    Новый

    Предварительные версии

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

    Период предварительного просмотра технического документа варьируется. Кроме того, не все технические документы будут опубликованы для предварительного просмотра.

    Предварительная версия этого документа может быть доступно в Windows Протоколы - страница предварительного просмотра документов. После периода предварительного просмотра самая последняя версия документа доступна на этой странице.

    Ресурсы для разработки

    Найти ресурсы для создания совместимых решений для программного обеспечения Microsoft, услуги, оборудование и продукты сторонних производителей:

    Plugfests и события, Инструменты тестирования, Разработка Поддержка и открытые спецификации Центр разработки.

    Уведомление о правах интеллектуальной собственности на документацию открытых спецификаций

    • Техническая документация. Microsoft публикует Open Документация со спецификациями («данная документация») для протоколов, файл форматы, переносимость данных, компьютерные языки и поддержка стандартов.Кроме того, обзорные документы охватывают межпротокольные отношения и взаимодействия.

    • Авторские права . Эта документация распространяется на Microsoft авторские права. Независимо от любых других условий, содержащихся в условиях использовать для веб-сайта Microsoft, на котором размещена эта документация, вы можете сделать его копий с целью разработки реализаций технологий, которые описано в этой документации, и можете распространять ее по частям в своем реализации, использующие эти технологии, или в вашей документации как необходимо правильно задокументировать реализацию.Вы также можете распространять в ваша реализация, с модификациями или без них, любые схемы, IDL или код образцы, которые включены в документацию. Это разрешение также распространяется на любые документы, на которые есть ссылки в документации Open Specifications.

    • Отсутствие коммерческой тайны . Microsoft не претендует на обмен секретные права на эту документацию.

    • Патенты . У Microsoft есть патенты, которые могут реализации технологий, описанных в Открытых спецификациях документация.Ни это уведомление, ни предоставление Microsoft этого документация предоставляет любые лицензии по этим патентам или любым другим Microsoft патенты. Однако данный документ Открытых спецификаций может быть охвачен Открытые спецификации Microsoft Обещание или сообщество Microsoft Обещать. Если вы предпочитаете письменную лицензию, или если технологии, описанные в этой документации, не подпадают под действие Open Обещание со спецификациями или Обещание сообщества, в зависимости от обстоятельств, патентные лицензии можно получить, связавшись с iplg @ microsoft.com.

    • Лицензионные программы . Чтобы увидеть все протоколы в области в соответствии с конкретной лицензионной программой и соответствующими патентами, посетите Патентную карту.

    • Товарные знаки . Названия компаний и продуктов, содержащихся в в этой документации могут быть указаны товарные знаки или аналогичные интеллектуальные права собственности. Это уведомление не предоставляет никаких лицензий на эти права. Список товарных знаков Microsoft можно найти на сайте www.microsoft.ru / товарные знаки.

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

    Сохранение прав . Все остальные права защищены, и это уведомление не предоставляет никаких прав, кроме как конкретно описанных выше, подразумеваемых, эстоппеля или иным образом.

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

    Поддержка. По вопросам и поддержке обращайтесь по адресу [email protected].

    Домашняя страница проекта MiniUPnP

    Домашняя страница проекта MiniUPnP

    Домашняя страница проекта MiniUPnP

    Последнее изменение: 26 мая 2017 г.

    Зеркала

    Если у вас возникли проблемы с этим веб-сайтом, у вас есть альтернативы:

    Предисловие

    Проект MiniUPnP предлагает программное обеспечение, поддерживающее Технические характеристики устройства Интернет-шлюза (IGD) UPnP.NAT-PMP и PCP добавлена ​​поддержка для MiniUPnPd . Для поддержки NAT-PMP на стороне клиента используйте libnatpmp.
    Демон MiniUPnP ( MiniUPnPd ) поддерживает OpenBSD, FreeBSD, NetBSD, DragonFly BSD, (Открыть) Solaris и Mac OS X в сочетании с pf или ipfw (ipfirewall) или ipf и Linux с netfilter.
    Клиент MiniUPnP ( MiniUPnPc ) и MiniSSDPd являются портативными и должны работать в любой системе POSIX. MiniUPnPc также работает под MS Windows и AmigaOS (версии 3 и 4).

    Облегченная клиентская библиотека UPnP IGD и демон UPnP IGD

    Протокол UPnP поддерживается большинством домашние ADSL / кабельные маршрутизаторы и Microsoft Windows 2K / XP. Целью проекта MiniUPnP является принести бесплатное программное решение для поддержки «Интернет-шлюза» часть протокола. Протокол MediaServer / MediaRenderer UPnP (DLNA) также становится очень популярно, но здесь мы говорим о IGD. ReadyMedia (ранее известный как MiniDLNA) - медиасервер UPnP. используя некоторый код UPnP из MiniUPnPd.

    Linux SDK для устройств UPnP (libupnp) показалось мне слишком тяжелым. Я хочу самую простую библиотеку, с наименьшей занимаемой площадью и без зависимостей в другие библиотеки, такие как парсеры XML или Реализации HTTP. Весь код - чистый ANSI C.
    Скомпилирована на ПК x86, клиентская библиотека miniupnp имеет размер кода менее 50 КБ.
    Демон miniUPnP намного меньше любого другого демона IGD. и по этой причине идеально подходит для использования на устройствах с низким объемом памяти. Он также использует только ОДИН процесс без дополнительных потоков, не используйте любой вызов system () или exec () , и, следовательно, сохраняет использование системных ресурсов очень низко.

    Проект разделен на две основные части:

    • MiniUPnPc, клиентская библиотека, обеспечивающая доступ приложений к услуги, предоставляемые UPnP «Устройство Интернет-шлюза», присутствующее в сети. В терминологии UPnP MiniUPnPc - это контрольная точка UPnP.
    • MiniUPnPd, демон, предоставляющий эти услуги вашей сети из Linux. или ящик BSD (или даже Solaris), являющийся шлюзом. Следуя терминологии UPnP, MiniUPnPd - это устройство UPnP.
    MiniSSDPd разработан для совместной работы с MiniUPnPc, MiniUPnPd и другими кооперативное программное обеспечение: MiniSSDPd прослушивает трафик SSDP в сети, поэтому MiniUPnPc или другой Контрольные точки UPnP не необходимо выполнить процесс обнаружения и может работать быстрее, чтобы настроить перенаправление.MiniSSDPd также может отвечать на запросы M-SEARCH SSDP. от имени MiniUPnPd или другого серверного программного обеспечения UPnP. Это полезно для размещения нескольких служб UPnP на одном компьютере, такие как MiniDLNA и MediaTomb и MiniUPnPd. MiniUPnPd изначально использует MiniSSDPd, если он запущен на том же компьютере, но для другого программного обеспечения UPnP может потребоваться быть исправленным: читать Патч MiniSSDPd для MiniDLNA (не требуется для MiniDLNA 1.0.22 и выше) и патч MiniSSDPd для MediaTomb.

    MiniUPnPd был впервые разработан на OpenBSD 3.0+ с pf. Вы можете увидеть часть работы, которую я проделал интегрироваться с pf на этой странице (устаревший).
    Поскольку pf также доступен во FreeBSD, ребята из проекта pfSense портировали miniupnpd в эту систему. Теперь это должно быть возможно для компиляции и запуска на каждой платформе, где доступен pf.
    Демон теперь также доступен для linux 2.4.x и 2.6.x с использованием netfilter. Это возможно сделать запускать на маршрутизаторах, работающих под управлением OpenWRT.
    Даррен Рид работал над Реализация IP-фильтра (ipf).Боюсь, что не поддерживается ... Даррен также добавил поддержку Solaris / OpenSolaris. Порт ipfw доступен для MacOS X. Должна быть возможность сделать он работает и на FreeBSD, но я не получил никаких отзывов об этом.

    По некоторым причинам это может быть не лучшим решением для вас. код из проекта MiniUPnP напрямую.
    Поскольку код небольшой и простой для понимания, он является хорошей базой черпать вдохновение для собственной реализации UPnP. KTorrent Плагин UPnP на C ++ - хороший тому пример.

    Если вам интересно, какой домашний маршрутизатор работает с клиентом MiniUPnP, вы можете найти ответ здесь. По факту, вы, скорее всего, поможете мне заполнить список, отправив мне электронное письмо 🙂

    Полезность клиентской библиотеки MiniUPnP

    Использование клиентской библиотеки MiniUPnP полезно всякий раз, когда приложению нужно прослушивать входящие соединения.
    Примеры: приложения P2P, клиенты FTP для активного режима, IRC (для DCC) или IM-приложения, сетевые игры, любое серверное ПО.

    Типичное использование возможностей UPnP IGD маршрутизатора - это файл перевод с помощью мессенджера MSN. Программное обеспечение MSN Messenger использует UPnP API Windows XP для открытия порта для входящего соединения. Чтобы имитировать программное обеспечение MS, рекомендуется также использовать UPnP.

    Сделал патч для XChat чтобы показать, как клиентская библиотека miniupnp может использоваться приложением.

    Трансмиссия, бесплатный программный клиент BitTorrent использует miniupnpc и libnatpmp.

    Полезность демона MiniUPnP

    UPnP и NAT-PMP используются для улучшения подключение к Интернету для устройства за NAT-маршрутизатором.Любое одноранговое сетевое приложение например, игры, обмен мгновенными сообщениями и т. д. могут получить преимущества от маршрутизатора NAT, поддерживающего UPnP и / или NAT-PMP.

    Последнее поколение Microsoft XBOX 360 и Sony Playstation 3 игровые машины используют команды UPnP для включения онлайн-игра с сервисом XBOX Live и PlayStation Network. Сообщалось, что MiniUPnPd корректно работает с двумя консоли. Однако может потребоваться точная настройка конфигурации. Поищите обсуждения по этой теме в Форум.

    Безопасность

    Реализации

    UPnP потенциально подвержены нарушениям безопасности.Плохо реализованные или настроенные IGD UPnP уязвимы. Исследователь безопасности HD Мур хорошо поработал над выявлением уязвимостей в существующих реализациях: Недостатки безопасности в Universal Plug and Play (PDF). Распространенной проблемой является открытие портов SSDP или HTTP / SOAP для Интернета: они должны быть доступны только по локальной сети.

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

    История обновлений

    Теперь он доступен здесь.

    Участвовать

    Вы можете скачать исходный код на странице загрузки или загрузите исходники на github.

    Если у вас возникнут проблемы или вы хотите реализовать какую-то функцию, пойти в Форум.

    Жду ваших комментариев и патчей! Заранее благодарим вас за отзыв.

    Пожертвовать

    Лучший подарок, который вы можете сделать, - это внести свой вклад в проект, отправив патч! В любом случае, если это невозможно, вы можете использовать кнопку PayPal Donate. ниже.

    Вы также можете поддержать TuxFamily, некоммерческая организация, которая принимает веб-форум и часть веб-сайта: http://www.tuxfamily.org/en/support.

    Карта сайта

    Ссылки

    Томас Бернар
    Используйте форум или свяжитесь со мной по электронной почте: miniupnp _AT_ free _DOT_ fr

    Использование UPnP IGD для упрощения перенаправления портов

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

    На этой неделе мне пришлось купить новый ADSL-модем / беспроводной маршрутизатор, так как я старый уже не работал должным образом: вместо нормального немного разочаровывающие 6 Мбит / с, которые я обычно получаю в 'Цифровом Великобритании », он упал до нескольких сотен кбит / с с очень разными представление. Думал, может быть слегка вздутый конденсатор на плате, поэтому я заменил его, но безрезультатно. К счастью, ты теперь можно купить приличный модем ADSL / беспроводной маршрутизатор в супермаркете за невысокие деньги, так что, хотя это стоило мне 44 фунта стерлингов, это было довольно простая проблема для решения.В качестве дополнительной выгоды теперь у меня есть много более быстрая беспроводная сеть в моей квартире, так что не все так плохо.

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

    Вход в проект MiniUPnP который предоставляет клиента и демона, реализующего UPnP Технические характеристики устройства Интернет-шлюза. Нам нужен только клиент, который доступен в Ubuntu в miniupnpc упаковка.

    Затем вы можете перенаправить порт так же просто, как:

     upnpc -a 192.168.1.2 22 3333 TCP 

    Это перенаправит TCP-соединения из Интернета на порт 3333. к порту 22 на 192.168.1.2. Чтобы удалить его, используйте:

     upnpc -d 3333 TCP 

    Это немного медленнее, так как он должен обнаруживать маршрутизатор. каждый раз. Вы можете ускорить это, указав корневое описание URL. Сначала найдите:

     upnpc -l | grep desc: 

    Затем укажите его как параметр -u каждый раз, когда вы используйте upmpc , e.г .:

     upnpc -u http://192.168.1.1:80/DeviceDescription.xml -l 

    Остающийся шаг - установить соединение автоматически. В качестве мой сервер настроен через DHCP, я могу делать это каждый раз он подключается к локальной сети, помещая исполняемый скрипт в /etc/dhcp/dhclient-exit-hooks.d/ (я назвал свой upnp , но название значения не имеет). Я выбрал использовать upnpc , чтобы сообщить мне локальный IP-адрес сервер:

     #! / Bin / bash
    экспорт LC_ALL = C
    
    upnpc = "upnpc -u http: // 192.168.1.1: 80 / DeviceDescription.xml "
    external = 3333
    порт = 22
    ip = $ ($ upnpc -l | grep "IP-адрес локальной сети" | cut -d: -f2)
    
    $ upnpc -d $ внешний TCP> / dev / null 2> & 1
    $ upnpc -a $ ip $ порт $ внешний TCP> / dev / null 2> & 1 

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

    .

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

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