Arq. de Redes - Pedro Brandão 2004/05 1
Arquitectura de Redes
Routing Dinâmico
Link State
OSPF
Arq. de Redes - Pedro Brandão 2004/05 2
Algoritmos de encaminhamento – estado das
ligações (link state)
Os protocolos do tipo Link State mantêm uma tabela de informação topológica muito mais complexa que os Distance Vector;
Os routers que usam protocolos LS têm uma visão global da topologia da rede e não apenas da sua vizinhança imediata como é o caso dos DV;
Estes protocolos usam Link State Packets ou Hello Packets para informar os outros routers da rede sobre o estado de ligações remotas;
A descoberta da rede, nos LS, é muito diferente dos DV:
Routers enviam regularmente pacotes Hello aos routers adjacentes que
informam sobre o estado das suas ligações;
Routers trocam a base de dados sobre a topologia da rede que
conhecem com routers adjacentes;
Depois compilam toda a informação recebida para (re)construir a imagem topológica da rede;
Correm um algoritmo Shortes Path First sobre o grafo da topologia e calculam os melhores caminhos para cada uma das redes derivando a tabela de encaminhamento;
A lista de melhores caminhos (não apenas os mais curtos...) para cada uma das redes irá dar origem à tabela de routing a ser usada (rotas com igual custo podem ser utilizadas para load-balancing)
Os LSs “olham” para a largura de banda das ligações e níveis de
congestão, podendo assim concluir a melhor rota, de uma forma mais correcta.
Arq. de Redes - Pedro Brandão 2004/05 3
Baseado em RSDII – SSargento
Link state - convergência
Quando um router se apercebe da alteração do estado
de uma ligação ou de mudanças na topologia, envia
esta informação para todos os routers adjacentes;
Um router que participe numa rede com este protocolo
deve efectuar as seguintes operações:
Manter os nomes dos vizinhos e saber o custo e estado destas ligações;
Criar LSPs (Link State Paths) que listem os nomes dos vizinhos e os custos associados;
Enviar estes LSPs para todos os routers adjacentes que participem nesta rede com este protocolo de
encaminhamento;
Receber os LSPs dos outros routers e actualizar a sua própria base de dados;
Construir um mapa com toda a topologia a partir dos LSPs recebidos e calcular o melhor caminho para cada uma das redes destino possíveis.
Arq. de Redes - Pedro Brandão 2004/05 4
Link State vs Distance Vector
Link StateExigem mais memória e mais processamento; Consomem mais largura de banda no arranque;
Após início apenas são enviadas actualizações de topologia; Podem utilizar Largura de Banda e níveis de congestão como
métricas (este tipo de métricas pode levar a oscilações na topologia);
Tempos de convergência reduzidos; Podem usar source-routing;
Utilização do ToS do IP; Distance Vector
Mais simples de implementar;
Consumo de recursos computacionais menor; Usam informação calculada por outros routers; Usam saltos para decidir os melhores caminhos;
Dados sobre as tabelas de rota são enviadas frequentemente
Arq. de Redes - Pedro Brandão 2004/05 5
Baseado em RSDII – SSargento
SPF ou Algoritmo de Dijkstra:
R3 R2 R1 R4 R5 8 8 13 18 10 4 8 16 12 26C(i,j) – custom entre i e j
D(v) – valor corrente da distância a v S – conjunto de nós a solucionar M – conjunto de nós cujo destino mais curto é conhecido
Inicialização: M = {R1} for all nodes in S
if v adjacent to R1 then D(v) = c(R1,v) else D(v) = infinity
While nodes in S
find w in S such that D(w) is a minimum add w to M
remove w from S
update D(v) for all v adjacent to w and in S: D(v) = min( D(v), D(w) + c(w,v) )
Arq. de Redes - Pedro Brandão 2004/05 6
SPF ou Algoritmo de Dijkstra:
Shortest-Path First (SPF):
Algoritmo, que a partir da base de dados de estado
das ligações, conduz a uma representação gráfica
idêntica, calculando uma árvore com os caminhos
mais curtos para cada destino (Shortest Path Tree).
Shortest-Path Tree:
Árvore dá a rota para qualquer rede ou terminal
destino;
É
utilizada
para
construir
a
tabela
de
encaminhamento;
Algoritmo SPF origina uma árvore diferente para
cada router (a raíz da árvore é o router em causa),
apesar da base de dados ser idêntica, pois cada
Arq. de Redes - Pedro Brandão 2004/05 7
Baseado em RSDII – SSargento
SPF ou Algoritmo de Dijkstra
Shortest-Path Tree
R3 R2 R1 R4 R5 8 16 12 26Arq. de Redes - Pedro Brandão 2004/05 8
Vantagens do OSPF - RFC2328
Suporta encaminhamento com base no ToS (tipo de serviço);
Suporta load balancing (balancear o tráfego pelas ligações);
Permite a partição duma AS em áreas e efectuar encaminhamento de uma forma hierárquica;
Permite autenticação na troca de mensagens entre routers;
Suporta rotas específicas de terminal e de rede;
Suporta máscaras com vários tamanhos (VLSM)
Suporta multicast
Importa rotas exteriores (RIP e EGP) para a sua base de dados;
Tem convergência rápida;
Não tem limitação de Hop Count;
Processa as actualizações eficientemente;
Selecciona o caminho baseado na largura de banda das ligações e na sua ocupação;
Arq. de Redes - Pedro Brandão 2004/05 9
Baseado em RSDII – SSargento
Estrutura hierárquica de uma AS OSPF (I)
Áreas
Uma área OSPF consiste num número de redes e routers que
estão logicamente agrupadas;
Definidas por localização, por região ou razões
administrativas;
Todos os AS OSPF consistem em pelo menos uma área, o
backbone, mais tantas áreas quantas as necessárias, de
acordo com o critério de desenho do AS;
Dentro duma área OSPF todos os routers têm conhecimento da mesma topologia de rede interna à área;
Routers interiores à área não têm conhecimento da topologia
das redes externas à área, apenas conhecem as rotas para esses destinos;
Conceito de área limita o tamanho da base de dados
topológica que tem que ser mantida pelos routers;
Impacto directo no processamento a executar por cada router e na quantidade de informação de estado das ligações que tem que ser inundada em todos os routers.
Arq. de Redes - Pedro Brandão 2004/05 10
Estrutura hierárquica de uma AS OSPF (II)
Backbone:
Tem todas as propriedades duma área normal, mas tem a responsabilidade acrescida de distribuir a informação de encaminhamento entre as áreas ligadas a ele.
Intra-Area Routers (IARs) ou internos:
Routers situados completamente dentro duma área OSPF.
Area Border Routers:
Routers que ligam duas ou mais áreas;
ABRs mantêm tantas topologias de rede quantas as áreas às quais estão ligados e dão conhecimento a cada área, a que estão ligados, das rotas para atingir outras áreas.
Também desempenham as funções de IAR
AS Boundary Routers (ASBR):
Routers que estão situados na periferia dum AS e que trocam informação
de rotas com routers em outros AS, usando EGP;
Routers que importam rotas estáticas ou rotas de outros IGP (RIP, por
exemplo) para um AS;
ASBR inundam todas as áreas (excepto as áreas stub) do AS com rotas para destinos externos do AS.
Arq. de Redes - Pedro Brandão 2004/05 11
Baseado em RSDII – SSargento
Estrutura hierárquica de uma AS OSPF (III)
Área 0 (Backbone)
Área 1 ABR Área 2
ABR IARs IARs
AS
externo
ASBR EGP IARs RIPArq. de Redes - Pedro Brandão 2004/05 12
Área Stub
Área configurada com uma rota por defeito
para atingir o mundo exterior.
As redes externas ao AS não são injectadas
neste tipo de área.
Reduz o tamanho da base de dados topológica
da área assim como os requisitos de memória
dos routers.
Impossibilidade de a usar como área de
trânsito.
Usada por exemplo quando apenas existe um
ABR para a área.
Arq. de Redes - Pedro Brandão 2004/05 13
Baseado em RSDII – SSargento
Tabela de encaminhamento
Base de dados dos estados das ligações:
Directed graph ou topological database;
Criada a partir dos link state advertisements gerados pelos routers na área.
Tabela de encaminhamento:
Contém entradas para cada destino: rede, sub-rede ou terminal;
Para cada destino, existe informação para um ou mais tipos de serviço (ToS);
Para cada combinação de destino e ToS, existem entradas para um ou mais caminhos óptimos a serem usados;
Gerada por SPF.
Arq. de Redes - Pedro Brandão 2004/05 14
Routers
Routers adjacentes – routers vizinhos (1 hop, bidireccional) com as suas bases de dados topológicas sincronizadas através da troca da informação de estado das ligações, trocada somente entre routers adjacentes;
Todas as redes multi-acesso têm um Designated Router (DR) e um Backup Designated Router (BDR). Estes routers são eleitos automaticamente para cada rede, uma vez descobertos os routers vizinhos pelo protocolo Hello;
O DR desempenha duas funções chave numa rede:
Gera network links advertisements que listam os routers ligados a uma rede multi-acesso.
Forma adjacências com todos os outros routers numa rede multi-acesso, para minimizar trocas de informação entre routers ligados na mesma rede. Deste modo é o responsável por distribuir todos os link state
advertisements (LSA) nessa rede.
O BDR forma as mesmas adjacências que o DR. É capaz de assumir as funções do DR, logo que detecte que o DR falhou.
Quando existe um DR e BDR na rede os outros routers apenas formam adjacências com o DR e BDR para essa rede.
Arq. de Redes - Pedro Brandão 2004/05 15
Baseado em RSDII – SSargento
Routers
DR BDR BDR DR Routers adjacentesA adjacência com o BDR permite trocar LSAs com este. Assim, o BDR tem a mesma informação que o DR podendo substituí-lo rapidamente em caso de necessidade.
Arq. de Redes - Pedro Brandão 2004/05 16
Anúncios (advertisements) dos estados
das ligações
Router Links
•Anunciados por todos os routers •Descreve o estado/custo das ligações do router X
Network Links
•Anunciados pelo DR
•Descreve todos os routers ligados à rede
DR
Summary Links
•Anunciados pelo ABR
•Descreve destinos inter-área e ASBR
ABR
Área 0 Área X
External Links
•Anunciados pelo ASBR •Descreve redes fora do AS
ASBR
Área 0 Área X
Arq. de Redes - Pedro Brandão 2004/05 17
Baseado em RSDII – SSargento
Características do envio de mensagens OSPF
Os pacotes OSPF usam o datagrama IP
directamente (não usam TCP ou UDP):
No cabeçalho IP, os campos:
Protocolo é igual 89;
Obter preferência sobre o tráfego IP normal:
Type of Service é igual 0;
Precedence é igual a internetwork control.
Usa endereços IP multicast (224.0.0.5) em
redes ponto-a-ponto e broadcast;
Usa endereços IP unicast para redes
non-broadcast, usando endereços dos vizinhos que
têm de ser configurados em cada router.
Arq. de Redes - Pedro Brandão 2004/05 18
Cabeçalho comum dos pacotes OSPF
Cabeçalho é idêntico em todos os tipos de pacoteTipo
1 Hello
2 Database Description 3 Link State request 4 Link State update Tipo Autent.
0 Nulo, sem autenticação 1 Plaintext Password 2 Autenticação Criptográfica
Versão Tipo Comprimento
Autenticação Tipo Autent. Checksum Autenticação Router ID Area ID 16 24 0 8 31
Arq. de Redes - Pedro Brandão 2004/05 19
Baseado em RSDII – SSargento
Pacote Hello OSPF
Hello responsável pela descoberta dos routers vizinhos numa rede, e pelo estabelecimento e manutenção de relações entre eles;
Pacotes Hello são enviados periodicamente em todas as interfaces dos routers
(período indicado por Hello Interval);
Prioridade do router - Número configurável por interface indicando a prioridade do
router na selecção do DR e do BDR. Um router com prioridade zero indica que
esse router é inelegível como (B)DR. Opções – indica capacidades extras do router;
RouterDeadInterval – número de segundos até declarar incomunicável um router silencioso;
Neighbor – vizinhos do router que estão comunicáveis.
Designated Router Hello interval
RouterDeadInterval Network mask
Area ID
Opções Router Prio
Backup Designated Router Neighbor IP 1 Neighbor IP 2
.... Cabeçalho comum
Arq. de Redes - Pedro Brandão 2004/05 20
Pacote Database Description (DD)
Os routers adjacentes trocam mensagens do estado das ligações mensagens na inicialização;
Ligação é MasterSlave, indicado pelo campo MS
I se 1 determina que o pacote é o primeiro de uma série.
M se 1 indica que existirão mais pacotes de descrição.
DD serve para quando são enviados vários pacotes de descrição se conseguir saber perdas. O primeiro valor é enviado no pacote com o campo I a 1.
Interface MTU DD número de sequência Opções LSA Header MS M I 0 16 24 0 8 31 … Cabeçalho comum
Arq. de Redes - Pedro Brandão 2004/05 21
Baseado em RSDII – SSargento
Pedido e actualização
LS type Link State ID Advertising Router
....
Pedidoenviado quando router pensa que a informação que tem está desactualizada. Campos identificadores do LSA são enviados por cada LSA pretendido.
LSA Header
16 24
0 8 31
Número de LSA
Actualizaçãoenviado quando há modificações no estado dos links Cabeçalho comum
Cabeçalho comum
Arq. de Redes - Pedro Brandão 2004/05 22
Acknowledge e LSA Header
Acknowledgeenviado quando há modificações no estado dos links LSA Header Cabeçalho comum Advertising Router LS age Link State ID Opções LS type LS sequence number LS checksum length
LSA Headercabeçalho dos pacotes de informação dos Links
LS agetempo há quanto tempo o LSA foi originado
LS Seq Numberquanto maior mais recente é o LSA
16 24
0 8 31
1- Router-LSAs 2- Network-LSAs
3- Summary-LSAs (IP network) 4- Summary-LSAs (ASBR) 5- AS-external-LSAs LS Type
Arq. de Redes - Pedro Brandão 2004/05 23
Baseado em RSDII – SSargento
Fases do protocolo OSPF
O protocolo OSPF define um dado número de
fases (estados progressivos), os quais têm que
ser executados pelos routers individuais:
Descobrir routers vizinhos;
Eleger o Designated Router (DR) e BDR;
Inicializar routers vizinhos:
Estabelecer adjacências.
Propagar a informação de estado das ligações;
Calcular tabelas de encaminhamento.
Arq. de Redes - Pedro Brandão 2004/05 24
Descobrir routers vizinhos
Hello
INIT
Hello (R1,R3,R5 já estão na lista) Hello (Sou o R1;não vejo ninguém)
DOWN DOWN
R1 R2
R1 R2 R3
R4 R5
TWO-WAY
Hello (Sou o R2;não vejo ninguém)
INIT
Arq. de Redes - Pedro Brandão 2004/05 25
Baseado em RSDII – SSargento
Descobrir routers vizinhos
O estado da interface dum router muda de Down para
Waiting assim que os pacotes Hello são enviados
sobre as interfaces.
Um router recebe pacotes Hello de routers vizinhos
através das suas interfaces de rede. Quando isto
acontece o estado do vizinho muda de Down para Init.
Quando um router se vê listado num pacote Hello,
recebido dum outro router, são estabelecidas
comunicações bidireccionais entre vizinhos. Somente
neste ponto, os dois vizinhos são definidos como
verdadeiros vizinhos, e o estado do vizinho muda de
Init para Two-Way.
A partir deste momento, inicializa-se a eleição de DR e
BDR em redes multi-acesso.
Arq. de Redes - Pedro Brandão 2004/05 26
Eleger o DR (I)
O DR e o BDR são eleitos com base nos seguintes
campos dos pacotes Hello: Router ID, Router Priority,
Designator Router e Backup Designator Router;
Router Priority define a prioridade do router na rede.
Quanto mais baixo for o valor, mais provável será o
router tornar-se DR, ou seja, mais alta é a sua
prioridade (um valor de zero impede o router de ser
eleito (B)DR).
O processo de eleição dum router DR é o seguinte:
Os valores correntes para o DR e BDR na rede são
inicializados a 0.0.0.0;
Os valores correntes para os campos Router ID,
Router
Priority, Designator
Router
e Backup
Designator
Router
dos
pacotes
Hello
são
registados;
Arq. de Redes - Pedro Brandão 2004/05 27
Baseado em RSDII – SSargento
Eleger o DR (II)
O processo de eleição dum router DR é o seguinte:
Eleição do BDR:
Os routers que tenham sido declarados como DR são inelegíveis para se tornarem BDR;
O BDR será declarado:
O router mais prioritário que tenha sido declarado como um BDR.
O router mais prioritário se nenhum BDR tiver sido declarado.
Se houver routers de igual prioridade a serem eleitos, o com mais alto Router ID é escolhido.
Eleição do DR:
O DR será declarado:
O router mais prioritário que tenha sido declarado como um DR; em caso de empate o mais alto Router ID.
O router eleito BDR se nenhum DR tiver sido declarado.
Se o router que leve a cabo a determinação acima é
declarado o DR ou o BDR, então os passos anteriores são re-executados. Isto garante que nenhum router pode declarar-se simultaneamente DR e BDR.
O procedimento pode levar a que um mesmo router seja BDR
e DR (exceptuando o que faz os cálculos).
Arq. de Redes - Pedro Brandão 2004/05 28
Eleger o DR
Uma vez eleitos, o DR e o BDR prosseguem para
estabelecer adjacências com todos os outros routers
na rede.
A finalização do processo de eleição causa a mudança
do estado da interface dos routers de Waiting para DR,
para BackupDR, ou para DR Other, dependendo se o
router é eleito DR, BDR ou nenhum destes.
Hello DR BDR P=0 P=1 P=0 RID: 4.4.4.4 P=1 RID: 3.3.3.3 P=1 RID: 4.4.4.3
Arq. de Redes - Pedro Brandão 2004/05 29
Baseado em RSDII – SSargento
Estabelecer adjacências
A informação de estado das ligações é trocada somente entre
routers adjacentes. Eles têm de ter a mesma base de dados
topológica e têm de ser sincronizados. Isto é realizado por um processo chamado database exchange.
Database exchange entre dois routers vizinhos ocorre assim que
eles tentem criar uma adjacência. O processo consiste na troca de um número de pacotes Database Description (DD) que definem o conjunto da informação de estado das ligações presente na base de dados de cada router. A informação de estado das ligações na base de dados é definida por uma lista de cabeçalhos link state para todos os LSAs existentes na base de dados.
Durante o processo database exchange, os routers estabelecem uma relação Master/Slave, sendo o Master o primeiro a transmitir.
O Master envia pacotes DD para o Slave para descrever a sua base de dados com informação de estado das ligações.
O Slave confirma cada pacote pelo número sequencial e inclui
a sua própria base de dados de cabeçalhos de estado das ligações na confirmação/resposta.
Arq. de Redes - Pedro Brandão 2004/05 30
Estabelecer adjacências
Durante a database exchange cada router faz uma
lista de LSAs para os quais o vizinho adjacente tenha
uma instância mais actualizada;
Uma vez o processo completo, cada router pede estas
instâncias actualizadas de LSAs, usando Link State
Requests;
O processo database exchange começa no estado
Two-Way e passa por:
ExStart: à medida que a adjacência é criada e o
Master concorda;
Exchange: à medida que as bases de dados
topológicas são descritas;
Loading: à medida que os Link State Requests são
enviados e respondidos (Link State Updates)
Full: quando os vizinhos são completamente
Arq. de Redes - Pedro Brandão 2004/05 31
Baseado em RSDII – SSargento
Estabelecer adjacências
ExStart Exchange Loading DD Seq=y,I, M, Master DD Seq=x, I, M, Master DD Seq=x, M, Slave DD Seq=x+1, M, Master DD Seq=x+1, M, Slave DD Seq=x+n, Master DD Seq=x+n, Slave Link State RequestLink State Update Link State Request
. . . Two-Way Two-Way Estado Vizinho ExStart1 R1: ID: 3.3.3.3 R2: ID: 2.2.2.3 Full2 1R1 ID > R2, logo fica master. R2 adopta seq de R1
Exchange
. . .
Link State Update
Full Estado Vizinho
2R1 não necessita de nada de R2
Arq. de Redes - Pedro Brandão 2004/05 32
Propagar a informação de estado das ligações
A informação sobre a topologia duma rede OSPF é enviada de
router para router em LSAs;
Os LSAs passam entre routers adjacentes na forma de pacotes
Link State Update (LSU);
Os Link State Update aparecem como resultado dos Link State
Request durante o processo de database exchange, e também
aparecem no curso normal de eventos, quando os routers pretendem indicar uma alteração na topologia da rede;
É essencial que cada router OSPF numa área tenha a mesma base de dados topológica da rede e, por isso, a integridade da informação de estado das ligações tem que ser mantida:
Por esta razão os pacotes Link State Update têm que ser
enviados sem perdas ou corrupção através duma área. O processo pelo qual isto é feito é chamado flooding (inundação);
Um pacote Link State Update envia um ou mais LSAs um salto para além do router origem. Para tornar o processo de inundação fiável, cada LSA tem que ser confirmado separadamente. Múltiplas confirmações podem ser agrupadas num único pacote
Arq. de Redes - Pedro Brandão 2004/05 33
Baseado em RSDII – SSargento
Propagar a informação de estado das ligações
De modo a manter a integridade da base de dados é essencial que todos os LSAs sejam rigorosamente verificados para manter a validade.
As verificações seguintes são aplicadas e o LSA é descartado se:
O Link State Checksum é incorrecto;
O tipo de Link State é inválido;
A idade do LSA atingiu o seu máximo;
O LSA é mais velho ou é o mesmo que está na base de dados.
Se um LSA passa as verificações acima, então é enviada uma confirmação para o router origem:
Se nenhuma confirmação for recebida pela origem, então o pacote original
Link State Update é retransmitido depois de um timeout.
Uma vez aceite, um LSA é inundado progressivamente nas outras interfaces do router até ele ser recebido por todos os routers internos a uma área.
A idade dum LSA tem que ser calculada para determinar se ele deverá ser instalado na base de dados dum router. Somente um LSA mais recente deverá ser aceite e instalado. Os LSAs válidos são instalados na base de dados topológica do router - mapa topológico recalculado e tabela de encaminhamento actualizada.
Arq. de Redes - Pedro Brandão 2004/05 34
Propagar a informação de estado das ligações
/ Simplificado
Recepção LS
Update Ver Novo LSA Novo?
Acknowledge LSA imediatemente Actualizar base de dados LS Determinar itfs para enviar LS updates Existe mais LSA? Novo
(número de Seq maior, Ou LSA iniexistente)
Recalcular SPF se necessário
Flood de LSA duplicado
Arq. de Redes - Pedro Brandão 2004/05 35
Baseado em RSDII – SSargento
Cálculo da tabela de encaminhamento
Cada router numa área OSPF constrói uma base de dados topológica de LSAs válidos e usa-os para calcular o mapa da rede para a área:
O router é capaz de determinar a melhor rota para cada destino e inseri-la na sua tabeinseri-la de encaminhamento.
Cada LSA contem um campo de idade o qual é incrementado enquanto o LSA for mantido na base de dados. Quando a idade atinge MaxAge, ele é excluído do cálculo da tabela de encaminhamento, e re-inundado através da área como um LSA originado recentemente.
Os routers constroem a sua tabela de encaminhamento a partir da base de dados de LSA na sequência seguinte:
A shortest path tree é calculada a partir dos LSAs Router Links e Network
Links;
As rotas Inter-área são adicionadas por análise dos LSAs Summary
Links;
As rotas externas ao AS são adicionadas por análise dos LSAs AS
External Links.
O mapa topológico, construído a partir do processo descrito acima é usado para actualizar a tabela de encaminhamento.
A tabela de encaminhamento é recalculada de cada vez que um novo LSA é recebido.
Arq. de Redes - Pedro Brandão 2004/05 36
Acrónimos
ABR – Area Border Router
AS – Autonomous System
ASBR – AS Boundary Routers
BDR – Backup DR
DR – Designated Router
DV – Distance Vector
EGP – Exterior Gateway Protocol
IAR – Intra-Area Routers
IGP – Interior Gateway Protocol
LS – Link State
LSA – LS Advertisement