Interior Gateway Protocols (IGPs):

Open Shortest Path First (OSPF) x Routing Information Protocol (RIP)

3. Open Shortest Path First (OSPF)

  1. Introdução
  2. Hierarquia de roteamento
  3. O algoritmo SPF
  4. Formato do pacote
  5. Características adicionais do OSPF
  6. Resumo

a) Introdução

OSPF é um protocolo de roteamento feito para redes com protocolo IP; foi desenvolvido pelo grupo de trabalho de IGPs (Interior Gateway Protocol) da IETF (Internet Engineering Task Force). Este grupo de trabalho foi criado em 1988, para projetar um IGP baseado no algoritmo Shortest Path First (SPF, menor rota primeiro), voltado para uso na Internet. Similar ao Interior Gateway Routing Protocol (IGRP), protocolo proprietário da Cisco, o OSPF foi criado, pois, na metade dos anos 80, o Routing Information Protocol (RIP) mostrou-se cada vez menos capaz de  atender redes largas e heterogêneas. Este trabalho aborda o ambiente de roteamento OSPF, tratando do algoritmo de roteamento, e dos componentes gerais do protocolo.

O OSPF resultou de diversas pesquisas: a de Bolt, Berenek e Newman (BBN), que desenvolveram o algoritmo SPF em 1978, para a ARPANET (o marco inicial das redes de comutação de pacotes, criada no início dos aos 70 por BBN); a de Radia Perlman,  a respeito da tolerância a erros de transmissão no roteamento de informação (de 1988); e a de BBN sobre roteamento local (1986), uma versão inicial do protocolo de roteamento OSI entre camadas intermediárias.

Há duas características principais no OSPF. A primeira, é um protocolo aberto, o que significa que suas especificações são de domínio público; suas especificações podem ser encontradas na RFC (Request For Comments) número 1247. A segunda, é um protocolo baseado no algoritmo SPF, também chamado de algoritmo de Dijkstra, nome de seu criador.

OSPF é um protocolo de roteamento do tipo link-state, que envia avisos sobre o estado da conexão (link-state advertisements, LSA) a todos os outros roteadores em uma mesma área hierárquica. Informações sobre interfaces ligadas, métrica usada e outras variáveis são incluídas nas LSAs.  Ao mesmo tempo em que o roteador OSPF acumula informações sobre o estado do link, ele usa o algoritmo SPF para calcular a menor rota para cada nó.

Por ser um protocolo do tipo link-state, o OSPF difere-se do RIP e do IGRP, que são protocolos de roteamento baseados em vetores de distância. Os roteadores que trabalham com algoritmos de vetor de distância, a cada atualização, enviam toda ou parte de suas tabelas de roteamento para seus vizinhos.

b) Hierarquia de roteamento

Ao contrário do RIP, o OSPF pode operar com hierarquias. A maior entidade dentro da hierarquia é o sistema autônomo (Autonomous System, AS), que é uma coleção de redes sob mesma administração e que têm uma estratégia de roteamento comum. OSPF é um protocolo de roteamento intra-AS (interior gateway), embora seja capaz de receber e enviar rotas para outros ASs.

Um AS pode ser divido em diversas áreas, que são grupos de redes adjacentes e host ligados. Roteadores com múltiplas interfaces podem participar em múltiplas áreas. Estes roteadores, chamados Roteadores de Borda de Área (Area Border Routers), mantêm uma base de dados topológica (referente à geometria) separada para cada área.

A base de dados topológica é basicamente uma forma geral de relação entre redes e roteadores. Esta base de dados contém uma coleção de LSAs recebidos de todos os roteadores de uma mesma área. Como os roteadores dentro de uma mesma área dividem as mesmas informações, eles têm bases de dados topológicas idênticas.

O termo domínio é algumas vezes usado para descrever uma parte da rede na qual todos os roteadores têm bases de dados topológicas idênticas. Este termo é freqüentemente usado no lugar de AS, preservando o mesmo significado.

A topologia de uma área é invisível para entidades fora dela. Por manter separadas as topologias de área, o OSPF passa menos tráfego de roteamento do que se passaria se as ASs não fossem divididas.

O particionamento de área cria dois tipos de roteamento OSPF, dependo se a origem e o destino estão na mesma área ou em áreas diferentes. Roteamento intra-área é usado quando a origem e o destino estão na mesma área, e o roteamento inter-área é usado quando estão em áreas diferentes.

Um backbone (redes principais que conectam redes menores) OSPF é responsável por distribuir informações de roteamento entre áreas. Consiste de todos os roteadores de borda de área (Area Border Routers, ABR), redes que não estão totalmente contidas em uma área, e seus respectivos roteadores. A Figura 1 mostra um exemplo de uma inter-rede com várias áreas.


Figura 1: Um AS OSPF consiste de múltiplas áreas ligadas por roteadores
Figura original da Cisco

Na Figura 1, os roteadores 4, 5, 6, 10, 11 e 12 formam o backbone. Se o host (computador principal de uma redes, que comanda ou controla a ação de outros computadores) H1 na área 3 deseja enviar um pacote ao host H2 na área 2, o pacote é enviado ao roteador H13, que o encaminha para o roteador 12, que envia ao roteador 11. O roteador 11 então encaminha o pacote pelo backbone para o roteador de borda de área 10, que envia o pacote através de dois roteadores intra-área (roteadores 7 e 9) para ser encaminhado ao host H2.

O backbone em si é uma área OSPF, já que todos os roteadores do backbone usam os mesmos procedimentos e algoritmos para manter a informação de roteamento de dentro do backbone, que qualquer roteador de área manteria. A topologia do backbone é transparente para todos os roteadores inter-área, assim como a topologia de cada área são para o backbone.

