Vous êtes sur la page 1sur 45

Roteamento em Redes de Computadores

CPE 825

Parte V
Roteamento Unicast na Internet
Roteamento Inter-Domnio
Lus Henrique M. K. Costa

Otto Carlos M. B. Duarte

luish@gta.ufrj.br

otto@gta.ufrj.br

Universidade Federal do Rio de Janeiro -PEE/COPPE


P.O. Box 68504 - CEP 21945-970 - Rio de Janeiro - RJ
Brasil - http://www.gta.ufrj.br

GTA/UFRJ

Sistemas Autnomos
conjunto de roteadores e redes sob a mesma administrao
No h limites rgidos
1 roteador conectado Internet
Rede corporativa unindo vrias redes locais da empresa, atravs de um
backbone corporativo
Conjunto de clientes servidos por um ISP (Internet Service Provider)

Do ponto de vista do roteamento


todas as partes de um AS devem permanecer conectadas
Todos os roteadores de um AS devem estar conectados
Redes que dependem do AS backbone para se conectar no constituem um AS

Os roteadores de um AS trocam informao para manter conectividade


Protocolo de roteamento
GTA/UFRJ

Sistemas Autnomos
Roteadores dentro de um AS
Gateways internos (interior gateways)
Conectados atravs de um IGP (Interior Gateway Protocol)
Ex. RIP, OSPF, IGRP, IS-IS

Cada AS identificado por um nmero de AS de 32 bits


Escrito na forma decimal
Atribudo pelas autoridades de numerao da Internet
IANA (Internet Assigned Numbers Authority)

GTA/UFRJ

Troca de Informao de Roteamento


Diviso da Internet em ASs
Administrao de um nmero menor de roteadores por rede

Mas conectividade global deve ser mantida


As entradas de roteamento de cada AS devem cobrir todos os
destinos da Internet

Dentro de um AS, rotas conhecidas usando o IGP


Informao sobre o mundo externo atravs de gateways
externos
EGP (Exterior Gateway Protocol)
GTA/UFRJ

Roteamento por Polticas


Ex. Rede com dois acessos Internet
Um pelo backbone NSFnet
Outro por um provedor comercial
Ideal: utilizar provedor comercial para destinos em parceiros
comerciais, utilizar a NSFnet para destinos em parceiros
acadmicos

Rotas so recebidas pelas duas redes...


No se deve acreditar nas distncias EGP

Soluo: configurao manual


Rota para destinos acadmicos ser sempre pela NSFnet, no
importa as mtricas anunciadas pelo EGP
GTA/UFRJ

Border Gateway Protocol (BGP)


No incio...
8 bits de rede, 24 bits de estaes...
Mas a Internet logo iria ultrapassar as 256 redes...

Diviso em classes A, B e C
Redes grandes, mdias e pequenas poderiam ser criadas

1991: mais problemas por vir...


Penria de endereos de Classe B
Exploso das tabelas de roteamento

Remdio: CIDR (Classless Inter-Domain Routing)

GTA/UFRJ

Penria de Redes Classe B


Classe A 128 redes, 16.777.214 estaes
Classe B 16.384 redes, 65.534 estaes
Classe C 2.097.152 redes, 254 estaes
Classe A muito escassos...
Classe C muito pequeno...
Classe B melhor escolha na maioria das vezes
Em 1994, metade dos Classe B j haviam sido
alocados...
GTA/UFRJ

Exploso das Tabelas de Roteamento


Problemas observados
IGP que enviava tabelas completas, periodicamente
Aumento da tabela de roteamento
Mensagens fragmentadas
Roteadores com buffer de 4 pacotes
Realocao do buffer no era rpida o suficiente

Tabela de roteamento com prx. salto para todos os destinos


Implementada em memria rpida nas prprias interfaces de rede
Memria rpida, mas escassa...
Na poca, havia 2.000 redes, o projeto comportava 10.000 entradas...

Sistemas modernos usam soluo hierrquica


