O QUE É ROTEAMENTO E COMO FUNCIONA? – PARTE 1

Switch

Este artigo foi revisado.

O Roteamento é o mecanismo que permite a comunicação entre dois dispositivos que estejam em redes distintas. Também podemos entender o Roteamento como sendo um processo “todo” formado pelos procedimentos:

  • de aprendizagem de caminhos alternativos para se alcançar uma rede remota
  • de escolha dos melhores caminhos, entre os [caminhos] que foram aprendidos, para se alcançar uma rede remota

Por isso é possível determinar regras que definem como os dados que se originam em uma determinada rede poderão alcançar outra rede remota.

O dispositivo que “coloca em prática” o Roteamento é conhecido como Roteador. Mas outros dispositivos conectados a duas ou mais redes também poderão atuar no papel de roteador. Como os roteadores são responsáveis pelo Roteamento, estes dispositivos precisam conhecer caminhos [rotas] para diferentes redes. Estes dispositivos normalmente sempre irão conectar-se no mínimo a duas redes diferentes.

Como o roteador normalmente está conectado a duas ou mais redes, ele [o roteador] possuirá duas ou mais interfaces de rede. Cada interface de rede poderá estar conectada a uma e somente uma rede. Esta conexão entre a interface de rede do roteador e a determinada rede, o faz [o roteador] fazer parte daquela rede. Assim, dizemos de forma técnica que o roteador está “diretamente conectado” à aquela rede e por isso, sabe alcançar aquela rede. Estando conectados desta forma, os roteadores criam uma ponte para se atravessar para “o outro lado”, ou seja a outra rede. Mas na maioria das vezes o cenário não é assim tão simples. Uma rede pode ser formada por algumas ou centenas de subredes. A internet é um exemplo disso. A internet é formada por várias redes. Estas redes são conectadas através de roteadores. Para cada rede, normalmente exitem muitos caminhos alternativos. O objetivo principal é criar uma redundância visando maior disponibilidade possível e fazendo o melhor uso de técnicas de tolerâncias a falhas. Por causa desta redundância, os rotedores devem e são capazes de escolher o melhor caminho para encaminhar as informações seguimentadas em unidades menores definidas como pacotes.

Para entender como funciona o roteamento, suponhamos que você esteja utilizando um computador em uma rede 192.168.1.0, mas precisa enviar dados a um servidor que esteja conectado a uma rede 172.16.0.0. Seu computador não conhece a rede 172.16.0.0 e por isso, precisa encontrar “quem” possa conhecer esta rede ou ao menos saber o caminho para encaminhar os pacotes. Vamos entender o processo, dando mais detalhes sobre nosso o roteamento hipotético. Seu computador tem o endereço IP 192.168.1.15 e usa a máscara de sub-rede 255.255.255.0. No entanto você precisa enviar dados ao servidor 172.16.0.23 que está na rede 172.16.0.0.

O processo funciona assim: (Está preparado? rs) [Vamos abranger um pouco mais de detalhes para uma visão mais completa da comunicação]

Tomando como exemplo um fragmento dessa informação, que serão dados despejados em um pacote. Primeiro o computador gera um pacote com os dados recebidos, e fixa as informações de Destinatário e Remetente, endereço IP de destino 172.16.0.23 e endereço IP de origem 192.168.1.15, ou seja, do servidor e de seu próprio computador.

É um trabalho em equipe entre os protocolos IP e o ARP, para saber se o destino do pacote é para a rede local ou uma rede remota.

A camada de Rede irá fazer uso da “Mascara de sub-rede” 255.255.255.0 que está configurado no sistema operacional do seu computador para descobrir isso. A camada de rede fará uma operação técnica conhecida como “AND” sobre o endereço do próprio computador IP 192.168.1.15 e depois do servidor, IP 172.16.0.23. Essa operação devolve como resultado só a parte do endereço IP que representa a rede, no caso: 172.16.0.0 e 192.168.1.0.

