Introdução:
Esta é a décima quarta parte do Tutorial de TCP/IP. Na Parte 1 tratei dos aspectos básicos do protocolo TCP/IP. Na Parte 2 falei sobre cálculos binários, um importante tópico para entender sobre redes, máscara de sub-rede e roteamento. Na Parte 3 falei sobre Classes de endereços, na Parte 4 fiz uma introdução ao roteamento e na Parte 5 apresentei mais alguns exemplos/análises de como funciona o roteamento e na Parte 6 falei sobre a Tabela de Roteamento. Na Parte 7 tratei sobre a divisão de uma rede em sub-redes, conceito conhecido como subnetting. Na Parte 8 fiz uma apresentação de um dos serviços mais utilizados pelo TCP/IP, que é o Domain Name System: DNS. O DNS é o serviço de resolução de nomes usado em todas as redes TCP/IP, inclusive pela Internet que, sem dúvidas, é a maior rede TCP/IP existente. Na Parte 9 fiz uma introdução ao serviço Dynamic Host Configuration Protocol – DHCP. Na Parte 10 fiz uma introdução ao serviço Windows Internet Name Services – WINS. Na Parte 11 falei sobre os protocolos TCP, UDP e sobre portas de comunicação. Parte 12, mostrei como são efetuadas as configurações de portas em diversos aplicativos que você utiliza e os comandos do Windows 2000/XP/2003 utilizados para exibir informações sobre portas de comunicação. Na Parte 13 você aprendeu sobre a instalação e configuração do protocolo TCP/IP no Windows 2000 Professional ou Server. Apresentei, em detalhes, a configuração do protocolo TCP/IP no Windows 2000. Mostrei como fazer as configurações do protocolo TCP/IP, desde as configurações básicas de número IP e máscara de sub-rede (em computadores que usarão IP fixo, ao invés de obter as configurações a partir de um servidor DHCP), até configurações mais avançadas, tais como definir filtros para o protocolo TCP/IP.
Nas Partes 4, 5 e 6 falei sobre Roteamento e sobre como todo o processo de roteamento é baseado em Tabelas de Roteamento, existentes em cada roteador da rede. As tabelas de roteamento podem ser criadas manualmente, onde o administrador de cada roteador executa comandos para criar cada uma das rotas necessárias. Essa abordagem só é possível para redes extremamente pequenas, com um número de rotas pequeno e quando as rotas não mudam muito freqüentemente. Para redes maiores, a única abordagem possível é o uso dos chamados protocolos de Roteamento dinâmico. Estes protocolos, uma vez instalados e configurados nos roteadores, permitem que os roteadores troquem informações entre si, periodicamente e que montem as tabelas de roteamento, dinamicamente, com base nestas informações. Esta abordagem é bem mais indicada para grandes redes, pois os próprios protocolos de roteamento dinâmicos, se encarregam de manter as tabelas de roteamento sempre atualizadas, alterando rotas quando necessário e excluindo rotas que apresentam problemas, tais como rotas onde o link de comunicação está fora do ar. Nesta parte do tutorial de TCP/IP, iniciarei a apresentação dos protocolos de roteamento dinâmico, sendo que iremos concentrar nossos estudos, nos dois principais protocolos:
· RIP – Routing Internet Protocol
· OSPF – Open Shorted Path First
Vou apresentar os conceitos básicos de cada protocolo, para que o amigo leitor possa ter uma boa idéia de como é o funcionamento de cada um destes protocolos.
RIP – Routing Internet Protocol:
Existem diferentes maneiras para criar as tabelas de roteamento. A primeira maneira é criar as tabelas manualmente. O administrador utiliza comandos (como o comando route add no Windows 2000 Server) para adicionar cada rota manualmente, em cada roteador da rede. Este método somente é indicado para pequenas redes, onde existe um pequeno número de roteadores, com poucas rotas e rotas que não são alteradas freqüentemente.
Para redes maiores, com muitas rotas e muitos roteadores, este método é simplesmente impraticável. A simples adição de uma nova rota, exigiria a alteração das tabelas de roteamento em todos os roteadores da rede.
Outro problema com a criação manual das tabelas de roteamento, é que não existe a detecção automática de perda de rotas quando um roteador fica indisponível ou quando um link para uma determinada rota, está com problemas. Nestas situações, os demais roteadores da rede continuarão a encaminhar pacotes para o roteador com problemas ou através do link que está fora do ar, porque a tabela de roteamento está configurada para enviar pacotes para a referida rota, quer ela esteja disponível ou não. Nesta caso uma simples indisponibilidade de um roteador exigiria uma reconfiguração manual em todas as tabelas de roteamento. Quando o roteador voltar a estar disponível, uma nova reconfiguração das tabelas de roteamento teria que ser feita. Com estes exemplos é possível ver que a configuração manual das tabelas de roteamento é um método que somente se aplica a pequenas redes, com um número reduzido de roteadores e de rotas.
Outra maneira de criar as tabelas de roteamento é dinamicamente. Com este método, os roteadores trocam informações entre si, periodicamente e atualizam suas tabelas de roteamento, com base nestas informações trocadas entre os roteadores. O método dinâmico exige bem menos manutenção (intervenção manual dos administradores da rede) e pode ser utilizado em grandes redes, como por exemplo a Internet. A atualização dinâmica das tabelas de roteamento é possível graças a utilização de protocolos de roteamento dinâmicos. Os protocolos mais conhecidos, para a criação automática de tabelas de roteamento são os seguintes:
· Routing Information Protocol (RIP)
· Open Shortest Path First (OSPF)
Nota: Se você encontrar estes protocolos traduzidos, em algum livro ou revista, no mínimo, faça um “biquinho” para quem traduziu. Eu já vi uma maravilha de tradução para OSPF: Abrindo primeiro o caminho mais curto. Deus nos ajude. Tudo a ver com roteamento.
Com o uso dos protocolos de roteamento dinâmico, os roteadores trocam informações entre si, periodicamente e “aprendem” sobre a rede e sobre as rotas disponíveis. Ou seja, vão “descobrindo” as rotas existentes e gravando estas rotas em suas tabelas de roteamento. Se um roteador ficar off-line, em pouco tempo os demais roteadores “saberão” que este roteador está off-line e atualizarão, automaticamente, suas tabelas de roteamento. Com isso cada roteador aprende novos caminhos, já considerando a indisponibilidade do roteador com problemas, e repassam estas informações para os demais roteadores. Esta possibilidade não existe quando as tabelas são criadas manualmente, conforme descrito anteriormente.
Evidentemente que para redes maiores, a única alternativa viável é o uso de um dos protocolos de roteamento dinâmico, ou até mesmo uma combinação de ambos, conforme descreverei mais adiante.
Como funcionam os protocolos de roteamento dinâmico
O protocolo RIP é baseado em uma algoritmo conhecido como distance-vector (distância vetorial). Este algoritmo é baseado na distância entre dois roteadores, sendo que esta “distância” é medida em termos do número de roteadores existentes no caminho entre os dois roteadores – também conhecido como hopes. Já o protocolo OSPF utiliza um algoritmo baseado em propagação de rotas entre roteadores denominados como adjacentes (veja o conceito de formação de adjacências em uma das próximas partes deste tutorial), conforme descreverei mais adiante. As principais diferenças entre os protocolos RIP e OSPF são referentes as seguintes características:
· Quais informações sobre rotas são compartilhadas entre os roteadores. Quando um roteador apresenta problemas, a rede deve ser capaz de reconfigurar-se, para definir novas rotas, já baseadas na nova topologia da rede, sem o roteador com problemas. O tempo que a rede leva para reconfigurar-se é conhecido como convergência. Um dos principais problemas do protocolo RIP é o alto tempo de convergência em relação ao OSPF, que tem um tempo de convergência bem menor.
· Como as informações sobre rotas e sobre a topologia da rede são compartilhadas entre os roteadores: Este aspecto também influencia o tempo de convergência da rede e apresenta diferenças significativas no RIP e no OSPF.
A seguir apresento mais detalhes sobre o protocolo RIP. O protocolo OSPF será abordado em uma das próximas partes deste tutorial.
RIP - Routing Information Protocol
Neste tópico você entenderá como funciona o RIP, como as informações são trocadas entre os roteadores que usam RIP, quais as diferenças entre RIP versão 1 (RIP v1) e RIP versão 2 (RIP v2) e como configurar o RIP no RRAS.
Uma introdução ao RIP
O protocolo RIP é baseado em uma troca de mensagens entre os roteadores que utilizam o protocolo RIP. Cada mensagem do RIP contém uma série de informações sobre as rotas que o roteador conhece (com base na sua tabela de roteamento atual) e a distância do roteador para cada uma das rotas. O roteador que recebe as mensagens, com base na sua distância para o roteador que enviou a mensagem, calcula a distância para as demais redes e grava estas informações em sua tabela de roteamento. É importante salientar que distância significa hope, ou melhor, o número de roteadores existentes em um determinado caminho, em uma determinada rota.
As informações entre roteadores são trocadas quando o roteador é inicializado, quando o roteador recebe atualizações em sua tabela de roteamento e também em intervalos regulares. Aqui a primeira desvantagem do RIP. Mesmo que não exista nenhuma alteração nas rotas da rede, os roteadores baseados em RIP, continuarão a trocar mensagens de atualização em intervalos regulares, por padrão a cada 30 segundos.
Dentre outros, este é um dos motivos pelos quais o RIP não é indicado para redes maiores, pois nestas situações o volume de tráfego gerado pelo RIP, poderia consumir boa parte da banda disponível. O RIP é projetado para intercambiar informações de roteamento em uma rede de tamanho pequeno para médio. Além disso, cada mensagem do protocolo RIP comporta, no máximo, informações sobre 25 rotas diferentes, o que para grandes redes, faria com que fosse necessária a troca de várias mensagens, entre dois roteadores, para atualizar suas respectivas tabelas, com um grande número de rotas. Ao receber atualizações, o roteador atualiza a sua tabela de roteamento e envia estas atualizações para todos os roteadores diretamente conectados, ou seja, a um hope de distância.
A maior vantagem do RIP é que ele é extremamente simples para configurar e implementar em uma rede. Sua maior desvantagem é a incapacidade de ser ampliado para interconexões de redes de tamanho grande a muito grande.
A contagem máxima de hopes usada pelos roteadores RIP é 15. As redes que estejam a 16 hopes ou mais de distância, serão consideradas inacessíveis. À medida que as redes crescem em tamanho, os anúncios periódicos de cada roteador RIP podem causar tráfego excessivo.
Outra desvantagem do RIP é o seu longo tempo de convergência. Quando a topologia de interconexão da rede é alterada (por queda em um link ou por falha em um roteador, dentre outros motivos), podem ser necessários vários minutos para que os roteadores RIP se reconfigurem, para refletir a nova topologia de interconexão da rede. Embora a rede seja capaz de fazer a sua própria reconfiguração, podem ser formados loops de roteamento que resultem em dados perdidos ou sem condições de entrega.
Inicialmente, a tabela de roteamento de cada roteador inclui apenas as redes que estão fisicamente conectadas. Um roteador RIP envia periodicamente anúncios contendo suas entradas de tabela de roteamento para informar aos outros roteadores RIP locais, quais as redes que ele pode acessar.
Os roteadores RIP também podem comunicar informações de roteamento através de disparo de atualizações. Os disparos de atualizações ocorrem quando a topologia da rede é alterada e informações de roteamento atualizadas são enviadas de forma a refletir essas alterações. Com os disparos de atualizações, a atualização é enviada imediatamente em vez de aguardar o próximo anúncio periódico. Por exemplo, quando um roteador detecta uma falha em um link ou roteador, ele atualiza sua própria tabela de roteamento e envia rotas atualizadas imediatamente. Cada roteador que recebe as atualizações por disparo, modifica sua própria tabela de roteamento e propaga a alteração.
Conforme já salientado anteriormente, uma das principais desvantagens do algoritmo distance-vector do RIP é o alto tempo de convergência. Ou seja, quando um link ou um roteador fica indisponível, demora alguns minutos até que as atualizações de rotas sejam passadas para todos os roteadores. Durante este período pode acontecer de roteadores enviarem pacotes para rotas que não estejam disponíveis. Este é um dos principais motivos pelos quais o RIP não pode ser utilizado em redes de grande porte.
O problema do Count-to-infinity:
Outro problema do protocolo RIP é a situação descrita como count-to-infinity (contar até o infinito). Para entender este problema vamos imaginar dois roteadores conectados através de um link de WAN. Vamos chamá-los de roteador A e B, conectando as redes 1, 2 e 3, conforme diagrama da Figura a seguir:
Figura 8.1 O problema count-to-infinity.
Agora imagine que o link entre o roteador A e a Rede 1 apresente problemas. Com isso o roteador A sabe que não é possível alcançar a Rede 1 (devido a falha no link). Porém o Roteador B continua anunciando para o restante da rede, que ele encontra-se a dois hopes da rede A (isso porque o Roteador B ainda não teve sua tabela de roteamento atualizada). O Roteador B manda este anúncio, inclusive para o roteador A.
O roteador A recebe esta atualização e considera que ele (o Roteador A) está agora a 3 hopes da Rede 1 (um hope de distância até o Roteador B + dois hopes de distância do roteador B até a rede 1. Ele não sabe que o caminho do Roteador B para a rede 1, passa por ele mesmo, ou seja, pelo Roteador A). Com isso volta a informação para o Roteador B dizendo que o Roteador A está a 3 hopes de distância. O Roteador B atualiza a sua tabela, considerando agora que ele está a 4 hopes da Rede 1 (um hope até o roteador A + 3 hopes que o roteador A está da rede 1, segundo o último anúncio). E este processo continua até que o limite de 16 hopes seja atingido. Observe que mesmo com um link com problema, o protocolo RIP não convergiu e continuou anunciando rotas incorretamente, até atingir uma contagem de 16 hopes (que em termos do RIP significa o infinito, inalcançável).
O problema do count-to-infinity é um dos mais graves com o uso do RIP Versão 1, conhecido apenas como RIP v1. O Windows 200 Server e o Windows Server 2003 dão suporte também ao RIP v2, o qual apresenta algumas modificações no protocolo, as quais evitam, ou pelo menos minimizam problemas como o loops de roteamento e count-to-infinity:
· Split horizon (horizonte dividido): Com esta técnica o roteador registra a interface através da qual recebeu informações sobre uma rota e não difunde informações sobre esta rota, através desta mesma interface. No nosso exemplo, o Roteador B receberia informações sobre a rota para a rede
· Split horizon with poison reverse (Inversão danificada): Nesta técnica, quando um roteador aprende o caminho para uma determinada rede, ele anuncia o seu caminho, de volta para esta rede, com um hope de 16. No exemplo da Figura anterior, o Roteador B, recebe a informação do Roteador A, que a rede 1 está a 1 hope de distância. O Roteador B anuncia para o roteador A, que a rede 1 está a 16 hope de distância. Com isso, jamais o Roteador A vai tentar achar um caminha para a rede 1, através do Roteador B, o que faz sentido, já que o Roteador A está diretamente conectado à rede 1.
· Triggered updates (Atualizações instantâneas): Com esta técnica os roteadores podem anunciar mudanças na métrica de uma rota imediatamente, sem esperar o próximo período de anuncio. Neste caso, redes que se tornem indisponíveis, podem ser anunciadas imediatamente com um hope de 16, ou seja, indisponível. Esta técnica é utilizada em combinação com a técnica de inversão danificada, para tentar diminuir o tempo de convergência da rede, em situações onde houve indisponibilidade de um roteador ou de um link. Esta técnica diminui o tempo necessário para convergência da rede, porém gera mais tráfego na rede.
Um estudo comparativo entre RIP v1 e RIP v2
O protocolo RIP v1 apresenta diversos problemas, sendo que os principais são os destacados a seguir:
· O protocolo RIP v1 usa broadcast para fazer anúncios na rede: Com isto, todos os hosts da rede receberão os pacotes RIP e não somente os hosts habilitados ao RIP. Uma contrapartida do uso do Broadcast pelo protocolo RIP v1, é que isso torna possível o uso dos chamados hosts de RIP Silencioso (Silent RIP). Um computador configurado para ser um Silent RIP, processa os anúncios do protocolo RIP (ou seja, reconhece os pacotes enviados pelo RIP e é capaz de processá-los), mas não anuncia suas próprias rotas. Esta funcionalidade pode ser habilitada em um computador que não esteja configurado como roteador, para produzir uma tabela de roteamento detalhada da rede, a partir das informações obtidas pelo processamento dos pacotes do RIP. Com estas informações detalhadas, o computador configurado como Salient RIP pode tomar melhores decisões de roteamento, para os programas e serviços nele instalados. No exemplo a seguir, mostro como habilitar uma estação de trabalho com o Windows 2000 Professional instalado, a tornar-se um Salient RIP.
Exemplo: Para configurar uma estação de trabalho com o Windows 2000 Professional instalado, como Salient RIP, siga os passos indicados a seguir:
1. Faça o logon como Administrador.
2. Abra o Painel de controle: Iniciar -> Configurações -> Painel de controle.
3. Abra a opção Adicionar ou remover programas.
4. No painel da esquerda, clique em Adicionar ou remover componentes do Windows.
5. Clique na opção Serviços de rede para marcá-la (sem selecionar a caixa de seleção ao lado desta opção, senão todos os serviços de rede serão instalados).
6. Clique no botão Detalhes...
7. Nas opções que são exibidas marque a opção RIP Listener.
8. Clique
9. Clique em Avançar para concluir a instalação.
· A máscara de sub-rede não é anunciada juntamente com as rotas: Isso porque o protocolo RIP v1 foi projetado em 1988, para trabalhar com redes baseadas nas classes padrão A, B e C, ou seja, pelo número IP da rota, deduzia-as a respectiva classe. Com o uso da Internet e o uso de um número variável de bits para a máscara de sub-rede (número diferente do número de bits padrão para cada classe, conforme descrito no Capítulo 2), esta fato tornou-se um problema sério do protocolo RIP v1. Com isso, o protocolo RIP v1, utiliza a seguinte lógica, para inferir qual a máscara de sub-rede associada com determinada rota:
1. Se a identificação de rede coincide com uma das classes padrão A, B ou C, é assumida a máscara de sub-rede padrão da respectiva classe.
2. Se a identificação de rede não coincide com uma das classes padrão, duas situações podem acontecer:
2.1 Se a identificação de rede coincide com a identificação de rede da interface na qual o anúncio foi recebido, a máscara de sub-rede da interface na qual o anúncio foi recebido, será assumida.
2.2 Se a identificação de rede não coincide com a identificação de rede da interface na qual o anúncio foi recebido, o destino será considerado um host (e não uma rede) e a máscara de sub-rede 255.255.255.255, será assumida.
Esta abordagem gera problemas graves. Por exemplo, quando for utilizado o recurso de supernetting, para juntar várias redes classe C em uma única rede lógica, o RIP v1 irá interpretar como se fossem realmente várias redes lógicas e tentará montar uma tabela de roteamento, como se as redes estivessem separadas fisicamente e ligadas por links de WAN.
· Sem proteção contra roteadores não autorizados: O protocolo RIP v1 não apresenta nenhum mecanismo de autenticação/proteção, para evitar que roteadores não autorizados possam ser inseridos na rede e passar a anunciar várias rotas falsas. Ou seja, qualquer usuário poderá instalar um roteador com RIP v1 e adicionar várias rotas falsas, que o RIP v1 se encarregará de repassar estas rotas para os demais roteadores da rede.
O protocolo RIP v2, oferece diversas melhorias em relação ao RIP v1, dentre as quais vamos destacar as seguintes:
· Os anúncios do protocolo RIP v2 são baseados em tráfego multicast e não mais broadcast como no caso do protocolo RIP v1: O protocolo RIP v2 utiliza o endereço de multicast 224.0.0.9. Com isso os roteadores habilitados ao RIP atuam como se fossem (na verdade é) um grupo multicast, registrado para “escutar” os anúncios do protocolo RIP v2. Outros hosts da rede, não habilitados ao RIP v2, não serão “importunados” pelos pacotes do RIP v2. Por questões de compatibilidade (em casos onde parte da rede ainda usa o RIP v1), é possível utilizar broadcast com roteadores baseados em RIP v2. Mas esta solução somente deve ser adotada durante um período de migração, assim que possível, todos os roteadores devem ser migrados para o RIP v2 e o anúncio via broadcast deve ser desabilitado.
· Informações sobre a máscara de sub-rede são enviadas nos anúncios do protocolo RIP v2: Com isso o RIP v2 pode ser utilizado, sem problemas, em redes que utilizam sub netting, supernetting e assim por diante, uma vez que cada rede fica perfeitamente definida pelo número da rede e pela respectiva máscara de sub-rede.
· Segurança, autenticação e proteção contra a utilização de roteadores não autorizados: Com o RIP v2 é possível implementar um mecanismo de autenticação, de tal maneira que os roteadores somente aceitem os anúncios de roteadores autenticados, isto é, identificados. A autenticação pode ser configurada através da definição de uma senha ou de mecanismos mais sofisticados como o MD5 (Message Digest 5). Por exemplo, com a autenticação por senha, quando um roteador envia um anúncio, ele envia juntamente a senha de autenticação. Outros roteadores da rede, que recebem o anúncio, verificam se a senha está OK e somente depois da verificação, alimentam suas tabelas de roteamento com as informações recebidas.
É importante salientar que tanto redes baseadas no RIP v1 quanto no RIP v2 são redes chamadas planas (flat). Ou seja, não é possível formar uma hierarquia de roteamento, baseada no protocolo RIP. Por isso que o RIP não é utilizado em grandes redes. A tendência natural do RIP, é que todos os roteadores sejam alimentados com todas as rotas possíveis (isto é um espaço plano, sem hierarquia de roteadores). Imagine como seria utilizar o RIP em uma rede como a Internet, com milhões e milhões de rotas possíveis, com links caindo e voltando a todo momento? Impossível. Por isso que o uso do RIP (v1 ou v2) somente é indicado para pequenas redes.
Conclusão
Nas Partes 4, 5 e 6 falei sobre Roteamento e sobre como todo o processo de roteamento é baseado em Tabelas de Roteamento, existentes em cada roteador da rede. As tabelas de roteamento podem ser criadas manualmente, onde o administrador de cada roteador executa comandos para criar cada uma das rotas necessárias. Essa abordagem só é possível para redes extremamente pequenas, com um número de rotas pequeno e quando as rotas não mudam muito freqüentemente. Para redes maiores, a única abordagem possível é o uso dos chamados protocolos de Roteamento dinâmico.
Estes protocolos, uma vez instalados e configurados nos roteadores, permitem que os roteadores troquem informações entre si, periodicamente e que montem as tabelas de roteamento, dinamicamente, com base nestas informações. Esta abordagem é bem mais indicada para grandes redes, pois os próprios protocolos de roteamento dinâmicos, se encarregam de manter as tabelas de roteamento sempre atualizadas, alterando rotas quando necessário e excluindo rotas que apresentam problemas, tais como rotas onde o link de comunicação está fora do ar. Nesta parte do tutorial de TCP/IP, iniciei a apresentação dos protocolos de roteamento dinâmico, sendo que nesta e nas próximas partes do tutorial, iremos concentrar nossos estudos, nos dois principais protocolos:
· RIP – Routing Internet Protocol
· OSPF – Open Shorted Path First