Rotas usadas mais freqentemente so guardadas em cache
Tabela completa na memria principal e calculada pelo processador central
No entanto, o problema persiste...
BGP: envio diferencial, tamanho da tabela proporcional ao produto do
nmero de destinos pelo nmero de vizinhos
GTA/UFRJ

Endereos Sem Classe (CIDR)


Muitas organizaes possuem mais de 256 estaes, mas muito
poucas mais de alguns milhares...
Em vez de uma Classe B, alocar vrias Classes C

Fornecimento de endereos
Existem dois milhes de Classe C
Classe B fornecido
Se no mnimo 32 redes, com no mnimo 4.092 estaes

Classe A fornecido em casos raros


E apenas pelo IANA, as autoridades regionais no o distribuem

Distribuio de n Classes C
Resolve a penria de Classes B
Mas deve ser feita com cuidado, para no piorar a exploso das tabelas
Classes C contguos devem ser alocados
Criam super-redes
Agregao por regies pode ser vislumbrada

GTA/UFRJ

Vetores de Caminho
Inter-domnio
Nem sempre o caminho mais curto o melhor
Distncias representam preferncias por determinadas rotas
Convergncia do Bellman-Ford no pode ser garantida
Destinos inalcanveis poderiam implementar split horizon, mas no
h como contar at o infinito para prevenir loops

Estados de enlace
Tentado no protocolo IDPR (Inter-Domain Policy Routing)
Problemas
Distncias arbitrrias
Para evitar loops, IDPR propunha source routing
Inundao da base de dados da topologia
Problema mesmo com nvel de granularidade do AS
OSPF: reas com at 200 roteadores
Internet: 700 ASs em 1994...
GTA/UFRJ

Vetores de Caminho
Vetor de caminho (path vector PV)
DV que transporta a lista completa das redes (ASs) atravessados
Loop apenas se um AS listado duas vezes

Algoritmo
Ao receber anncio, roteador verifica se seu AS est listado
Se sim, o caminho no utilizado
Se no, o prprio nmero de AS includo no PV

Domnios no so obrigados a usar as mesmas mtricas


Decises autnomas

Desvantagem
Tamanho das mensagens
Memria
GTA/UFRJ

Consumo de Memria do PV
Cresce com o nmero de redes na Internet (N)
Uma entrada por rede

Para cada uma das redes, o caminho de acesso (lista de


ASs)
Todas as redes em um AS usam o mesmo caminho
Nmero de caminhos a armazenar proporcional ao nmero de
ASs (A)
Tamanho mdio de um caminho: distncia mdia entre 2 ASs
Depende do tamanho e topologia da Internet
Hiptese: dimetro varia com o logaritmo do tamanho da rede

Seja x a memria consumida para armazenar um AS, y a


memria consumida por um destino, a memria consumida
x . A . Log A + y . N
GTA/UFRJ

Agregao de Rotas
At BGP-3: destinos so apenas classe A, B ou C
BGP-4: CIDR
Rotas devem incluir endereo e comprimento do prefixo
Para diminuir o tamanho das tabelas, agregao de rotas

Exemplo
Provedor T
Duas Classes C: 197.8.0/24 e 197.8.1/24

ASs X e Y, clientes de T
Classes C: 197.8.2/24 e 197.8.3/24

Anncios sem agregao:


Caminho1: atravs de {T}, alcana 197.8.0/23
Caminho 2: atravs de {T, X}, alcana 197.8.2/24
Caminho 3: atravs de {T, Y}, alcana 197.8.3/24

Idealmente, anunciar-se-ia Caminho 1: alcana 197.8.0/22


Problema: anunciar apenas {T} no evita loops, anunciar {T,X,Y}
incorreto...

GTA/UFRJ

Agregao de Rotas
Soluo: caminho estruturado em dois componentes
Seqncia de ASs (ordenado)
Conjunto de ASs (no ordenado)

Exemplo (cont.)
Caminho 1: (Seqncia {T}, Conjunto {X,Y}, alcana 197.8.0/22)
Se um vizinho Z anuncia o caminho:
Caminho n: (Seqncia {Z,T}, Conjunto {X,Y}, alcana 197.8.0/22)

