algoritmos e protocolos de encaminhamentojruela/apontamentos/routing_v0910_rbl_2... · de...

49
Algoritmos e Protocolos de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela Encaminhamento vs. comutação Encaminhamento (routing) Descobrir e seleccionar rotas numa rede (ou num conjunto de redes interligadas) com o objectivo de construir tabelas de encaminhamento nos nós Operação global – envolve os nós da rede Requer algoritmos e protocolos de encaminhamento Comutação (switching / forwarding) Transferir pacotes entre interfaces de entrada e saída Operação local – envolve apenas um nó (router ou comutador) A tabela que controla a operação de comutação (switching / forwarding table) num router é determinada pelo conteúdo da respectiva tabela de encaminhamento (routing table)

Upload: vankhue

Post on 10-Nov-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

Algoritmos e Protocolos

de Encaminhamento

FEUP/DEECRedes de Banda Larga

MIEEC – 2009/10José Ruela

Encaminhamento vs. comutação

• Encaminhamento (routing)– Descobrir e seleccionar rotas numa rede (ou num conjunto de redes

interligadas) com o objectivo de construir tabelas de encaminhamento nos nós

– Operação global – envolve os nós da rede

– Requer algoritmos e protocolos de encaminhamento

• Comutação (switching / forwarding)– Transferir pacotes entre interfaces de entrada e saída

– Operação local – envolve apenas um nó (router ou comutador)

– A tabela que controla a operação de comutação (switching / forwarding table) num router é determinada pelo conteúdo da respectiva tabela de encaminhamento (routing table)

Page 2: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

• A Internet está actualmente organizada (é vista) como uma colecção de Sistemas Autónomos (AS – Autonomous Systems)

• Definição clássica de AS – conjunto de routers e redes sob uma única administração técnica, que usam um protocolo interior (IGP – Interior Gateway Protocol) e métricas comuns para encaminhar pacotes no AS e um protocolo exterior (Exterior Gateway Protocol) para encaminhar pacotes para outros ASs

– Tornou-se no entanto comum o uso num único AS de vários IGPs e mesmo várias métricas

• O uso actual do termo (definido no RFC 1930) põe a tónica no modo como um AS évisto por outros ASs

– Um AS deve ter internamente um plano coerente de encaminhamento

– Um AS deve apresentar uma visão consistente das redes alcançáveis através do próprio AS

• Segundo o RFC 1930 “Guidelines for creation, selection, and registration of an Autonomous System (AS)”, um AS é um grupo de um ou mais prefixos IP suportados por um ou mais operadores de rede, e que tem uma única política de encaminhamento (routing policy) claramente definida

– Uma política de encaminhamento refere-se à forma como as decisões de encaminhamento são tomadas actualmente na Internet

– A troca de informação de encaminhamento entre Sistemas Autónomos está sujeita a políticas de encaminhamento

Sistemas Autónomos (Autonomous Systems)

Interdomain level

Intradomain levelLAN level

Autonomoussystem ordomain

Border routers

Border routers

Internet service provider

Sistemas Autónomos (Autonomous Systems)

Page 3: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

Encaminhamento intra e inter domínios

• Encaminhamento intra domínio (intra domain routing)– Interior Gateway Protocols (IGP) – encaminhamento num AS

• RIP (Routing Information Protocol) – protocolo do tipo “vector de distâncias” (distance vector)

• OSPF (Open Shortest Path First) – protocolo do tipo “estado de ligações”(link state)

• Encaminhamento inter domínios (inter domain routing)– Exterior Gateway Protocols (EGP) – encaminhamento entre ASs

• BGP-4 (Border Gateway Protocol version 4) – protocolo do tipo “vector de percursos” (path vector)

• Um router pode executar um ou mais IGPs mas apenas um EGP– Um EGP é executado por routers de fronteira (border router ou border

gateway)

RR

R

RR

R

RR

AS A

AS B

AS C

IGPEGP IGP

IGP

EGP

Encaminhamento intra e inter domínios

Page 4: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

• Numa rede com topologia em malha existem percursos alternativos entre um qualquer par de nós (em particular entre pares de nós periféricos que dão acesso a equipamentos terminais ou asseguram a ligação a outras redes)

• Na topologia representada, e como exemplo, existem várias rotas possíveis (isentas de ciclos) entre 1 e 6:

– Estão representadas três, entre outras possíveis: 1-3-6, 1-4-5-6, 1-2-5-6

1

2

3

4

5

6

Nó (comutadorou router)

Encaminhamento em redes em malha

Selecção de rotas

• Numa rede em malha coloca-se a questão de seleccionar as “melhores”rotas, mas para tal é necessário definir um critério que pode basear-se numa métrica ou numa combinação de métricas

– Menor atraso, maior débito, maior capacidade, menor custo, menor distância, maior fiabilidade

• A atribuição de pesos às ligações entre nós directamente ligados (de acordo com o critério adoptado) permite associar um “custo” (em sentido lato) às rotas possíveis na rede, podendo então definir-se, como objectivo, encontrar as rotas de menor “custo” (na acepção da métrica utilizada)

• A adopção de um critério de “distância”, no sentido estrito de “número de saltos” (hops) traduz-se na atribuição de pesos unitários às ligações entre nós e neste caso o “custo” de uma rota é o número de hops (hop count) e a rota de menor “custo” é a que tiver o menor número de hops, isto é, a mais curta (shortest path)

– Em sentido lato a designação shortest path pode ser usada para designar a rota de menor “custo” (na acepção da métrica utilizada) e as expressões “menor custo” e “menor distância” serão usadas com idêntico significado

Page 5: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

• É necessário conhecer informação sobre o estado de cada ligação– Activa ou inactiva

– Carga (nível de utilização e possível estado de congestionamento)

– Atraso (ou outras métricas)

• É necessário trocar informação entre nós (com base num protocolo)– Qual o tipo de informação a trocar e significado – e.g., local ou global

– Qual a regularidade da troca – e.g., de forma periódica (e qual a periodicidade), quando ocorrerem alterações ou em resposta a pedidos

– Quais os nós com os quais a informação é trocada – e.g., apenas com os vizinhos ou com todos os nós da rede

• A informação trocada entre nós permite calcular rotas (e assim criar as tabelas de encaminhamento)

– O cálculo de rotas pode basear-se numa métrica ou numa combinação de métricas e pode produzir uma única rota ou rotas alternativas (com uma ordem de preferência)

Criação de tabelas de encaminhamento

Os algoritmos de encaminhamento devem ter um conjunto de propriedades que lhes permitam operar em condições adversas e ambientes dinâmicos, caracterizados por frequentes alterações topológicas (adição, remoção ou indisponibilidade temporária com posterior reposição de nós e/ou ligações) ou do estado de carga das ligações (risco de congestionamento)

• Capacidade de resposta a mudanças– Devem permitir convergência rápida no cálculo de novas rotas e garantir

operação estável (sem oscilações), o que exige que a informação mantida nos nós seja coerente e consistente

– Devem evitar ciclos (loops) persistentes• Robustez

– Devem ser capazes de operar em condições adversas – carga elevada ou mesmo congestionamento, interrupções (temporárias ou persistentes), avarias de equipamentos, implementações deficientes ou incorrectas

• Optimalidade– Devem garantir utilização eficiente de recursos (distribuição equilibrada da

carga na rede) e minimização do “custo” das rotas (ou seja, dos recursos envolvidos)

• Simplicidade– Devem permitir implementações eficientes (em software) com consumo

reduzido de recursos de processamento

Requisitos de algoritmos de encaminhamento

Page 6: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

Algoritmos centralizados vs. distribuídos

• Algoritmos centralizados– As rotas são calculadas por um nó central– Toda a informação de estado exigida pelo algoritmo é enviada para o nó

central, que divulga (anuncia) as rotas (tabelas de encaminhamento) pelos restantes nós

• Aumenta o tráfego de e para o nó central, bem como a respectiva carga de processamento

• O nó central é um ponto único de falha (soluções redundantes obrigam a replicar informação e manter coerente a informação replicada)

– Têm dificuldade de adaptação a alterações topológicas frequentes– Não são escaláveis

• Algoritmos distribuídos– As rotas são calculadas pelos nós com base num algoritmo distribuído

(cada nó constrói a sua tabela de encaminhamento)– A informação de estado é trocada entre nós– Adaptam-se facilmente a mudanças (topológicas ou outras)– São mais facilmente escaláveis

Encaminhamento estático vs. dinâmico

• Encaminhamento estático– As tabelas de encaminhamento são configuradas “manualmente” (por

procedimentos administrativos, após computação prévia)• São fixas – não são alteradas a não ser por reconfiguração (o que, em

princípio, não deve ocorrer com frequência)

– É aceitável quando a natureza do tráfego é previsível e a rede é simples (pequeno número de nós e topologia pouco sujeita a alterações)

– Pode ser usado para forçar a substituição de algumas rotas estabelecidas por um algoritmo dinâmico

• Usado como técnica de Engenharia de Tráfego (e.g., MPLS)

– Pode ser usado para estabelecer uma rota para um router por omissão (default) como complemento de rotas obtidas por um algoritmo dinâmico

• Encaminhamento dinâmico– Adapta-se a alterações das condições de operação da rede– O processo pode ser automatizado– Calcula rotas com base em informação actualizada do estado da rede,

trocada entre nós

Page 7: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

Encaminhamento de Circuitos Virtuais

