"Nos todos sabemos que precisamos de um roteador para navegar na internet ou para fornecê-la para outras pessoas, mas, como ele funciona e qual o processo que realiza para isso ser possível?"
O papel do roteador é conhecer os caminhos para as diversas redes e saber como implementar o processo de roteamento. É um conjunto de regras que definem como dados originados em uma determinada rede alcançam uma rede distinta.
Para fazer que um pacote chegue até uma rede de destino, o roteador precisa ter conhecimento de duas coisas, sendo elas:
- Endereço ip de DESTINO
- Endereço IP dos routers vizinhos (neighbors)
Importante lembrar que os roteadores já sabem como alcançar todas as redes que se encontram diretamente conectadas a ele.
Para alcançar essas redes distintas, o roteador precisa aprender as rotas para a rede de destino via algum protocolo de roteamento dinâmico (OSPF,EIGRP,Ibgp,RIP,BGP), ou por intervenção de algum administrador da rede configurando rotas estáticas para o destino (roteamento estático). A imagem a seguir mostra como uma requisição (PC you) possui multiplos caminhos para se chegar ao servidor em verde.
Bom, tendo isso em mente, como é encaminhado os pacotes aos os endereços de destino? Antes de chegar a essa explicação, é preciso ter conhecimento de duas coisas que participam do processo de encaminhamento de pacote, que são o ARP e o Default Gateway.
ARP
O ARP é um protocolo de apoio usado pelo IP para localizar o endereço de HARDWARE de um host a partir do seu endereço IP. Isso é encaminhado em frames broadcast e jamais cruzarão um domínio de broadcast ( caso você não saiba o que é domínio de broadcast, no artigo sobre “ VLAN’s” eu expliquei o que é isso 😊 )
O seu funcionamento é bem simples, ele “interroga” todos os hosts da rede que estão no mesmo domínio de broadcast perguntando se aquele IP é dele, e caso seja, ele solicita o seu endereço MAC e armazena essa informação em sua tabela ARP.
A imagem abaixo ilustra esse processo.
Default Gateway
Como explicado anteriormente, para enviar um pacote para o seu endereço de destino, é necessário que o roteador tenha o endereço de destino em sua tabela de roteamento. Caso não possua o endereço de destino em sua tabela de roteamento, o mesmo irá DESCARTAR O PACOTE.
Agora, imagine que um roteador (sendo de borda ou não) precisaria conhecer todas as rotas do mundo ( por volta de 700k) para poder enviar o pacote ao seu destino.
Imagina a configuração estática para todos esses destinos, fora as rotas para a rede interna. Ou ter que receber via protocolo de roteamento todas essas rotas e muitas vezes ele não possui poder de processamento para poder processar uma tabela de roteamento tão grande. Totalmente inviável correto? Para isso que o DEFAULT GATEWAY é usado. Ele permite a inserção na tabela de roteamento uma entrada “ genérica” que não irá corresponder a uma ou duas redes mas a qualquer rede que eu não conheça, ou seja, tudo o que eu(roteador) não conheço, envio para o meu gateway, e assim sucessivamente até chegar ao destino. A imagem abaixo mostra um pouco desse processo.
A sintaxe de configuração normalmente não é muito diferente entre os vendors (fabricantes) e normalmente é :
ip route 0.0.0.0 0.0.0.0 " endereço do meu gateway ou minha interface de saida"
Bom, tendo conhecimento do que é ARP e do que é Default Gateway , podemos entender como ocorre o processo de roteamento.
O processo
Quando um roteador recebe um pacote, ele observa os endereços de ORIGEM e DESTINO da camada 3 e determina o caminho que o pacote deve tomar. Esse processo pode ser definido nos seguintes passos:
1) O PC0 envia um broadcast arp procurando o MAC de destino ( PC1). Como ele se encontra em outra rede, o seu default gateway (Router0) responde com o endereço MAC da interface que esta conectada no PC0. Com isso, a camada de rede do PC0 monta seu endereço de origem e destino.
2) A camada de enlace (camada 2) do PC0 encapsula o pacote em um frame contendo o MAC de origem e o de destino ( no caso, o da interface que conecta o PC0 no Router0) .
3) Após a chegar no router0, a camada 2 do router realiza a checagem de erros (CRC) e, caso haja algum erro, o frame é descartado.
4) Na camada de rede, o router0 verifica que para alcaçar a rede de destino, o mesmo deve enviar para sua interface de saída ( em vermelho) baseado na informação que esta na sua tabela de roteamento
5) O router0 verifica sua tabela arp para saber se possui o MAC do PC1. Caso não possua, o mesmo manda um broadcast através da sua interface de saída ( em vermelho) procurando o PC1
6) Após receber, o router consegue enviar o pacote para o PC1, pois o router1 irá responder a requisição com o seu MAC já que o IP de destino está em outro domínio de broadcast “enganando” o router0. PC1 irá responder com uma confirmação para o IP do PC0 e o processo irá se repetir.
A imagem abaixo ilustra o que foi descrito.
Bom, espero que o artigo tenha ajudado a clarear um pouco como é o funcionamento do roteador e o que é o processo de roteamento.
Até a proxima ;)
Excelente conteúdo, didática, diagramação... a lista de elogios não para. O autor, a cada texto, vai se consolidando na literatura técnica e é difícil imaginar um cenário futuro onde alunos de cursos técnicos e superiores não estarão lendo alguma obra de Pedro Ferreira. Linguagem fácil, acessível, descomplicando o universo das Redes de Computadores. Conteúdo inestimável.