Como um pacote IP sabe qual gateway usar?

11

Suponha que dois gateways existam na mesma rede. Se bem entendi, a tabela de roteamento IP no computador do remetente decide quais pacotes serão roteados através de qual gateway.

As tabelas de roteamento IP contêm o endereço IP do gateway.

Como esse endereço IP do gateway é usado ao enviar pacotes IP?

Simon Farshid
fonte
1
O pacote não "sabe", o roteador decide para qual gateway enviar, através de qualquer link existente entre o roteador e o gateway escolhido. (Como as respostas apontam, ethernet é um bem conhecido e comum de camada 2 para o tráfego IP.)
Peter Cordes

Respostas:

13

TL; DR: em um quadro Ethernet que mantém esse pacote TCP / IP

O servidor-> switch-> o tráfego do roteador, bem como o servidor-> switch-> o tráfego do servidor, é onde o endereçamento IP na verdade não desempenha nenhum papel significativo. É o mundo do protocolo subjacente, provavelmente a Ethernet. Portanto, é um mundo que funciona com endereçamento MAC.

Portanto, você só precisa resolver a confusão de que um gateway padrão é um endereço IP. É, meio que ... na inicialização ... mas esse parâmetro de IP do gateway é necessário apenas para fazer uma coisa, ou seja: quem tem 192.168.1.1 por aqui? A resposta vem que o gateway é MAC 88: 99: aa: bb: cc: dd: ee: ff. (Essa é a consulta / resposta do ARP, o tradutor entre os dois mundos.) O pacote vai para o MAC no nível Ethernet, apesar de poder conter um destino diferente no nível IP.

Portanto, o pacote é marcado para ir para um gateway escolhido, codificando-o no campo "MAC de destino" do quadro ethernet. O campo determina qual gateway da rede o obterá, se houver vários gateways. (O "quadro" é uma cápsula subjacente que contém o pacote ou parte do pacote.)

kubanczyk
fonte
2
Eu iria além e diria que é a única resposta aqui que realmente responde à pergunta.
Peter Green
3
Além disso, não é apenas um gateway padrão ao qual isso se aplica, ele se aplica ao endereço "próximo salto" para qualquer entrada na tabela de roteamento.
Peter Green
2
Obviamente, existem outros protocolos de camada 1/2 além da Ethernet que são usados. Os protocolos de LAN IEEE têm endereços MAC, mas outros protocolos usam algo ou nada mais.
Ron Maupin
6

O cabeçalho do datagrama IP contém apenas informações de endereço da origem e do destino. Com base no destino, o roteador deve saber para onde encaminhar o pacote a seguir e essas informações são armazenadas na tabela de roteamento.

Pode haver informações de rota estáticas para o endereço ou sua sub-rede e o gateway padrão é usado para o resto. Geralmente é o caso na rede local: pode haver roteamento estático para outras redes locais e gateway padrão para o restante, ou seja, a Internet. No caso de vários gateways padrão, como rotas para 0.0.0.0ou ::, o ativo é escolhido por seu valor de preferência ou métrico .

As coisas ficam mais complicadas quando existem várias rotas entre os destinos, como existem entre os ISPs no nível da Internet. Existem vários métodos para compartilhar as informações entre os roteadores: RIP ( Routing Information Protocol ), OSPF ( Open Shortest Path First ) e BGP ( Border Gateway Protocol ). Independentemente de como essas informações sejam compartilhadas, a tabela de roteamento conhece o próximo salto e o pacote IP está ciente apenas de seu destino final.

Esa Jokinen
fonte
1
Também vale mencionar o roteamento baseado em políticas, onde diferentes tabelas de roteamento podem ser selecionadas com base em vários critérios, como IP de origem ou marca de firewall.
Bratchley
Não se esqueça de explicar que a correspondência de prefixo mais longa tem precedência sobre todo o resto quando houver duas correspondências possíveis.
Ron Maupin 24/03
A questão não é sobre como o roteador encaminha o pacote, mas como o remetente o envia ao roteador correto.
Barmar
@ Barmar: A versão original desta pergunta poderia ter sido interpretada de duas maneiras, e isso respondeu à outra. O processo de escolha do roteador com base na tabela de roteamento é o mesmo na máquina de origem. Portanto, ainda acho essa resposta útil enquanto a outra coloca uma camada abaixo. Eles se complementam.
Esa Jokinen 27/03
Acabei de verificar o histórico de edições. Não vejo diferença relevante na versão original. A questão é como o pacote chega ao roteador determinado a partir da tabela de roteamento.
Barmar
2

