Perforación de agujeros (redes)


De Wikipedia, la enciclopedia libre
  (Redirigido desde la perforación de orificios NAT )
Saltar a navegación Saltar a búsqueda

La perforación (o, a veces, la perforación ) es una técnica en las redes de computadoras para establecer una conexión directa entre dos partes en las que una o ambas están detrás de firewalls o enrutadores que usan traducción de direcciones de red (NAT). Para hacer un agujero, cada cliente se conecta a un servidor de terceros sin restricciones que almacena temporalmente la dirección y el puerto externos e internosinformación para cada cliente. Luego, el servidor transmite la información de cada cliente al otro y, utilizando esa información, cada cliente intenta establecer una conexión directa; como resultado de las conexiones que utilizan números de puerto válidos, los cortafuegos o enrutadores restrictivos aceptan y reenvían los paquetes entrantes en cada lado.

La perforación de agujeros no requiere ningún conocimiento de la topología de la red para funcionar. ICMP perforación , UDP agujero de perforación y perforación de orificios TCP utilizan, respectivamente, de mensajes de control de Internet , de datagramas de usuario y protocolos de control de transmisión . Utilizando la perversa perforación de TCP, es posible enviar paquetes SYN comprimidos a través de una ruta ACK común.

Visión general

Los dispositivos en red con direcciones IP públicas o accesibles a nivel mundial pueden crear conexiones entre sí fácilmente. Los clientes con direcciones privadas también pueden conectarse fácilmente a servidores públicos, siempre que el cliente detrás de un enrutador o firewall inicie la conexión. Sin embargo, se requiere perforar agujeros (o alguna otra forma de NAT transversal ) para establecer una conexión directa entre dos clientes que residen detrás de diferentes firewalls o enrutadores que usan traducción de direcciones de red (NAT) .

Ambos clientes inician una conexión a un servidor sin restricciones, que toma nota de la información del punto final y de la sesión, incluida la IP pública y el puerto junto con la IP y el puerto privados. Los cortafuegos también anotan los puntos finales para permitir que las respuestas del servidor vuelvan a pasar. A continuación, el servidor envía la información de la sesión y el punto final de cada cliente al otro cliente o par. Cada cliente intenta conectarse a su par a través de la dirección IP y el puerto especificados que el firewall del par tiene abierto para el servidor. El nuevo intento de conexión abre un agujero en el firewall del cliente, ya que el punto final ahora se abre para recibir una respuesta de su par. Dependiendo de las condiciones de la red, uno o ambos clientes pueden recibir una solicitud de conexión. Intercambio exitoso de un nonce de autenticaciónentre ambos clientes indica la finalización de un procedimiento de perforación. [1]

Ejemplos de

Los productos de VoIP , las aplicaciones de juegos en línea y el software de redes P2P utilizan perforaciones.

  • El software de telefonía Skype utiliza perforaciones para permitir que los usuarios se comuniquen con uno o más usuarios de forma audible. [2]
  • Los juegos multijugador en línea de ritmo rápido pueden usar una técnica de perforación de agujeros o requerir que los usuarios creen un agujero de alfiler permanente en el firewall para reducir la latencia de la red.
  • Las aplicaciones VPN como Hamachi o ZeroTier utilizan perforaciones para permitir a los usuarios conectarse directamente a los dispositivos suscritos detrás de firewalls.
  • El software de intercambio de archivos de igual a igual descentralizado se basa en la perforación de agujeros para la distribución de archivos.

Requisitos

La perforación de orificios confiable requiere una traducción de punto final consistente y, para múltiples niveles de NAT, traducción de horquilla.

Cuando una conexión saliente desde un punto final privado pasa a través de un cortafuegos, recibe un punto final público (dirección IP pública y número de puerto) y el cortafuegos traduce el tráfico entre ellos. Hasta que se cierra la conexión, el cliente y el servidor se comunican a través del punto final público y el firewall dirige el tráfico de manera apropiada. La traducción coherente de puntos finales reutiliza el mismo punto final público para un punto final privado determinado, en lugar de asignar un nuevo punto final público para cada nueva conexión.

La traducción de horquilla crea una conexión de bucle de retorno entre dos de sus propios puntos finales privados cuando reconoce que el punto final de destino es él mismo. Esta funcionalidad es necesaria para la perforación de agujeros solo cuando se usa dentro de un NAT de múltiples capas. [1]

Ver también

Referencias

  1. ^ a b Ford, Bryan; Srisuresh, Pyda; Kegel, Dan (2005), Comunicación entre pares a través de traductores de direcciones de red
  2. ^ Schmidt, Jürgen (2006), El truco del agujero