Áreas podem ser definidas de uma forma que o backbone não é contínuo. Neste caso, a conectividade (medida da capacidade dos computadores na rede trabalharem simultaneamente) do backbone deve ser restaurada por links virtuais. Links virtuais são configurados entre quaisquer roteadores do backbone que dividam um link para uma área que não seja do backbone, e funcione como se fossem links diretos.

Roteadores da borda do AS que rodem OSPF sabem sobre rotas exteriores através de protocolos externos (Exterior Gateway Protocols, EGPs), como o Exterior Gateway Protocol (EGP) ou o Border Gateway Protocol (BGP), ou através de informações de configuração.

c) O algoritmo SPF

O algoritmo de roteamento shortest path first (SPF, menor rota primeiro) é a base para as operações do OSPF. Quando um roteador SPF é ligado, ele carrega as estruturas de dados do protocolo de roteamento e espera por indicações de protocolos de camadas mais baixas de que suas interfaces estão funcionando.

Após o roteador garantir que suas interfaces estão funcionando, ele usa o protocolo OSPF “Hello” para reconhecer seus vizinhos, que são roteadores com interfaces para uma mesma rede. O roteador envia pacotes Hello para seus vizinhos e recebe o pacote Hello destes. Além de ajudar a reconhecer os vizinhos, o pacote Hello também permite ao roteador saber se todos os outros roteadores ainda estão em funcionamento (keepalive).

Em redes multi-acesso (redes que suportam mais de dois roteadores), o protocolo Hello elege um roteador designado (designated router), e um roteador designado substituto (backup). Além de outras tarefas, o roteador designado é responsável por gerar LSAs para toda a rede multi-acesso. Estes roteadores permitem uma redução no tráfego de rede e no tamanho da base de dados topológicos.

Quando uma base de dados link-state de dois roteadores vizinhos são sincronizadas, os roteadores são ditos adjacentes. Em redes multi-acesso, o roteador designado determina que roteador devem se tornar adjacentes. Bases de dados topológicos devem ser sincronizadas entre pares de roteadores adjacentes. Os adjacentes controlam a distribuição dos pacotes do protocolo de roteamento, que são enviados e recebidos somente nos adjacentes.

Cada roteador envia periodicamente um LSA para fornecer informação as adjacências de um roteador ou para informar aos outros quando o estado de um roteador se altera. Comparando as adjacências estabelecidas com os link states, roteadores com falhas podem ser detectados rapidamente, e a topologia da rede pode ser alterada apropriadamente. Com a base topológica gerada por meio dos LSAs, cada roteador calcula uma árvore de menores rotas (shortest-path tree), com ele próprio como raiz (root). A árvore de menores rotas, por sua vez, torna-se a tabela de roteamento.

d) Formato do pacote

Todos os pacotes OSPF começam com um cabeçalho de 24 octetos, como mostrado na Tabela 1.

Tamanho do campo (em octetos)

1

1

2

4

4

2

2

8

Variável

Nome do campo

Versão

Tipo

Tamanho do pacote

ID do roteador

ID da área

Checksum

Tipo de autenticação

Autenticação

Dados

Tabela 1: Os pacotes OSPF, constituído por nove campos

A descrição para cada campo da Tabela 1 é:

e) Características adicionais do OSPF

As características adicionais incluem roteamento em multi-rotas e roteamento baseado no tipo de serviço (type-of-service, TOS) pedido pela camada superior. Roteamento baseado em TOS suportam protocolos da camada superior que especificam tipos de serviços particulares. Um aplicativo, por exemplo, pode especificar que certos dados são urgentes. Se o OSPF possuir links de alta prioridade a sua disposição, estes podem ser usados para transportar o datagrama que requer urgência.

O OSPF suporta mais de um tipo de métrica. Se apenas uma métrica é usada, ela é considerada absoluta e TOS não é suportado. Se mais de uma métrica é usada, TOS pode ser suportado pelo uso de uma métrica separada (e, então, uma tabela de roteamento separada) para cada uma das oito combinações criadas pelos três bits de IP TOS (o atraso, taxa e confiança). Por exemplo, se os bits de IP TOS especificarem baixo atraso, baixa taxa e alta confiança, o OSPF calcula rotas a todos os destinos baseado nessas designações de TOS.

Máscaras de sub-rede IP são incluídas com cada destino anunciado, permitindo máscaras de tamanhos diferentes. Com máscaras de sub-rede de tamanho variável, uma rede IP pode ser dividida em diversas sub-redes de tamanhos variados. Isso permite ao administrador da rede maior flexibilidade para a configuração.

f) Resumo

Em muitos lugares, o protocolo RIP ainda é utilizado em redes TCP/IP que ainda não foram atualizadas para OSPF. Também é utilizado em redes OSPF como o protocolo entre a estação final e o roteador. O protocolo OSPF resolve todas as deficiências encontradas no RIP, sem afetar a conectividade com redes baseadas em RIP. Redes com crescimento acelerado devem ser projetadas adequadamente se desejamos que as funcionalidades do OSPF sejam exploradas em sua totalidade. Devido a sua capacidade de trabalhar com máscaras de rede variáveis, ele também ajuda a reduzir o desperdício de endereços IP, algo importante atualmente. Idealmente, o projeto da rede deveria incluir uma política consistente para distribuir os endereços IP pela organização, que proporcionaria a criação de áreas OSPF e a otimização de endereços. Se corretamente projetada e com roteadores sintonizados, o OSPF permite que redes sejam escaladas para topologias muito grandes, mantendo altos níveis de disponibilidade e desempenho.

Próxima seção: OSPF versus RIP
Seção Anterior: Routing Information Protocol (RIP)