O “AND”, de forma simplista é uma operação de comparação entre os dois resultados, bit a bit. Imagine da seguinte forma, tenho os dois endereços IP na forma binária e assim como em uma operação matemática de adição ou subtração, coloco um número sobre o outro. No resultado, vou copiando os bits que são iguais e descarto os que são diferentes. Ou seja, onde for diferente deixo zeros e onde for igual em cima e em baixo, deixo como é de fato. Mas em um artigo futuro voltarei a falar sobre isso. Se você não compreendeu, apenas entenda que a Máscara de sub-rede é usada para que o sistema operacional do seu computador saiba, ao olhar para um endereço IP, qual a parte dele representa a rede e qual a parte representa o host.

O processo continua e será feito uma nova operação “AND” com o outro endereço IP, para saber se ambas as redes resultantes nos endereços IP se referem a mesma. Em nosso exemplo, o servidor está em outra rede 172.16.0.0 diferente de 192.168.1.0 onde está nosso computador. Assim o resultado da comparação “não será uma correspondência exata”. O teste nesta etapa é bem radical, ou seja, o primeiro bit que for diferente “já manda parar tudo”! Por isso quando o computador descobre dessa forma, que o pacote precisa ser enviado para uma rede remota, ele não quer nem saber de nada além de encaminhar logo os dados para quem pode entregar para outra rede. Assim, o computador envia o pacote para o “Gateway”, que significa uma ponte de ligação. E neste caso, será mesmo uma ponte para outra rede (Como já mencionado anteriormente). O dispositivo com o endereço de gateway na rede do seu computador, utilizará o mecanismo de roteamento, para possibilitar aos pacotes que estão em seu computador na rede 192.168.1.0, alcançar o objetivo remoto, por exemplo na rede 172.16.0.0. Então, como já vimos, esse é o trabalho de um Roteador ou outro dispositivo com essa função.

Detalhe importante e adicional: Nosso exemplo se baseia em origem de dados a partir de uma rede local, normalmente conectada a um equipamento de distribuição conhecido como Switch ou “Comutador”. Por isso, tecnicamente dizemos que estamos utilizando “Enlace multiponto”. Neste caso, a comunicação é feito com base no endereço de Hardware: MAC Address. Por isso, mesmo para enviar o pacote para endereço de Gateway, o seu computador precisa saber o endereço de hardware (MAC – Media Access Control) da interface do Gateway. Está pensando que é fácil é? Para isso, seu computador consulta uma tabela ARP, contendo endereços IP resolvidos para endereços MAC. Se ele olhar essa tabela e não achar o endereço MAC, então “grita para todos na rede: -Ei! Quem tem o endereço MAC para esse endereço IP: 192.168.1.254?” Esse grito é conhecido um “broadcast”. Visto que todos dispositivos na rede “ouvem” o broadcast, quem não reconhecer o IP como sendo seu, irão ignorar a solicitação. Desta forma ele aprende o endereço MAC de um dispositivo e adiciona a sua tabela ARP. Da próxima vez, quando precisar enviar outro pacote e se ainda possuir o endereço MAC do Gateway, na sua tabela ARP, não precisará lançar um broadcast na rede mas, poderá enviar direto para aquela interface. Lembre-se que um Switch normalmente poderá estar no caminho, então a porta do switch irá captar as informações e retransmiti-las pela porta que conectará ao Gateway. Logo o Switch também fará uso do ARP.

[Você se lembra de algum momento onde esteve em uma festa ou evento e um camarada apareceu e ficou gritando, de quem é aquele carro com a placa XXXX que está com farol aceso? A diferença é que muitas vezes até o dono ignora o aviso e mais tarde terá de empurrar o carro!…rs desculpe a brincadeira, vamos voltar ao assunto]

Isso quer dizer que o envio de informações dentro de uma rede local [multiponto] sempre será trafegada em quadros da camada 2 utilizando o endereço MAC como remetente e destinatário, e não necessariamente direto em pacotes e orientados a endereços IP. Quadros? Calma! continue acompanhando a idéia!

(Por hora, vamos ignorar o switch por motivo de concisão). Sim, o dispositivo com a interface de Gateway configurada com o endereço IP 192.168.1.254, que é correspondente ao que se busca, irá responder “Sou eu aqui! Eu tenho este IP 192.168.1.254 e aqui está meu endereço MAC aa:bb:cc:dd:ff:gg”.

Pronto! Agora seu computador atualiza sua própria tabela ARP adicionando o endereço MAC aa:bb:cc:dd:ff:gg do Gateway associado para o IP 192.168.1.254 que já possui. Ele aprendeu o endereço MAC da interface de rede do Gateway.