Os dois conjuntos devem ser usados para prevenir loops


Caminhos podem ser agregados recursivamente
A Seqncia de ASs contm a interseo de todas as seqncias
O conjunto de ASs contm a unio de todos os conjuntos de ASs
A lista de redes, todas as redes alcanveis
GTA/UFRJ

Atributos de Caminhos
Principais
Lista dos ASs atravessados (AS_PATH)
Lista das redes alcanveis (destinos)

Outros atributos ajudam o processo de deciso...


BGP-3
Flags
O = 1 atributo opcional ou O = 0 atributo bem conhecido
T = 1 atributo transitivo ou T = 0 atributo local
P = 1 informao parcial
E = 0 comprimento do atributo codificado em 1 octeto ou 2 (E=1)
GTA/UFRJ

Atributos de Caminhos
Tratamento de extenses no BGP-3
Flag de atributo opcional verificado
Atributos opcionais no-transitivos
Informao pertinente conexo local, apenas
Ignorados silenciosamente se no conhecidos

Atributos opcionais transitivos


Se no conhecidos, enviados, mas com o bit parcial (P) em 1

BGP-4: 7 atributos
Attribute

Type

Flags

Value

ORIGIN

Well known

IGP (0), EGP (1) or other (2)

AS_PATH

Well known

Autonomous systems in the path

NEXT_HOP

Well known

Address of next router

MULTI_EXIT_DISC

Optional, local

32 bit metric

LOCAL_PREF

Well known

32 bit metric

ATOMIC_AGGREGATE

Well known

Flags certain aggregations

AGGREGATOR

Optional, transitive

AS number and router ID

GTA/UFRJ

Atributos de Caminho
Origin
Informao de roteamento obtida do IGP; pelo antigo protocolo
EGP, ou por outro meio

Next Hop
Mesma funo que o vizinho indireto no EGP
(atributo no transitivo)

Multi Exit Discriminator (MED)


Mtrica usada para escolher entre diversos roteadores de sada
Entre diversos caminhos que diferem apenas pelos atributos
MUITI_EXIT_DISC e NEXT_HOP
Estes caminhos no devem ser agregados
Permite exportar informao (limitada) da topologia interna para um
AS vizinho
GTA/UFRJ

Atributos de Caminho
Local Preference
Sincroniza a escolha de rotas de sada pelos roteadores dentro
de um AS
O atributo adicionado ao caminho pelo roteador de entrada
Usado na escolha entre vrios caminhos que levam a um prefixo
de rede

Aggregator
Inserido pelo roteador que agregou rotas
Contm o nmero de AS e IP do roteador
Usado para diagnosticar problemas

Atomic Aggregate
Indica que o roteador est passando um caminho agregado
No possui contedo
GTA/UFRJ

Parceiros BGP Internos e Externos


Rotas devem ser passadas para o IGP
Atributos de caminhos devem ser transmitidos a outros roteadores
BGP do AS
Transmisso de informao atravs do IGP no suficiente

enlace inter-AS

AS X
A

AS Z
(trnsito)

Conexo
BGP interna
enlace inter-AS

AS Y
C

Soluo: conexo BGP interna


GTA/UFRJ

Conexes BGP Internas


Conexes internas
Propagao de rotas externas independente do IGP
Roteadores podem eleger a melhor rota de sada, em conjunto
Se os roteadores de um AS escolhem nova rota externa, esta
deve ser anunciada imediatamente para parceiros externos que
usam este AS como trnsito
Ou risco de loops de ASs...

Roteadores BGP conectados por malha completa


Problemas de escalabilidade, se o nmero de roteadores BGP
grande...

GTA/UFRJ

Execuo sobre o TCP


Controle de Erro TCP
O BGP pode ser mais simples (mquina de estados do EGP bem mais
complexa)
Por outro lado...
EGP informao gradual (%), deciso de enlace operacional ou no
BGP/TCP enlace operacional ou no (informao binria)
BGP utiliza sondas (probes) enviados periodicamente

