EdgeMAX - ¿cómo solucionar cuestiones de port forwarding (DNAT)?

Este KB es específicamente para el EdgeOS puerto adelante asistente disponible desde la versión 1.4. La mayoría de los pasos siguientes también debería aplicarse si manualmente haces reenvío de puertos (NAT de destino).

Compruebe la conectividad de entrantes

En primer lugar, confirme que el router tiene una dirección IP pública y no un RFC1918 dirección privada en (10.0.0.0-10.255.255.255) 10.0.0.0/8, 172.16.0.0/12 (172.16.0.0-172.31.255.255) y rango 192.168.0.0/16 (192.168.0.0-192.168.255.255). Usted puede verificar en la GUI en la pestaña "Consola" principal o a través de la CLI/SSH con el siguiente comando:

show interfaces
ubnt@ubnt:~$ show interfaces
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface IP Address S/L Description
--------- ---------- --- -----------
eth0 2.2.2.2/30 u/u Internet
eth1 192.168.1.1/24 u/D Local
eth2 192.168.2.1/24 u/D Local 2
lo 127.0.0.1/8 u/u

Si usted está recibiendo una dirección privada en su puerto WAN, esto significa que su módem está en modo router o su ISP está repartiendo una dirección IP privada. Usted necesitará verificar con su ISP si puedes poner tu modem en modo bridge y si usted debe conseguir un público dirección IP (por ejemplo, 2.2.2.2 arriba).

Si usted está recibiendo una dirección pública, doble Compruebe que está intentando acceder a la dirección IP pública correcta. Si accede el puerto adelante vía DNS/DDNS, intente hacer PING del host para confirmarlo es resolver a la IP correcta.

En algunas conexiones de Internet (generalmente residenciales), incluso si tienes una dirección IP pública, el ISP podría no permitirle hospedar servicios en puertos comunes como 25 (SMTP), 80(HTTP) y 443 (HTTPS). Usted puede usar tcpdump para comprobar si los paquetes llegan a su router.

 

En este ejemplo hemos añadido un puerto hacia adelante que reenvía paquetes para el puerto TCP 8282, a la dirección privada (forward-to) 192.168.1.39. Público: 8282-> 192.168.1.39:8282. El avance-a Puerto sólo es necesario si quiere traducir el puerto público a otro puerto privado. por ejemplo 8282-> 443

eth0 = WAN

eth1 = LAN 192.168.1.0/24


Ejecute el siguiente comando de la CLI y tratar de acceder a su puerto hacia adelante (desde el Internet, no localmente). Cambio 8282 a su Original (pública) Puerto hacia adelante:

sudo tcpdump -nv -i eth0 not port 22 and port 8282

La salida debería ser algo como esto (posiblemente varias páginas):

ubnt@ubnt:~$ sudo tcpdump -nv -i eth0 not port 22 and port 8282
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
00:03:24.936592 IP (tos 0x0, ttl 128, id 23813, offset 0, flags [DF], proto TCP (6), length 52)
1.1.1.1.60386  2.2.2.2.8282: Flags [S], cksum 0x333f (correct), seq 1306542023, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
00:03:24.936928 IP (tos 0x0, ttl 128, id 23814, offset 0, flags [DF], proto TCP (6), length 52)
1.1.1.1.60387 > 2.2.2.2.8282: Flags [S], cksum 0xc46c (correct), seq 1879477362, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0

Si no ve algo como el anterior, esto podría significar que tu ISP está bloqueando este puerto. Trate de usar un puerto diferente del original o consultar con su proveedor.

Compruebe la conectividad saliente

* Si su interfaz LAN es un puente, y usted está intentando acceder al puerto adelante localmente, puede que necesite poner el puente en "modo promiscuo".

configurar
set interfaces permiten promiscuo de puente br0
commit
guardar
salida


Compruebe que los paquetes están dejando la interfaz correcta, en este ejemplo eth1. Cambiar 8282 a su puerto hacia adelante-a (privado).

 

sudo tcpdump -nv -i eth1 not port 22 and port 8282
ubnt@ubnt:~$ sudo tcpdump -nv -i eth1 not port 22 and port 8282
tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes
00:04:54.241129 IP (tos 0x0, ttl 127, id 25226, offset 0, flags [DF], proto TCP (6), length 52)
1.1.1.1.60703 > 192.168.1.39.8282: Flags [S], cksum 0xd41a (correct), seq 3153276637, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
00:04:54.241337 IP (tos 0x0, ttl 127, id 25227, offset 0, flags [DF], proto TCP (6), length 52)
 1.1.1.1.60704 > 192.168.1.39.8282: Flags [S], cksum 0xaecc (correct), seq 582872416, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
00:04:54.241506 IP (tos 0x0, ttl 127, id 25228, offset 0, flags [DF], proto TCP (6), length 52)


Debería ver algo similar a esto.

Si no lo hace, asegúrese de que usted tiene "Auto Firewall" activado en Firewall/NAT-> Port Forwarding.

Compruebe su anfitrión

Verificar que la dirección de avance a IP (dispositivo/servicio privado) es correcta y que puede acceder el servicio o dispositivo a través de su dirección de LAN. Puede que desee desactivar cualquier firewall de software en su PC cuando se prueba. Además, asegúrese de que el propietario privado es uno asignado estáticamente o que tiene una reserva DHCP. De lo contrario, puede tirar de una dirección IP diferente y romper su puerto hacia adelante.

Compruebe que el dispositivo/servicio privado tiene la subred correcta y la configuración de puerta de enlace predeterminada. Una de las causas más comunes de port forwarding temas que vemos, es una puerta de enlace predeterminada incorrecta.

Por último, usted puede comprobar que Puerto reenvía los paquetes llegan a su dispositivo privado usando tcpdump o Wireshark. En este caso, 192.168.1.39 (dirección de avance) es una radio de airMAX, cuyo puerto HTTPS fue cambiado a 8282.

 

tcpdump -nv -i br0 not port 22 and port 8282
XM.v5.6-beta4.22359.140521.1845# tcpdump -nv -i br0 not port 22 and port 8282
tcpdump: listening on br0, link-type EN10MB (Ethernet), capture size 96 bytes
20:35:01.983186 IP (tos 0x0, ttl 127, id 19923, offset 0, flags [DF], proto TCP (6), length 52) 1.1.1.1.4059 > 192.168.1.39.8282: S, cksum 0x73ce (correct), 376443378:376443378(0) win 8192 <mss 1460,nop,wscale 8,nop,nop,sackOK>
20:35:02.169364 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 52) 192.168.1.39.8282 > 1.1.1.1.4059: S, cksum 0x8841 (correct), 614060057:614060057(0) ack 376443379 win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 1>
20:35:02.169669 IP (tos 0x0, ttl 127, id 19924, offset 0, flags [DF], proto TCP (6), length 52) 1.1.1.1.4060 > 192.168.1.39.8282: S, cksum 0x90ee (correct), 4032830176:4032830176(0) win 8192 <mss 1460,nop,wscale 8,nop,nop,sackOK>