O entendimento da lógica dos protocolos vetor de distância (distance vectors) é relativamente simples, tanto no entendimento quanto na implementação. No entanto os recursos que ajudam os protocolos vetor distância a evitar loops de roteamento podem na verdade ser bem difíceis de se aprender de primeira. Vamos fazer um overview dessas características visando facilitar o seu entendimento.
Os protocolos de vetor distância funcionam anunciando todas as rotas que conhecem através de todas as interfaces de um router. Os roteadores que pertencem a mesma rede recebem estas tabelas e aprendem as rotas.
Cada roteador envia envia atualizações de roteamento periódicas. Cada roteador possui um temporizador de atualizações de roteamento. Esse temporizador determina a frequência com que as atualizações da tabela devem ocorrer. A ausência dessas atualizações durante um determinado número de intervalos do temporizador resulta na remoção das rotas aprendidas da tabela de roteamento.
Evitando loops com vetor de distância
As funções mais importântes dos protocolos de roteamento vetor distãncia são desempenhandas quando há redundãncias na rede. Os protocolos de roteamento vão assegurar a presença das melhores rotas na tabela de roteamento, reagindo também as mudanças na topologia de rede.
Para evitar os loops os protocolos de roteamento precisam de vários mecanismos. Abaixo temos uma tabela de problema e solução;
| Problema | Solução |
| Múltiplas rotas para a mesma sub-rede têm métricas iguais | As opções de implementação indicam ou o uso da primeira rota aprendida, ou a colocação de múltiplas rotas para a mesma sub-rede na tabela de roteamento. |
| Os loops de roteamento ocorrem por conta da passagem das atualizações entre si através de um único link | Split horizon - O protocolo de roteamento anuncia as rotas através de uma interface somente se elas não tiverem sido aprendidas com as atualizações que entram por essa mesma interface. |
| Os loops de roteamento ocorrem porque informações de roteamento entram em loop através de caminhos alternativos | Route Poisoning - Quando uma rota para uma sub-rede falha, a sub-rede é anunciada com a métrica de distância infinita. Poison reverse refere-se a rotas que normalmente não são anúnciadas por causa do split horizon mas que são anunciadas com uma métrica infinita quando uma rota falha. |
| Contagem ao infinito | Temporizador de interrupção - Depois de descobrir que a rota para uma sub-rede falhou, um roteador espera um certo tempo antes de acreditar em qualquer outra informação a respeito dessa sub-rede. Atualizações engatilhadas - Quando uma rota falha, envia-se, imediatamente uma atualização, em vez de esperar que o temporizador de atualização expire. Usado em conjunto com route poisoning, isso garante que todas as rotas saibam das rotas falhas antes dos temporizadores de interrupção expirarem. |
Envenenamento (Poisoning) de Rotas
Quando um roteador anuncia que uma rota está deixando de ser válida e se tornando inválida loops de roteamento podem ocorrer. A queda de um link serial poderia fazer muitas rotas se tornarem inválidas, potencialmente causando loops de roteamento.
O route poisoning (envenenamento de rota), reduz a chance de ocorrer estes loops. O route poisoning começa quando um roteador percebe que uma rota conectada não é mais válida. Por exemplo, o roteador percebe que um link serial falhou, mundando o status do link de "up e up" para "down e down". Ao invés de não anunciar mais essa rota defeituosa, o protocolo de roteamento que usa route poisoning ainda anuncia rota, mas com uma métrica muito grande - tão grande que os outros roteaodores consideram a métrica como infinita e a rota como inválida.
Split Horizon
Route poisoning não resolve todos os problemas de loop. mesmo em uma rede simples se não for usado um outro recurso dos protocolos de roteamento vetor distância loops podem ocorrer.
O gateway A informará o gateway B de que possui uma rota para a rede 1.
As regras do Split horizon dizem que uma mensagem de atualização separada deve ser gerada para cada gateway vizinho, esta atualização deve omitir a rota que aponta para o vizinho.
Esta regra previne loops entre gateways adjacentes. Se B também tivesse uma rota para a rede 1 então A poderia apontar para B e B poderia apontar para A , formando-se assim um loop.
Em resumo;
Split Horizon = Não me ensine o que eu já sei!!!
Split Horizon com Poison Reverse
Já sabemos o real funcionamento do Split Horizom e do Route Poisoning. Contudo isso os protocolos de roteamento de vetor distância da Cisco usam, na verdade, uma variante do split horizon chamada split horizon com poison reverse. Enquanto a rede permanece estável, isso funciona como split horizon tradicional. Quando uma rota falha, o roteador anuncia uma rota de métrica infinita sobre a sub-rede através de todas as interfaces - incluindo as anteriormente protegidas pelo split horizon.
O split horizon com poison reverse é, essencialmente, uma inviabilização de rota, porém especificamente colocada em links pelos quais, normalmente, o split horizon não permitiria a passagem de informações de roteamento. De qualquer forma, o resultado é que as rotas com falha são anunciadas com métricas infinitas.
Temporizador de Interrupção
Você pode evitar um problema de contagem até o infinito usando temporizadores holddown, que funcionam da seguinte forma:

1) Quando um roteador recebe uma atualização de um vizinho, indicando que uma rede anteriormente acessível agora está inacessível, o roteador marca a rota como inacessível e inicia um temporizador holddown. Se, a qualquer momento antes do temporizador holddown expirar, uma atualização for recebida do mesmo vizinho indicando que a rede está novamente acessível, o roteador marca a rede como acessível e remove o temporizador holddown.
2) Se chegar uma atualização de um roteador vizinho diferente, com uma métrica melhor que a registrada originalmente na rede, o roteador marca a rede como acessível e remove o temporizador holddown.
3) Se, a qualquer momento antes do temporizador holddown expirar, uma atualização for recebida de um roteador vizinho diferente com uma métrica pior, a atualização será ignorada. Ignorar uma atualização com uma métrica pior quando um temporizador holddown está ativado concede mais tempo para que o conhecimento de uma alteração que cause perturbações seja propagado através de toda a rede.
Estes são os mecanismos utilizados pelos protocolos distance vector para conteção de loops de roteamento.
Espero que tenha sido útil a vocês!!!
Good learning,
Filemon Neto