
Suponha que existam dois gateways na mesma rede. Se bem entendi, a tabela de roteamento IP no computador do remetente decide quais pacotes serão roteados por 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?
Responder1
TL;DR: o endereço do gateway é armazenado apenas em um quadro Ethernet que contém esse pacote TCP/IP
O tráfego servidor->switch->roteador, bem como o tráfego servidor->switch->servidor, é onde o endereçamento IP não desempenha realmente nenhum papel significativo. É o mundo do protocolo subjacente, provavelmente 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. Bem, é mais ou menos... o que é mostrado aos humanos... mas o IP desse gateway éapenasprecisava fazer uma coisa, é perguntar: quem tem 192.168.1.1 por aqui? A resposta vem dizendo que o gateway é MAC 88:99:aa:bb:cc:dd:ee:ff. (Essa é a consulta/resposta ARP, o tradutor entre os dois mundos.) O MAC é o que realmente é usado. O pacote vai para esse MAC no nível Ethernet, apesar do fato de que no nível IP o pacote especifica um endereço IP de destino completamente não relacionado de um receptor final.
Assim, o pacote é marcado para ir para um gateway escolhido definindo o campo “MAC de destino” do quadro Ethernet. O campo determina qual gateway dessa rede irá obtê-lo, se houver vários gateways. (O "quadro" é uma cápsula subjacente que contém o pacote ou parte do pacote.)
Generalização: embora as tabelas de rotas sejam o núcleo do IP, sua coluna chamada Next Hop énuncaimplementado com endereçamento IP quando o pacote percorre o fio. O Next Hop sempre usa Ethernet, MPLS ou outro protocolo subjacente:
$ ip route show
192.168.98.0/24 via 192.168.99.1 dev eth0
| | |
| <- IP world -> | <- underlying world -> |
| | |
Acima, mesmo quando o mundo subjacente menciona algo como 192.168.99.1
, que é um conceito do mundo IP, na verdade eles não querem dizer isso literalmente.
Responder2
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 em seguida, e essa informação é armazenada na tabela de roteamento.
Poderia serrota estáticainformações para o endereço ou sua sub-rede e ogateway padrãoé usado para o resto. Este é geralmente o caso na rede local: pode haver roteamento estático para outras redes locais e gateway padrão para o resto, ou seja, a Internet. No caso de váriosgateways padrãoou seja, rotas para 0.0.0.0
ou ::
, o ativo é escolhido por seuPreferênciaouMétricavalor.
As coisas ficam mais complicadas quando existem várias rotas entre os destinos, como existem entre os ISPs ao nível da Internet. Existem vários métodos para compartilhar informações entre os roteadores:Protocolo de informações de roteamento(RASGAR),abrir o caminho mais curto primeiro(OSPF), eProtocolo de gateway de fronteira(BGP). Independentemente de como essas informações são compartilhadas, a tabela de roteamento conhece o próximo salto e o pacote IP só tem conhecimento do seu destino final.
Responder3
Resposta curta e simples: ele não é codificado no pacote ou é o endereço de destino Ethernet, dependendo de como você o encara. A pilha IP/Ethernet verifica qual gateway trata o endereço IP de destino, envia uma solicitação ARP para o endereço IP do gateway para obter seu endereço MAC e, em seguida, envia o pacote para o endereço MAC do gateway. O gateway então encaminha o pacote e faz a mesma coisa novamente. Isso pressupõe uma rede Ethernet.
Acho que respondi o que você está perguntando. Certa vez 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.
Responder4
Claro, um detalhe que é analisado é se uma rota corresponde. Se eu estiver enviando para 192.0.2.55/24 e uma rota estiver disponível para tráfego para 10.55.0.0/16, essa rota será ignorada porque não se aplica.
O próximo critério normalmente observado é fazer com que rotas mais específicas tenham 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 para a 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á ter um impacto.
Esses valores "métricos" podem ser gerados automaticamente (por exemplo, dessa forma, uma rede de maior velocidade é usada para uma maior parte do 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 trata do roteamento ao longo do caminho, e tais detalhes normalmente não são colocados em um pacote IP. (Portanto, o equipamento não procura tal detalhe, uma vez que ele não existe. Como o equipamento não procura tal informação, seria inútil tentar incluí-la.)
RFC 791 página 11mostra uma tabela no estilo "ASCII ART" 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” está descrita na página 15).