Введение

Сетевой протокол для сопоставления портов

Протокол управления устройством интернет-шлюза (UPnP IGD) — это протокол на основе UPnP, предназначенный для сопоставления портов в сетях с трансляцией сетевых адресов (NAT), поддерживаемый некоторыми NAT-совместимыми маршрутизаторами. Это распространенный коммуникационный протокол для автоматической настройки перенаправления портов и является частью стандарта ISO/IEC, а не стандарта Internet Engineering Task Force.

UPnP IGDv2

UPnP IGDv2, опубликованный в 2010 году, добавил поддержку IPv6 и устранил неверное толкование нулевого значения как бесконечного срока аренды. Спецификации обратно совместимы, однако существуют проблемы совместимости, например, с клиентом Microsoft.

Вопросы совместимости

Существует множество проблем совместимости из-за различных интерпретаций обширных, фактически обратно совместимых спецификаций IGDv1 и IGDv2. Одна из них связана с UPnP IGD-клиентом, интегрированным в современные системы Microsoft Windows и Xbox, работающими с сертифицированными маршрутизаторами IGDv2. Проблема совместимости сохраняется с момента появления IGDv1-клиента в Windows XP в 2001 году, и усугубляется маршрутизаторами IGDv2, не имеющими обходного пути, что делает невозможным сопоставление портов. Если UPnP используется исключительно для управления сопоставлением портов маршрутизатора и открытия портов, существуют альтернативные, более новые, значительно более простые и легковесные протоколы, такие как PCP и NAT PMP, оба из которых были стандартизированы IETF в виде RFC. Пока что эти альтернативы не демонстрируют проблем совместимости между различными клиентами и серверами, однако их распространение остается невысоким. Среди потребительских маршрутизаторов, только AVM и проекты программного обеспечения с открытым исходным кодом OpenWrt, OPNsense и pfSense в настоящее время поддерживают PCP как альтернативу UPnP. Реализация UPnP IGDv2 и PCP в Fritz!Box от AVM с момента своего появления была подвержена многочисленным ошибкам и часто не работает.

Риски для безопасности

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