Esse é um problema comum causado pela incapacidade de executar um NAT com gancho de cabelo. A maioria dos roteadores domésticos baratos lida com isso simplesmente ativando o encaminhamento de porta. No entanto, os roteadores mais avançados realmente precisam de regras separadas para resolver o problema.
Suas regras NAT normais funcionam apenas fora da sua rede. Se você tentar se conectar de dentro da sua rede, há um problema de NAT.
Considere isto...
- Você tem
Server Ana sua rede local com IP 10.10.10.10.
- Você tem
Computer Ana sua rede local com IP 10.10.10.20.
- Você tem
Router Aum LANIP de 10.10.10.1e um WANIP de 11.11.11.11.
- Você tem
Computer Bfora da sua rede com IP 12.12.12.12.
- Você
port 22enviou do seu IP da WAN para Server A.
Fora da sua rede, o tráfego fica assim:
O computador B tenta se conectar ao servidor A:
Source IP: 12.12.12.12 Src Port: 12345
Destination IP: 11.11.11.11 Dest Port: 22
O NAT do roteador A envia o pacote para o servidor A:
Source IP: 12.12.12.12 Src Port: 12345
Destination IP: 10.10.10.10 Dest Port: 22
O servidor A responde ao computador B:
Source IP: 10.10.10.10 Src Port: 22
Destination IP: 12.12.12.12 Dest Port: 12345
O roteador A envia NAT ao pacote e o envia ao computador B:
Source IP: 11.11.11.11 Src Port: 22
Destination IP: 12.12.12.12 Dest Port: 12345
Tudo funciona como pretendido. Agora, considere o mesmo cenário, mas de dentro da sua rede:
O computador A tenta se conectar ao servidor A:
Source IP: 10.10.10.20 Src Port: 12345
Destination IP: 11.11.11.11 Dest Port: 22
O NAT do roteador A envia o pacote para o servidor A:
Source IP: 10.10.10.20 Src Port: 12345
Destination IP: 10.10.10.10 Dest Port: 22
O servidor A responde ao computador A:
Source IP: 10.10.10.10 Src Port: 22
Destination IP: 10.10.10.20 Dest Port: 12345
O IP de origem está na mesma sub-rede que o IP de destino. Server Anão envia o pacote de volta ao roteador, ele o envia diretamente para Computer A. Computer Adescarta o pacote, porque ele veio 10.10.10.10e enviou o pacote original para 11.11.11.11. Ele espera que o pacote retorne 11.11.11.11.
Para resolver o problema, você deve criar uma segunda regra NAT mais específica para corresponder ao tráfego originado dentro da sua rede. Ele virá após a regra NAT original. Você precisará fazer um NAT de origem parecido com este:
srcnat src-address=10.10.10.0/24 dst-address=10.10.10.10 dst-port=22 out-interface=LAN action=masquerade
Agora, vejamos isso novamente:
O computador A tenta se conectar ao servidor A:
Source IP: 10.10.10.20 Src Port: 12345
Destination IP: 11.11.11.11 Dest Port: 22
O NAT do roteador A envia o pacote para o servidor A:
Source IP: 10.10.10.1 Src Port: 12345
Destination IP: 10.10.10.10 Dest Port: 22
O servidor A responde ao computador A:
Source IP: 10.10.10.10 Src Port: 22
Destination IP: 10.10.10.1 Dest Port: 12345
O NAT do roteador A envia o pacote para o computador A:
Source IP: 11.11.11.11 Src Port: 22
Destination IP: 10.10.10.20 Dest Port: 12345
Tudo funciona como pretendido.
Como você implementa essa segunda regra NAT depende do hardware e do software do roteador. Sua milhagem pode variar.