El Protocolo de control de dispositivo de puerta de enlace de Internet ( UPnP IGD ) es un protocolo basado en UPnP para mapear puertos en configuraciones de traducción de direcciones de red (NAT), compatible con algunos enrutadores habilitados para NAT . Es un protocolo de comunicaciones común para configurar automáticamente el reenvío de puertos y es parte de un estándar ISO / IEC [1] [2] [3] [4] [5] [6] [7] en lugar de un estándar del Grupo de trabajo de ingeniería de Internet .
Las aplicaciones que utilizan redes peer to peer , juegos multijugador y programas de asistencia remota necesitan una forma de comunicarse a través de puertas de enlace domésticas y comerciales. Sin IGD, uno tiene que configurar manualmente la puerta de enlace para permitir el tráfico, un proceso que es propenso a errores y consume mucho tiempo. UPnP viene con una solución para la traducción de direcciones de red transversales ( traversal NAT ) que implementa IGD.
IGD facilita la realización de lo siguiente:
UPnP IGDv2, publicado en 2010, agregó soporte para IPv6 y corrigió el concepto erróneo de un tiempo de arrendamiento infinito con un valor de 0. Las especificaciones son compatibles con versiones anteriores, pero existen problemas de compatibilidad, por ejemplo, con el cliente de Microsoft.
Existen numerosos problemas de compatibilidad debido a las diferentes interpretaciones de las especificaciones IGDv1 e IGDv2, que son compatibles con versiones anteriores y que son muy amplias. Uno de ellos es el cliente IGD UPnP integrado con los sistemas Microsoft Windows y Xbox actuales con enrutadores IGDv2 certificados. El problema de compatibilidad todavía existe desde la introducción del cliente IGDv1 en Windows XP en 2001, y un enrutador IGDv2 sin una solución alternativa que hace imposible la asignación de puertos del enrutador. [8]
Si UPnP sólo se utiliza para controlar las asignaciones de puertos y los agujeros de los enrutadores, existen protocolos alternativos, más nuevos, mucho más simples y livianos, como PCP y NAT-PMP , ambos estandarizados como RFC por la IETF. Aún no se sabe que estas alternativas tengan problemas de compatibilidad entre diferentes clientes y servidores, pero la adopción sigue siendo baja. Para los enrutadores de consumo, actualmente sólo se sabe que AVM y los proyectos de software de enrutador de código abierto OpenWrt , OPNsense y pfSense admiten PCP como alternativa a UPnP. La implementación de Fritz!Box UPnP IGDv2 y PCP de AVM ha tenido muchos errores desde su introducción. En muchos casos, no funciona. [9] [10] [11] [12] [13]
El malware puede explotar el protocolo IGD para poner los dispositivos conectados bajo el control de un usuario externo. [14] [15] El gusano Conficker es un ejemplo de una botnet creada utilizando este vector . [14]
El host puede descubrir dispositivos IGDv1/IGDv2 disponibles con solo una búsqueda M para IGDv1 en la red a través del Protocolo de descubrimiento de servicios simple (SSDP), que luego se puede controlar con la ayuda de un protocolo de red como SOAP . Se envía una solicitud de descubrimiento a través de HTTP y el puerto 1900 a la dirección de multidifusión IPv4 239.255.255.250 (para las direcciones IPv6, consulte el Protocolo de descubrimiento de servicios simple (SSDP)):
M-BÚSQUEDA * HTTP/1.1ANFITRIÓN: 239.255.255.250:1900HOMBRE: "ssdp:discover"MX: 2ST: urn:schemas-upnp-org:dispositivo:InternetGatewayDevice:1