• As rotas são determinadas durante o estabelecimento do circuito virtual (e mantêm-se fixas por circuito virtual enquanto este estiver activo)

• As entradas das tabelas de comutação (switching tables) associadas em cada nó a um circuito virtual permitem reconstituir a rota a seguir pelos pacotes correspondentes (com base em identificadores de circuito virtual ao longo do percurso)

1

2

3

4

5

6A

B

CD

1

5

2

3

7

1

8

54 2

3

6

5

2

switch / router

hostVCI

Tabelas de comutação de circuitos virtuais

• Exemplo: Circuito Virtual estabelecido entre A (ligado ao nó 1, VCI = 5) e D (ligado ao nó 5, VCI = 2)

Entrada SaídaNó VCI Nó VCI

A 1 3 2A 5 3 33 2 A 13 3 A 5

Entrada SaídaNó VCI Nó VCI

1 2 6 71 3 4 44 2 6 16 7 1 26 1 4 24 4 1 3

Entrada SaídaNó VCI Nó VCI

3 7 B 83 1 B 5B 5 3 1B 8 3 7

Entrada SaídaNó VCI Nó VCI

C 6 4 34 3 C 6

Entrada SaídaNó VCI Nó VCI

2 3 3 23 4 5 53 2 2 35 5 3 4

Entrada SaídaNó VCI Nó VCI

4 5 D 2D 2 4 5

Nó 1

Nó 2

Nó 3

Nó 4

Nó 6

Nó 5

Page 8: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

• Na forma clássica de comutação de datagramas, os pacotes (datagramas) são encaminhados pela rede de forma independente, podendo eventualmente usar percursos diferentes (o “melhor” no momento)

• A decisão em cada nó é igualmente tomada de forma independente, embora as decisões dos nós devam ser coerentes e consistentes (o que deve ser assegurado pelos algoritmos e protocolos de encaminhamento)

– Deste ponto de vista trata-se de encaminhamento passo a passo (hop by hop routing)

• As decisões de encaminhamento num nó são tomadas tendo em atenção o endereço de destino transportado em cada pacote e o conteúdo da tabela de encaminhamento do nó

– Trata-se de encaminhamento baseado no destino (destination based routing)

Encaminhamento de Datagramas

Tabelas de comutação de datagramas

2 23 34 45 26 3

Nó 1

Nó 2

Nó 3

Nó 4

Nó 6

Nó 5

1 12 44 45 66 6

1 32 53 34 35 5

1 13 14 45 46 5

1 42 23 44 46 6

1 12 23 35 56 3

Destino Nó seguinte

Destino Nó seguinte

Destino Nó seguinte

Destino Nó seguinte

Destino Nó seguinte

Destino Nó seguinte

Page 9: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

0000 0111 1010 1101

0001 0100 1011 1110

0011 0101 1000 1111

0011 0110 1001 1100

R1

1

2 5

4

3

0000 1 0111 1 1010 1 … …

0001 4 0100 4 1011 4 … …

R2

Endereçamento não hierárquico e encaminhamento

• Não existe qualquer relação entre endereços e proximidade geográfica do ponto de vista de encaminhamento, o que impede a agregação de prefixos / rotas

• No exemplo, cada tabela de encaminhamento requer 16 entradas, uma por cada rede representada

0000 0001 0010 0011

0100 0101 0110 0111

1100 1101 1110 1111

1000 1001 1010 1011

R1 R2

1

2 5

4

3

00 1 01 3 10 2 11 3

00 3 01 4 10 3 11 5

• O endereçamento hierárquico permite a agregação de prefixos / rotas e portanto uma divulgação eficiente de informação de encaminhamento

• Cada tabela de encaminhamento requer 4 entradas (no exemplo)

Endereçamento hierárquico e encaminhamento

Page 10: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

Encaminhamento plano vs. hierárquico

• Plano (flat)– Todos os routers estão no mesmo nível (peers entre si)

– Solução não escalável

• Hierárquico– O sistema global é dividido em Sistemas Autónomos (Autonomous

Systems), áreas, etc. • Alguns routers fazem parte do backbone de encaminhamento

• Alguns routers apenas comunicam numa área

– É eficiente uma vez que este modelo tem correspondência com padrões de tráfego típicos (do ponto de vista da localização relativa das fontes e destinos de tráfego)

– Solução escalável

Algoritmos especiais de encaminhamento

• Flooding– A rede é inundada com cópias do mesmo pacote

– Pode ser útil no arranque da rede

– Permite distribuir (propagar) informação para todos os nós

• Deflection Routing– Baseado num procedimento predefinido (que pode dar origem a

percursos diferentes)

– Não há cálculo de rotas por parte dos nós

• Source routing– O percurso para um destino é determinado pelo nó de origem e incluído

no cabeçalho dos pacotes

– Os routers no percurso limitam-se a despachar os pacotes de acordo com o prescrito no respectivo cabeçalho

Page 11: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

Flooding

• O algoritmo de flooding envia cópias de um pacote para todos os nós da rede– Embora possa ser usado para garantir a entrega de pacotes num nó de destino

alvo, esta aplicação do algoritmo é pouco interessante

– Pode ser usado quando um nó pretende enviar pacotes para todos os nós da rede • Uma aplicação possível é a de difundir (propagar) informação de estado de um nó para

todos os outros (por exemplo, em algoritmos de encaminhamento do tipo link state)

• Realização– O método não requer a existência de tabelas de encaminhamento nos nós

• Um nó difunde (replica) cada pacote em todas as portas excepto naquela em que o pacote foi recebido

• Problema– O número de pacotes em trânsito na rede cresce exponencialmente

• Um nó recebe por vias diferentes cópias de um mesmo pacote original e a respectiva difusão multiplica o número de pacotes que inundam a rede

– É necessário um mecanismo que limite ou controle esse crescimento• Torna-se desnecessário que um nó propague novamente cópias de um pacote que o

tenha visitado anteriormente

Flooding – exemplo (três passos)

1

2

3

4

5

6

1

2

3

4

5

6

1

2

3

4

5

6

1

3

2

Page 12: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

Flooding limitado

É possível usar várias técnicas para controlar o número de cópias do mesmo pacote em trânsito na rede – referem-se a seguir três exemplos

• A utilização do campo TTL (Time To Live) em cada pacote permite limitar o alcance (número de nós visitados) pelo pacote – mas não impede que uma ou mais cópias de um pacote visitem de novo um nóe sejam por este novamente difundidas

– O valor do campo TTL pode ser inicialmente configurado com um valor igual ou ligeiramente superior ao diâmetro da rede (menor número de hops entre os nós mais afastados)

• Cada nó adiciona um identificador próprio ao pacote, antes de o difundir, o que permite eliminá-lo numa próxima visita

• O nó de origem inclui um número de sequência em cada pacote e cada nó visitado pelo pacote regista o endereço e o número de sequência de origem e descarta duplicados

• Proposto inicialmente com a designação hot potato routing

• Os nós tentam despachar os pacotes para uma porta preferida

• Se a porta preferida estiver ocupada, os pacotes são desviados para outra porta, pelo que não se garante a entrega ordenada de pacotes

• Funciona de forma aceitável em redes com topologias regulares que ofereçam múltiplos percursos entre cada par origem-destino, como é o caso de redes do tipo Manhattan

– Estas redes são constituídas por um array rectangular de nós

– Os nós são identificados por um par de índices (i, j)

– As linhas e as colunas representam, respectivamente, “ruas” e “avenidas”de sentido único, mas alternado

• É possível a operação sem buffers– Uma aplicação possível é em redes ópticas de pacotes (uma vez que não é

viável actualmente recorrer a buffers totalmente ópticos)

Deflection Routing

Page 13: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

0,0 0,1 0,2 0,3

1,0 1,1 1,2 1,3

2,0 2,1 2,2 2,3

3,0 3,1 3,2 3,3

Deflection Routing – rede Manhattan

• O nó de origem (source) determina o percurso a seguir pelos pacotes para um dado destino

– Strict – a sequência completa de nós no percurso é inserida no cabeçalho de cada pacote

– Loose – é apenas especificado um sub-conjunto dos nós no percurso

• Os nós intermédios lêem o endereço do next hop e removem-no do cabeçalho antes de despacharem o pacote

– Nalguns casos pode ser necessário preservar a informação completa do percurso (por exemplo, para enviar um pacote do destino para a origem pelo percurso inverso)

• O nó de origem necessita de aprender e seleccionar o percurso a seguir pelos pacotes ou aceder a um servidor (route server) para obter o percurso

• O algoritmo de source routing permite controlar os percursos seguidos pelos pacotes na rede

– Em MPLS é possível estabelecer rotas explícitas (explicit routing), que é uma variante de source routing – o mecanismo é usado como forma de sinalização para estabelecer percursos “etiquetados” na rede (label switched paths) e não para auto-encaminhar pacotes

Source Routing

Page 14: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

1

2

3

4

5

6

A

B

Source host

Destination host

1,3,6,B

3,6,B 6,B

B

Source Routing

Rotas de menor custo (shortest path routing)

• Em topologias em malha existem múltiplos percursos possíveis entre um nó de origem e um nó de destino

• Um algoritmo de encaminhamento tem como objectivo seleccionar rotas para transferir pacotes entre pares de nós (origem, destino)

– O protocolo associado permite trocar informação entre nós de modo a criar e actualizar as tabelas de encaminhamento resultantes da execução do algoritmo

