Tutorial OSPF – Parte 5

Dando sequência ao tutorial sobre o protocolo OSPF, hoje falaremos de Neighbor e Adjacências.

Basicamente, routers que compartilham um mesmo segmento tornam-se neighbors neste segmento. O estabelecimento de uma relação de vizinhança ocorre por meio da mensagem “Hello”. Routers tornam-se vizinhos assim que conseguem ver eles mesmos listados como vizinho no pacote Hello do router vizinho. Desta forma, uma comunicação de 2 vias é garantida. É importante ressaltar que a negociação de vizinhança utiliza apenas o endereço IP primário da interface. Ou seja, se a mesma estiver configurada com endereços secundários, estes não serão utilizados no processo. Outro porém é que, se endereços secundários forem configurados, estes devem pertencer à mesma área OSPF do endereço primário.


Dois routers não estabelecem uma relação de vizinhança até que os seguintes pontos sejam verificados:

  • Area-ID: Para 2 routers que possuem interfaces em um mesmo segmento, estas interfaces devem pertencer à mesma área OSPF, pertencer à mesma subrede e possuir a mesma máscara de rede.
  • Autenticação: Se autenticação estiver sendo utilizada, routers vizinhos devem trocar a mesma senha em um dado segmento.
  • Hello e “Dead Intervals”: Routers OSPF trocam mensagens Hello em cada segmento. O Keepalive HELLO configurado deve ser consistente em um mesmo segmento. O “Dead Interval” seria o intervalo de tempo entre o último pacote HELLO recebido e o router considerar o neighbor como “down”. Este intervalo também deve ser o mesmo em um mesmo segmento OSPF. Os comandos para configuração destes intervalos nas interfaces são: “ip ospf hello-interval seconds” e “ip ospf dead-interval seconds”
  • “Stub Area Flag”: Dois routers devem também possuir o mesmo valor no campo “Stub Area Flag”, no pacote Hello, para formarem uma relação de vizinhança. Basicamente, por hora, você deve ter em mente que a definição de áreas “STUB” afetam a relação de vizinhança entre os routers. Falaremos mais de áreas STUB mais adiante.
  • MTU Size: Finalmente, temos o MTU Size das interfaces. Se estes valores forem diferentes em cada ponta, a adjacência não será formada.  Se por algum motivo existir a necessidade de estabelecer a adjacência mantendo-se MTUs distintas em cada ponta, o comando “ip ospf mtu-ignore” configurado em cada interface envolvida no processo resolve o problema.

Adjacências

O processo de formação de adjacências ocorre imediatamente após a definição das relações de vizinhança. Routers adjacentes são aqueles que foram além da simples troca de pacotes HELLO, e iniciaram o processo de sincronismo da base de dados. Objetivando reduzir a quantidade de informação trocada em um dado segmento, OSPF elege um router para ser o router designado (Designated Router – DR), e outro para assumir o papel de backup dele (Backup Designated Router – BDR), em cada segmento multi-acesso (como segmentos Ethernet, por exemplo). A idéia por trás deste princípio é criar um ponto central na rede multi-acesso para troca de informações. A figura abaixo ilustra o processo.

drbdr.GIF

A eleição do router DR é feita pelo pacote HELLO. Pacotes HELLO são trocados entre os routers via multicast, em cada segmento. O router que tiver o maior OID (OSPF ID) em um segmento é eleito o DR para aquele segmento. O mesmo processo é realizado para a eleição do BDR. Em caso de empate, o router com maior RID (Router ID) vence a disputa. A prioridade default para uma interface OSPF é 1. Este valor pode ser alterado pelo comando: “ip ospf priority “. Uma prioridade “0” significa que a interface em questão não será considerada no processo de eleição do DR / BDR.

O RID é definido pelo maior endereço IP configurado no router. Entretanto, se interfaces Loopbacks existirem, o RID é definido pelo maior IP configurado em uma interface Loopback. É interessante utilizar Loopbacks para definição do RID pois, com elas, é possível “garantir” que este endereço IP se manterá, e não será trocado em uma eventual alteração na rede.

Na figura abaixo, as interfaces de RTA e RTB possuem a mesma prioridade, mas RTB tem um RID maior e, por isso, será eleito o DR no segmento. RTC tem uma prioridade maior que RTB e, por isso, RTC será eleito o DR naquele segmento.

drbdr2.GIF

O processo de formação de adjacência consiste de 7 estágios:

  1. Down
  2. Init
  3. Two-way
  4. Exstart
  5. Exchange
  6. Loading
  7. Full

O comando “show ip ospf interface ” é uma forma rápida de verificar se todas as interfaces encontram-se configuradas nas áreas em que deveriam.

