quarta-feira, 8 de junho de 2011

OSPF - Open Shortest Path First

O protocolo OSPF (Open Shortest Path First), definido pela RFC 2328, é um protocolo IGP (Interior Gateway Protocol), ou seja, desenhado para uso intra-As (Sistema Autônomo). O protocolo OSPF foi desenvolvido para atender às necessidades colocadas pelas comunidades da Internet, que demandavam um protocolo IGP eficiente, não-proprietário e inter-operável com outros protocolos de roteamento.

OSPF baseia-se na tecnologia “link-state”, que é bastante diferente e bem mais avançada que a tecnologia utilizada em protocolos puramente vetoriais, como o RIP, que utiliza o algoritmo Bellman-Ford para cálculo da melhor rota.

OSPF x RIP
Como já sabemos, o protocolo RIP possui certas características que o tornam bastante limitado para aplicação em redes mais complexas, como:
  • Limite de 15 saltos (roteadores) até a rede destino
  • RIP não oferece suporte a VLSM
  • RIP não suporta autenticação
  • RIP adota o procedimento de enviar broadcasts periódicos contendo a totalidade da tabela de roteamento para a rede. Em redes de grande porte, especialmente em redes com links WAN mais limitados, isso pode gerar um consumo excessivo de largura de banda e causar problemas mais sérios
  • O processo de convergência de uma rede rodando RIP é mais lento e ineficiente do que redes rodando OSPF
  • RIP não leva em consideração dados como custo dos links ou atrasos na rede, baseando-se exclusivamente na contagem de saltos para definição da melhor rota.
  • Redes baseadas no protocolo RIP são redes planas. Não existe o conceito de fronteiras, ou áreas. A introdução de redes classless e de conceitos como agregation e sumarização tornam redes RIP bastante ultrapassadas, já que não são compatíveis com tais conceitos.
Algumas limitações, como o não-suporte a VLSM, autenticação e anúncios multicast, foram amenizadas com a introdução da versão 2 do protocolo RIP (RIPv2). Entretanto, o restante das limitações permaneceram inalteradas.

OSPF 
O protocolo OSPF, por sua vez, resolve todas as limitações apresentadas anteriormente:
  • Não existe limite de saltos com OSPF
  • OSPF suporta VLSM
  • OSPF utiliza anúncios multicast, e as atualizações apenas são disparadas quando existe alguma alteração na rede (anúncios incrementais)
  • Redes OSPF convergem mais eficientemente do que redes RIP
  • OSPF permite um meio mais eficaz de balanceamento de carga
  • OSPF permite a implementação de hierarquia às redes, por meio das áreas. Isso facilita o planejamento da rede, assim como tarefas de agregação e sumarização de rotas.
  • OSPF permite a transferência e marcações de rotas externas, injetadas em um ASN (Sistema Autônomo). Isso permite que se rastreie rotas injetadas por protocolos EGP, como o BGP.
  • É claro que isso tudo tem um preço. OSPF é mais complexo de ser planejado, configurado e suportado, se comparado com RIP. Além disso, os processos OSPF consomem mais CPU que processos RIP, uma vez que o algoritmo e a estrutura utilizados pelo OSPF são muito mais complexos.

OSPF é um protocolo classificado como “Link-State”. Isso significa que o protocolo utiliza um algoritmo link-state para tomada de decisões sobre qual o melhor caminho a ser tomado. A operação do algoritmo utilizado pelo OSPF - chamado de algoritmo de Dijkstra.
  1. Assim que o processo OSPF é inicializado - ou assim que ocorra alguma alteração na informação de roteamento de uma rede OSPF - o roteador gera um anúncio link-state (LSA - Link State Advertisement). Este anúncio é composto pelo status de todos os links neste roteador.
  2. Todos os roteadores trocam mensagens link-state entre si via multicast. Cada roteador que recebe um update deve armazenar uma cópia em sua base de dados e, então, propaga-lo para os roteadores vizinhos.
  3. Uma vez que a base de dados de cada roteador encontre-se atualizada, o roteador calcula a topologia lógica da rede (Shortest Path Tree) para cada um dos destinos. O algoritmo Dijkstra é utilizado no cálculo. Os destinos e respectivos custos e next-hops, finalmente, formarão a tabela de roteamento.
  4. Caso nenhuma alteração na rede OSPF ocorra, o protocolo OSPF praticamente não tem ação. Em caso de alterações, updates são gerados e o algoritmo Dijkstra recalcula o melhor caminho para cada destino.
OSPF consome mais CPU que protocolos mais simples, como o RIP, exatamente pelos cálculos que ele realiza.

O Algoritmo SPF
Como vimos, em uma rede OSPF, o melhor caminho (o mais “curto”) é calculado aplicando-se o algoritmo Dijkstra. O modo como o algoritmo opera é colocando o roteador na raiz da topologia, e então calcula o melhor caminho para um destino baseando-se no custo cumulativo até o destino em questão. Cada roteador na rede terá uma visão única da topologia lógica, ainda que todos os roteadores utilizem a mesma base de dados link-state (link-state database). Algumas terminologias pertinentes:

Custo
O custo (também conhecido como métrica) de uma interface OSPF é uma indicação do overhead necessário para o envio de pacotes através desta interface. O custo de uma interface é inversamente proporcional a largura de banda desta interface. Uma largura de banda maior indica um custo menor. Custo = 1.000.000.000/Banda (bps). Por este motivo, é importante a correta configuração do parâmetro Bandwidth em interfaces rodando OSPF.
Árvore (ou topologia) de caminho mais curto (SP Tree)

Observe a topologia física ilustrada na figura abaixo (1a figura). A topologia SP é apresentada na figura imediatamente inferior. Observe a diferença entre a topologia física e a topologia lógica gerada pelo algoritmo, considerando-se os custos associados a cada interface. O roteador RTA é o ponto focal da topologia, como foi dito anteriormente. No exemplo ilustrado, o custo do roteador RTA para a rede 222.211.10.0 pode ser 20 (10+5+5), se considerarmos o caminho via roteador RTB e RTD, mas será 20 também (10+10), se considerarmos o caminho via RTC. Em caso de caminhos com igual custo, OSPF balanceia a carga (para até 6 caminhos, na implementação do OSPF segundo a Cisco).
sptree.GIF

Roteadores de fronteira (Area ou Borda)
Como vimos, OSPF utiliza multicast para propagar os anúncios pela rede. O conceito de areas foi criado para criar fronteiras de propagação destes anúncios. A propagação de updates e o cálculo da topologia pelo algoritmo Dijkstra são restritos à área. Todos os roteadores em uma mesma área terão a mesma base de dados topológica. Roteadores que pertencem a mais de uma área terão as bases de dados de cada área a qual pertencem. Este é o caso dos roteadores de fronteira, como os ABRs (Area Border Routers) e os ASBRs (Autonomous System Border Routers). A figura abaixo ilustra a aplicação destes roteadores.
abrasbr.GIF

Pacotes Link-State
Existem diferentes tipos de pacotes Link-State. Estes pacotes são ilustrados no diagrama abaixo.
lspackets.GIF 

FONTE:  Marco Filippetti - BLOG CCNA - OSPF Partes 1 e 2

Nenhum comentário:

Postar um comentário