• A associação de um custo ou distância (em sentido lato) a cada ligação entre dois nós permite formular o problema do encaminhamento como um problema de escolha do caminho com menor custo (least cost) ou mais curto (shortest path), expressões que serão usadas com o mesmo significado

• A maior ou menor adequação de uma rota pode ser avaliada pelo seu “custo” ou “comprimento” (path length) calculado pela soma dos custos das ligações que a constituem

– A atribuição de custos pode ser feita com base em diferentes métricas

Page 15: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

Métricas

• Número de saltos (hop count) – em primeira aproximação fornece uma medida dos recursos consumidos para transferir um pacote

• Fiabilidade – depende do grau de disponibilidade das ligações e da respectiva qualidade, medida por exemplo pelo BER (Bit Error Ratio)

• Atraso – soma dos atrasos ao longo do percurso, que inclui uma componente fixa (essencialmente o atraso de propagação) e uma componente variável, que depende do nível de carga em cada ligação, da respectiva capacidade e do tamanho dos pacotes

• Largura de banda – representa a capacidade oferecida pelas ligações ao longo da rota

– A capacidade de uma ligação constitui (à parte os overheads) um limite superior para o débito (throughput) possível nessa ligação

– A capacidade ao longo de uma rota está limitada pela da ligação com menor capacidade

– Uma ligação entre dois nós pode fazer parte de múltiplas rotas pelo que a respectiva capacidade é por elas partilhada

– Rotas que incluam ligações de elevada capacidade nem sempre oferecem melhor desempenho, uma vez que este depende também da carga efectiva das ligações usadas

• Carga – representa o nível de utilização das ligações e influencia, conjuntamente com a capacidade, o desempenho global (atraso, probabilidade de perda de pacotes, etc.)

• Custo da comunicação – no sentido estrito (custo administrativo ou de operação)

• Podem ainda ser usadas políticas de natureza administrativa

Algoritmos shortest path – princípio geral

Os algoritmos do tipo shortest path baseiam-se no princípio seguinte

• Considerando um nó de destino d e dois nós i e j directamente ligados, se jfizer parte do percurso de menor custo entre i e d (next hop de i na rota parad), isso significa que i e j partilham a partir de j o mesmo percurso até d e então

Di = Cij + Dj

sendo Di e Dj as distâncias (custos) de i e j para d, e Cij o custo da ligação entre i e j

• A consequência deste facto é que os percursos de menor custo de todos os nós até um nó de destino d formam uma árvore com raiz nesse nó d

i

Dj

j d

Di

Cij

Page 16: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

Algoritmos shortest path – variantes• Algoritmos de encaminhamento de menor custo (shortest path) são usados no

mesmo AS (encaminhamento interior) e são basicamente de dois tipos– Vector de distâncias (distance vector)– Estado das ligações (link state)

• Distance vector– Cada router envia para os seus vizinhos uma lista de custos (vector de distâncias)

das rotas de si próprio para todos os restantes nós (valores estimados pelo próprio router com base nos vectores recebidos dos seus vizinhos)

– O algoritmo determina o melhor nó adjacente (next hop) no percurso para cada destino

– É usado o algoritmo de Bellman-Ford (distribuído) para cáculo do shortest path

• Link state– Cada router difunde por todos os restantes nós informação de estado relativa

apenas às ligações com os seus vizinhos– Os routers obtêm informação topológica completa da rede, com base na qual

podem calcular o shortest path e portanto o next hop para cada destino– É usado o algoritmo de Dijkstra (centralizado) para cáculo do shortest path

Algoritmos do tipo distance vector têm as seguintes propriedades

• São distribuídos (descentralizados)– Um nó recebe informação de um ou mais dos seus vizinhos aos quais

está directamente ligado, actualiza o seu vector de distâncias (custos) de forma independente de todos os outros nós e distribui o resultado (vector) para os seus vizinhos

• São iterativos– O processo inclui uma sucessão de passos até que os cálculos convergem

(excepto em casos excepcionais)

• São assíncronos– A operação do algoritmo não exige que os nós estejam sincronizados

Algoritmos Distance Vector

Page 17: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

Distance Vector – operação

• Cada nó mantém uma tabela de encaminhamento (Destino, Custo, Next Hop)– A entrada associada a cada nó de destino inclui o next hop no percurso

seleccionado e o respectivo custo estimado

• Cada nó anuncia apenas para os seus vizinhos uma lista (vector) actualizada com a sua estimativa de custos para todos os destinos (Destino, Custo)

– A distância para si próprio é nula

• A tabela de encaminhamento de um nó é actualizada com base na informação recebida dos vizinhos

– Uma entrada é eliminada se a respectiva rota não for refrescada durante um intervalo de tempo determinado

• As listas (vectores de custo) trocadas entre nós são enviadas em duas situações – Periodicamente (períodos típicos da ordem de alguns segundos)– Sempre que ocorrer uma mudança e portanto uma actualização (triggered update)

• No cálculo das distâncias um nó tem em conta percursos para cada nó de destino através dos seus vizinhos, seleccionando o que tiver menor custo

– Para isso usa as estimativas de distâncias (custos) comunicadas pelos seus vizinhos e os custos das ligações com cada um deles

• Considerando um nó i, três nós adjacentes j, k e l e um nó de destino d, o nó icalcula a distância mínima para d com base nos custos que conhece para os nós adjacentes e nas estimativas que estes lhe fornecem sobre as respectivas distâncias (custos) para d e selecciona como next hop o nó adjacente que lhe oferece o percurso de menor custo entre os três (e anuncia o valor Di aos nós adjacentes)

Di = min (Cij + Dj, Cik + Dk, Cil + Dl)

Distance Vector – selecção do next hop

i

Dk

k d

Di

Cik

Dj

j

Dl

l

Cij

Cil

Page 18: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

Processamento de um vector de custos

Procedimentos num nó após recepção de um vector de custos

Começar por adicionar ao custo para cada destino anunciado no vector recebido o custo da ligação para o nó adjacente que enviou a mensagem (se a métrica for o hop count, adicionar um ao hop count)Repetir os passos seguintes para cada destino anunciado

Se o destino não constar da tabela de encaminhamentoAdicionar a informação respectiva à tabela

Se nãoSe o campo next hop for o mesmo

Substituir a entrada na tabela pela anunciadaSe não

Se o custo calculado com base no anúncio for menor que o da tabela

Substituir a entrada na tabela pela anunciadaTerminar

• O algoritmo de Bellman-Ford permite calcular os shortest paths para um dado nó de destino, sendo por isso a sua utilização adequada a algoritmos do tipo distance vector

• O algoritmo é executado em paralelo e de forma independente por todos os nós

• Considerando genericamente um nó de origem i e um nó de destino j, cada nó i realiza o seguinte cálculo iterativamente até convergir

Dii = 0

Dij = mink (Cik + Dkj) para k ≠ i

(Cik é infinito se não existir ligação entre os nós i e k)

• Depois de feita a actualização, o vector Dij é enviado pelo nó i aos seus vizinhos

Algoritmo de Bellman-Ford

Page 19: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

Algoritmo de Bellman-Ford – exemplo

(6,2)(3,3)(6, 1)(4,4)(3,3)3

(6,2)(3,3)(6, 1)(5,6)(3,3)2

(6,2)(-1, )(6, 1)(-1, )(-1, )1

(-1, )(-1, )(-1, )(-1, )(-1, )Inicial

Nó 5Nó 4Nó 3Nó 2Nó 1Iteração

31

5

46

2

2

3

4

2

1

1

2

3

5

• Cada entrada (n, Di) representa o next hop e o custo corrente estimado do percurso do nó i para o nó 6

• n = - 1 significa que o next hop ainda não está definido e Di = ∞ significa que, por essa razão, ainda não existe um custo estimado do percurso do nó i para o nó 6

• Na figura estão representados os custos Cij das ligações entre um nó i e um nó j adjacente

• No exemplo considera-se como destino o nó 6 e o cálculo das rotas dos outros nós para o nó 6

31

5

46

2

2

3

4

2

1

1

2

3

5

Árvore de shortest pathscom destino d no nó 6

Topologia com indicaçãodos custos das ligações

Algoritmo de Bellman-Ford – shortest paths

31

5

46

2

d

2

1

2 1

2

Page 20: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

• Para cada nó de destino e a partir dum estado inicial em que os nós não têm qualquer informação da distância a esse destino, o algoritmo propaga informação em passos sucessivos a partir dos nós mais próximos do destino para os mais afastados

• A árvore de percursos vai-se construindo a partir do destino (raiz) aplicando directamente as equações de cálculo de distâncias

– Neste caso a convergência é rápida (número de passos igual ao número máximo de hops até ao destino) – “as boas notícias propagam-se depressa”

• Em condições estáveis não se formam loops– Se i e j forem adjacentes e o percurso mínimo de i para d passar por j, é

óbvio que o inverso não ocorre

• Esta situação altera-se quando ocorrem interrupções que originam alterações topológicas e a necessidade de calcular novos percursos com base na informação que se propaga a partir da zona afectada

Convergência do algoritmo de Bellman-Ford

Convergência – análise• Consideremos novamente dois nós adjacentes i e j que partilham o mesmo

percurso a partir de j para um nó de destino d, verificando-se portanto

Di = Cij + Dj

• Se ocorrer uma interrupção na ligação de j ao seu next hop na direcção de d, o valor de Dj deixa de ser válido, pelo que terá de ser actualizado

• O nó j recorre então à informação veiculada pelo nó i sobre a respectiva distância (custo) igual a Di, mas

