Em que camada de rede estão os dados localizados que permitem que um gateway (usando NAT) saiba para qual computador um pacote é destinado?

1

Principais perguntas:

  1. Em que camada de rede estão os dados localizados que permitem que um gateway (usando NAT) saiba para qual computador um pacote é destinado?

  2. Alguém poderia explicar como o processo funciona? Ao explicar o processo, seria possível responder às seguintes questões / suspeitas: Eu suponho que os dados (que distingue a que pacotes de entrada do PC precisam ser enviados dentro de uma rede) conversão é única para cada dispositivo de gateway? (Caso contrário, você poderia descobrir de fora da rede para qual computador em uma rede um pacote serve, mas, novamente, isso talvez não seja necessariamente um problema de segurança?)

por Bentley4 15.05.2012 / 00:45

3 respostas

2

Para qualquer conexão TCP ou UDP, existem quatro componentes que compõem um endereçamento de um pacote. O endereço IP de origem, o endereço IP de destino, a porta de origem e a porta de destino.

O IP de destino é o servidor ao qual você está se conectando e a porta de destino é a porta à qual você está se conectando, como a porta TCP 80 para uma conexão http. A porta de origem é "efêmera", o que significa que ela é escolhida de um intervalo e não possui um significado específico. O intervalo está entre 1024-65535. A seleção da porta depende do sistema operacional, mas não importa muito qual porta é escolhida.

O endereço IP de origem é o PC que origina a conexão. Então vamos dizer que a conexão é para 222.222.222.222:80 e temos dois PCs conectados internamente a este endereço IP, 10.1.1.1 e 10.1.1.2

Assim como os pacotes são originados, eles podem ser endereçados assim:

10.1.1.1:3434 -> 222.222.222.222:80
10.1.1.2:5455 -> 222.222.222.222:80

Os pacotes de resposta estão invertidos, assim:

222.222.222.222:80 -> 10.1.1.1:3434 
222.222.222.222:80 -> 10.1.1.2:5455 

Assim, podemos ver que a porta de origem é o que permite que o pacote de retorno chegue ao originador.

Quando passamos por um roteador NAT, o IP de origem é alterado para o IP do roteador - nesse caso, 111.111.111.111. Então os pacotes são assim:

111.111.111.111:3434 -> 222.222.222.222:80
111.111.111.111:5455 -> 222.222.222.222:80

Assim, desde que o roteador mantenha um controle da porta de origem de uma conexão, ele saberá que os pacotes de resposta para a porta 3434 devem ser enviados para 10.1.1.1. Esta é a tabela de tradução do NAT.

Mas e se os dois PCs escolhessem a mesma porta de origem?

10.1.1.1:3434 -> 222.222.222.222:80
10.1.1.2:3434 -> 222.222.222.222:80

Os pacotes NATted ficariam assim:

111.111.111.111:3434 -> 222.222.222.222:80
111.111.111.111:3434 -> 222.222.222.222:80

Portanto, um pacote de resposta para o 3434 destinado a 10.1.1.1 é indistinguível do pacote destinado a 10.1.1.2.

Para resolver isso, o roteador não apenas alterará o endereço IP de origem, mas também a porta de origem. Em seguida, o roteador pode garantir que cada saída de conexão tenha uma porta de origem única e mantenha uma tabela de conversão para alterar o IP e a porta dos pacotes de resposta para que eles sejam enviados para o originador correto.

Para responder à sua pergunta de segurança, realisticamente, somente o roteador precisa alterar a porta de origem no caso de uma colisão, mas a maioria alterará a porta de origem em todos os casos e escolherá uma fonte aleatória porta. Isso dificulta a previsão do que a próxima porta de origem escolhida pode ser e dificulta que um invasor injete pacotes na sequência.

    
por 15.05.2012 / 01:33
1

Normalmente, o em um roteador doméstico NAT opera na camada 4. No TCP e em algumas conexões UDP, o roteador verifica as portas de origem e destino para criar uma tabela de conversão NAT para mapear o endereço IP real e porta para o endereço IP natted e porta. Isso é chamado de sobrecarga NAT ou PAT (tradução de endereço de porta). Em alguns protocolos, como o DNS, o roteador examinará o pacote e usará os dados da camada do aplicativo (o nome de domínio que está sendo consultado) para determinar para qual endereço enviar a resposta do DNS. Este é um exemplo de uma tabela de conversão NAT obtida de um Cisco ASA:

PAT Global 216.1.250.22(400) Local 172.16.1.102(123)
PAT Global 216.1.250.22(9370) Local 172.16.1.107(13286)
PAT Global 216.1.250.22(45935) Local 172.16.1.107(36159)
PAT Global 216.1.250.22(60152) Local 172.16.1.107(10736)
PAT Global 216.1.250.22(322) Local 172.16.1.107(123)
PAT Global 216.1.250.22(48642) Local 172.16.1.44(59136)
PAT Global 216.1.250.22(24719) Local 172.16.1.44(59764)
PAT Global 216.1.250.22(17045) Local 172.16.1.44(57830)
PAT Global 216.1.250.22(44616) Local 172.16.1.44(59100)
PAT Global 216.1.250.22(19426) Local 172.16.1.44(57632)
PAT Global 216.1.250.22(38447) Local 172.16.1.44(58904)
PAT Global 216.1.250.22(6053) Local 172.16.1.44(59958)
PAT Global 216.1.250.22(49473) Local 172.16.1.44(59323)
PAT Global 216.1.250.22(55193) Local 172.16.1.44(58597)
PAT Global 216.1.250.22(38978) Local 172.16.1.44(59170)
    
por 15.05.2012 / 01:06
1

Basicamente para conexões de saída , o roteador usa uma "tabela de conversão NAT", que é gerada dinamicamente. Por exemplo. uma vez que a conexão de saída é iniciada, uma entrada relevante é adicionada a essa tabela (listando IP interno do computador / porta, porta de saída usada no roteador, IP / porta de destino, etc). Naturalmente, essa tabela é mantida na memória do roteador e não é enviada para nenhum lugar, portanto, os níveis de OSI não se aplicam. Quando o pacote de entrada chega, o roteador consulta essa tabela para determinar como lidar com isso ainda mais.

Para conexões recebidas , o roteador precisa usar uma configuração predefinida, que conecta um serviço em um determinado computador interno a uma porta (por exemplo, todas as conexões de entrada para a porta TCP 80 para a porta ABCD do computador interno 8080, etc.) Mais uma vez, esta informação nunca é enviada explicitamente no fio.

    
por 15.05.2012 / 01:20