Transmisso confivel
Atualizaes incrementais, menor consumo de banda que no EGP

Problema: controle de congestionamento do TCP


Cada conexo TCP recebe uma parte justa (fair share) da banda
Desejvel na maioria dos casos
Mas no em se tratando do protocolo de roteamento, que pode eventualmente
adaptar-se e remediar o congestionamento
GTA/UFRJ

Cabealho BGP
TCP: orientado a byte
Delimitadores necessrios nas mensagens BGP
0
1
2
3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

Marker (16 bytes)


Length

Type

Marker projetado para utilizao por mecanismos de segurana


A estao l os 19 bytes correspondentes ao cabealho,
mais (length 19) bytes da mensagem BGP
Type
1 Open

2 Update

3 Notification

4 KeepAlive
GTA/UFRJ

Exemplo de Problema de Alinhamento


Suponha uma mensagem de 255 bytes de comprimento
0
1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8

H H H HH H H H HH H H H HH H L L T

Recebida desalinhada de 1 byte


0
1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8

H H H HH H H H H HH H H H HL L T x

Comprimento recebido: 65.582(FF02) em vez de 255(00FF)


Testes de sanidade
Comprimento entre 19 e 8192 bytes
Type deve estar entre 1 e 4
Marker deve ter o valor esperado pelo algoritmo de segurana
GTA/UFRJ

Troca Inicial
Mensagem OPEN
0
1
2
3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

Marker (16 bytes)


Length

Type: OPEN

My Autonomous System

Version

Hold Time

BGP Identifier
Option Length
Option Data

Version Verso do BGP


My Autonomous System nmero de AS do roteador emetente
Hold Time nmero de segundos utilizado no KeepAlive
BGP Identifier um dos endereos IP do roteador
GTA/UFRJ

Troca Inicial
Opes: TLV
1 byte de tipo + 1 byte de comprimento + N bytes de contedo

Opo Tipo 1
Informao de autenticao
Determina o contedo do marcador (nas mensagens seguintes)

Conexo com sucesso (envio posterior de mensagens keepalive)


Verso e Hold Time devem estar ok

Insucesso (envio de mensagem de notificao)


Diferena de verso
pode ser tentada uma verso menor

Falha de autenticao
existe parametrizao, como no EGP

Coliso
Duas conexes TCP abertas
Uma fechada (deciso pelo identificador BGP)
GTA/UFRJ

Mensagens de Atualizao
Mensagens
UPDATE
0
1

2
3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

Marker (16 bytes)


Length

Type: UPDATE

Unfeasible routes length


Withdrawn routes (variable length)
Path attributes length
Path attributes (variable length)
Network Layer Reachability Information (variable length)

Lista de rotas inalcanveis


Informao sobre um caminho especfico
GTA/UFRJ

Mensagens de Atualizao
Lista de rotas inalcanveis
Rotas anunciadas anteriormente, agora inalcanveis
Podem ser reunidas rotas de caminhos diferentes

Informao sobre um caminho


Atributos referentes a este caminho
Formato TLV

Redes alcanveis por este caminho

As mensagens no so alinhadas em 32 bits...


Listas de prefixos de roteamento nos dois campos
1 byte de comprimento do prefixo em bits
Endereo com o comprimento necessrio
GTA/UFRJ

Mensagens de Atualizao
Uma mensagem para cada caminho
Todos os caminhos so enviados aps a troca inicial
No so repetidos periodicamente, so enviadas mensagens de
atualizao apenas para os caminhos que mudarem

Funcionamento semelhante ao DV
Ao receber atualizao, se caminho mais curto, modificao de
rota e envio aos vizinhos
Se malha completa entre os parceiros BGP internos
Atualizao recebida em uma conexo interna no precisa ser
enviada aos parceiros internos

Testes de sanidade
Verificao de loops (path-vector)
Hold-down antes de comear a utilizar o caminho
GTA/UFRJ

Procedimento KeepAlive
Mensagens
KeepAlive
0

1
2
3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

Marker (16 bytes)


Length

