EdgeMAX - como solucionar problemas de encaminhamento (DNAT) Porto?

Este KB é especificamente para o EdgeOS Porto frente assistente disponível desde a versão 1.4. A maioria das etapas a seguir deve também se aplicam se você estiver fazendo manualmente "port forwarding" (NAT de destino).

Seleção para conectividade de entrada

Primeiro, confirmar que o seu roteador tem um endereço IP público e não um RFC1918 endereço privado na 10.0.0.0/8 (10.0.0.0-10.255.255.255), 172.16.0.0/12 (172.16.0.0-172.31.255.255) e o intervalo de 192.168.0.0/16 (192.168.0.0-192.168.255.255). Você pode verificar no GUI na guia "Dashboard" principal ou via o CLI/SSH com o comando a seguir:

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

Se você está recebendo um endereço privado na sua porta WAN, isto significa que seu modem está no modo roteador e/ou o seu ISP está distribuindo um endereço IP privado. Você precisará verificar com seu provedor se você pode colocar seu modem em modo bridge e se você deve estar recebendo um pública endereço IP (por exemplo, 2.2.2.2 acima).

Se você está recebendo um endereço público, verifique se você está tentando acessar o endereço IP público correto o dobro. Se você está acessando a porta para a frente através de DNS/DDNS, tente ping host para confirmar está resolvendo o IP correto.

Em algumas conexões de Internet (geralmente residenciais), mesmo se você tiver um endereço IP público, seu ISP pode não permitir você para hospedar serviços em comuns portas 25 (SMTP), 80(HTTP) e 443 (HTTPS). Você pode usar tcpdump para verificar se os pacotes estão atingindo seu roteador.

 

Neste exemplo, nós adicionamos uma porta para a frente que encaminha os pacotes para porta TCP 8282, para o endereço privado (para diante-para) 192.168.1.39. Público: 8282-> 192.168.1.39:8282. A porta para a frente-para só precisa ser definida se você quiser traduzir o porto público para uma porta diferente de privada. por exemplo 8282-> 443

eth0 = WAN

eth1 = LAN 192.168.1.0/24


Execute o seguinte comando da CLI e tente acessar a sua porta para a frente (da Internet, não localmente). Mudança 8282 para seu Original Porto (público) para a frente:

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

A saída deve ser algo como isto (possivelmente várias 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

Se você não vê algo parecido acima, isso pode significar seu ISP está bloqueando essa porta. Tente usar uma porta diferente do original ou verificar com seu provedor.

Seleção para conectividade de saída

* Se sua interface LAN é uma interface em ponte, e você está tentando acessar a porta para a frente, localmente, você pode precisar colocar a ponte em "modo promíscuo".

configurar o
conjunto interfaces enable promíscuo de ponte br0
commit
salvar
sair


Verifica que os pacotes estão deixando a interface correta, neste exemplo eth1. Alterar 8282 a sua porta para diante-para (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)


Você verá algo semelhante a isto.

Se não o fizer, certifique-se de que você tem "Auto Firewall" habilitado no Firewall/NAT-> Port Forwarding.

Verifique seu anfitrião

Verifique se o endereço IP Forward-a (dispositivo/serviço privado) está correto e que você pode acessar o dispositivo/serviço através do seu endereço LAN. Você pode querer desabilitar qualquer firewalls de software no seu PC quando o teste. Além disso, certifique-se que o host privado é atribuído estaticamente ou que tem uma reserva de DHCP. Caso contrário, pode puxar um endereço IP diferente e quebrar a sua porta para a frente.

Verificar se o dispositivo/serviço privado a sub-rede correta e configurações do gateway padrão. Uma das causas mais comuns de problemas que nós vemos, de encaminhamento de porta é um gateway padrão incorreto.

Finalmente, você pode verificar que a porta pacotes encaminhada estão atingindo seu dispositivo particular usando tcpdump ou Wireshark. Neste caso, 192.168.1.39 (para a frente-para endereço) é uma rádio airMAX, cuja porta HTTPS foi mudada para 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>