O OSPF -
Open Shortest Path First - é um protocolo de
roteamento para redes que
operem com protocolo IP;
desenvolvido pelo grupo de trabalho de IGPs (Interior Gateway Protocol)
da IETF (Internet
Engineering Task Force) e descrito inicialmente em 1989 pela RFC 1131. Baseado no
algoritmo Shortest Path First (menor rota primeiro), o OSPF foi criado
para substituir o protocolo RIP empregado
no final da década de 1980 na então Arpanet (atual Internet)
e que apresentava diversos problemas e limitações para operar satisfatoriamente
em uma rede de grande porte.
Atualmente o OSPF é
um dos protocolos de roteamento mais empregados, sendo suportado pela maioria
dos roteadores, assim como por servidores que implementem os sistemas
operacionais Linux e Unix. Versátil, o OSPF pode ser empregado tanto a redes de
pequeno quanto em redes de grande porte.
Princípios
de Funcionamento
Embora possua
inúmeros detalhes de implementação e configuração, o princípio de roteamento do
OSPF é relativamente simples. Ao invés de manter uma tabela com todas as rotas
possíveis (como faz o protocolo RIP), cada nó (roteador)
OSPF contêm dados sobre todos os links da rede. Cada entrada da tabela de
roteamento OSPF contém um identificador de interface, um número do link e uma
distância ou custo (esse último pode ser atribuído pelo administrador da rede).
Com todas essas informações, cada nó possui uma visão da topologia da rede e
pode, dessa forma, descobrir sozinho qual é a melhor rota para um dado destino.
Caso ocorra uma
alteração num dos links de rede, os nós adjacentes avisam seus vizinhos. Esses
por sua vez, verificam o número da mensagem ou a hora no cabeçalho do pacote
OSPF para saberem se este aviso é novo ou velho. Se o aviso for novo, é feita a
verificação da existência da entrada. Caso ela não exista, é adicionada à
tabela de roteamento. Se a entrada já existir, são comparados os números da
mensagem recebida com a entrada existente na tabela de roteamento. Se o número
da mensagem recebida for maior que a entrada existente, a entrada é substituída,
caso contrário, a entrada da tabela é transmitida como uma nova mensagem. Se os
números forem iguais, o nó não executa nenhuma ação.
Principais
Características
Há duas
características principais no OSPF. A primeira, é que se trata de 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, é que ele se baseia 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
melhor 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.
Pacotes
OSPF
Há cinco tipos
distintos de pacotes OSPF. Cada um dos cinco tipos iniciam com um cabeçalho
padrão de 24 bytes. E são eles:
1. Pacote de aviso.
(Hello packet)
2. Pacote de informações
do Banco de Dados (Database Description packet)
3. Requisição de estado
de link (Link State Request packet)
4. Atualização de estado
de link (Link State Update packet)
5. Recebimento de
informações de link (Link State Acknowledgment packet)
Cabeçalho
do Pacote OSPF
Todo pacote OSPF
inicia com um cabeçalho de 24 bytes. Esse cabeçalho contem todas as informações
necessárias para determinar se o pacote deve ser aceito para futuras operações.
O pacote tem a seguinte estrutura:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Version # |
Type | Packet length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Router ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Area
ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Checksum | AuType |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Authentication |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Authentication
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
·
Version - O número da versão do protocolo OSPF.
·
Type - O tipo do pacote OSPF.
Tipo Descrição
________________________________
1 Hello
2 Database Description
3 Link State Request
4 Link State Update
5 Link State Acknowledgment
·
Packet length - O tamanho do pacote em bytes. O tamanho inclui também o
cabeçalho.
·
Router ID - O identificador do roteador que enviou o pacote.
·
Area ID - Um número de 32 bits que indica a área a qual o pacote
pertence. Todo pacote é associado a uma única área.
·
Checksum - O checksum do pacote completo, incluindo o cabeçalho, mas
excluindo os 64 bits de autenticação.
·
AuType - Indica o esquema de autenticação a ser usado no pacote.
·
Authentication - Um campo de 64 bits usado para informar o esquema de
autenticação a ser utilizado.
Nenhum comentário:
Postar um comentário