– Esse custo pressupunha um percurso através de j (que agora está comprometido)– Esse custo baseava-se numa estimativa Dj que deixou de ser válida (ao ponto de

j não poder recorrer a ela)

• Então j vai assumir erradamente um novo custo

D*j = Cji + Di = 2 * Cij + Dj (admitindo Cji = Cij)

– O novo valor de custo é incorrecto, porque se induziu um loop – j assume que i éo next hop no percurso para d, ao passo que Di foi calculado com base no oposto (j como next hop de i)

• O algoritmo pode acabar por convergir, mas lentamente – “as más notícias propagam-se devagar”

• Nalguns casos pode ocorrer um deadlock (referido como count to infinity)

Page 21: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

Convergência – alteração topológica

• Para analisar o problema da convergência do algoritmo numa situação em que a topologia se altera, considera-se o exemplo em que a ligação entre os nós 3 e 6 é interrompida

• Após o algoritmo ter convergido (iteração 3 na topologia inicial), énecessário calcular novamente os percursos de cada nó para o nó 6 (apenas o nó 5 não é afectado, como se conclui facilmente)

31

5

46

2

2

3

4

2

1

(1)

2

3

5

(6,2)(5,5)(4, 7)(4,6)(2,9)4

(6,2)(5,5)(4, 7)(4,6)(2,9)5

(6,2)(5,5)(4, 7)(4,6)(3,7)3

(6,2)(2,5)(4, 5)(4,4)(3,7)2

(6,2)(3,3)(4, 5)(4,4)(3,3)1

Nó 5Nó 4Nó 3Nó 2Nó 1Iteração

Convergência – formação de loops

• Após a alteração topológica, o processo de actualização é despoletado pelo nó 3 que, deixando de ter ligação ao nó 6, vai usar a informação anunciada pelos nós 1 e 4 sobre os custos dos respectivos percursos para o nó 6 – neste caso são iguais (3), seleccionando (por exemplo) o nó 4 como next hop

• O nó 3 não sabe, no entanto, que o percurso de 4 para 6 anunciado pelo nó 4 passava por si próprio e portanto incluía a ligação que foi interrompida – deste modo cria-se um loop

• O problema agrava-se a partir do momento em que o nó 3 começa a anunciar o novo custo do seu percurso para o nó 6, podendo criar-se novos loops

• O algoritmo acaba por estabilizar ao fim de algumas iterações, mas nem sempre isso acontece

Page 22: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

Convergência – count to infinity

…………

(2,7)(3,8)(2,7)5

(2,7)(3,6)(2,7)4

(2,5)(3,4)(2,5)2

(2,5)(3,6)(2,5)3

(2,3)(3,4)(2,3)1

(2,3)(3,2)(2,3)Após a interrupção

(4, 1)(3,2)(2,3)Antes da interrupção

Nó 3Nó 2Nó 1Actualização

• Os nós 2 e 3 pensam que o melhor percurso para 4 é através do outro, o que ocasiona (devido ao loop criado) incrementos sucessivos de duas unidades dos custos, por cada par de iterações

• Se a ligação entre 3 e 4 for restaurada, a convergência é rápida

31 2 41 1 1

31 2 41 1

X

Antes da interrupção

Depois da interrupção

Split Horizon e Poisoned Reverse

Foram propostas alterações ao algoritmo para evitar o problema count to infinity, mas nenhuma funciona satisfatoriamente em todos os casos

• Split Horizon– O custo estimado por um nó para um dado destino não é anunciado para

um nó vizinho se este for o next hop para o destino (isto é, se for o nóatravés do qual o percurso foi “aprendido”)

• Split Horizon with Poisoned Reverse– Um nó pode anunciar para todos os nós adjacentes os custos estimados,

mas indicando um custo infinito para um dado destino no caso em que o nó adjacente é o next hop para esse destino

– Evita imediamente loops directos

– Não funciona em alguns casos de loops indirectos

Page 23: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

Algoritmos Link State• Princípio de funcionamento

– Cada nó obtém um mapa topológico de toda a rede, que inclui todos os nós e custos das ligações (isto é, o estado das ligações – link state)

• Com uma topologia estável todos os nós obtêm o mesmo mapa da rede

– Com base nessa informação, cada nó (considerado deste ponto de vista como nó de origem) calcula o shortest path para cada um dos outros nós (vistos como nós de destino)

• O algoritmo comporta-se como um algoritmo centralizado no que se refere aos cálculos realizados por cada nó (origem dos percursos a calcular)

• O algoritmo requer que o estado das ligações seja divulgado a todos os nós (por um processo de difusão)

– Cada nó i na rede divulga para todos os outros a seguinte informação

• Os identificadores dos seus vizinhos (Ni designa o conjunto dos vizinhos de i)

• As distâncias (custos) aos seus vizinhos: {Cij | j Ni}– Um nó não divulga toda a sua tabela de encaminhamento mas apenas os

custos das ligações com os seus vizinhos – A difusão pode ser feita com recurso a flooding

Estratégia de divulgação do estado

• O estado das ligações de um nó é transportado num pacote designado Link State Packet (LSP) que contém

– O identificador (id) do nó que criou o LSP– O custo das ligações para cada um dos seus nós vizinhos– Um número de sequência– Um valor TTL (Time To Live)

• A divulgação de um LSP é feita com recurso a flooding, indicando-se a seguir uma possível realização

– Cada nó gera LSPs periodicamente e envia-os para os seus vizinhos• Por cada novo LSP criado o número de sequência é incrementado (sendo o

valor inicial igual a zero)

– Após receber um LSP, um nó reenvia-o para todos os seus vizinhos com excepção do nó do qual o LSP foi recebido

• Cada nó guarda o LSP mais recente proveniente de cada nó origem• Para cada LSP guardado num nó, o respectivo TTL é decrementado, sendo o

LSP descartado quando TTL = 0

Page 24: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

Algoritmo de Dijkstra

• O algoritmo de Dijkstra permite calcular os percursos mais “curtos”ou de menor custo (shortest paths) de um nó origem para todos os outros nós na rede

• A ideia é determinar sucessivamente os nós da rede por ordem de proximidade ao nó de origem

– Numa primeira iteração é obtido o nó mais próximo (que tem de ser um nó vizinho do próprio nó)

– Numa segunda iteração é obtido o segundo nó mais próximo (que é um outro nó vizinho de si próprio ou do nó obtido no passo anterior)

– O algoritmo continua de forma idêntica nos passos seguintes

• O algoritmo de Dijkstra parte de um nó de origem e vai acrescentando nós à árvore de percursos com raiz na origem até incluir todos os nós de destino (ao contrário do algoritmo de Bellman-Ford que calcula a árvore de todos os nós de origem para um dado nó de destino)

• O algoritmo usa os custos reais (não estimados) das ligações entre nós vizinhos

– Estes custos são comunicados por cada nó a todos os restantes

1. Começar com o nó de origem em causa (raiz da árvore)

2. Associar custo zero a este nó e torná-lo o primeiro nó permanente

Repetir os passos 3 a 5 até que todos os nós sejam permanentes

3. Examinar cada vizinho do nó que foi o último a tornar-se permanente

4. Associar um custo acumulado a cada um destes nós e considerar estes nós provisórios (numa tentativa de os vir a tornar permanentes)

5. Na lista de nós provisórios1. Encontrar o nó com o menor custo acumulado e torná-lo permanente

2. Se um nó puder ser alcançado de mais do que uma maneira (direcção)1. Seleccionar a direcção com o menor custo acumulado

Algoritmo de Dijkstra – passos sucessivos

Page 25: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

M – conjunto de nós já adicionados à árvore (para os quais o percurso mais curto desde a origem s já foi encontrado no momento)

1. Início (começar com o nó de origem s)– M = {s}, Ds = 0 (a distância de s a si próprio é nula)

– Dj = Csj para todos os j s

2. Passo A (encontrar o nó i seguinte mais próximo de s) – Encontrar i M tal que

Di = min Dj para j M

– Acrescentar i a M– Terminar se M contiver todos os nós

3. Passo B (actualizar os custos mínimos após i ter sido adicionado a M)– Para cada nó j M

Dj = min (Dj, Di + Cij) – verifica se a inclusão de i melhora Dj anterior

– Voltar ao passo A

Algoritmo de Dijkstra – formulação

35423{1,2,3,4,5,6}5

35423{1,2,3,4,6}4

35423{1,2,3,6}3

37423{1,2,3}2

3∞423{1,3}1

∞∞523{1}Inicial

D6D5D4D3D2MIteração

31

5

46

2

2

3

4

2

1

1

2

3

5

Algoritmo de Dijkstra – execução

31

5

46

2

s (1)

(2)

(3)

(4)

(5)

2

1

2

3

2

Page 26: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

Convergência após falhas

• Se uma ligação falhar– Os routers que partilham a ligação actualizam o respectivo custo com

um valor infinito e disseminam (propagam) a informação actualizada através de um LSP

– Os restantes routers actualizam as suas bases de dados com informação do estado das ligações e calculam de novo os shortest paths

– A recuperação é rápida

• É no entanto necessário ter atenção a mensagens de actualização antigas que podem ainda estar a circular na rede (devido a flooding)

– Deve incluir-se uma marca temporal (timestamp) ou um número de sequência em cada mensagem de actualização

– Deve verificar-se se uma mensagem de actualização recebida num nó énova

• Se for nova deve ser adicionada à base de dados do nó e difundida