Uma possibilidade é que a rede esteja configurada com um FRHP (protocolo de redundância de primeiro salto), como VRRP ou HSRP. O FHRP possui um endereço de gateway virtual usado pelos hosts e o tráfego enviado para o endereço virtual é captado por um dos roteadores físicos, que encaminham o tráfego. Se o roteador principal falhar, um roteador secundário poderá determinar isso e assumir o encaminhamento dos pacotes.


De qualquer forma, os pacotes não determinam o caminho a seguir. Cada pacote é encaminhado individualmente e independentemente de quaisquer outros pacotes, com base nas informações na tabela de roteamento de um roteador, e os pacotes para o mesmo destino da mesma fonte podem seguir caminhos diferentes se uma tabela de roteamento mudar.

Os roteadores aprendem rotas de três maneiras:

  1. Redes diretamente conectadas
  2. Rotas configuradas estaticamente
  3. Através de um protocolo de roteamento dinâmico
Ron Maupin
fonte
2

Resposta curta e simples: ele não é codificado no pacote ou é o endereço de destino Ethernet, dependendo de como você o vê. A pilha IP / Ethernet analisa qual gateway lida com o endereço IP de destino, envia uma solicitação ARP para que o endereço IP do gateway obtenha seu endereço MAC e, em seguida, envia o pacote para o endereço MAC do gateway. O gateway encaminha o pacote e faz a mesma coisa novamente. Isso pressupõe uma rede Ethernet.

Eu acho que respondi o que você está perguntando. Uma vez eu me perguntei a mesma coisa. Sua pergunta também pode ser interpretada como um host, dada uma tabela de roteamento específica, decide para qual gateway enviar um pacote de saída.

Alex Cannon
fonte
0

Obviamente, um detalhe que é analisado é se uma rota corresponde. Se estou enviando para 192.0.2.55/24 e uma rota estiver disponível para o tráfego para 10.55.0.0/16, essa rota será ignorada porque não se aplica.

O próximo critério geralmente analisado é ter rotas mais específicas com prioridade sobre rotas mais gerais. Por rota "específica", quero dizer sub-redes menores. Em outras palavras, números maiores ao usar a notação / CIDR e máscaras de sub-rede maiores ao usar a notação "máscara de sub-rede". Em outras palavras, redes de destino com menos endereços possíveis.

Portanto, um "gateway padrão", também conhecido como "gateway de último recurso", normalmente especifica um destino para todo o tráfego na rede 0.0.0.0/0. Qualquer rota para uma rede menor será "mais específica" do que isso e terá prioridade. Portanto, 192.0.2.0/24 terá mais prioridade.

Terceiro, as rotas normalmente têm outro campo chamado "métrica" ​​ou, às vezes, um nome diferente como "prioridade". Se você tiver várias redes do mesmo tamanho, isso poderá causar um impacto.

Esses valores "métricos" podem ser gerados automaticamente (por exemplo, como uma rede de alta velocidade é usada para mais tráfego), mas podem ser ajustados manualmente.

Onde estão as informações sobre o gateway a serem codificadas dentro dos pacotes IP enviados?

Os pacotes IP não incluem nenhuma informação sobre roteamento, exceto para especificar o endereço IP de destino. Os detalhes do roteamento são determinados pelo equipamento que lida com o roteamento ao longo do caminho, e esses detalhes geralmente não são colocados em um pacote IP. (Portanto, o equipamento não procura esses detalhes, pois não existe. Como o equipamento não procura essas informações, seria inútil tentar incluir essas informações.)

A página 11 da RFC 791 mostra uma tabela no estilo "ARTE ASCII" das informações que estão em um pacote IP. Após essa tabela, esse documento mostra detalhes (por exemplo, a seção "Opções" é descrita na página 15).

TOOGAM
fonte