Type: KEEPALIVE

Enviadas periodicamente, se necessrio


A conexo TCP sinaliza problemas quando h tentativa de envio de dados
Testam o enlace em uma direo

Na direo contrria
O parceiro deve enviar uma mensagem no mnimo a cada Hold-Time s
Na verdade, envio de 3 mensagens, em mdia, por Hold-Time
O atraso de transmisso sobre o TCP no constante
Tipicamente, uma mensagem a cada 2 minutos

Hold-Time pode ser zero no h envio de mensagens keepalive


til se enlaces pagos por demanda
Outro mecanismo deve ser utilizado pra detectar se enlace operacional

GTA/UFRJ

Notificao de Erros
Mensagem de erro
Recepo de mensagem incorreta
Ausncia de recepo de mensagens

Conexo TCP fechada aps o envio da notificao


0
1
2
3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

Marker (16 bytes)


Length

Type: NOTIF.

Error Code

Error subcode
Data

Erros identificados por cdigo e sub-cdigo


A notificao cease no um erro, mas indicao de trmino da
conexo
GTA/UFRJ

Cdigos de Erro
Code

Subcode

Symbolic Name
Message Header Error

Unrecognized Well-Known Attribute

Connection Not Synchronized

Missing Well-Known Attribute

Bad Message Length

Attribute Flags Error

Bad Message Type

Attribute Length Error

Invalid ORIGIN Attribute

OPEN Message Error


1

Unsupported Version Number

AS Routing Loop

Bad Peer AS

Invalid NEXT_HOP Attribute

Bad BGP Identifier

Optional Attribute Error

Unsupported Optional Parameter

10

Invalid Network Field

Authentication Failure

11

Malformed AS_PATH

Unacceptable Hold Time

UPDATE Message Error


1

Malformed Attribute List

Hold Timer Expired

Finite State Machine Error

Cease

GTA/UFRJ

Riscos de Ataques Conexo TCP


Ataques e conseqncias pro BGP
SYN flooding
Derrubar o servidor com um grande nmero de conexes semi-abertas
Desconexo de uma rede inteira

RST
Quebra da conexo atravs do envio de um pacote RESET
Desconexo de conjuntos de redes (que deixam de ser anunciadas)

DATA insertion
Insero de um pacote forjado na conexo
Criao de erros

Hijacking
Um terceiro se passa por uma das estaes
Insero de rotas falsas, criao de loops, buracos negros, captura do
trfego enviado a uma rede
GTA/UFRJ

Proteo da Conexo TCP


TCP MD5 Signature Option
Similar ao mecanismo do RIP e OSPF, mas implementada no
TCP
IP Header (20 bytes)
Opo TCP
TCP fixed header (20 bytes)
TCP Options, including MD5 checksum
TCP Payload (BGP)

Foi implementada na Internet


Embora seja julgada de proteo fraca por experts de segurana

Alternativa
TCP + IPSEC
GTA/UFRJ

Sincronizao com o IGP


Rotas devem ser mantidas coerentes
No plano BGP
Roteadores de borda aprendem rotas de roteadores em ASs
vizinhos
Selecionam caminhos atravs do processo de deciso do BGP
Sincronizam-se atravs de conexes BGP internas

No plano IGP
Roteadores de borda anunciam rotas externas
Aprendem a conectividade local
GTA/UFRJ

Polticas de Interconexo
Redes comercias no transportam trfico para qualquer
um
O acordo bsico entre o provedor e o cliente
acesso Internet atravs de uma rota default

Pequenos provedores compram servios de trnsito de


provedores maiores (provedores de backbone)
Grandes provedores podem se interconectar (peering)
Limited peering conexo aos endereos diretamente
administrados pelo parceiro
Full peering interconexo transitiva (o AS pode ser usado como
trnsito)

Provedores podem negociar acordos de backup


Manter conectividade em caso de falha parcial
GTA/UFRJ

Processo de Deciso
Trs fases
Anlise dos caminhos recebidos de roteadores externos
Seleo do caminho mais apropriado para cada destino
Anncio do caminho aos vizinhos