Certo, mas não acabou só está começando! Nesta etapa o pacote será colocado dentro de um recipiente chamado “Quadro” (Frame) como dito alí acima, e é anotando no cabeçalho do quadro o endereço do Remetente (MAC do seu computador: aa:bb:cc:dd:ff:gg) e Destinatário (MAC do servidor: ab:ba:cd:dc:gf:fg), entre outras informações de envio. Também no final do quadro há um “Apêndice” contendo um informação importantíssima para validação da integridade dos dados. Estes dados são adicionados ao campo FCS – Frame Check Sequence. Logo você já vai saber o porquê.

Mas espere aí! O “quadro” precisa ser transmitido de forma digital, mas eletronicamente! “?” Então imagine-se agora você em uma cena de ficção científica! Você segura um pacote de presente em suas mãos, em seguida você coloca uma etiqueta com informações de remetente [Você mesmo] e destinatário[João, etc e tal]. Depois, você precisa entregar o pacote para o João mas usará o serviço moderno de correio com recurso de “teletransporte de matéria” [rs]. Porque você está no futuro! E neste futuro os correios funcionam de forma mais eficiente e rápida utilizando em um “teletransporte de matéria” para encaminhar correspondências a seus destinatários. Neste processo, você assite seu pacote sendo desmontado pedacinho por pedacinho! Em seguida, chega na caixa de correio moderna do João, lá do outro lado do continente! e vai se remontado pedacinho por pedacinho! Pois é eu sei! eu viajei um pouco …rs

Mas é assim mesmo que funciona, o pacote IP, encapsulado em um quadro é convertido em sinais eletrônico que serão enviados pelos meios, vamos adotar os cabos como estes meios. Então os dados serão capitados pela interface destino, apontada como Gateway, que está no Roteador. Lá o “quadro” é remontado. Cada pedacinho ou fragmento recebido em forma digital, binária (Sim, os uns e zeros), passam a ser reproduzidos exatamente como estavam antes em seu computador (Obs: Claro que se detalharmos mais sobre estes bits sendo trafegados nos cabos, estão [os bits] sendo tratados nesta fase como sinais elétricos, onde o número um representa uma intensidade de sinal e o zero outra intensidade de sinal). Para se certificar de que tudo esteja certo com o quadro recebido, neste mesmo quadro vai anotado no seu “Apêndice” (Trailer) um valor matemático em um campo chamado FCS. Esses dados são usados para se aplicar uma checagem através de um cálculo matemático, conhecido como CRC (Cyclic Redundancy Check). Isso possibilita a certeza sobre a integridade do conteúdo no quadro, que em outras palavras: durante seu transporte através do meio tudo chegou nos conformes.

O endereço de destino no Quadro é conferido para saber se chegou ao local certo e após sua confirmação, já se arrancam o pacote de dentro quadro. Agora este será conferido por um “senhor da Camada 2 chamado LLC” (Logical Link Control), que é responsável pela entrega do pacote ao departamento correto. Em outras palavras, este pacote será entregue para “Quem” na camada de Rede e que possa entendê-lo: protocolo IP, IPX, etc… “de quem é filho?” Depois de descobrir o tipo do pacote e em nosso exemplo um IP, o roteador na camada de Rede, irá verificar no pacote seu endereço de destino IP 172.16.0.23, e para onde enviar o pacote, já que depois de executar todo aquele processo já mencionado lá no começo (do “AND” se lembra?), ele [o roteador] descobre que o pacote não é dele e sim, deverá ser encaminhado para outra rede cumprindo seu “papel de roteador”. Então ele investiga suas “anotações pessoais”, na sua conhecida tabela de roteamento para saber onde está essa rede 172.16.0.0, e descobre que sabe para onde enviar o pacote, visto que tem uma rota para a rede 172.16.0.0! O roteador descobriu que tem uma interface com endereço 172.16.255.254 que “está diretamente conectada” a rede 172.16.0.0! Sim, esta interface é Gateway para outra rede. Portanto há uma ponte para se alcançar o outro lado!