• Se for antiga, não deve ser propagada e deve ser enviada uma mensagem de actualização ao nó que a enviou

Vantagens de algoritmos Link State

Os algoritmos do tipo link state têm propriedades que os tornam vantajosos em relação a algoritmos do tipo distance vector

• A convergência é mais rápida, sem criação de loops• Usam informação rigorosa e não necessitam de divulgar informação

relativa a todos os nós da rede • São mais flexíveis, uma vez que conhecem a topologia da rede e o

custo das ligações – É possível suportar métricas rigorosas e métricas múltiplas, se necessário– É possível suportar percursos múltiplos para um destino– É possível suportar encaminhamento por classe de tráfego e com QoS

com recurso a múltiplas tabelas– Facilitam o uso de source routing ao providenciar informação do estado

das ligações (link state)– Podem ter em conta restrições relativas a um percurso entre uma origem

e um destino (por exemplo, evitar uma ligação pouco fiável)

Page 27: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

Protocolos de encaminhamento exterior

• Os protocolos de encaminhamento interior (IGP – Interior Gateway Protocol) dão consistência ao processo de encaminhamento num AS

• A coerência a nível global da Internet, constituída por um número elevado de ASs, é conferida por protocolos de encaminhamento exterior (EGP – Exterior Gateway Protocol) que operam entre ASs

• Um EGP tem como objectivo a troca de informação de encaminhamento entre dois ASs de forma a permitir o transporte de tráfego entre ambos

– A informação de encaminhamento trocada entre dois ASs inclui as redes contidas em cada um e os ASs que podem ser alcançados através de cada um deles

• Requisitos típicos a satisfazer por um EGP– Deve ser escalável ao nível da Internet

– Deve permitir o anúncio de rotas agregadas (com base em CIDR – Classless Inter-Domain Routing)

– Deve ser flexível e permitir a selecção de rotas com base em políticas

– Deve ser totalmente distribuído

Encaminhamento baseado em políticas

• Uma vez que cada AS tem uma administração independente, a selecção de rotas externas é essencialmente determinada por políticas de encaminhamento (routing policies), que envolvem, entre outras, relações de confiança e o estabelecimento de acordos, e não por critérios de menor custo (shortest path), na acepção dos algoritmos distance vector e link state

– Para além das limitações conhecidas dos algoritmos do tipo distance vector, os algoritmos do tipo link state têm também problemas de escalabilidade à escala global da Internet (tamanho das bases de dados topológicas e tempo de cálculo de rotas com base no algoritmo de Dijkstra)

• As políticas de encaminhamento são caracterizadas por atributos – Os atributos associados a uma rota anunciada podem incluir, por exemplo, a

sequência de ASs que formam a rota, o endereço do next hop, uma lista de métricas que indicam o grau de preferência da rota, informação sobre a criação da rota pelo AS de origem, etc.

• O protocolo normalizado para encaminhamento entre ASs (BGP-4) pode ser classificado como sendo do tipo path vector, uma vez que a informação transportada inclui a sequência de ASs que os pacotes devem atravessar para atingir uma rede de destino ou um grupo de redes com um mesmo prefixo

Page 28: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

Exemplo de políticas

1. R4 anuncia que a rede N1 pode ser alcançada através de AS3• R3 analisa o anúncio e decide (com base nas suas políticas) se aceita encaminhar

pacotes para N1 através de R4• Caso afirmativo a tabela de encaminhamento de R3 é actualizada (R4 é o next hop para

N1) e um protocolo interior (IGP) propaga através de AS2 a informação sobre como alcançar N1

2. Caso AS2 aceite transportar tráfego de trânsito entre AS1 e N1, R2 anuncia a AS1 que a rede N1 pode ser alcançada através de AS2

• R1 decide (com base nas suas políticas) se quer usar AS2 para comunicar com N1

AS1

AS2

AS3

R1

R2 R3

R4N1

Protocolos de encaminhamento

RIP, OSPF, BGP

Page 29: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

Sistemas Autónomos (AS) – identificação e tipos

• Um Sistema Autónomo (AS – Autonomous System) necessita de possuir um identificador global único (ASN – AS Number)

– Até 2007 um ASN era um inteiro de 16 bits

– O RFC 4893 introduziu ASNs de 32 bits (escritos na forma x.y, sendo x e yinteiros de 16 bits; 0.y refere-se aos antigos ASNs de 16 bits)

– Os identificadores são atribuídos em blocos pela Internet Assigned Numbers Authority (IANA) a Regional Internet Registries (RIRs), por exemplo

• American Registry for Internet Numbers (ARIN), Réseaux IP Européens Network Coordination Centre (RIPE NCC)

• Tipos de AS– Stub AS – tem uma única ligação para o exterior (isto é, a um único AS)

– Multi-homed AS – tem múltiplas ligações para o exterior mas não transporta tráfego de trânsito (tráfego entre dois outros ASs)

– Transit AS – tem múltiplas ligações para o exterior e transporta tráfego de trânsito e tráfego local

• Um ISP (Internet Service Provider) é necesariamente um Transit AS

RIP – Routing Information Protocol

• A versão original do RIP está definida no RFC 1058

• Usa o algoritmo distance vector

• Corre sobre UDP, na porta 520

• Usa como métrica o número de hops, podendo o hop count ter um valor entre 1 e 15

– É adequado para redes pequenas (redes locais)

– O valor 16 é reservado para representar um hop count infinito

– Valores pequenos de hop count atenuam o problema de count to infinity

• Existem dois tipos de mensagens RIP– Request – para solicitar a um vizinho o respectivo vector de custos

– Response – para anunciar um vector de custos• Uma mensagem Response pode ser enviada periodicamente, após uma

alteração (triggered update) ou em resposta a um Request

• A versão 2 (RIPv2) está definida no RFC 2453

Page 30: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

RIP – formato das mensagens

• Uma mensagem RIP pode incluir no máximo 25 entradas com o mesmoformato da primeira (20 octetos)

Comando Versão Zero

Família do endereço Zero

Endereço IP

Zero

Zero

Métrica

0 8 16 31

. . .

Entrada

RIP

RIPv2 – formato das mensagens

• Uma mensagem RIPv2 pode incluir no máximo 25 entradas com o formatoindicado (20 octetos)

• A primeira entrada pode, no entanto, transportar informação de autenticação

Comando Versão Domínio de routing

Família do endereço Etiqueta da rota (AS)

Endereço IP

Máscara da sub-rede

Endereço IP do next hop

Métrica

0 8 16 31

. . .

Entrada

RIPv2

Page 31: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

RIP e RIPv2 – campos das mensagens

• As mensagens RIP e RIPv2 incluem um conjunto de campos comuns– Comando – Request ou Response

– Versão – 1 ou 2

– Uma ou mais entradas com 20 octetos (no máximo 25 entradas)• Família do endereço – o valor é igual a 2 para IP

• Endereço IP – endereço de host ou rede de destino

• Métrica – número de hops até ao destino

• As mensagens RIP não incluem informação de máscaras de subrede nem podem ser usadas com CIDR (Classless Inter-Domain Routing), isto é, com máscaras de subredes com comprimento variável

• As mensagens RIPv2 incluem informação adicional– Máscaras de subrede, next hop, domínio de routing e etiqueta da rota

– Funcionam com CIDR

RIP – operação• Os routers enviam mensagens de actualização para os vizinhos a intervalos

nominais de 30 s• Um router espera receber mensagens de actualização dos seus vizinhos no

máximo ao fim de 180 s – Se não receber uma mensagem de actualização de um vizinho nesse intervalo de

tempo, assume que a ligação com esse nó falhou e coloca o valor do custo para atingir esse nó em 16 (representa um hop count infinito)

– Se posteriormente receber através de outro vizinho um valor válido de custo para o nó em causa, substitui o valor 16 pelo valor actualizado (após adicionar 1 hopao custo anunciado)

• Usa a variante split horizon with poisoned reverse• A convergência é acelerada com triggered updates

– Os vizinhos de um nó são imediatamente notificados de alterações no respectivo vector de custos

• Os pacotes que transportam mensagens RIP são difundidos em LANs (endereço broadcast) e são epecificamente endereçados (endereço unicast) em redes de acesso múltiplo sem difusão ou em redes ponto-a-ponto

– RIPv2 usa em LANs o endereço multicast 224.0.0.9

Page 32: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

• O protocolo OSPF (versão 2) está descrito no RFC 2328

• É um protocolo do tipo link state– Cada router monitoriza o estado da ligação (link state) com cada um dos seus

vizinhos e divulga (por meio de flooding) essa informação por todos os routersque fazem parte do seu domínio de encaminhamento

– Esta informação permite a cada router aprender a topologia completa da rede

– Em situação estável os routers conhecem a mesma topologia, isto é, possuem a mesma base de dados topológica (link state database)

• O conhecimento é exacto e não baseado em “rumores” (como em algoritmos do tipo distance vector)

– Cada router calcula a árvore de shortest paths cuja raiz é o próprio router (com base no algoritmo de Dijkstra) com o objectivo de criar a sua tabela de encaminhamento

• A cada entrada correspondente a uma rede está associado o next hop e o custo da rota até ao destino

• O OSPF tipicamente converge mais rapidamente que o RIP quando ocorre uma alteração na rede e não tem os problemas que caracterizam os algoritmosdo tipo distance vector

OSPF – Open Shortest Path First

OSPF – propriedades

• Suporta rotas múltiplas para um dado destino (por exemplo, uma por tipo de serviço)

