OSPF 01 – Introdução

Introdução

Lembro quando entrei no primeiro provedor a rádio para trabalhar, em 2004, e o meu patrão e que viria a se tornar um bom amigo, me disse — “Estude TCP/IP, TCP/IP e TCP/IP. Se souber bem TCP/IP o resto será fácil”. Foi um dos melhores conselhos profissionais que recebi! Naquela época, tudo rodando com access points AP1000 e SWL-3300, e cartões Orinoco Gold, muitos. Nas empresas tínhamos pequenos servidores Coyote Linux e o core de rede já era formado pelas antigas versões do RouterOS, importados através de CF Disk, mas estes eram os velhos tempos. Uma coisa que me lembro muito bem era o terror de gerenciar todas as rotas estáticas que tínhamos. Dava muito trabalho para manter aquilo 100%.

Depois de um tempo, a medida que fui estudando roteadores e tudo mais, fui descobrindo RIP, OSPF e companhia. Mas ainda não implementava, só aprendendo e ficando curioso. A mudança mesmo aconteceu ao entrar na empresa que estou, que por sinal havia comprado a antiga empresa do Márcio. E estávamos com uma rede mista, parte roteada, parte em bridge/WDS. Apesar de já haver até debatido sobre o assunto, eu percebo uma perda em grandes redes em bridge. A diferença depois de haver tranformado aquele setor em roteado foi perceptível. E como parte dos pacotes precisam dos conteúdo do WDS, quanto maior a rede, maior a perda. Além disso nas versões mais novas do RouterOS, que suportam NV2, existe um problema maior. Ele é um protocolo de agregação de frames e o WDS não suporta agregação. Portanto quando é necessário bridges com NV2 é necessário usar MPLS/VPLS. Com o cenário dessa forma, implementamos o OSPF.

Open Shortest Path First

Algoritmo de Dijkstra

Funcionamento do Algoritmo de Dijkstra
fonte: Wikipedia

Mas o que é esse tal de OSPF? O Open Shortest Path First é um protocolo do tipo “link state“, que necessita estar com todos os roteadores de uma célula, designada nele como area, estejam configurados de forma consistente, e com um MTU igual. Sua base remonta o antigo SPF (Shortest Path First) e foi desenvolvido pelo grupo de IGP da IETF (Internet Engineering Task Force) e descrito inicialmente em 1989 pela RFC 1131. Ele surgiu como um IGP em alternativa ao antigo RIP, que apresentava algumas limitações quando é necessário escalabilidade. As atuais especificações podem ser encontradas na RFC 2328, que aborda o OSPF v2, e na RFC 5340 que aborda as atualizações para lidar com IPv6, no OSPF v3. Ele é utiliza o protocolo IP 89 para distribuir as informações entre os roteadores de um mesmo AS.

Entre as características do OSPF podemos destacar:

Prós

  • Fácil configuração
  • Rápida convergência
  • Não existe limite de custo
  • Rápida resposta quando o link altera de estado
  • Possibilita balanceamento de carga quando existe mais de um link em um ponto
  • Escolha sempre do menor caminho
Contras
  • Quando os roteadores eleitos como Designated Router ou Backup Designated Router “caem”, existem um reprocessamento do algoritmo de Dijkstra, que gera um consumo de recursos do roteador
  • As areas remotas tem que tocar a Area 0, mesmo que de modo virtual, para fazerem parte do mesmo AS.
  • Pode haver grande tráfego se a rede estiver instável, pelo constante recálculo.
  • É um protocolo que atua na camada dois e portante deve-se tomar um cuidado especial na interface que atende o cliente
  • Segurança frágil, com a autenticação via MD5 apenas.

Funcionamento

E alguns protocolos como o BGP nós temos que obrigatoriamente estabelecer uma sessão entre dois peers. Já o OSPF trabalha descobrindo os roteadores a sua volta, e constroem uma tabela com o estado destes links. Depois ele troca informações e a rede roda o algoritmo de Dijkstra e elege um DR e um BDR, que manteram as tabelas do roteamento da rede. Ao cair o DR, o BDR assume a responsabilidade das tabelas e um novo BDR é eleito.

As etapas seriam assim:

  1. Descobrir adjacências (vizinhança) através de uma mensagem HELLO.
  2. Com base nas informações coletadas são construídas as LSDB (Link State Database)
  3. O Algoritmo Dijkstra é executado
  4. Constroe-se a árvore SPF da rede
  5. As informações são inseridas na Tabela de Roteamento (no Mikrotik seria a FIB)
OSPF

Funcionamento do OSPF
Fonte: Cisco Documents Blog

As comunicações entre os roteadores se dão através de mensagens, que podem ser divididas em 5 tipos:

1 Hello Descobre roteadores vizinhos e constroi as adjacências
2 Database Description Confirma a sincronicidade das bases de dados
3 Link-State Request Requisita um registro Link State específico entre dois roteadores
4 Link-State Update Responde um LSR
5 Link-State Acknowledgment Confirmação entre outros tipos de pacotes

O Protocolo

O cabeçalho padrão do OSPF possue 24 bytes, e pode conter as seguintes informações:
OSPF Packet Header

OSPF Packet Header
fonte: Route My World!

Version Number: Para OSPF versão 2
Type: Diferencia os 5 tipos de pacotes
Packet Length: Tamanho do pacote em bytes
Router ID: Identifica o roteador de origem do pacote
Area ID: Identifica a área de origem do pacote
Checksum: Soma de verificação de consistência dos dados do pacote
Autentication Type: Tipo de identificação
Authentication: Utilizado quando a autenticação é definida
Data:
  • Pacote DBD: Informa o sumário da LSDB
  • Pacote LSR: Contém o tipo do LSU necessário e o Router ID
  • Pacote LSU: Informa todas as entradas LSA para a atualização
  • Pacote LSAck: Vazio

Estabelecendo a vizinhança

A imagem abaixo foi extraída do wiki da mikrotik:
OSPF Neighbourship

Estabelecendo a vizinhança OSPF

Processo de decisão da LSU/LSA

Processamento LSU/LSA

Clique para ampliar

Bem é isso. Num próximo artigo vamos tratar de como configurar o OSPF no RouterOS.

Referência

OSPF Wikipedia [português]
OSPF Wikipedia [english]
Wiki Mikrotik OSPF
RFC 1131
RFC 2328
RFC 5340
Cisco OSPF Design Guide
Cisco OSPF
O Protocolo OSPF – Jailton Santos das Neves, Waldeck Ribeirto Torres – UFF
Protocolos de Roteamento RIP e OSPF – Alexandre Urtado de Assis e Nilton Alves Jr. – CBPF
O Protocolo OSPF – Prof. José Gonçalves – UFES
Protocolo OSPF parte 1 e parte 2 – DL Tec do Brasil


4 Comentários on “OSPF 01 – Introdução”

  1. José Filho disse:

    Extremamente útil. Obrigado.

  2. Anthony Salvador disse:

    ótimo artigo,#partiuestudar

  3. Ricardo disse:

    Muito bom, Parabéns!

  4. Helton disse:

    Otimo conteúdo parabens!


Deixe um comentário

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