GTA/UFRJ

Anlise do Caminho Recebido


Remoo de caminhos inaceitveis
Que incluem o AS local no caminho de ASs
No conformes poltica do AS
Que no foram qualificados como estveis

Mtricas
Nmero de ASs no caminho (simples demais)
Pesos podem ser associados a alguns ASs
Caminhos agregados so um problema
Nmero de ASs na seqncia de ASs uma sub-estimativa
Nmero de ASs no conjunto de ASs uma super-estimativa

A mtrica pode ento ser combinada com preferncias locais


Ex. local preference, banda do enlace com o vizinho, custo
GTA/UFRJ

Seleo de Caminhos
1.

Remoo de caminhos cujo prximo salto est inalcanvel

2.

Separar os caminhos com o maior LOCAL_PREFERENCE

3.

Se existem mltiplos caminhos, escolher o de menor valor


MULTI_EXIT_DISC

4.

Se ainda existem mltiplos caminhos, selecionar o caminho anunciado


pelo parceiro BGP externo de maior identificador

5.

Se ainda existem mltiplos caminhos, selecionar o caminho anunciado


pelo parceiro BGP interno de maior identificador

Anncio da rota aos vizinhos...


GTA/UFRJ

CIDR e IGP
AS X
197.8.2.0/24

B
AS T
(provedor)
197.8.0.0/23

AS Y
197.8.3.0/24

F
AS Z

Z recebe os caminhos
Path(T): (Sequence{T}, Set{X,Y}), alcana 197.8.0.0/22
Path(Y): (Sequence{Y}), alcana 197.8.3.0/24

Quando uma mquina em Z quer enviar a uma mquina em Y


O segundo caminho ganha (mais especfico)
mais seguro utilizar o caminho mais especfico
GTA/UFRJ

CIDR e IGP
Mas o caminho mais especfico no necessariamente mais curto
AS X
197.8.2.0/24

B
AS T
(provedor)
197.8.0.0/23

AS Y
197.8.3.0/24

I
AS V

AS W

F
AS Z

Path(T): (Sequence{T}, Set{X,Y}), alcana 197.8.0.0/22


Path(W): (Sequence{W,V,Y}), alcana 197.8.3.0/24
Pode-se configurar o BGP para no escolher o mais especfico
A ser feito com cuidado...
GTA/UFRJ

CIDR e IGP
Passagem de prefixos para o IGP
Todos os prefixos podem ser passados, se o IGP os entende
Se no, os prefixos devem ser quebrados

Anncios equivalentes no primeiro exemplo


Path(T): (Sequence{T}, Set{X,Y}), alcana 197.8.0.0/23,
197.8.2.0/24
Path(Y): (Sequence{Y}), alcana 197.8.3.0/24

Os anncios podem ser exportados agregados ou no


Path(Z): (Sequence{Z}, Set{X,Y,T}), alcana 197.8.0.0/22

GTA/UFRJ

Exportando Rotas para ASs Vizinhos


Caminho exportado
Caminho recebido + Nmero do AS local
(AS local adicionado ao AS_SEQUENCE)
LOCAL_PREFERENCE removido
MULTI_EXIT_DISC pode ser configurado
Se caminhos foram agregados no AS
Atributo AGGREGATOR
Atributo ATOMIC_AGGREGATE
Se caminhos mais especficos foram fundidos em menos especficos

GTA/UFRJ

BGP: Observaes Finais


BGP
Topologia genrica, em malha, em vez da rvore imposta pelo
EGP

CIDR
Evitou o colapso da Internet pela penria de endereos Classe B

BGP
Evitou o colapso da Internet pela exploso das tabelas de
roteamento

No entanto, o BGP precisa de muita configurao


manual...
GTA/UFRJ

ASs nicos

Fonte: http://www.cidr-report.org/

GTA/UFRJ

Entradas BGP Ativas

Fonte: http://www.potaroo.net/ e http://www.routeviews.org/dynamics/

GTA/UFRJ

Vous aimerez peut-être aussi