• Suporta subredes com prefixos de tamanho variável, uma vez que transporta a máscara associada a cada subrede na mensagem de encaminhamento

• Permite maior flexibilidade na atribuição de custos às ligações (com base em qualquer métrica), podendo o custo variar ente 1 e 65535

• Permite distribuir tráfego (load balancing) sobre múltiplas rotas de igual custo

• Suporta autenticação com o objectivo de garantir que os routers trocam informação com vizinhos de confiança (trusted)

• Cria uma hierarquia em dois níveis pela divisão de um AS em áreas, ligadas por uma área central (backbone area), o que melhora a escalabilidade

• Suporta rotas específicas para hosts e para redes

• Introduz o conceito de router designado (designated router) em redes que suportam difusão (de forma nativa ou emulada) com o objectivo de reduzir o número de mensagens trocadas

Page 33: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

• O OSPF permite dividir um AS em áreas constituídas por grupos contíguos de redes e hosts e que inclui os routers com interfaces para cada uma dessas redes

– Um área é identificada por um Area ID de 32 bits

• Cada área corre uma cópia separada do algoritmo de encaminhamento link state e tem a sua própria base de dados topológica (link state database)

– A base de dados topológica só é idêntica para os routers da mesma área

– Routers ligados a mais do que uma área têm uma base de dados topológica por cada área

• A divisão dum AS em áreas permite melhorar a escalabilidade do protocolo pelo isolamento de conhecimento entre áreas que lhe está subjacente

– A topologia de uma área é escondida do resto do AS

– Um router numa área só conhece a topologia completa da sua área e só divulga informação (link state) na sua área

• Cada área deve estar ligada a uma área central de backbone (0.0.0.0)– A informação de encaminhamento entre áreas é distribuída através do backbone

OSPF – divisão de um AS em áreas

• Internal Router (IR) – tem todas as interfaces para redes na mesma área– Executa uma cópia do algoritmo básico de encaminhamento

• Area Border Router (ABR) – tem interfaces a mais do que uma área– Executa múltiplas cópias do algoritmo básico de encaminhamento, uma por cada

área a que está ligado

– Sumariza a informação das áreas a que está ligado para distribuição através do backbone (que, por sua vez, a distribui a outras áreas)

• Backbone Router (BBR) – tem interface à área de backbone– Inclui routers com interface a mais do que uma área (um Area Border Router é

um Backbone Router) e routers com todas as suas interfaces ligadas ao backbone

• AS Boundary Router (ASBR) – router que troca informação de encaminhamento com routers pertencentes a outros ASs

– Esta classificação é independente das anteriores, isto é, um router deste tipo pode ser um Internal Router ou um Area Border Router, podendo ou não participar num backbone

OSPF – tipos de routers

Page 34: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

Divisão em áreas – exemplo

R1

R2R4 R5

R7

N1

N2

N3

N4

N5

N6

N7

R8

R3 R6

Área 0.0.0.1 Área 0.0.0.2

Área 0.0.0.3

Ligação a outro AS Área 0.0.0.0

ASBR – AS Boundary RouterABR – Area Border RouterIR – Internal RouterBBR – Backbone Router

ASBR: 4ABR: 3, 6, 8IR: 1, 2, 7BBR: 3, 4, 5, 6, 8

R – Router

N – Network

OSPF – tipos de redes

Na operação do OSPF consideram-se três tipos de redes

• Redes ponto a ponto (point to point networks)– Redes que ligam um par de routers

• Redes de difusão (broadcast networks)– Redes que suportam a ligação de mais de dois routers e que têm capacidade de

endereçar uma mensagem a todos os routers em difusão (broadcast)

– Routers vizinhos são descobertos dinamicamente por meio de mensagens Hello(parte do OSPF)

• Redes sem difusão (non broadcast networks)– Redes que suportam a ligação de mais de dois routers mas que não têm

capacidade de difusão (e.g., uma rede ATM)

– As relações de vizinhança entre routers são mantidas por mensagens Hello

– OSPF pode ser executado num de dois modos• NBMA (Non Broadcast Multiple Access) – é emulada a operação numa rede de difusão

• Ponto a multiponto – trata a rede como uma colecção de ligações ponto a ponto

Page 35: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

Vizinhança e adjacência

• Routers vizinhos (neighbouring routers)– São routers que têm interfaces para uma rede comum

• Todos os routers ligados a um rede de difusão (broadcast network) são vizinhos (no que se refere às interfaces ligadas a essa rede)

– As relações de vizinhança são mantidas e dinamicamente descobertas por meio de mensagens Hello

• Adjacência– É uma relação formada entre routers vizinhos seleccionados com o

objectivo de trocarem informação de encaminhamento • Nem todos os routers vizinhos se tornam adjacentes (depende do tipo de rede)

– O OSPF requer que apenas os routers adjacentes mantenham sincronizadas as respectivas bases de dados topológicas (link state database)

– Para lidar com o problema da adjacência em redes de difusão e no modo NBMA foi introduzido o conceito de router desigando (designated router)

• O conceito permite reduzir o número de adjacências nestas redes, o que por sua vez reduz o volume de tráfego do protocolo de encaminhamento e o tamanho das bases de dados topológicas

Router designado (designated router)

• Cada rede de difusão ou NBMA que tenha pelo menos dois routers ligados tem um router designado

– Existe também um router designado de reserva (backup designated router) que assume o papel de designated router no caso de falha do router que tinha essa função

• Um router designado não é um novo tipo de router mas apenas um papel desempenhado por um router normal escolhido para o efeito e que por isso realiza um conjunto de funções específicas (é um nó virtual que representa uma rede em que existem múltiplas adjacências)

– O router designado cria adjacências com cada um dos outros routers

– O router desigando assume responsabilidades especiais no processo de divulgação (anúncio) do estado das ligações (link state) na respectiva rede

• O router designado e o de reserva são eleitos pelo protocolo Hello (com base em campos de prioridade e de identificação) após a descoberta de vizinhança

• Em redes ponto a ponto e no modo ponto a multiponto não existe qualquer router designado

– Neste caso, routers vizinhos tornam-se adjacentes (ou permanecem isolados)

Page 36: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

Link State Advertisement (LSA)• Para construir a base de dados topológica de um domínio de encaminhamento

é necessário divulgar a todos os routers do domínio o estado das ligações entre routers que criaram adjacências e das redes que os interligam

• A divulgação é feita por meio de anúncios – Link State Advertisement (LSA)

• Um LSA é uma unidade de dados que descreve o estado de um router ou rede– No caso de um router inclui o estado das suas interfaces e adjacências

• Cada router gera LSAs para divulgação do respectivo estado– Para além dos seus próprios LSAs, o router designado na rede em que foi eleito

gera também LSAs em representação dos routers adjacentes e LSAs relativos a essa rede (contém a lista dos routers que a constituem)

– O estado de cada ligação é verificado e actualizado permanentemente por meio de mensagens Hello

– Apenas são gerados LSAs para comunicar alterações de estado

• Um LSA é disseminado em todo o domínio de encaminhamento por meio dum mecanismo de difusão fiável (baseado em flooding)

• A base de dados topológica do protocolo (presente em cada router) é formada pelo conjunto de LSAs de todos os routers e redes divulgados no domínio

Tipos e funções de LSAs

Os anúncios divulgados por diversos tipos de LSAs permitem manter a base de dados topológica de uma área e anunciar rotas entre áreas e entre ASs

• Router LSA (tipo 1) – gerado por todos os routers OSPF– Descreve o estado das interfaces de um router numa área– Disseminado apenas numa área

• Network LSA (tipo 2) – gerado por routers designados– Contém a lista de routers ligados à rede a que pertence o router designado– Disseminado apenas numa área

• Summary LSA (tipos 3 e 4) – gerado por Area Border Routers– Descreve rotas para destinos fora da área, mas dentro do AS

• Tipo 3 – rotas para redes• Tipo 4 – roats para AS Boundary Routers

– Disseminado apenas na área correspondente

• AS external LSA (tipo 5) – gerado por AS Boundary Routers– Descreve rotas para destinos externos ao AS (e rotas por omissão para o AS) – Disseminado em todas as áreas do AS

Page 37: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

OSPF – fases de operação

• A operação do protocolo pode ser descrita em três fases– Descoberta de vizinhos e eleição do designated router (se aplicável)

– Estabelecimento de adjacências e sincronização das bases de dados topológicas

– Troca de LSAs entre routers adjacentes e sua disseminação pela área respectiva e consequente geração das tabelas de encaminhamento

• Os pacotes OSPF são transmitidos directamente em datagramas IP (sendo identificados pelo valor 89 no campo Protocol ID do cabeçalho IP)

– Existem 5 tipos de pacotes OSPF

• O protocolo faz uso, nalguns casos, de dois endereços multicast– 224.0.0.5 – designado allSPFRouters

– 224.0.0.6 – designado allDRouters

OSPF – tipos de pacotesO protocolo usa 5 tipos diferentes de pacotes (que têm um cabeçalho comum)

• Hello – Usado para descoberta e manutenção de relações de vizinhança

• Database Description – Usado na formação de adjacências e sincronização da base de dados topológica– Permite sumarizar o conteúdo da base de dados topológica

• Link State Request – Usado na formação de adjacências e sincronização da base de dados topológica– Solicita o download de LSAs para sincronização da base de dados topológica

• Link State Update – Usado para actualização da base de dados topológica– Contém LSAs que são enviados por meio de flooding numa área