Ótimo, então em seguida já realiza a entrega do pacote para essa interface da rede com endereço IP 172.16.255.254. A etapa do processo repete aqueles ciclos já mencionados nos estágios anteriores, com encapsulamento do pacote no quadro. Novamente o ciclo conta com apoio do trabalho em equipe dos protocolos IP e o ARP, porque como já vimos, sempre os dados serão entregues na rede Local (enlace multiponto) com base no endereço de Hardware, o MAC. Assim, depois de obtido o MAC, seja através da tabela ARP ou através de uma resposta ao seu grito de “broadcast”, este novo “quadro” estando completo é convertido em bits e sinais elétricos. Depois enviado pelo meio até chegar na interface de rede do Servidor com IP 172.16.0.23 [Não se esqueça que antes de tudo, entre o roteador e a interface do servidor tudo foi tratado com base no endereço de Hardware, o MAC]. O estágio de remontagem do “quadro” obviamente deve acontecer novamente, assim teste de integridade CRC será necessário, depois a confirmação do endereço MAC de destino provando que é para aquela interface mesmo que o quadro foi destinado, em seguida o LLC verifica para quem deve entregar o pacote e descobre que é para o IP. Por fim, o IP na camada de rede, após se certificar que aquele pacote que recebeu é para o próprio servidor, encaminha para as camadas superiores ele será tratado alí mesmo. Daí irá para camadas superiores. Ufa! Chegou!

Tudo certo porém isso foi apenas um pacote! Mas uma informação é composta de muitos dados que podem ser fragmentados em centenas de milhares de pacotes que serão sempre empacotados em quadros [frames]! Quando você envia informação de um computador para outro, esta poderá ser segmentada em muitos quadros na origem, e depois será remontada no destino. Esse processo normalmente acontece como “orientado a uma conexão” com apoio do protocolo TCP … e já estamos falando de camada de Transporte, mas este é um outro assunto fugindo do roteamento, vamos deixar para outro momento.

No cenário ilustrado acima, temos apenas duas redes diferentes conectadas a um dispositivo roteador. Neste roteador há uma tabela de roteamento que atua como mapa para tornar possível o mecanismo de roteamento. Na tabela de roteamento neste roteador do cenário ilustrado, existem pelo menos duas rotas que apontam estaticamente para as redes diretamente conectadas. São estáticas porque não sofrem alterações a menos que os endereços IP nas interfaces sejam alterados. Se detalharmos mais sobre este roteador, provavelmente cada interface de rede será conhecida por um nome. Então, se o nome definido para interface com o endereço IP configurado como 192.168.1.254 for “interface A”, e o nome definido para a interface com endereço IP configurado como 172.16.255.254 for “interface B”, teremos as rotas:

Endereço de rede Máscara Interface de Saída
192.168.1.0 255.255.255.0 Interface A
172.16.0.0 255.255.0.0 Interface B

Assim, todas as vezes que o seu computador enviar pacotes para qualquer computador que esteja conectado a rede 172.16.0.0, poderá encaminhar sua solicitação ao endereço IP de gateway e assim, como vimos o roteador fará o trabalho dele para tornar a comunicação possível!

Mas e se você estiver interessado em se conectar a um servidor que está conectado em outra rede remota, e mais ainda, o roteador que possui a “porta” identificada como gateway para seu computador, não possue uma interface diretamente conectada para esta rede remota? Antes de lhe dar a resposta, posso te adiantar que em um roteador, é comum haver três formas de se configurar rotas: De forma estática, onde o administrador adiciona manualmente, de forma dinâmica através de protocolos de roteamento dinâmico [com técnicas específicas e ajuda dos roteadores vizinhos, faz um mapeamento das rotas] ou um Roteamento padrão [um tipo estático especial] onde se direciona todo tráfego encaminhado para redes que não estão diretamente conectadas e não são conhecidas [Não estão na tabela de roteamento]. Este último é um tipo de configuração muito comum, quando um roteador de uma operadora é instalado na sua rede e provê a você no máximo [e apenas!] um endereço de próximo salto [mas isso nem sempre acontece]. Mas também pode ser quando você utiliza os serviços de um ISP (Provedor de serviços de Internet) mas o roteador é de sua propriedade, então obrigatoriamente você deverá saber que está no próximo salto.

