Digamos que tenemos un servidor STUN en la dirección stun_addr
y un servidor en la dirección srv_addr
. Usar STUN suele ser algo como esto:
- El cliente se conecta al servidor STUN a
stun_addr
través del dispositivo NAT. El dispositivo NAT traduce la dirección de origen anatted_addr_1
- El servidor STUN le dice al cliente la dirección desde la que recibió la conexión, que es
natted_addr_1
- El cliente se pone en contacto con el servidor a
srv_addr
través del dispositivo NAT y le dice al sistema externo que lo use natted_addr_1
si quiere llegar al cliente
- El sistema externo envía algo al cliente usando
natted_addr_1
Esto solo funcionará si el dispositivo NAT lo utiliza natted_addr_1
tanto para la comunicación con el servidor STUN como para el otro sistema externo. Más específicamente, solo funciona si el dispositivo NAT entregará los paquetes que llegan en el paso 4 al cliente.
Un dispositivo NAT simétrico utilizará una traducción diferente en los pasos 1 y 3 porque la dirección de destino del tráfico es diferente. En el paso 3, la dirección de origen en los paquetes al servidor se traduce a otra dirección natted_addr_2
.
El dispositivo NAT solo conoce estas combinaciones de direcciones de origen y destino y solo permitirá que vuelvan a entrar:
- De
stun_addr
anatted_addr_1
- De
srv_addr
anatted_addr_2
Desafortunadamente, se le ha dicho al servidor que use, natted_addr_1
pero los paquetes srv_addr
destinados natted_addr_1
serán rechazados por el dispositivo NAT debido a la Dirección NAT: restricción de puerto en el lugar.
Para ser más correctos, 'dirección' debe reemplazarse por 'dirección / puerto' en esta respuesta, porque los dispositivos NAT funcionarán con la combinación de dirección IP y números de puerto.