• Link State Ack – Usado para actualização da base de dados topológica– Suporta o mecanismo de difusão fiável (confirmação de LSAs enviados por

flooding)

Page 38: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

Cabeçalho OSPF

• Tipo de pacote (Type)1 – Hello, 2 – Database Description, 3 – Link State Request4 – Link State Update, 5 – Link State Ack

• Router ID– Um número de 32 bits que identifica univocamente o router no AS – pode ser, por

exemplo, o menor endereço IP de uma das suas interfaces

Version Type Packet length

Router ID

Area ID

Checksum Authentication type

Authentication

Authentication

0 8 16 31

OSPF

common

header

OSPF

packet

body

Data

Descoberta de vizinhança• Os routers usam pacotes Hello para descobrir vizinhos com os quais

conseguem estabelecer contacto– Em redes ponto a ponto e de difusão os pacotes Hello são enviados com o

endereço de destino multicast allSPFRouters– Em redes que não suportam difusão é necessário configurar os routers que têm

uma relação de vizinhança

• Os pacotes Hello são enviados periodicamente (tipicamente com um período de 10 s)

• Quando um router recebe um pacote Hello de um vizinho, responde com outro pacote Hello que contém o identificador de cada router que conhece

• Quando um router recebe um pacote Hello que contém o seu identificador num dos campos de identificação de vizinhos (Neighbor #) assume que a vizinhança está estabelecida (é possível comunicação bidireccional)

• A relação de vizinhança é quebrada com um vizinho se deixar de receber pacotes Hello desse vizinho ao fim de um dado intervalo (Dead interval)

• Em redes de difusão e no modo NBMA, as mensagens Hello são também usadas para eleição do router designado e do respectivo backup

– A eleição é baseada no valor mais elevado dos campos de Prioridade (Priority) e de Identificação do router (Router ID)

Page 39: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

Hello

Network mask

Hello interval Options Priority

0 16 24 31

Dead interval

Designated router

Backup designated router

Neighbour 1

Neighbour n

. . . . .

Formação de adjacências

• Em redes ponto a ponto e no modo ponto a multiponto as adjacências correspondem às vizinhanças estabelecidas

• Em redes de difusão e no modo NBMA as adjacências são formadas entre o router designado e cada um dos restantes routers na mesma rede

• A disseminação de LSAs entre routers numa área é feita exclusivamente com base em adjacências e não em vizinhanças, pelo que a sincronização das bases de dados topológicas de routers adjacentes é essencial para evitar ciclos

• Uma vez estabelecida comunicação bidireccional entre os routers envolvidos na formação de uma adjacência, estes trocam pacotes Database Descriptionpara sincronizar as respectivas bases de dados topológicas

– Neste processo um dos routers actua como master e o outro como slave (o que édeterminado por um processo de negociação baseado no Router ID)

• Os pacotes Database Description não contêm a totalidade da base de dados topológica mas apenas os cabeçalhos dos LSAs (um ou mais)

– O vizinho pode então solicitar os LSAs que não possui por meio de pacotes Link State Request, recebendo os LSAs solicitados em pacotes Link State Update que, por sua vez, são confirmados com pacotes Link State Ack

Page 40: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

• I – Init (bit igual a 1 se se tratar do primeiro pacote DD numa sequência)

• M – More (bit igual a 1 se não for último pacote DD numa sequência)

• MS – Master / Slave (bit igual a 1 indica Master)

• LSA header – contém informação que permite identificar univocamente a ligação a quese refere (tipo, link state ID, router que originou o LSA)

– Nos pacotes Link State Update, cada LSA contém um corpo (LSA body) para além do cabeçalho (LSA header)

• Podem existir múltiplos LSA headers num pacote DD

Interface MTU Options Zero I M

Database Description Sequence Number

0 16 24 29 31

LSA Header

MS

Database Description

Database Description – LSA Header

• Link-state type1 – Router LSA, 2 – Network LSA, 3 – Summary LSA (para redes)

4 – Summary LSA (para ASBRs), 5 – AS external LSA

• Link-state ID – identifica a ligação descrita pelo LSA (depende do tipo, mas é tipicamenteo endereço IP do router ou da rede que a ligação representa)

• Advertising router – identificador do router que originou o LSA

• Link-state sequence number – número de sequência para detectar LSAs antigos ouduplicados

• Link-state checksum – protege o conteúdo do LSA com excepção do campo Link-state age

Link-state age Options Link-state type

Link-state ID

Advertising router

Link-state sequence number

Link-state checksum Length

0 16 24 31

Page 41: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

Link State Request

• Pacotes Link State Request são enviados por um router a um vizinho com o qual está a formar uma adjacência para obter informação que permitaactualizar parte da sua base de dados topológica (e completar a respectivasincronização)

• O pacote inclui grupos de três campos (um por cada LSA solicitado)– Link-state type

– Link-state ID

– Advertising router

Link-state type

Link-state ID

Advertising router

. . .

0 31

Link State Update e Link State Ack

• Os pacotes Link State Update contêm actualizações de LSAs – O número de LSAs é indicado no primeiro campo do corpo do pacote

– Cada LSA é constituído pelo LSA header e por um LSA body

• Os pacotes Link State Update são confirmados por pacotes Link State Ack– Os pacotes Link State Ack são constituídos por uma lista de LSA headers

• Os pacotes Link State Update são enviados em resposta a pacotes Link State Request e quando ocorrem alterações (detectadas periodicamente com Hellos)

– São ainda gerados com períodos de 30 m para refrescamento das bases de dados

Number of LSAs

LSA 1

. . .

0 31

LSA n

Page 42: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

Uso de endereços multicast em OSPF

• O processo de flooding pode ser optimizado em redes de difusão, tirando partido do papel desempenhado pelo router designado e recorrendo aos endereços multicast atribuídos ao OSPF

• Em redes de difusão o endereço multicast AllSPFRouters (224.0.0.5) é usado como endereço de destino nos seguintes casos

– Por todos os routers em pacotes Hello

– Pelo router designado (ou pelo seu backup, caso necessário) em pacotes enviados para os restantes routers (Link State Update e Link Sate Ack)

• Em redes de difusão o endereço multicast AllDRouters (224.0.0.6) é usado como endereço de destino nos seguintes casos

– Em pacotes enviados ao router designado (e backup) pelos restantes routers(Database Description, Link State Request, Link State Update e Link Sate Ack)

• Em redes ponto a ponto o endereço IP de destino é sempre o endereço multicast AllSPFRouters, o que evita o desperdício de endereços unicast

– Nas ligações ponto a ponto não é necessário atribuir endereços IP às interfaces dos routers e, caso isso aconteça, a rede diz-se não numerada (unnumbered)

BGP – Border Gateway Protocol

• O BGP é um protocolo de encaminhamento entre ASs – a versão 4 (BGP-4) está definida no RFC 4271

• A função principal de routers BGP (designados BGP speakers) é trocarem entre si informação relativa ao alcance de redes (network reachability)

– Esta informação inclui a lista de ASs atravessados pela informação de alcance (ou, noutros termos, a sequência de ASs que os pacotes têm de atravessar para atingirem uma rede de destino)

– Esta informação é suficiente para construir um grafo de conectividade, de que podem ser eliminados eventuais ciclos (loops) e sobre o qual podem ser tomadas decisões de encaminhamento baseadas em políticas

• O BGP-4 fornece mecanismos para suportar Classless Inter-Domain Routing(CIDR), em particular o anúncio de conjuntos de destinos sob a forma de prefixos IP (eliminando o conceito de classes de endereços) e a agregação de rotas (com a consequente redução da informação de encaminhamento)

• A informação de encaminhamento trocada por routers BGP apenas suporta o paradigma de encaminhamento baseado no endereço de destino transportado no cabeçalho de pacotes IP

Page 43: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

BGP – principais conceitos

• BGP speaker – um router que implementa BGP• BGP Identifier – inteiro (4 octetos) que identifica o emissor de mensagens BGP• Rota (route) – unidade de informação que associa um conjunto de destinos com

os atributos do caminho (path attributes) para esses destinos– O conjunto de destinos é formado pelos sistemas cujos endereços IP estão contidos

num prefixo presente no campo NLRI (Network Layer Reachability Information) de uma mensagem UPDATE

– O caminho (path) é a informação transportada no campo path attributes da mesma mensagem UPDATE

– As rotas são anunciadas entre speakers BGP em mensagens UPDATE• Múltiplas rotas com os mesmos path attributes podem ser anunciadas numa única

mensagem UPDATE por inclusão de múltiplos prefixos no campo NLRI

• NLRI (Network Layer Reachability Information) – lista de prefixos IP que representam destinos alcançáveis através de rotas com path attributes comuns

• Feasible route – rota anunciada que está disponível para uso pelo destinatário• Unfeasible route – rota previamente anunciada que deixou de estar disponível• External BGP (EBGP) – ligação BGP entre peers externos (em ASs diferentes)• Internal BGP (IBGP) – ligação BGP entre peers internos (no mesmo AS)

BGP interno e externo

• EBGP é usado para troca de informação entre ASs diferentes

• IBGP é usado para garantir que a informação de alcance a redes se mantém consistente no conjunto de speakers BGP no mesmo AS

– Os routers IBGP trocam informação aprendida de outros routers IBGP (peers no mesmo AS)

RR R

IBGPEBGP

EBGP

R RR R

EBGP EBGPIBGP

IBGP IBGP

IBGP IBGP

R

Page 44: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

BGP – principais características

• O BGP é um protocolo do tipo path vector – as rotas para redes de destino são anunciadas como uma sequência de ASs

– A informação presente no vector permite eliminar ciclos (loops)

• O BGP permite agregação de rotas (com base em CIDR)

• O BGP permite a aplicação de políticas de encaminhamento (quer para selecção quer para anúncio de rotas)

• Principais funções do protocolo– Abertura, confirmação e manutenção de ligações entre peers BGP

– Envio de informação de alcance a redes

– Notificação de erros

RIB – Routing Information Base

Um speaker BGP guarda a informação sobre rotas numa base de dados de rotas (RIB – Routing Information Base) que é formada por três partes

• Adj-RIBs-In – guarda informação de encaminhamento aprendida emmensagens UPDATE recebidas de outros speakers BGP e o seu conteúdorepresenta rotas que estão disponíveis para o processo de decisão

• Loc-RIB – contém a informação (local) de informação de encaminhamento queo speaker BGP seleccionou por aplicação das suas políticas à informaçãocontida na Adj-RIBs-In

– O next hop para cada rota é definido na tabela de encaminhamento do speaker

• Adj-RIBs-Out – guarda a informação de encaminhamento que o speaker BGP seleccionou para anunciar aos seus peers e que transmite em mensagensUPDATE por si geradas

– Um speaker BGP anuncia aos seus peers apenas rotas que ele próprio usa e a selecção de rotas a anunciar é determinda pela sua política de exportação

– Inicialmente é enviado o conteúdo de Adj-RIBs-Out, mas subsequentemente apenas são enviadas actualizações incrementais, o que reduz a largura de banda consumida e o overhead de processamento

Page 45: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

Políticas de encaminhamento e selecção de rotas

• O BGP permite a aplicação de políticas de encaminhamento por meio daselecção de rotas e do controlo da forma como é distribuída a informação de encaminhamento

– Exemplos de políticas: 1) Nunca usar o AS X; 2) Nunca usar o AS X e o AS Y no mesmo caminho; 3) Nunca usar o AS X para alcançar um destino no AS Y

