O servidor acha que um pedido está vindo do meu gateway

1

Estou tentando colocar um servidor em funcionamento para implantar meu serviço em nuvem. A maioria das minhas operações é baseada em ip do cliente. Quando eu usava godaddy, o script que retornava o ip do cliente funcionava bem (php, variável $ _SERVER). Agora no meu servidor, ele está retornando 192.168.1.1 (meu roteador / gateway). Por que é isso? Estou executando o Apache, PHP5, Ubuntu Server 12.04 LTS. Agradeço antecipadamente a ajuda.

    
por Osmium USA 25.02.2013 / 00:09

2 respostas

1

Você está usando o NAT hairpin, que deve reescrever o endereço IP de origem. Se você for se conectar a um endereço IP externo por dentro, o endereço IP de origem sempre terá que ser o endereço IP do gateway. Caso contrário, os pacotes de retorno nunca retornariam à máquina de origem.

Meu conselho para você é simplesmente não fazer isso. Se você deseja se conectar a uma máquina local, use seu endereço IP local.

Esta resposta explica o mesmo problema.

Aqui, o que aconteceria se você não usasse o SNAT:

  1. A solicitação é originada em uma máquina com apenas um endereço IP privado, portanto, ela possui um endereço IP de origem privada.

  2. O destino não é local, portanto, a solicitação é enviada ao gateway.

  3. O gateway reescreve apenas o destino (isso está errado!) e envia o pacote para o servidor.

  4. O servidor vê uma consulta de um endereço IP local, então envia a resposta para um endereço IP local.

  5. A máquina local vê uma resposta de um endereço IP local para um pacote enviado para um endereço IP remoto e ignora a resposta.

Hairpin NAT é uma forma de NAT duplo, usando SNAT e DNAT. Não pode funcionar sem SNAT. As respostas também devem ser NATted, o que significa que a fonte tem que ser NATted para obter as respostas para o gateway.

    
por 25.02.2013 / 01:07
-1

Verifique com o tcpdump como são os pacotes que chegam ao servidor. Talvez o SNAT tenha sido ativado no gateway.

Editar 1

Refere-se ao caso em que o acesso é de fora da rede local, para que o SNAT seja possível, mas não necessário.

    
por 25.02.2013 / 00:44