Capítulo 4: Camada de Rede
4. 1 Introdução
4.2 Redes baseadas em
circuitos virtuais e
datagramas
4.3 O que existe
dentro de um roteador
4.4 IP: Internet
Protocol
Formato do datagrama
Endereçamento IPv4
ICMP
IPv6
4.5 Algoritmos de
roteamento
Estado de enlaces
Vetor de distâncias
Roteamento hierárquico
4.6 Roteando na
Internet
RIP
OSPF
BGP
4.7 Roteamentos
broadcast e multicast
4: Camada de Rede
4a-1
Relacionamento entre roteamento e
encaminhamento
Algoritmo de
roteamento
tabela encaminhamento local
valor cabeçalho link saída
0100
0101
0111
1001
valor no cabeçalho
do pacote que está
chegando
0111
3
2
2
1
1
3 2
4: Camada de Rede
4a-2
Abstraindo com grafos
5
2
u
2
1
Grafo: G = (N,E)
v
x
3
w
3
1
5
1
y
z
2
N = conj. de roteadores = { u, v, w, x, y, z }
E = conj. de enlaces ={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) }
Comentário: a abstração com grafos é útil em outros contextos da rede
Exemplo: P2P, onde N é o conj. dos pares e E é o conj. das conexões TCP
4: Camada de Rede
4a-3
Abstraindo com grafos: custos
5
2
u
v
2
1
x
• c(x,x’) = custo do enlace (x,x’)
3
w
3
1
5
1
y
2
- p.e., c(w,z) = 5
z
• custo poderia também ser 1, ou
inversamente relacionado à banda,
ou inversamente relacionado ao
congestionamento
Custo do caminho (x1, x2, x3,…, xp) = c(x1,x2) + c(x2,x3) + … + c(xp-1,xp)
Q: Qual o caminho de menor custo entre u e z?
Algoritmo de roteamento: algoritmo que encontra o
caminho de menor custo
4: Camada de Rede
4a-4
Classificação de Algoritmos de
Roteamento
Informação global ou
descentralizada?
Estático ou dinâmico?
Estático:
Global:
rotas mudam lentamente
todos roteadores têm info.
com o tempo
completa de topologia, custos
dos enlaces
Dinâmico:
algoritmos “estado de enlaces”
rotas mudam mais
Decentralizada:
rapidamente
roteador conhece vizinhos
atualização periódica
diretos e custos até eles
em resposta a
processo iterativo de cálculo,
troca de info. com vizinhos
mudanças nos custos
algoritmos “vetor de distâncias”
dos enlaces
4: Camada de Rede
4a-5
Capítulo 4: Camada de Rede
4. 1 Introdução
4.2 Redes baseadas em
circuitos virtuais e
datagramas
4.3 O que existe
dentro de um roteador
4.4 IP: Internet
Protocol
Formato do datagrama
Endereçamento IPv4
ICMP
IPv6
4.5 Algoritmos de
roteamento
Estado de enlaces
Vetor de distâncias
Roteamento hierárquico
4.6 Roteando na
Internet
RIP
OSPF
BGP
4.7 Roteamentos
broadcast e multicast
4: Camada de Rede
4a-6
Um algoritmo de roteamento de
“estado de enlaces” (EE)
Algoritmo de Dijkstra
topologia da rede, custos dos
Notação:
c(i,j): custo do enlace do nó
enlaces conhecidos por todos os
nós
realizado através de “difusão
do estado dos enlaces”
todos os nós têm mesma info.
calcula caminhos de menor custo
de um nó (“origem”) para todos os
demais
gera tabela de rotas para
aquele nó
iterativo: depois de k iterações,
sabemos menor custo p/ k
destinos
i ao nó j. custo é infinito se
não forem vizinhos diretos
D(V): valor corrente do
custo do caminho da origem
ao destino V
p(V): nó antecessor no
caminho da origem ao nó V,
imediatamente antes de V
N’: conjunto de nós cujo
caminho de menor custo já
foi determinado
4: Camada de Rede
4a-7
O algoritmo de Dijkstra
1 Inicialização:
2 N’ = {u}
3 para todos os nós v
4
se v for adjacente ao nó u
5
então D(v) = c(u,v)
6
senão D(v) = ∞
7
8 Repete
9 determina w não contido em N’ tal que D(w) é o mínimo
10 adiciona w ao conjunto N’
11 atualiza D(v) para todo v adjacente ao nó w e ainda não em N’:
12
D(v) = min( D(v), D(w) + c(w,v) )
13 /* novo custo ao nó v ou é o custo velho a v ou o custo do
14 menor caminho ao nó w, mais o custo de w a v */
15 até que todos nós estejam em N’
4: Camada de Rede
4a-8
Algoritmo de Dijkstra: exemplo
Step
0
1
2
3
4
5
N'
u
ux
uxy
uxyv
uxyvw
uxyvwz
D(v),p(v) D(w),p(w)
2,u
5,u
2,u
4,x
2,u
3,y
3,y
D(x),p(x)
1,u
D(y),p(y)
∞
2,x
D(z),p(z)
∞
∞
4,y
4,y
4,y
5
2
u
v
2
1
x
3
w
3
1
5
1
y
z
2
4: Camada de Rede
4a-9
Algoritmo de Dijkstra: exemplo
Árvore de caminhos mínimos resultante originada em u:
v
w
u
z
x
y
Tabela de encaminhamento resultante em u:
destino
enlace
v
x
(u,v)
(u,x)
y
(u,x)
w
(u,x)
z
(u,x)
4: Camada de Rede
4a-10
Algoritmo de Dijkstra, discussão
Complexidade algoritmica: n nós
a cada iteração: precisa checar todos nós, w, não em N’
n*(n+1)/2 comparações => O(n2)
implementações mais eficientes possíveis: O(nlogn)
Oscilações possíveis:
p.ex., custo do enlace = carga do tráfego carregado
D
1
1
0
A
0 0
C
e
1+e
B
e
2+e
D
0
1
inicialmente
A
1+e 1
C
0
B
0
… recalcula
rotas
0
D
1
A
0 0
2+e
B
C 1+e
… recalcula
2+e
D
0
A
1+e 1
C
0
B
e
… recalcula
4: Camada de Rede
4a-11
Capítulo 4: Camada de Rede
4. 1 Introdução
4.2 Redes baseadas em
circuitos virtuais e
datagramas
4.3 O que existe
dentro de um roteador
4.4 IP: Internet
Protocol
Formato do datagrama
Endereçamento IPv4
ICMP
IPv6
4.5 Algoritmos de
roteamento
Estado de enlaces
Vetor de distâncias
Roteamento hierárquico
4.6 Roteando na
Internet
RIP
OSPF
BGP
4.7 Roteamentos
broadcast e multicast
4: Camada de Rede
4a-12
Algoritmo Vetor de Distâncias
Equação de Bellman-Ford (programação
dinâmica)
Define
dx(y) := custo do caminho de menor custo entre x
ey
Então
dx(y) = min {c(x,v) + dv(y) }
v
onde min é tomado entre todos os vizinhos v de x
4: Camada de Rede
4a-13
Exemplo com Bellman-Ford
Claramente, dv(z) = 5, dx(z) = 3, dw(z) = 3
5
2
u
v
2
1
x
3
w
3
1
5
1
y
2
z
A equação B-F diz:
du(z) = min { c(u,v) + dv(z),
c(u,x) + dx(z),
c(u,w) + dw(z) }
= min {2 + 5,
1 + 3,
5 + 3} = 4
O nó que leva ao custo mínimo é o próximo passo
ao longo do caminho mais curto➜ tab. de encaminhamento
4: Camada de Rede
4a-14
Algoritmo Vetor de Distâncias
Dx(y) = estimativa do menor custo entre x e y
Vetor de distâncias: Dx = [Dx(y): y є N ]
Nó x sabe o custo para cada vizinho v: c(x,v)
Nó x mantém Dx = [Dx(y): y є N ]
Nó x mantém ainda os vetores de distâncias
dos seus vizinhos
Para cada vizinho v, x mantém
Dv = [Dv(y): y є N ]
4: Camada de Rede
4a-15
Algoritmo Vetor de Distâncias (4)
Idéia básica:
Cada nó envia periodicamente o seu próprio vetor
de distâncias estimado para os vizinhos
Quando um nó x recebe um novo VD estimado de
um vizinho, ele atualiza o seu VD usando a eq. B-F:
Dx(y) ← minv{c(x,v) + Dv(y)}
p/ cada nó y ∊ N
Sob condições mínimas, naturais, a estimativa Dx(y)
converge para o menor custo real dx(y)
4: Camada de Rede
4a-16
Algoritmo Vetor de Distâncias (5)
Iterativo, assíncrono: cada
iteração local causada por:
mudança do custo do enlace
local
mensagem do vizinho: mudança
de caminho de menor custo
para algum destino
Distribuído:
cada nó avisa a seus vizinhos
apenas quando muda seu
caminho de menor custo para
qualquer destino
os vizinhos então avisam a seus
vizinhos, se for necessário
Cada nó:
espera (mudança no custo
de mensagem do vizinho)
recalcula tabela de
distâncias
se mudou o caminho de
menor custo para qq.
destino, avisa vizinhos
4: Camada de Rede
4a-17
Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)}
= min{2+0 , 7+1} = 2
tabela nó x
custo para
x y z
∞ ∞ ∞
z
custo para
x y z
x ∞∞ ∞
y ∞ ∞ ∞
z 7 1 0
x 0 2 7
y 2 0 1
z 7 1 0
origem
origem
custo para
x y z
x 0 2 7
y 2 0 1
z 3 1 0
x 0 2 3
y 2 0 1
z 3 1 0
custo para
x y z
origem
∞ ∞ ∞
2 0 1
custo para
x y z
origem
∞ ∞ ∞
∞ ∞ ∞
y
custo para
x y z
x 0 2 3
y 2 0 1
z 7 1 0
custo para
x y z
x 0 2 3
y 2 0 1
z 3 1 0
x
2
y
1
7
z
custo para
x y z
origem
origem
origem
x
y
z
tabela nó
0 2 7
origem
origem
x
y
z
tabela nó
custo para
x y z
Dx(z) = min{c(x,y) +
Dy(z), c(x,z) + Dz(z)}
= min{2+1 , 7+0} = 3
x 0 2 3
y 2 0 1
z 3 1 0
tempo
4: Camada de Rede
4a-18
Vetor de Distâncias: mudança no custo
dos enlaces
Mudança no custo dos enlaces:
nó detecta mudança no custo do enlace
local
atualiza tabela de distâncias
se mudou o VD, avisa aos vizinhos
“boas
notícias
chegam
logo”
1
X
4
Y
50
1
Z
No tempo t0, y detecta a mudança no custo do enlace, atualiza o
seu VD e informa os vizinhos.
No tempo t1, z recebe a atualização de y e atualiza a sua tabela.
Computa o novo menor custo p/ x e envia o seu VD p/ os vizinhos.
No tempo t2, y recebe a atualização de z e atualiza a sua tabela.
Os custos mínimos de y não mudam e portanto y não envia
nenhuma mensagem para z.
4: Camada de Rede
4a-19
Vetor de Distâncias: mudança no custo
dos enlaces
Mudança no custo dos enlaces:
boas notícias chegam logo
más notícias demoram para chegar -
problema da “contagem ao infinito”!
44 iterações antes do algoritmo
estabilizar: veja texto
60
x
4
y
50
1
z
Reverso envenenado:
Se z roteia via y p/ chegar a
x:
z informa p/ y que sua distância p/
x é infinita (p/ que y não roteie p/ x
via z)
será que isto resolve
completamente o problema da
contagem ao infinito?
4: Camada de Rede
4a-20
Comparação dos algoritmos EE e VD
Complexidade de mensagens Robustez: o que acontece se
houver falha do roteador?
EE: com n nós, E enlaces, O(nE)
mensagens enviadas
EE:
VD: trocar mensagens apenas
entre vizinhos
varia o tempo de
convergência
Rapidez de Convergência
EE: algoritmo O(n2) requer
O(nE) mensagens
podem ocorrer oscilações
VD: varia tempo para convergir
podem ocorrer rotas cíclicas
problema de contagem ao
infinito
nó pode anunciar valores
incorretos de custo de
enlace
cada nó calcula sua própria
tabela
VD:
um nó VD pode anunciar um
custo de caminho incorreto
a tabela de cada nó é usada
pelos outros nós
• um erro propaga pela rede
4: Camada de Rede
4a-21
Capítulo 4: Camada de Rede
4. 1 Introdução
4.2 Redes baseadas em
circuitos virtuais e
datagramas
4.3 O que existe
dentro de um roteador
4.4 IP: Internet
Protocol
Formato do datagrama
Endereçamento IPv4
ICMP
IPv6
4.5 Algoritmos de
roteamento
Estado de enlaces
Vetor de distâncias
Roteamento hierárquico
4.6 Roteando na
Internet
RIP
OSPF
BGP
4.7 Roteamentos
broadcast e multicast
4: Camada de Rede
4a-22
Roteamento Hierárquico
Neste estudo de roteamento fizemos uma
idealização:
todos os roteadores idênticos
rede “não hierarquizada” (“flat”)
… não é verdade, na prática
escala: com 200 milhões
de destinos:
autonomia administrativa
impossível guardar todos
cada admin de rede pode
destinos na tabela de rotas!
troca de tabelas de rotas
afogaria os enlaces!
internet = rede de redes
querer controlar roteamento
em sua própria rede
4: Camada de Rede
4a-23
Roteamento Hierárquico
agregar roteadores em
regiões, “sistemas
autônomos” (SAs)
roteadores no mesmo
SA usam o mesmo
protocolo de
roteamento
Roteador de borda
Enlace direto para
roteador em outro SA
protocolo de roteamento
“intra-SA”
roteadores em SAs
diferentes podem usar
diferentes protocolos de
roteamento intra-SA
4: Camada de Rede
4a-24
SAs interconectados
3c
3a
3b
SA3
1a
2a
1c
1d
1b
Algoritmo de
roteamento
intra-AS
2c
SA2
SA1
Algoritmo de
roteamento
intra-AS
Tabela de
encaminhamento
2b
Tab. de encaminhamento
é configurada pelos
algoritmos intra-SA e
inter-SA
Intra-SA define entradas
p/ dest. internos
Inter-SA e Intra-SA
define entradas p/ dest.
externos
4: Camada de Rede
4a-25
Tarefas do roteamento inter-SA
SA1 precisa:
1. aprender quais destinos
são alcançáveis via SA2
e quais são alcançáveis
via SA3
2. propagar estas info. de
alcançabilidade para
todos os roteadores em
SA1
Tarefas do rot. inter-SA!
Suponha que um
roteador em SA1
recebe um datagrama
cujo destino está fora
de SA1
Roteador deveria
encaminhar o pacote p/
um dos roteadores de
borda, mas qual?
3c
3b
3a
SA3
1a
2a
1c
1d
1b
2c
SA2
2b
SA1
4: Camada de Rede
4a-26
Exemplo: definindo a tabela de
encaminhamento no roteador 1d
Suponha que SA1 aprende através do
protocolo inter-SA que a sub-rede x é
alcançável via SA3 (rot. de borda 1c) mas
não via SA2.
Protocolo Inter-SA propaga info. de
alcançabilidade para todos os roteadores
internos.
Roteador 1d determina através de info. de
roteamento intra-SA que sua interface I
está no caminho mínimo para 1c.
Coloca par (x,I) na tab. de encaminhamento.
4: Camada de Rede
4a-27
Exemplo: escolhendo entre múltiplos
SAs
Suponha agora que SA1 aprende através do protocolo inter-SA
que a sub-rede x é alcançável via SA3 e via SA2.
Para configurar a tabela de encaminhamento, o roteador 1d
deve determinar para qual roteador de borda ele deve enviar
pacotes com destino x .
Isto também é tarefa do protocolo de roteamento inter-SA!
Roteamento batata quente (hot potato): envia pacote para o
roteador de borda mais próximo.
Aprende através do
protocolo inter-SA
que a sub-rede x é
alcançável via
múltiplos roteadores
de borda
Usa info. de
roteamento do
protocolo intra-SA
p/ determinar os
caminhos mínimos
p/ cada rot. de borda
Roteamento batata
quente: escolhe o
roteador de borda
que tem o caminho
de menor custo
Determina da tab. de
encaminhamento a
interface I que leva ao
rot. de borda de menor
custo. Insere (x,I) na
tab. de encaminhamento
4: Camada de Rede
4a-28
Capítulo 4: Camada de Rede
4. 1 Introdução
4.2 Redes baseadas em
circuitos virtuais e
datagramas
4.3 O que existe
dentro de um roteador
4.4 IP: Internet
Protocol
Formato do datagrama
Endereçamento IPv4
ICMP
IPv6
4.5 Algoritmos de
roteamento
Estado de enlaces
Vetor de distâncias
Roteamento hierárquico
4.6 Roteando na
Internet
RIP
OSPF
BGP
4.7 Roteamentos
broadcast e multicast
4: Camada de Rede
4a-29
Roteamento Intra-SA
Também conhecidos como Interior Gateway
Protocols (IGP)
Os protocolos de roteamento Intra-SA mais
comuns são:
RIP:
Routing Information Protocol
OSPF: Open Shortest Path First
IGRP: Interior Gateway Routing Protocol
(proprietário da Cisco)
4: Camada de Rede
4a-30
Capítulo 4: Camada de Rede
4. 1 Introdução
4.2 Redes baseadas em
circuitos virtuais e
datagramas
4.3 O que existe
dentro de um roteador
4.4 IP: Internet
Protocol
Formato do datagrama
Endereçamento IPv4
ICMP
IPv6
4.5 Algoritmos de
roteamento
Estado de enlaces
Vetor de distâncias
Roteamento hierárquico
4.6 Roteando na
Internet
RIP
OSPF
BGP
4.7 Roteamentos
broadcast e multicast
4: Camada de Rede
4a-31
RIP (Routing Information Protocol)
Algoritmo vetor de distâncias
Incluído na distribuição do BSD-UNIX em 1982
Métrica de distância: # de enlaces (máx = 15 enlaces)
Do roteador A p/ sub-redes:
u
v
A
z
C
B
D
w
x
y
destino
u
v
w
x
y
z
saltos
1
2
2
3
3
2
4: Camada de Rede
4a-32
Anúncios RIP
Vetores de distâncias: trocados a cada 30
seg via Mensagem de Resposta (também
chamada de anúncio)
Cada anúncio: rotas para até 25 redes
destino dentro do SA
4: Camada de Rede
4a-33
Exemplo RIP
z
w
A
x
D
B
...
y
C
Rede Destino
w
y
z
x
….
Próximo Roteador
A
B
B
--
No. de enlaces ao destino
….
2
2
7
1
....
Tabela de rotas em D
4: Camada de Rede
4a-34
Exemplo RIP
Dest
w
x
z
….
Prox Saltos
1
1
C
4
…
...
w
A
Anúncios de
A para D
z
x
D
B
y
...
C
Rede Destino
w
y
z
x
….
Próximo Roteador
A
B
B A
--
No. de enlaces ao destino
….
Tabela de rotas em D
2
2
7 5
1
....
4: Camada de Rede
4a-35
RIP: Falha e Recuperação de Enlaces
Se não for recebido anúncio novo durante 180 seg -->
vizinho/enlace declarados mortos
rotas via vizinho invalidadas
novos anúncios enviados aos vizinhos
na sua vez, os vizinhos publicam novos anúncios (se
foram alteradas as suas tabelas)
informação sobre falha do enlace rapidamente
propaga para a rede inteira
reverso envenenado usado para impedir rotas
cíclicas (ping-pong) (distância infinita = 16 enlaces)
4: Camada de Rede
4a-36
RIP: Processamento de tabelas
Tabelas de roteamento RIP gerenciadas por
processo de nível de aplicação chamado route-d
(routing daemon)
anúncios enviados em pacotes UDP, repetidos
periodicamente
4: Camada de Rede
4a-37
Capítulo 4: Camada de Rede
4. 1 Introdução
4.2 Redes baseadas em
circuitos virtuais e
datagramas
4.3 O que existe
dentro de um roteador
4.4 IP: Internet
Protocol
Formato do datagrama
Endereçamento IPv4
ICMP
IPv6
4.5 Algoritmos de
roteamento
Estado de enlaces
Vetor de distâncias
Roteamento hierárquico
4.6 Roteando na
Internet
RIP
OSPF
BGP
4.7 Roteamentos
broadcast e multicast
4: Camada de Rede
4a-38
OSPF (Open Shortest Path First)
“open” (aberto): publicamente disponível
Usa algoritmo do Estado de Enlaces
disseminação de pacotes EE
mapa da topologia a cada nó
cálculo de rotas usando o algoritmo de Dijkstra
Anúncio de OSPF inclui uma entrada por roteador
vizinho
Anúncios disseminados para SA inteiro (via inundação)
Carregados em mensagens OSPF diretamente sobre IP (ao
invés de TCP ou UDP)
4: Camada de Rede
4a-39
OSPF: características “avançadas”
(não existentes no RIP)
Segurança: todas mensagens OSPF autenticadas (para
impedir intrusão maliciosa)
Caminhos Múltiplos de custos iguais permitidos (o RIP
permite e usa apenas uma rota)
Para cada enlace, múltiplas métricas de custo para
TOS diferentes (p.ex, custo de enlace de satélite
colocado como “baixo” para melhor esforço; “alto”
para tempo real)
Suporte integrado para ponto a ponto e multiponto:
OSPF multiponto (MOSPF) usa mesma base de
dados de topologia usado por OSPF
OSPF hierárquico em domínios grandes.
4: Camada de Rede
4a-40
OSPF Hierárquico
4: Camada de Rede
4a-41
OSPF Hierárquico
Hierarquia de dois níveis: área local, backbone.
Anúncios de EE disseminados apenas na mesma área
cada nó possui topologia detalhada da área; apenas
sabe a direção (caminho mais curto) para redes em
outras áreas.
Roteador de fronteira de área: “sumariza”
distâncias às redes na sua própria área, anuncia a
outros roteadores de fronteira de área.
Roteadores do backbone: realizam roteamento OSPF
limitado ao backbone.
Roteadores de fronteira: ligam a outros SAs.
4: Camada de Rede
4a-42
Capítulo 4: Camada de Rede
4. 1 Introdução
4.2 Redes baseadas em
circuitos virtuais e
datagramas
4.3 O que existe
dentro de um roteador
4.4 IP: Internet
Protocol
Formato do datagrama
Endereçamento IPv4
ICMP
IPv6
4.5 Algoritmos de
roteamento
Estado de enlaces
Vetor de distâncias
Roteamento hierárquico
4.6 Roteando na
Internet
RIP
OSPF
BGP
4.7 Roteamentos
broadcast e multicast
4: Camada de Rede
4a-43
Roteamento inter-SA na Internet: BGP
BGP (Border Gateway Protocol): o padrão de fato
BGP provê para cada SA meios de:
1. Obter informação de alcançabilidade de sub-redes a
partir de SAs vizinhos.
2. Propagar informação de alcançabilidade para todos os
roteadores internos ao SA.
3. Determinar “boas” rotas para sub-redes a partir de
informação de alcançabilidade e políticas.
Permite que uma sub-rede anuncie a sua existência
para o resto da Internet: “Estou aqui!”
4: Camada de Rede
4a-44
Fundamentos do BGP
Par de roteadores (pares BGP) trocam info. de roteamento
através de conexões TCP semi-permanentes TCP: sessões BGP
Note que sessões BGP não correspondem a enlaces físicos.
Quando um SA2 anuncia um prefixo para SA1, SA2 está
prometendo que vai enviar àquele prefixo quaisquer
datagramas destinados ao mesmo.
SA2 pode agregar prefixos nos seus anúncios
3c
3a
3b
SA3
1a
SA1
2a
1c
1d
1b
2c
SA2
2b
eBGP session
iBGP session
4: Camada de Rede
4a-45
Distribuindo informação de
alcançabilidade
Com a sessão eBGP 3a-para-1c, SA3 envia informação de
alcançabilidade de prefixos para SA1.
1c pode usar iBGP para distribuir esta nova informação de
alcance de prefixo para todos os roteadores em SA1.
1b pode então re-anunciar a nova informação de alcance para
SA2 através da sessão eBGP 1b-para-2a.
Quando um roteador aprende sobre um novo prefixo, ele cria
uma entrada para o prefixo na sua tabela de
encaminhamento.
3c
3a
3b
SA3
1a
SA1
2a
1c
1d
1b
2c
SA2
2b
eBGP session
4: Camada
iBGP
sessionde Rede
4a-46
Atributos de caminho & Rotas BGP
Quando um prefixo é anunciado, o anúncio inclui
atributos BGP.
prefixo + atributos = “rota”
Dois atributos importantes:
AS-PATH: contém os SAs pelos quais o anúncio para o
prefixo passou: AS 67 AS 17
NEXT-HOP: indica o roteador específico, interno ao SA,
que leva ao SA do próximo salto. (Pode haver múltiplos
enlaces do SA atual para o SA do próximo salto)
Quando um roteador de borda recebe um anúncio
de rota, usa a política de importação para
aceitar/declinar.
4: Camada de Rede
4a-47
Seleção de rota do BGP
Roteador pode aprender sobre mais de 1
rota para algum prefixo. Ele deve
selecionar a rota.
Regras de eliminação:
1.
2.
3.
4.
Valor do atributo preferência local associado à
rota: decisão política
Menor AS-PATH
Roteador NEXT-HOP mais próximo:
roteamento batata quente
Critérios adicionais
4: Camada de Rede
4a-48
Mensagens BGP
Mensagens BGP trocadas usando TCP.
Mensagens BGP:
OPEN: abre conexão TCP ao roteador par e
autentica remetente
UPDATE: anuncia caminho novo (ou retira velho)
KEEPALIVE mantém conexão viva na ausência de
UPDATES; também reconhece pedido OPEN
NOTIFICATION: reporta erros na mensagem
anterior; também usada para fechar conexão
4: Camada de Rede
4a-49
Políticas de roteamento BGP
legenda:
B
W
rede
provedor
X
A
rede
cliente
C
Y
A,B,C são redes de provedores
X,W,Y são clientes (das redes de provedores)
X com duas interfaces: conectadas a duas redes
X não quer rotear de B para C
.. então X não vai anunciar para B a rota para C
4: Camada de Rede
4a-50
Políticas de roteamento BGP (2)
legenda:
B
W
rede
provedor
X
A
rede
cliente
C
Y
A anuncia para B o caminho AW
B anuncia para X o caminho BAW
Deveria B anunciar para C o caminho BAW?
Nem pensar! B não obtém “rendimento” pelo roteamento
CBAW, já que nem W ou C são clientes de B
B quer forçar C a rotear para W via A
B quer rotear apenas para/dos seus clientes!
4: Camada de Rede
4a-51
Por quê há diferenças entre
roteamento Intra- e Inter-SA?
Políticas:
Inter-SA: administração quer controle sobre como
tráfego roteado, quem transita através da sua rede.
Intra-AS: administração única, logo são
desnecessárias decisões políticas
Escalabilidade:
roteamento hierárquico economiza tamanho de tabela
de rotas, reduz tráfego de atualização
Desempenho:
Intra-AS: pode focar em desempenho
Inter-AS: políticas podem ser mais importantes do
que desempenho
4: Camada de Rede
4a-52
Capítulo 4: Camada de Rede
4. 1 Introdução
4.2 Redes baseadas em
circuitos virtuais e
datagramas
4.3 O que existe
dentro de um roteador
4.4 IP: Internet
Protocol
Formato do datagrama
Endereçamento IPv4
ICMP
IPv6
4.5 Algoritmos de
roteamento
Estado de enlaces
Vetor de distâncias
Roteamento hierárquico
4.6 Roteando na
Internet
RIP
OSPF
BGP
4.7 Roteamentos
broadcast e multicast
4: Camada de Rede
4a-53
Roteamento Broadcast
Envia pacotes de uma para todos os outros nós
Duplicação na fonte é ineficiente:
duplicação
criação/transmissão
duplicada
R1
R1
duplicação
R2
R2
R3
R4
duplicação
na fonte
R3
R4
duplicação
dentro da rede
Duplicação na fonte: como a fonte determina
os endereços dos receptores
4: Camada de Rede
4a-54
Duplicação dentro da rede
Inundação: quando nó recebe pacotes de
broadcast, envia cópia para todos os vizinhos
Problemas: ciclos e tempestades de broadcast
Inundação controlada: nó somente faz broadcast
com o pacote se já não tiver feito antes com o
mesmo pacote
Nó mantém registro sobre ids dos pacotes para os quais
já fez broadcast
Ou adota envio pelo caminho reverso (Reverse Path
Forwarding - RPF): só encaminha pacote se chegou pelo
caminho mínimo entre o nó e a fonte
Árvores geradoras (spanning trees)
Nenhum pacote redundante recebido por nenhum nó
4: Camada de Rede
4a-55
Árvore Geradora
Primeiro construa uma árvore geradora
Nós encaminham cópias somente ao longo
da árvore geradora
A
B
c
F
A
E
B
c
D
F
G
(a) Broadcast iniciado em A
E
D
G
(b) Broadcast iniciado em D
4: Camada de Rede
4a-56
Árvore Geradora: criação
Nó central
Cada nó envia mensagem de junção ponto-a-ponto
(unicast) para o nó central
Mensagem encaminhada até que chegue em um nó já
pertencente à árvore geradora
A
A
3
B
c
4
E
F
1
2
B
c
D
F
5
D
E
G
(a) Construção passo-apasso da árvore geradora
G
(b) Árvore geradora
construída
4: Camada de Rede
4a-57
Roteamento Multicast: definição do
problema
Meta: achar uma árvore (ou árvores) conectando todos
os roteadores com membros locais do grupo mcast
árvore: nem todos os caminhos entre roteadores são usados
baseada na origem: árvore distinta de cada fonte p/
receptores
compartilhada: mesma árvore usada por todos os membros do
grupo
Árvore compartilhada
Árvores baseadas na origem
Abordagens para a construção de
árvores mcast
Abordagens:
baseada na origem: uma árvore por fonte
árvores de caminhos mínimos
envio pelo caminho reverso
compartilhada: grupo usa uma árvore única
árvore de custo mínimo (Steiner)
árvore baseada em um centro
…primeiro olharemos as abordagens básicas, e depois
protocolos específicos que adotam estas abordagens
Árvore de Caminhos Mínimos
Árvore de encaminhamento mcast: árvore composta
pelos caminhos mínimos da fonte para todos os
receptores
Algoritmo de Dijkstra
S: fonte
LEGENDA
R1
1
2
R4
R2
3
R3
roteador com membro do
grupo atrelado
5
4
R6
roteador sem membro do
grupo atrelado
R5
6
R7
i
enlace usado p/ envio,
i indica a ordem de adição
do enlace pelo algoritmo
Envio pelo Caminho Reverso
Baseia-se no conhecimento do roteador
sobre caminhos mínimos unicast dele para a
fonte
cada roteador tem um comportamento de
envio simples:
se (datagrama mcast recebido por um enlace de
entrada no caminho mínimo de volta para a fonte)
então inunda o datagrama por todos os enlaces de
saída
senão ignora o datagrama
Envio pelo Caminho Reverso: exemplo
S: fonte
LEGENDA
R1
R4
roteador com membro do
grupo atrelado
R2
R5
R3
R6
R7
roteador sem membro do
grupo atrelado
datagrama vai ser
encaminhado
datagrama não vai ser
encaminhado
• resultado é uma árvore de caminho mínimo reversa
específica para a fonte
- pode ser uma escolha ruim para enlaces
assimétricos
Envio pelo Caminho Reverso: poda
Árvore de encaminhamento contém sub-árvores sem
nenhum membro do grupo multicast
não há necessidade de enviar datagramas pelas
sub-árvores
mensagens de “poda” enviadas para trás pelo
roteador sem nenhum membro do grupo pra frente
LEGENDA
S: fonte
R1
roteador com membro do
grupo atrelado
R4
R2
P
R5
R3
R6
P
R7
P
roteador sem membro do
grupo atrelado
mensagem de poda
enlace com envio mcast
Árvore de Steiner
Árvore de Steiner: árvore de custo mínimo
conectando todos os roteadores com
membros locais do grupo mcast
problema NP-completo
existem excelentes heurísticas
não é usada na prática:
complexidade computacional
necessita informações sobre a rede inteira
monolítica: recalculada sempre que um roteador
precisa ser acrescentado/retirado
Árvores baseadas em centros
árvore de envio única compartilhada por todos
um roteador eleito como “centro” da árvore
para juntar-se:
roteador de fora envia msg-junção unicast
endereçada ao roteador central
msg-junção é “processada” pelos roteadores
intermediários e encaminhada para o centro
msg-junção ou chega a um ramo da árvore já
existente para este centro, ou chega ao centro
caminho seguido por msg-junção se torna novo ramo
da árvore para este roteador
Árvores baseadas em centros:
exemplo
Suponha que R6 foi escolhido como centro:
LEGENDA
R1
R4
3
R2
roteador com membro do
grupo atrelado
roteador sem membro do
grupo atrelado
2
R5
R3
1
R6
R7
1
ordem em que as
mensagens de junção são
geradas
Roteamento Multicast na Internet:
DVMRP
DVMRP: distance vector multicast routing
protocol, RFC1075
inundação e poda: envio pelo caminho reverso
(RPF), árvore baseada na fonte
árvore RPF baseada em tabelas de roteamento
próprias do DVMRP, construídas por meio da
comunicação entre roteadores DVMRP
nada assume sobre o roteamento unicast subjacente
datagrama inicial para o grupo mcast é inundado por
todo lugar via RPF
roteadores sem membros: mensagens de poda para
cima
DVMRP: continuando…
estado soft : roteador DVMRP “esquece”
periodicamente (1 min.) que ramos estão podados:
dados mcast novamente fluem pelos ramos não podados
roteador de baixo: refaz a poda ou continua a receber
dados
roteadores podem rapidamente se enxertar na
árvore
seguindo junção IGMP na folha
considerações finais
comumente implementado em roteadores comerciais
roteamento Mbone feito através do DVMRP
Tunelamento
Q: Como conectar “ilhas” de roteadores multicast em
um “oceano” de roteadores unicast?
Topologia física
Topologia lógica
datagrama mcast encapsulado dentro de um datagrama
“normal” (sem endereço multicast)
datagrama IP normal enviado através de um “túnel” via IP
unicast regular para o roteador mcast receptor
roteador mcast receptor desencapsula para obter datagrama
mcast
PIM: Protocol Independent Multicast
não depende de nenhum algoritmo de roteamento
unicast subjacente (trabalha com todos)
Dois cenários de distribuição multicast diferentes:
Denso:
Esparso:
membros do grupo
# de redes com membros
densamente
empacotados, em
“estreita proximidade”
maior disponibilidade
de banda
do grupo pequeno em
relação ao # de redes
interconectadas
membros do grupo
“amplamente dispersos”
menor disponibilidade de
banda
Conseqüências da Dicotomia Esparso-Denso:
Denso
participação dos
roteadores nos grupos
assumida até que os
roteadores se podem
explicitamente
construção da árvore
mcast ditada pelos dados
(e.x., RPF)
uso da banda e
processamento no
roteador não participante
do grupo perdulários
Esparso:
sem participação até que
os roteadores se juntem
explicitamente
construção da árvore
mcast ditada pelos
receptores (e.x., baseada
em centro)
uso da banda e
processamento no
roteador não participante
do grupo criteriosos
PIM- Modo Denso
RPF com inundação e poda, similar ao
DVMRP mas
Protocolo de roteamento unicast subjacente
provê as informações referentes ao datagrama
chegando, necessárias ao RPF
inundação menos complicada (menos eficiente)
que a do DVMRP reduz a dependência em
relação ao algoritmo de roteamento subjacente
possui mecanismo no protocolo para que o
roteador detecte que é um nó folha
PIM – Modo Esparso
abordagem baseada em
centro
Roteador envia msg. de
junção para o ponto de
encontro (rendezvous point RP)
Roteadores intermediários
atualizam estado e
encaminham msg. de junção
após se juntar via RP,
roteador pode mudar p/
árvore baseada na fonte
performance melhorada:
menos concentração,
caminhos menores
R1
R4
junção
R2
R3
junção
R5
junção
R6
multicast dos dados
a partir do ponto
de encontro (RP)
R7
ponto de
encontro
PIM – Modo Esparso
fonte(s):
dados via rot. unicast
para o RP, que os
distribui ao longo da
árvore com raiz no RP
RP pode estender
árvore mcast para
cima até a fonte
RP pode enviar msg.
pare p/ fonte se não
houver receptores
atrelados
“ninguém está ouvindo!”
R1
R4
junção
R2
R3
junção
R5
junção
R6
multicast dos dados
a partir do ponto
de encontro (RP)
R7
ponto de
encontro
Camada de Rede: resumo
O que nós cobrimos:
Serviços da camada de rede
Princípios de roteamento: estado
dos enlaces e vetor de distâncias
roteamento hierárquico
IP
protocolos de roteamento
Internet RIP, OSPF, BGP
O que tem dentro de um
roteador?
IPv6
Próxima parada:
A camada de
Enlace de
Dados!
4: Camada de Rede
4a-75