• Através da recepção de mensagens UPDATE dos seus peers, um speaker BGP fica a conhecer rotas possíveis para diferentes destinos

– Quando existirem múltiplas rotas para um destino, um speaker BGP mantém a informação sobre todas elas mas não mantém qualquer custo associado às rotasaprendidas

• Um speaker BGP selecciona rotas para uso próprio e para anúncio aos peers– Decisão sobre rotas para uso próprio

• Um speaker BGP atribui uma ordem de preferência a cada rota que conhece para um dado destino e, em conformidade com as políticas configuradas, selecciona a que tiverordem de preferência mais elevada

– Decisão sobre o anúncio de rotas• Um speaker BGP apenas anuncia aos seus peers rotas que seleccionou para seu uso

(isto é, a rota preferida para cada destino), mas o anúncio de uma rota específica estácondicionado à sua política de exportação

Mensagens BGP

• Os peers BGP comunicam sobre sessões TCP na porta 179

• As mensagens BGP têm um cabeçalho comum constituído por três campos (com tamanho total igual a 19 octetos)

– Marker (16 octetos) – incluído por razões de compatibilidade com versões anteriores (deve ser preenchido com 1s)

– Length (2 octetos) – indica o comprimento total da mensagem (em octetos) incluindo o cabeçalho

– Type (1 octeto) – identifica o tipo de mensagem através dum código

• Existem quatro tipos de mensagens, identificadas pelo respectivocódigo

1 – OPEN

2 – KEEPALIVE

3 – NOTIFICATION

4 – UPDATE

Page 46: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

Utilização de mensagens BGP

• OPEN– É a primeira mensagem enviada por qualquer dos peers após estabelecimento da

sessão TCP

– Caso aceite, é confirmada por uma mensagem KEEPALIVE em sentido oposto

• KEEPALIVE– Mensagens regularmente trocadas entre peers para confirmar alcance mútuo

• NOTIFICATION– Mensagem enviada quando é detectada uma condição de erro

– A ligação BGP é fechada após o envio desta mensagem

• UPDATE– Mensagem usada para transferir informação de encaminhamento entre peers

BGP, o que permite construir um grafo que descreve as relações entre ASs

– Permite anunciar a um peer rotas viáveis que têm um conjunto de atributos (path attributes) comuns e/ou eliminar rotas que deixaram de ser viáveis

• Uma mensagem pode anunciar no máximo um conjunto de atributos, mas pode incluir múltiplos destinos que partilhem esses atributos (os atributos aplicam-se a todos os destinos indicados no campo NLRI)

• Hold time – valor proposto pelo router que envia a mensagem, sendo escolhido o menor dos dois valores, o proposto e o recebido (deve ser 0 ou, no mínimo, 3 s)

– Limite superior do intervalo máximo entre mensagens NOTIFICATION e/ou UPDATE• BGP ID – identifica o router que envia a mensagem (endereço IP de uma interface local

do router)

Marker

0 8 16 24 31

Length Type: OPEN Version

Optional parameters

Optional parameters

BGP identifier

My autonomous system Hold time

Optionalparameters length

OPEN

Page 47: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

KEEPALIVE

• As mensagens KEEPALIVE apenas contêm o cabeçalho

• Devem ser enviadas com regularidade tal que o temporizador associado ao parâmetro hold time não expire

– O intervalo de tempo máximo sugerido entre mensagens é um terço do hold timemas a frequência não deve ser superior a 1 mensagem por segundo

0 16 24 31

Marker

Length Type: KEEPALIVE

NOTIFICATION

• O tipo de erro é indicado por meio dum código, sendo a informação mais específica sobre a natureza do erro dada por um sub-código

Marker

Length Type: NOTIFICATION Error code

0 8 16 24 31

Error subcode Data

Page 48: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

UPDATE

• As mensagens UPDATE são usadas para troca de informação de encaminhamento entre routers BGP e contêm

– Rotas a descartar (não viáveis)

– Atributos de caminho (path attributes)

– Informação de alcance a redes (Network Layer Reachability Information – NLRI)

• Os atributos descrevem as caracteríticas de uma rota e são usados para influenciar o comportamento dos routers e o processo de encaminhamento

Network layer reachability information (variable)

Unfeasible routes length (two octets)

Withdrawn routes (variable)

Total path attribute length (two octets)

Path attributes (variable)

Atributos de caminhos (path attributes)

• As mensagens UPDATE contêm uma sequência de comprimento variável de atributos de caminhos (path attributes), sendo cada atributo definido na forma TLV (type, length, value)

• O campo tipo é constituído por dois octetos (o segundo é o código do atributo)

– O – flag que indica se o atributo é opcional (O = 1) ou reconhecido (well known)• Um atributo well known deve ser reconhecido por todos os speakers BGP, podendo ou

não ser obrigatória a sua inclusão

• Os atributos well known obrigatórios devem ser incluídos nas mensagens UPDATE

– T – flag que indica se o atributo é transitivo (T = 1) ou não transitivo (local)• Atributos reconhecidos (well known) são sempre transitivos (O = 0, T = 1)

– P – flag que indica se a informação num atributo opcional transitivo (O = T = 1) éparcial (P = 1) ou completa

• A informação deve ser completa em atributos well known (O = 0, T = 1, P = 0) e em atributos opcionais não transitivos (O = 1, T = 0, P = 0)

– E – flag que indica se o campo attribute length tem um octeto (E = 0) ou dois

O T P E 0 Attribute Type Code

Page 49: Algoritmos e Protocolos de Encaminhamentojruela/Apontamentos/routing_v0910_RBL_2... · de Encaminhamento FEUP/DEEC Redes de Banda Larga MIEEC – 2009/10 José Ruela ... 1001 1010

Lista de atributos

• ORIGIN (código = 1) – Well known, obrigatório

• AS_PATH (código = 2) – Well known, obrigatório

• NEXT_HOP (código = 3) – Well known, obrigatório

• MULTI_EXIT_DISC (código = 4) – Opcional, não transitivo

• LOCAL_PREF (código = 5) – Well known, não obrigatório

• ATOMIC_AGGREGATE (código = 6) – Well known, não obrigatório

• AGGREGATOR (código = 7) – Opcional, transitivo

Caracterização dos atributos

• ORIGIN – gerado pelo router que originou a informação de encaminhamento relativa aos destinos indicados no campo NLRI, definindo qual a origem dessa informação

– O valor 0 (para IGP) indica que o NLRI é interior ao AS de origem, enquanto o valor 1 (EGP) indica que o NLRI foi aprendida via EGP

• AS_PATH – identifica os ASs pelos quais passou a informação de encaminhamento presente na mensagem UPDATE

• NEXT_HOP – define o endereço IP do router que deve ser usado como next hop para os destinos listados no campo NLRI da mensagem UPDATE

• MULTI_EXIT_DISC – pode ser usado em ligações entre ASs para discriminar entre múltiplos pontos de entrada ou saída num AS vizinho (fornece ao processo de decisão de um router BGP pistas para o caminho preferido)

• LOCAL_PREF – usado por um router BGP para informar peers internos sobre o seu grau de preferência (com base numa política local) em relação a uma rota externa

• ATOMIC_AGGREGATE – informa outros routers BGP que a rota anunciada no AS_PATH pode não ser a mais específica para os destinos indicados no NLRI

• AGGREGATOR – adicionado pelo router BGP que formou uma rota agregada, especificando o número do seu AS e o seu endereço IP