Um ponto importante a ser lembrado é que a ordem em que os comandos são digitados no router é muito importante. Por exemplo, se o comando “network 203.250.0.0 0.0.255.255 area 0.0.0.0” for digitado ANTES do comando “network 203.250.13.41 0.0.0.0 area 1”, todas as interfaces seriam colocadas na área 0 (0.0.0.0), o que é incorreto, já que desejamos que a loopback (203.250.13.41) seja colocada na área 1.

Exemplos de comandos SHOW:

RTB#show ip ospf interface e0
Ethernet0 is up, line protocol is up
Internet Address 203.250.14.3 255.255.255.0, Area 0.0.0.0
Process ID 10, Router ID 203.250.12.1, Network Type BROADCAST, Cost: 10
Transmit Delay is 1 sec, State DROTHER, Priority 1
Designated Router (ID) 203.250.15.1, Interface address 203.250.14.2
Backup Designated router (ID) 203.250.13.41, Interface address
203.250.14.1
Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
Hello due in 0:00:03
Neighbor Count is 3, Adjacent neighbor count is 2
Adjacent with neighbor 203.250.15.1 (Designated Router)
Adjacent with neighbor 203.250.13.41 (Backup Designated Router)

RTD#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
203.250.12.1 1 2WAY/DROTHER 0:00:37 203.250.14.3 Ethernet0
203.250.15.1 1 FULL/DR 0:00:36 203.250.14.2 Ethernet0
203.250.13.41 1 FULL/BDR 0:00:34 203.250.14.1 Ethernet0

Adjacências em links ponto-a-ponto

OSPF sempre formará adjacências em links ponto-a-ponto sem a necessidade de eleger um DR e BDR.

Adjacências em links Non-Broadcast Multi-Access (NBMA)

Um cuidado especial é necessário quando configuramos OSPF em redes NBMA, como Frame Relay, X.25 ou ATM. Por default, OSPF considera estes redes como Broadcast (assim como uma rede Ethernet). No entanto, redes NBMA geralmente são arquitetadas sob uma topologia “hub & spoke”, e não provê o tipo de acesso full mesh que OSPF acredita existir. Neste caso, a seleção do DR e BDR torna-se um problema, já que o DR e o BDR precisam ter uma conexão física entre eles. Além disso, devido à limitação de broadcast existente em redes deste tipo, o DR e o BDR precisam possuir uma lista estática de todos os roteadores pertencentes à rede frame relay.

Evitando a eleição de DR e BDR em redes NBMA

Existem algumas maneiras de evitar a eleição de DR e BDR em redes NBMA.

a) Adoção de subinterfaces point-to-point: A configuração de subinterfaces point-to-point faz com que OSPF as trate como qualquer interface física P-2-P. Lemabrando que OSPF sempre formará uma adjacência entre 2 interfaces P2P, não teríamos aqui a eleição do DR ou BDR.Ex:

RTA#
interface Serial 0
no ip address
encapsulation frame-relay
interface Serial0.1 point-to-point
ip address 128.213.63.6 255.255.252.0
frame-relay interface-dlci 20
interface Serial0.2 point-to-point
ip address 128.213.64.6 255.255.252.0
frame-relay interface-dlci 30
router ospf 10
network 128.213.0.0 0.0.255.255 area 1

b) Seleção do tipo de interface: O comando que permite a indicação do tipo de interface em uma rede OSPF é: ip ospf network {broadcast | non-broadcast | point-to-multipoint}

Ex:

RTA#
interface Loopback0
ip address 200.200.10.1 255.255.255.0
interface Serial0
ip address 128.213.10.1 255.255.255.0
encapsulation frame-relay
ip ospf network point-to-multipoint
router ospf 10
network 128.213.0.0 0.0.255.255 area 1

Espero que tenham gostado! Na próxima parte deste tutorial, trataremos de sumarização em redes OSPF.

Um abraço!

Marco Filippetti

5 comentários

Pular para o formulário de comentário

  1. Olá Marco, post bem completo sobre OSPF gostei muito e também gostaria só de ressaltar que no processo de verificaçao para a adjacencia também é verificado o MTU size das interfaces que caso seja diferente entre elas nao sobe a adjacencia que neste caso o bom e velho comando “ip ospf mtu-ignore” dentro das interfaces resolve este problema quando existe a necessidade de subir a adjacencia entre vizinhos em OSPF com MTU diferentes.
    Abraços

  2. Anderson, tem razão! Acabo de adicionar este ponto tb! Valeu cara!!!

  3. Só pude ler agora, tava sem tempo.. Parabéns ai marco pela sequencia de tutoriais.

  4. Legal Marco, interessante citar também a nivel de curiosidade que é possível definir o router ID manualmente e este processo tem mais prioridade do que a definição de router ID pelo recusro de interface loopback, porém não é aconselhavel em uma integração de OSPF com BGP.

  5. se não me falha a vaga memória, o comando de definição do ID do roteador em OSPF é: router-id (1p adress)

Deixe um comentário