Por que não consigo me conectar a computadores em minha rede usando nosso endereço IP externo? [duplicado]

3

Minha rede doméstica é atendida por uma linha ADSL. O modem está em modo de ponte. O roteador executa o PPPoE.

Três computadores estão conectados ao roteador: duas caixas com fio do Windows 7 e uma caixa do Ubuntu Linux sobre wifi.

Os computadores estão hospedando várias formas de serviços, incluindo FTP e HTTP. O roteador tem o encaminhamento de porta mapeado das portas relevantes para os endereços IP reservados para os computadores.

Se eu tentar conectar-me a um servidor dentro da rede, como ftp://67.xx.xxx.xxx de dentro da rede, a solicitação expira. No entanto, se eu me conectar usando o endereço mapeado internamente, como ftp://192.168.0.100 , tudo está bem.

Isso é um incômodo para configurar um software, especialmente no laptop que precisa ser capaz de ligar para casa de qualquer lugar, e eu simplesmente não tenho experiência suficiente com redes para saber por que isso é ocorrendo até mesmo para ter uma ideia se ela pode ser resolvida ou não.

edit: Deve-se notar que os servidores podem ser acessados fora da rede - digamos, no starbucks do outro lado da rua - perfeitamente bem, usando o endereço fornecido pelo ISP e a porta apropriada.

    
por Kivin 01.09.2012 / 04:58

1 resposta

1

O encaminhamento de porta reescreve apenas o endereço de destino. Isso funciona perfeitamente para fontes externas. Veja por que não funciona para fontes internas:

  1. Você tenta se conectar ao seu endereço externo. Você forma um pacote com uma fonte interna e um destino externo.

  2. O pacote leva sua rota padrão ao seu roteador.

  3. A porta do roteador encaminha o pacote, alterando o endereço de destino para o endereço interno do servidor.

  4. O servidor recebe o pacote com um endereço de origem interno (a máquina de origem) e seu endereço de destino interno (o servidor).

  5. O servidor forma um pacote de resposta com um endereço de origem interno e um endereço de destino interno.

  6. Como o destino é local, esse pacote não usa a rota padrão do servidor. Vai diretamente para a máquina de origem.

  7. A máquina de origem recebe um pacote de resposta com um endereço de origem interno, mas esperava uma resposta com um endereço de origem externo (a máquina que estava tentando acessar).

  8. A máquina de origem ignora o pacote e a conexão não funciona.

Para que isso funcione, você precisa de "hairpin NAT", no qual os endereços de origem e de destino são reescritos para que os pacotes de resposta do servidor sejam direcionados de volta ao roteador, e não à origem.

    
por 01.09.2012 / 07:16