Utilizando este método de Roteamento padrão: Para ser possível alcançar uma rede desconhecida, o roteador precisará ter uma interface conectada a algum outro roteador que saiba como chegar até esta rede desconhecida. Se ainda fizermos uso do cenário anterior, vamos supor que o roteador possua uma terceira interface identificada como Interface C e esteja conectada a um Link de Internet do tipo ADSL. Agora neste caso, queremos acessar uma página web que foi resolvida pelo DNS para o endereço IP 200.221.2.45. Mas a interface C do roteador não possui uma interface diretamente conectada a esta rede 200.224…, antes ela está diretamente conectada a rede do roteador do provedor e configurado nas propriedades TCP/IP com endereço IP 189.57.47.2 e máscara 255.255.255.252. (Futuramente falaremos sobre sub-redes e você descobrirá que esta máscara de sub-rede só permite apenas dois endereços IP válidos.) Mas voltando ao cenário, o endereço IP de gateway para a Interface C é 189.57.47.1. Como o roteador não sabe qual a rota para se chegar até a rede desconhecida e, além disso, a Internet possui muitas e muitas redes desconhecidas para ele, será necessário confiar esta tarefa de chegar a estas outras redes desconhecidas ao roteador do provedor. Para que o roteador em nossa rede possa atribuir essa façanha ao roteador do provedor, ele deve possuir o que chamamos de rota padrão (Uma rota estática especial). Esta rota padrão aparece na tabela de roteamento como sendo um tipo diferente de Endereço de rede, transcrito 0.0.0.0 e também com máscara de sub-rede 0.0.0.0. No nosso exemplo, ela representa um mapeamento de acesso através do dispositivo de rede com endereço IP 189.57.47.1. Como o acesso está sendo apontado em outro roteador, dizemos que este é o “próximo salto” para chegar à rede desconhecida. E em nosso exemplo é através do endereço IP 189.57.47.1. A tabela de roteamento agora é melhor representada desta maneira:

Endereço de rede Máscara Interface de Saída Próximo Salto
0.0.0.0 0.0.0.0 Interface C 189.57.41.1
192.168.1.0 255.255.255.0 Interface A
172.16.0.0 255.255.0.0 Interface B

Quando você encontra um zero em um octeto, significa que ele deve ser representado exatamente da forma como solicitado, isso ficará mais claro quando falarmos sobre as máscara de sub-redes. Assim, qualquer rede desconhecida poderá ser localizada exatamente como foi solicitada, não há nenhuma subtração de parte de rede ou host sobre o endereço IP, ela é informada ao pé da letra. Na tabela de roteamento acima, entendemos então que qualquer solicitação de encaminhamento para uma rede desconhecida deverá ser repassada para o próximo salto através da interface C. Assim, qualquer rede desconhecida deverá ser alcançada através do próximo salto, ou seja, o roteador com a interface no próximo salto, deverá saber como ou ter os meios para chegar a uma rede desconhecida. Sem querer fazer comercial daquele posto de combustível famoso! Lembre-se da rota padrão como sendo a indicação daquele tio do comercial! Alguém diz: Onde posso fazer tal coisa? e ele responde: Lá no posto Ip…! rs

Más há muito ainda para se falar sobre roteamento, todavia este artigo está ficando longo e cansativo! Então espero abranger muito mais informações no próximo artigo. Até lá!

[]’s

9 comentários

  1. We absolutely love your blog and find the majority of your
    post’s to be just what I’m looking for. can you offer guest writers to write content for you?
    I wouldn’t mind creating a post or elaborating on a
    number of the subjects you write in relation to here. Again, awesome
    site!

  2. Muito bem explicado. As analogias também serviram de maior entendimento. Estou estudando o funcionamento de redes na faculdade e achei a descrição fantástica.
    Parabéns!

    1. Olá Alexandre, para você realizar este tipo de configuração, precisa configurar obviamente cada rede em uma VLAN. No caso dos switches, é comum suas portas estarem todas configuradas em uma VLAN 0. Você precisa criar VLANs diferentes atribuindo uma rede a cada um. Então, entra no conceito de roteamento entre VLANs. Para isso, seu switch deve ser de camada 3 e suportar o roteamento. A exemplo, temos os switches Cisco Catalyst 3500 e superiores. Caso seu switch não suporte, você precisará usar um roteador com portas diferentes para cada VLANS, sendo uma porta linkada em cada VLAN do seu switch. Abraço

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.