Funções da camada de rede ❒ transporta pacote da estação remetente à receptora ❒ protocolos da camada de rede em cada estação, roteador Capítulo 4: Camada de Rede Antônio Abelém Abelé[email protected] 4a-1 Modelo de serviço de rede abstração do serviço Q: Qual é o modelo de serviço para o “canal” que transporta pacotes do remetente ao receptor? ❒ largura de banda garantida? ❒ preservação de temporização entre pacotes (sem jitter)? ❒ entrega sem perdas? ❒ entrega ordenada? ❒ realimentar informação sobre congestionamento ao remetente? seguida por pacotes da origem ao destino. Algoritmos de ❒ roteamento comutação: mover pacotes ❒ estabelecimento da chamada: rede enlace física rede enlace física determinação do caminho: rota rede enlace física algumas arquiteturas de rede requerem determinar o caminho antes de enviar os dados rede enlace física rede enlace física rede enlace física rede enlace física dentro do roteador da entrada à saída apropriada aplicação transporte rede enlace física 4: Camada de Rede 4a-2 Circuitos virtuais “caminho da-origem-ao-destino se comporta como um circuito telefônico” A abstração mais importante provida pela camada de rede: ? ? ? ❍ ❍ em termos de desempenho em ações da rede ao longo do caminho da-origem-ao-destino ❒ estabelecimento de cada chamada circuito virtual ou datagrama? antes do envio dos dados ❒ cada pacote tem ident. de CV (e não endereços origem/dest) ❒ cada roteador no caminho da-origem-ao-destino mantém “estado” para cada conexão que o travessa ❍ conexão da camada de transporte só envolve os 2 sistemas terminais ❒ recursos de enlace, roteador (banda, ao CV ❍ 4: Camada de Rede rede enlace física três funções importantes: ❒ 4: Camada de Rede aplicação transporte rede enlace física 4a-3 buffers) podem ser alocados para permitir desempenho como de um circuito 4: Camada de Rede 4a-4 Circuitos virtuais: protocolos de sinalização Rede de datagramas: o modelo da Internet ❒ não requer estabelecimento de chamada na camada de rede usados para estabelecer, manter, destruir CV ❒ usados em ATM, frame-relay, X.25 ❒ não usados na Internet de hoje ❒ roteadores: não guardam estado sobre conexões fim a fim ❒ ❍ ❍ aplicação 6. dados recebidos aplicação transporte 5. começa fluxo de dados 4. conexão completa 3. chamada aceita transporte rede 1. inicia chamada rede 2. chegada de chamada enlace enlace física física 4: Camada de Rede Internet Modelo de Banda serviço ATM melhor esforço CBR ATM VBR ATM ABR ATM UBR Garantias ? Informa s/ Perdas Ordem Tempo congestion.? nenhuma não não não taxa constante taxa garantida mínima garantida nenhuma sim sim sim sim sim sim não sim não não (inferido via perdas) sem congestion. sem congestion. sim não sim não não ❒ Modelo Internet está sendo estendido: Intserv, Diffserv 4: Camada de Rede 2 pacotes entre o mesmo par origem-destino podem seguir caminhos diferentes aplicação transporte rede 1. envia dados enlace física aplicação transporte rede 2. recebe dados enlace física 4: Camada de Rede 4a-5 Modelos de serviço da camada de rede: Arquitetura de Rede não existe o conceito de “conexão” na camada de rede ❒ pacotes são roteados tipicamente usando endereços de destino 4a-7 4a-6 Rede de datagramas ou CVs: por quê? Internet ❒ troca de dados entre ATM ❒ evoluiu da telefonia computadores ❒ conversação humana: ❍ serviço “elástico”, sem ❍ temporização estrita, reqs. temporais estritos requisitos de ❒ sistemas terminais confiabilidade “inteligentes” (computadores) ❍ requer serviço ❍ podem se adaptar, exercer garantido controle, recuperar de ❒ sistemas terminais “burros” erros ❍ telefones ❍ núcleo da rede simples, ❍ complexidade dentro da complexidade na “borda” rede ❒ muitos tipos de enlaces ❍ características diferentes ❍ serviço uniforme difícil 4: Camada de Rede 4a-8 Classificação de Algoritmos de Roteamento Roteamento protocolo de roteamento 5 meta: determinar caminho (seqüência de roteadores) “bom” pela rede da origem ao destino Abstração de grafo para algoritmos de roteamento: ❒ nos do grafo são roteadores ❒ arestas do grafo são os enlaces físicos ❍ Informação global ou descentralizada? 2 A 2 1 ❒ D 3 C 3 1 5 F 1 E 2 caminho “bom”: ❍ custo do enlace: retardo, financeiro, ou nível de congestionamento B ❍ tipicamente significa caminho de menor custo outras definições são possíveis 4: Camada de Rede ❒ topologia da rede, custos dos Notação: ❒ c(i,j): custo do enlace do nó enlaces conhecidos por todos nós ❍ realizado através de “difusão do estado de enlaces” ❒ ❍ todos 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 Estático: Global: ❒ rotas mudam lentamente com o tempo ❒ todos roteadores têm info. completa de topologia, custos Dinâmico: dos enlaces ❒ rotas mudam mais ❒ algoritmos “estado de enlaces” rapidamente Descentralizada: ❍ atualização periódica ❒ roteador conhece vizinhos ❍ em resposta a mudanças diretos e custos até eles nos custos dos enlaces ❒ processo iterativo de cálculo, troca de info. com vizinhos ❒ algoritmos “vetor de distâncias” 4: Camada de Rede 4a-10 4a-9 Uma algoritmo de roteamento de “estado de enlaces” Algoritmo de Dijkstra Estático ou dinâmico? 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-11 O algoritmo de Dijkstra 1 Initialização: 2 N = {A} 3 para todos nós V 4 se V adjacente ao nó A 5 então D(V) = c(A,V) 6 senão D(V) = infinito 7 8 Repete 9 determina W não contido em N tal que D(W) é minizado 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-12 Algoritmo Estado de Enlaces Algoritmo de Dijkstra: exemplo Passo 0 1 2 3 4 5 N inicial A AD ADE ADEB ADEBC ADEBCF D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F) 2,A 1,A 5,A infinito infinito 2,A 4,D 2,D infinito 2,A 3,E 4,E 3,E 4,E 4,E A B 2 1 D ❒ ❒ 5 2 ❒ 3 C 3 1 5 F 1 E ❒ 2 Cada roteador executa duas tarefas: testa o status de todos os seus roteadores vizinhos e divulga o estado dos enlaces para todos os outros roteadores. Estes pacotes enviados para todos os roteadores, são usados para construir uma base de dados topológica. Cada roteador deve possuir uma base idêntica, e utiliza o algoritmo de Dijkstra (shortest path first - SPF) para calcular as melhores rotas para todos os destinos A informação é retransmitida periodicamente, e depois de mudanças de topologia 4: Camada de Rede 4a-13 4: Camada de Rede 4a-14 Detalhes de Estado de Enlaces Comportamento Básico Link State Databases (Uma para cada Área) Algoritmo de Dijkstra ❒ Cada roteador usa as informações de estado dos enlaces (link-state) locais e recebidas de roteadores adjacentes para construir uma tabela de rotas que modele a configuração da inter-rede ❍ ❍ SPF Tree ❍ Tabela de Roteamento 4: Camada de Rede Informações de estado dos enlaces são armazenadas em uma base de dados de estado de enlaces (L. S. Database). usa-se um protocolo de inundação, que transmite a informação (datada!) aos seus vizinhos, que a retransmitem, e assim sucessivamente, até alcançar a todos os nós. Ao (r)estabelecer conectividade, as partes envolvidas devem comparar os BDs e manter somente a versão mais atual para cada registro. 4: Camada de Rede 4a-16 Segurança Métricas Múltiplas ❒ Objetivo é manter cópias sincronizadas da BD do estado de enlaces ❒ Para proteger a BD contra corrupção usa-se: Reconhecimento de mensagens entre vizinhos no algoritmo de inundação ❍ Cada registro da BD protegido por temporização ❍ Todos registros usam checksum ❍ Transmissão segura de registros do BD ❍ Todas as mensagens podem ser autenticadas ❍ ❒ Suporte possível para diferentes métricas ❍ maior vazão ❍ menor retardo ❍ menor custo (financeiro) ❍ melhor confiabilidade ❒ Uso de métricas múltiplas requer: ❍ documentar diversas métricas por enlace ❍ calcular tabelas de rotas diferentes por métrica ❍ indicar qual métrica deve ser usada pelo pacote a ser roteado (TOS) • Autenticação pode ser diferente para cada sub-rede ou conjunto de sub-redes IP (Área) • 0: Sem autenticação; 1: Senha não criptografada; 2: senha criptografada 4: Camada de Rede 4a-17 Árvore SPF para o Roteador RT6 Um Exemplo N12 3 N1 3 N2 RT1 8 1 1 N3 RT3 8 RT4 RT2 1 1 8 8 RT5 6 3 RT9 N13 N14 8 6 N9 RT11 3 N2 H1 10 RT12 2 RT1 N3 1 RT2 Ib 5 RT10 N12 N10 5 N9 N15 RT11 RT10 1 N6 3 N8 4 RT8 10 H1 4: Camada de Rede 4a-19 1 N12 RT7 9 7 Ia 1 N7 2 RT6 N6 4 N14 8 Ib 3 RT9 1 8 6 6 7 N4 N11 N15 N13 RT5 2 RT3 6 2 RT7 1 9 7 N8 1 3 8 RT6 1 2 3 N1 N4 1 N12 RT4 7 6 Ia 2 N11 8 4: Camada de Rede 4a-18 RT8 2 RT12 N10 N7 4: Camada de Rede 4a-20 Protocolo RIP Tabela de Rotas - RT6 Type Dest Area N N N N N N N N N N N N N ASBR ASBR N N N N N1 N2 N3 N4 Ib Ia N6 N7 N8 N9 N10 N11 H1 RT5 RT7 N12 N13 N14 N15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 * * * * Path Type 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 Cost Next Hop 10 10 7 8 7 12 8 12 10 11 13 14 21 6 8 10 14 14 17 RT3 RT3 RT3 RT3 * RT10 RT10 RT10 RT10 RT10 RT10 RT10 RT10 RT5 RT10 RT10 RT5 RT5 RT10 (Routing Information Protocol) Adv. Router(s) * * * * * * * * * * * * * * * RT7 RT5 RT5 RT7 ❒ Utiliza Algoritimo de Vetor de Distância (Distance Vector Protocol) ❒ Cada roteador comunica a seus vizinhos que possui rotas para determinados pontos da Inter-rede ❒ Alta carga na rede e grandes tabelas de rotas ❒ Difundido nos programas routed e gated ❒ RIP v1 não suporta sub-rede na divulgação 4: Camada de Rede 4a-21 Algoritmo Vetor de Distâncias (Bellman-Ford) 4: Camada de Rede Rede Exemplo ❒ cada roteador sabe o custo dos seus enlaces à seus vizinhos ❒ ele mantém uma tabela de rotas, a qual inclui para cada destino conhecido a distância (custo) para alcançá-lo (vetor de distâncias) ❒ periodicamente ele envia para seus vizinhos uma cópia da sua tabela de rotas, e recebe cópias das deles. ❒ se uma destas tabelas revela uma rota nova, ou uma de menor custo do que uma atual, esta será incorporada na tabela local. 4: Camada de Rede 4a-23 A 1 2 C 4 3 D B 5 nós: enlaces: E 6 A, B, C, D e E 1, 2, 3, 4, 5 e 6. 4: Camada de Rede 4a-24 Partida Fria Partida Fria ❒ Vamos supor que o custo de cada enlace ❒ Cada nó enviará sua tabela para seus seja 1 ❒ Inicialmente, cada roteador desconhece seus vizinhos: sua tabela de rotas contêm apenas o próprio nó, com distância 0. ❒ Por exemplo, para o nó A temos: Destino A Enlace local Custo 0 vizinhos pelos enlaces comuns. ❒ Após receber as mensagens de B e D, a tabela de A será reformulada: Destino A B D Enlace local 1 3 Custo 0 1 1 ou seja, seu vetor de distâncias agora se tornou: A=0, B=1, D=1 e o vetor de distâncias é: A=0 4: Camada de Rede 4a-25 Partida Fria ❒ ❒ ❒ Queda de um Enlace O processo continua. O resultado final em A é: Destino A B D C E 4: Camada de Rede 4a-26 Enlace local 1 3 1 1 Custo 0 1 1 2 2 Existem resultados semelhantes nos demais nós: Os nós descobriram a topologia da rede ❒ Supomos que, depois de estabilizadas as tabelas, cai o enlace 1 (entre A e B) A B 2 C 4 3 D 4: Camada de Rede 4a-27 1 5 E 6 4: Camada de Rede 4a-28 Queda de um Enlace Queda de um Enlace ❒ As novas tabelas de A e B têm custo ❒ Após executar o algoritmo até convergir infinito para as rotas usando o caminho entre eles. Destino A B D C E Enlace local 1 3 1 1 Custo 0 infinito 1 infinito infinito Destino B A D C E Enlace local 1 1 2 4 temos uma nova topologia, com conectividade global Custo 0 infinito infinito 1 1 Destino A B D C E Enlace local 3 3 3 3 Custo 0 3 1 3 2 Destino B A D C E Enlace local 4 4 2 4 4: Camada de Rede 4a-29 Convergência lenta (“bouncing effect”) ❒ A convergência a uma nova topologia pode demorar, por causa do tempo para “esquecer” rotas antigas. ❒ Consideramos a rede exemplo original, com queda do enlace 2, onde o custo do enlace 6 é 10, permanecendo os demais custos iguais a1 1 A B 5 E B - C = inf C 4 3 D 2 6 Custo=10 4: Camada de Rede 4a-31 Custo 0 3 2 1 1 4: Camada de Rede 4a-30 Convergência lenta (“bouncing effect”) ❒ Suponha que A mande seu vetor de distâncias (para B e D) antes de B fazê-lo ❒ B irá adicionar o custo de um salto (1) ao valor difundido por A (2) e atualizará sua tabela criando um loop De/Para A para C B para C C para C D para C E para C Enlace 1 1 local 3 4 Custo 2 3 0 3 2 4: Camada de Rede 4a-32 Convergência lenta (“bouncing effect”) ❒ Os pacotes irão ficar circulando na rede até o TTL deles expirar ❒ Além disso, as tabelas de rotas também ficarão sendo atualizadas com valores de custos dos enlaces inconsistentes Contagem até Infinito ❒ Pior resultado é obtido quando a rede é particionada por quedas de enlace. ❒ Consideramos o caso da queda simultânea dos enlaces 1 e 5 A ❒ Esse processo irá continuar até que a rede volte a um estado estável, com versões coerentes nas tabelas de rota 1 5 E 4: Camada de Rede 4a-33 Remédios para convergência lenta ❒ destinos roteados por este enlace Ativos geram broadcast a cada 30s Roteador mantêm uma rota como válida por 180s ❒ Não trata da velocidade das rotas ❒ Todos nós incluídos nas mensagens: mas com custo ❍ infinito se roteado por este enlace ❒ Participantes são ativos (divulgam vetores de distância) ou passivos (somente “escutam” informações de outros roteadores e atualizam tabelas de rotas) ❍ “Split horizon with poison reverse” 6 Protocolo RIP Não enviar através de um enlace informação sobre ❒ C 4: Camada de Rede 4a-34 ❒ “Split horizon” 2 4 3 D B ❍ “Triggered updates” - quando enviar mensagens? 1. com freqüência pré-determinada ❒ 2. quando ocorrer mudanças de topologia 4: Camada de Rede 4a-35 Os roteadores RIP são configurados geralmente com custo 1 para entrada em dado enlace => HOP count Máximo hops == 16 == infinito, logo o diâmetro máximo da rede deve ser de 15 saltos Uma rota é mantida até que uma melhor seja divulgada ❍ Se existirem duas rotas para a mesma rede com o mesmo custo, o roteador RIP mantêm apenas a primeira que aprendeu na Tabela de Rotas 4: Camada de Rede Formato da Mensagem RIP Mensagem RIP 0 ❒ As mensagens RIP são transportadas via datagramas UDP na porta 520 7 15 Octeto 1 Octeto 2 COMMAND VERSION 23 Octeto 3 31 Octeto 4 MUST BE ZERO FAMILY OF NET 1 MUST BE ZERO IP ADDRESS OF NET 1 MUST BE ZERO MUST BE ZERO Datagrama IP DISTANCE TO NET 1 FAMILY OF NET 2 Datagrama UDP MUST BE ZERO IP ADDRESS OF NET 2 Cabeçalho IP Cabeçalho UDP Mensagem RIP MUST BE ZERO MUST BE ZERO DISTANCE TO NET 2 ... 4: Camada de Rede Campos da Mensagem RIP RIP - Operação ❒ ❒ COMMAND 1 2 3 4 5 Iniciação ❍ Request for partial or full routing info Response containing routing info Trace mode on (obsoleto) Trace mode off (obsoleto) Reserved VERSION: 1 ou 2 - RIP v.2 ❒ FAMILY OF NET (2 para IP) ❒ ❍ 4: Camada de Rede Processo de roteamento descobre quais as interfaces do roteador que estão operacionais Por cada uma destas interfaces, troca informações com roteadores vizinhos, solicitando suas TR’s completas ❒ Atualizações regulares ❒ Atualizações por evento ❒ Remoção por time-out ❍ ❍ Rota default é representada pelo endereço IP 0.0.0.0 Cada mensagem informa até 25 rotas 4: Camada de Rede ❍ ❍ A cada 30 segundos envia entradas da TR Sempre que o custo associado a uma rota muda Após 180s, a rota mantida na tabela de rotas expira Custo é ajustado para 16 e a rota é mantida por mais 120s 4: Camada de Rede 4a-40 Protocolo RIP A Protocolo RIP B C G1 A B G2 G1 Rede 1 Rede 3 G2 Rede 1 Rede 3 Rede 2 Rede 2 Tabela de Rotas Rede GW M Rede GW M Rede GW M C Tabela de Rotas Rede GW M Rede GW M Rede GW M Rede 1 - 1 Rede GW M Rede GW M Rede 2 - 1 Rede GW M 4: Camada de Rede Protocolo RIP A 4: Camada de Rede Protocolo RIP B C G1 A B G2 Rede 3 Rede 3 G1 Rede 2 1 G1 Rede 1 1 Tabela de Rotas Rede GW M Rede 2 - 1 G2 Rede 1 Rede 2 Rede GW M Rede 1 - 1 Rede 2 - 1 C G1 Rede 1 Rede GW M Rede 1 - 1 Rede GW M Rede 3 - 1 Rede 2 Tabela de Rotas Rede GW M Rede GW M Rede 3 - 1 4: Camada de Rede Rede GW M Rede 1 - 1 Rede GW M Rede 1 - 1 Rede 2 - 1 Rede GW M Rede 2 - 1 Rede GW M Rede GW M Rede 3 - 1 4: Camada de Rede Protocolo RIP A Protocolo RIP B C G1 A B G2 G1 Rede 2 Rede 1 G1 Rede 2 1 Rede 3 G2 Rede 1 Rede 3 Rede 2 G1 Rede 1 1 Tabela de Rotas Rede GW M Rede 1 - 1 Rede 2 G1 2 Rede GW M Rede 1 - 1 Rede 2 - 1 Rede GW M Rede 2 - 1 Rede 1 G1 2 C G1 Rede 1 1 Tabela de Rotas Rede GW M Rede 2 - 1 Rede 3 - 1 Rede GW M Rede 3 - 1 Rede GW M Rede 1 - 1 Rede 2 G1 2 Rede GW M Rede 1 - 1 Rede 2 - 1 Rede GW M Rede 2 - 1 Rede 1 G1 2 Rede Rede 2 Rede 3 Rede 1 GW M - 1 - 1 G1 2 4: Camada de Rede Protocolo RIP A 4: Camada de Rede Protocolo RIP B C G1 A B G2 Rede 3 Rede 2 G2 Rede 3 1 Rede 1 Rede GW M Rede 2 - 1 Rede 1 G1 2 Rede Rede 2 Rede 3 Rede 1 G2 Rede 2 G2 Rede 1 2 G2 Rede 2 1 Rede 3 G2 Rede 3 1 Tabela de Rotas Rede GW M Rede 1 - 1 Rede 2 - 1 C G1 Rede 1 Rede GW M Rede 1 - 1 Rede 2 G1 2 Rede GW M Rede 3 - 0 G2 Rede 1 2 G2 Rede 2 1 Tabela de Rotas GW M - 1 - 1 G1 2 Rede GW M Rede 3 - 1 4: Camada de Rede Rede GW M Rede 1 - 1 Rede 2 G1 2 Rede GW M Rede 1 - 1 Rede 2 - 1 Rede Rede 2 Rede 1 Rede 3 GW M - 1 G1 2 G2 2 Rede Rede 2 Rede 3 Rede 1 GW M - 1 - 1 G1 2 Rede Rede 3 Rede 1 Rede 2 GW M 4: Camada de Rede - 1 G2 3 G2 2 Protocolo RIP Protocolo RIP A B C G1 A B G2 G1 Rede 1 Rede 3 Rede 3 G1 Rede 2 1 G1 Rede 3 2 G1 Rede 1 1 Rede Rede 1 Rede 2 Rede 3 Rede Rede 2 Rede 1 Rede 3 GW M - 1 - 1 G2 2 GW M - 1 G1 2 G2 2 Rede 2 Tabela de Rotas Tabela de Rotas Rede GW M Rede 1 - 1 Rede 2 G1 2 G2 Rede 1 Rede 2 G2 Rede 3 1 C Rede Rede 2 Rede 3 Rede 1 GW M - 1 - 1 G1 2 Rede Rede 3 Rede 1 Rede 2 GW M - 1 G2 3 G2 2 Rede GW M Rede 1 - 1 Rede 2 G1 2 Rede Rede 1 Rede 2 Rede 3 GW M - 1 - 1 G2 2 Rede Rede 2 Rede 1 Rede 3 GW M - 1 G1 2 G2 2 Rede Rede 2 Rede 3 Rede 1 GW M 4: Camada de Rede C G1 G2 Comunicação entre roteadores é feita por multicast ❒ Permite a definição de máscaras de redes diferentes para sub-redes diferentes Rede 3 G1 Rede 1 1 ❒ GW M - 1 G1 2 G1 3 Rede Rede 1 Rede 2 Rede 3 GW M - 1 - 1 G2 2 Rede Rede 2 Rede 1 Rede 3 GW M - 1 G1 2 G2 2 Rede Rede 2 Rede 3 Rede 1 Aproveita os campos “deve ser zero” do RIP-1 para introduzir nova funcionalidade de modo “compatível”. Tabela de Rotas Rede Rede 1 Rede 2 Rede 3 - 1 G2 3 G2 2 ❒ Rede 2 G1 Rede 2 1 G1 Rede 3 2 GW M RIP 2 - Extensões ao RIP 1 B Rede 1 Rede Rede 3 Rede 1 Rede 2 4: Camada de Rede Protocolo RIP A - 1 - 1 G1 2 GW M - 1 - 1 G1 2 Rede Rede 3 Rede 1 Rede 2 GW M 4: Camada de Rede - 1 G2 3 G2 2 ❒ Possibilita uso de autenticação (fraca) ❍ Atualmente, texto livre (plain text) 4: Camada de Rede 4a-52 Roteamento Hierárquico Formato da Mensagem RIP2 0 7 15 Octeto 1 Octeto 2 COMMAND (1) VERSION (2) 23 Octeto 3 31 Octeto 4 MUST BE ZERO FAMILY OF NET 1 Neste estudo de roteamento fizemos uma idealização: ❒ todos os roteadores idênticos ❒ rede “não hierarquizada” (“flat”) … não é verdade, na prática ROUTE TAG IP ADDRESS OF NET 1 SUBNET MASK NEXT HOP GATEWAY escala: com > 100 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! DISTANCE TO NET 1 ... ❒ internet = rede de redes querer controlar roteamento em sua própria rede 4: Camada de Rede Autonomous Systems Roteamento Hierárquico ❒ agregar roteadores em regiões, “sistemas autônomos” (ASs) ❒ roteadores no mesmo AS usam o mesmo protocolo de roteamento ❍ ❍ protocolo de roteamento “intra-AS” roteadores em ASs diferentes podem usar diferentes protocolos de roteamento inter-AS 4: Camada de Rede 4a-54 roteadores de borda ❒ roteadores especiais no AS ❒ usam protocolo de roteamento intra-AS com todos os demais roteadores no AS ❒ também responsáveis por rotear para destinos fora do AS ❍ usam protocolo de roteamento “inter-AS” com outros roteadores de borda 4: Camada de Rede 4a-55 ❒ A princípio não existe um limite teórico para o tamanho de um AS: pode ser uma simples rede local pode ser uma rede corporativa inteira ❍ pode ser um conjunto de redes de clientes de um provedor de conectividade Internet ❍ ❍ ❒ AS usa um IGP - protocolo de roteamento interno - para calcular rotas internas ❒ AS usa um EGP - protocolo de roteamento externo - para trocar informação sobre rotas com outros ASs 4: Camada de Rede 4a-56 Tipos de AS Internet Hoje Stub AS Empresa ❒ AS folha (Stub AS) ❍ AS com apenas 1 conexão para outro AS ❒ AS com Múltipla Conectividade (Multihomed AS) ❍ AS com várias conexões para outros ASs mas que não aceita tráfego não-local Empresa Empresa Provedor Stub AS • Tráfego não-local == Tráfego que não se originou no AS e nem se destina ao AS Provedor Provedor ❒ AS de Trânsito (Transit AS) ❍ AS com várias conexões para outros ASs e que aceita tráfego não local, freqüentemente sob certas condições (policy restrictions) Provedor Empresa Empresa 4: Camada de Rede Roteamento Intra-SA e Inter-SA C.b ❒ Utilizados no Brasil nos provedores principais (com conexão ao exterior) e usuários com conexões a mais de um AS ASs no Brasil: ❍ a C Roteadores de borda: B.a ❒ Número de 16 bits (~64K possíveis) ❒ Empresa Multi-homed AS 4: Camada de Rede 4a-57 Identificação de AS Transit AS A.a b A.c d A a b c a c B b •fazem roteamento inter-AS entre si •fazem roteamento intra-AS com outros roteadores do seu próprio AS camada de rede RNP (1916), RedeRio (2715), Embratel (4230), Uninet (5772), GlobalOne (6505), Inside (7063), Roteamento inter-AS, intra-AS no roteador de borda A.c camada de enlace camada física Intelig (17379) … 4: Camada de Rede 4: Camada de Rede 4a-60 Roteamento Intra-SA e Inter-SA C.b a C Estação e1 b A.a a Inter-AS: roteadores de fronteira (exterior gateways) roteamento Inter-AS entre B.a AeB A.c d c b A roteamento Intra-AS no AS A a Hierarquia de ASs na Internet c B Estação e2 b roteamento Intra-AS no AS B Intra-AS: roteadores internos (interior gateways) 4: Camada de Rede 4a-61 Roteamento Inter-AS 4: Camada de Rede 4a-62 Roteamento inter-AS na Internet: BGP BGP (Border Gateway Protocol): o padrão de fato ❒ Protocolo Vetor de Caminhos : ❍ semelhante ao protocolo de Vetor de Distâncias ❍ cada Border Gateway (roteador de fronteira) difunda aos vizinhos (pares) caminho inteiro (i.é., seqüência de ASs) ao destino ❍ p.ex., roteador de fronteira X pode enviar seu caminho ao destino Z: ❒ Path (X,Z) = X,Y1,Y2,Y3,…,Z 4: Camada de Rede 4a-63 4: Camada de Rede 4a-64 Roteamento inter-SA na Internet: BGP Roteamento inter-SA na Internet: BGP Supomos: roteador X envia seu caminho para roteador W ❒ mensagens BGP trocadas usando TCP. ❒ mensagens BGP: W pode ou não selecionar o caminho oferecido por X ❍ razões de custo, políticas (não roteia via o SA de um concorrente), evitar ciclos. ❒ Se W seleciona caminho anunciado por X, então: Caminho (W,Z) = W, Caminho (X,Z) ❒ Note: X pode controlar tráfego de chegada através do controle dos seus anúncios de rotas aos seus pares: ❍ p.ex., se não quero receber tráfego para Z -> não anuncia rotas para Z ❒ ❍ 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-65 Por quê tem 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 4: Camada de Rede 4a-66 A Camada de Rede na Internet Funções da camada de rede em estações, roteadores: ❒ 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-67 Camada de transporte: TCP, UDP Camada de rede protocolo IP •convenções de endereços •formato do datagrama •convenções de manuseio do pct Protocolos de rot. •seleção de rotas •RIP, OSPF, BGP Tabela de rotas protocolo ICMP •relata erros •“sinalização” de roteadores Camada de enlace Camada física 4: Camada de Rede 4a-68 Endereçamento IP: introdução Endereçamento IP ❒ endereço IP: ident. de ❒ 223.1.1.1 32-bits para interface de estação, roteador ❒ interface: conexão entre estação, roteador e enlace físico ❍ ❍ ❍ 223.1.1.2 223.1.1.4 ❍ 223.1.2.9 223.1.3.27 223.1.1.3 roteador típico tem múltiplas interfaces estação pode ter múltiplas interfaces endereço IP associado à interface, não à estação ou roteador 223.1.2.1 ❍ 223.1.2.2 ❒ 223.1.3.2 223.1.3.1 223.1.1.1 = 11011111 00000001 00000001 00000001 223 1 endereço IP: 1 1 223.1.1.1 part de rede (bits de mais alta ordem) parte de estação (bits de mais baixa ordem) 223.1.1.2 223.1.1.4 O quê é uma rede IP? 223.1.1.3 (da perspectiva do endereço IP) ❍ interfaces de dispositivos com a mesma parte de rede nos seus endereços IP ❍ podem alcançar um ao outro sem passar por um roteador Como achar as redes? ❒ disassociar cada interface do seu roteador, estação ❒ criar “ilhas” de redes isoladas 223.1.1.2 223.1.1.1 LAN 223.1.3.1 223.1.3.2 Esta rede consiste de 3 redes IP (para endereços IP começando com 223, os primeiros 24 bits são a parte de rede) 4: Camada de Rede 4a-70 dada a noção de “rede”, vamos reexaminar endereços IP: 223.1.1.4 endereçamento “baseado em classes”: 223.1.1.3 223.1.9.2 classe 223.1.7.0 A 0 rede B 10 C 110 D 1110 1.0.0.0 to 127.255.255.255 estação rede estação 223.1.7.1 223.1.8.1 223.1.8.0 223.1.2.6 223.1.2.1 223.1.2.2 Endereços IP 223.1.9.1 Sistema interligado consistindo de seis redes 223.1.2.9 223.1.3.27 4: Camada de Rede 4a-69 Endereçamento IP 223.1.2.1 223.1.3.27 223.1.2.2 223.1.3.1 223.1.3.2 4: Camada de Rede 4a-71 rede estação endereço multiponto 128.0.0.0 to 191.255.255.255 192.0.0.0 to 223.255.255.255 224.0.0.0 to 239.255.255.255 32 bits 4: Camada de Rede 4a-72 Endereçamento IP: CIDR Endereços IP: como conseguir um? ❒ Endereçamento baseado em classes: ❍ ❍ uso ineficiente e esgotamento do espaço de endereços p.ex., rede da classe B aloca endereços para 65K estações, mesmo se houver apenas 2K estações nessa rede ❒ CIDR: Classless InterDomain Routing ❍ ❍ parte de rede do endereço de comprimento arbitrário formato de endereço: a.b.c.d/x, onde x é no. de bits na parte de rede do endereço parte de rede parte de estação 11001000 00010111 00010000 00000000 Estações (parte de estação): ❒ codificado pelo administrador num arquivo ❒ DHCP: Dynamic Host Configuration Protocol: obtém endereço dinamicamente: “plug-and-play” ❍ estação difunde mensagem “DHCP discover” ❍ servidor DHCP responde com “DHCP offer” ❍ estação solicita endereço IP: “DHCP request” ❍ servidor DHCP envia endereço: “DHCP ack” 200.23.16.0/23 4: Camada de Rede 4a-73 Mensagens DHCP 4: Camada de Rede 4a-74 Processo de “Lease” DHCP DHCP DISCOVER - Broadcast para localização de servidor DHCP DHCP OFFER - Oferta de endereço IP para um cliente DHCP REQUEST - Requisição do endereço IP oferecido (bcast) DHCP DECLINE - Informa que houve um erro na oferta DHCP ACK - Confirmação do servidor sobre a atribuição do end. DHCP NAK - Negativa de fornecimento do endereço (raro) DHCP RELEASE - Cliente libera o endereço IP utilizado (raro) DHCP INFORM - Cliente que já possui endereço IP pode requisitar outras DHCP DISCOVER (broadcast, UDP 67) A DHCP OFFER (IP, tempo, params) de A DHCP OFFER (IP, tempo, params) de B DHCP REQUEST para A (broadcast) ou DHCP DECLINE para A (parâmetros errados) B DHCP ACK de A ou DHCP NACK de A informações de configuração respectivas àquele endereço 4: Camada de Rede 4a-75 4: Camada de Rede 4a-76 Endereços IP: como conseguir um? Rede (parte de rede): ❒ conseguir alocação a partir do espaço de endereços do seu provedor IP Bloco do provedor Organização 0 11001000 00010111 00010000 00000000 200.23.16.0/20 Endereçamento hierárquico: agregação de rotas Endereçamento hierárquico permite anunciar eficientemente informação sobre rotas: Organização 0 200.23.16.0/23 Organização n 1 200.23.18.0/23 11001000 00010111 00010000 00000000 200.23.16.0/23 Organização 1 11001000 00010111 00010010 00000000 200.23.18.0/23 Organização 2 ... 11001000 00010111 00010100 00000000 ….. …. 200.23.20.0/23 …. Organização 7 11001000 00010111 00011110 00000000 200.23.30.0/23 4: Camada de Rede 4a-77 Endereçamento hierárquico: rotas mais específicas Organização 0 200.23.16.0/23 200.23.20.0/23 Organização 7 . . . . . . Provedor A 200.23.20.0/23 Organização 7 . . . . . . Provedor A Internet 200.23.30.0/23 Provedor B “mande-me qq coisa com endereços que começam com 199.31.0.0/16” 4: Camada de Rede 4a-78 Endereçamento IP: a última palavra... P: Como um provedor IP consegue um bloco de endereços? A: ICANN: Internet Corporation for Assigned Provedor B tem uma rota mais específica para a Organização 1 Organização 2 Organização 2 “mande-me qq coisa com endereços que começam com 200.23.16.0/20” “mande-me qq coisa com endereços que começam com 200.23.16.0/20” Internet Names and Numbers ❍ aloca endereços ❍ gerencia DNS ❍ aloca nomes de domínio, resolve disputas 200.23.30.0/23 Provedor B Organização 1 200.23.18.0/23 “mande-me qq coisa com endereços que começam com 199.31.0.0/16 ou 200.23.18.0/23” 4: Camada de Rede 4a-79 (no Brasil, estas funções foram delegadas ao Registro nacional, sediado na FAPESP (SP), e comandado pelo Comitê Gestor Internet BR) 4: Camada de Rede 4a-80 Enviando um datagrama da origem ao destino tabela de rotas em A rede dest. próx. rot. 223.1.1 223.1.2 223.1.3 datagrama IP: campos end. IP end. IP misc origem dest dados 1 2 2 223.1.1.4 223.1.1.4 B 223.1.1.2 223.1.1.4 223.1.1.3 223.1.3.1 ❒ procura endereço de rede de B 223.1.2.1 223.1.2.2 E 223.1.3.2 4: Camada de Rede 4a-81 Enviando um datagrama da origem ao destino aampos dados misc 223.1.1.1 223.1.2.2 OrigemA, destino E: ❒ procura endereço de rede de E ❒ E numa rede diferente rede dest. próx. rot. 223.1.1 223.1.2 223.1.3 223.1.1.4 223.1.1.4 Nenlaces 1 2 2 ❒ ❒ ❒ rede que A ❒ camada de enlace remeterá datagrama direamente para B num quadro da camada de enlace ❍ B e A estão diretamente ligados 223.1.1 223.1.2 223.1.3 A, E não ligados diretamente 223.1.2.1 tabela de rotas: próximo 223.1.1.2 223.1.1.4 223.1.2.9 roteador na rota para E é B 223.1.1.4 223.1.2.2 E 223.1.1.3 223.1.3.27 camada de enlace envia datagrama ao roteador 223.1.1.4 223.1.3.2 223.1.3.1 num quadro da camada de enlace datagrama chega a 223.1.1.4 continua… 4: Camada de Rede 4a-83 Nenlaces 1 2 2 223.1.1.4 223.1.1.4 A 223.1.1.1 B 223.1.1.2 223.1.1.4 223.1.1.3 223.1.2.1 223.1.2.9 223.1.3.27 223.1.2.2 E 223.1.3.2 223.1.3.1 4: Camada de Rede 4a-82 Enviando um datagrama da origem ao destino aampos dados misc 223.1.1.1 223.1.2.2 Chegando a 223.1.1.4, destinado a 223.1.2.2 ❒ procura endereço de rede de E A 223.1.1.1 ❍ ❒ rede dest. próx. rot. ❒ descobre que B é da mesma 223.1.2.9 223.1.3.27 aampos dados misc 223.1.1.1 223.1.1.3 Supomos um datagrama IP originando em A, e endereçado a B: A 223.1.1.1 ❒ datagrama permanece inalterado, enquanto passa da origem ao destino ❒ campos de endereços de interesse aqui Nenlaces Enviando um datagrama da origem ao destino ❒ E fica na mesma rede que a interface 223.1.2.9 do roteador ❍ roteador, E estão diretamente ligados ❒ camada de enlace envia datagrama p/ 223.1.2.2 dentro de quadro de camada de enlace via interface 223.1.2.9 ❒ datagrama chega a 223.1.2.2!!! rede dest. 223.1.1 223.1.2 223.1.3 próx. rot. Nenl. interface - 1 1 1 223.1.1.4 223.1.2.9 223.1.3.27 A 223.1.1.1 B 223.1.1.2 223.1.1.4 223.1.1.3 223.1.3.1 223.1.2.1 223.1.2.9 223.1.3.27 223.1.2.2 E 223.1.3.2 4: Camada de Rede 4a-84 Formato do datagrama IP número da versão do protocolo IP comprimento do cabeçalho (bytes) “tipo” dos dados (DS) número máximo de enlaces restantes (decrementado a cada roteador) protocolo da camada superior ao qual entregar os dados 32 bits ver comp. tipo de cab serviço comprimento início do ident. 16-bits bits fragmento sobre- camada checksum vida superior Internet comprimento total do datagrama (bytes) para fragmentação/ remontagem endereço IP de origem 32 bits endereço IP de destino 32 bits Opções (se tiver) dados (comprimento variável, tipicamente um segmento TCP ou UDP) p.ex. temporizador, registrar rota seguida, especificar lista de roteadores a visitar. IP: Fragmentação & Remontagem cada enlace de rede tem MTU (max.transmission unit) maior tamanho possível de quadro neste enlace. ❍ tipos diferentes de enlace têm MTUs diferentes ❒ datagrama IP muito grande dividido (“fragmentado”) dentro da rede ❍ um datagrama vira vários datagramas ❍ “remontado” apenas no destino final ❍ bits do cabeçalho IP usados para identificar, ordenar fragmentos relacionados ❒ fragmentação: entrada: um datagrama grande saída: 3 datagramas menores remontagem 4: Camada de Rede 4a-85 IP: Fragmentação & Remontagem compr ID bit_frag início =4000 =x =0 =0 4: Camada de Rede 4a-86 ICMP: Internet Control Message Protocol usado por estações, roteadores para comunicar informação s/ camada de rede ❍ relatar erros: estação, rede, porta, protocolo inalcançáveis ❍ pedido/resposta de eco (usado por ping) ❒ camada de rede “acima de” IP: ❍ msgs ICMP transportadas em datagramas IP ❒ mensagem ICMP: tipo, código mais primeiros 8 bytes do datagrama IP causando erro ❒ um datagrama grande vira vários datagramas menores compr ID bit_frag início =1500 =x =1 =0 compr ID bit_frag início =1500 =x =1 =1480 compr ID bit_frag início =1040 =x =0 =2960 4: Camada de Rede 4a-87 Tipo 0 3 3 3 3 3 3 4 8 9 10 11 12 Código descrição 0 resposta de eco (ping) 0 rede dest. inalcançável 1 estação dest inalcançável 2 protocolo dest inalcançável 3 porta dest inalcançável 6 rede dest desconhecida 7 estação dest desconhecida 0 abaixar fonte (controle de congestionamento - ñ usado) 0 pedido eco (ping) 0 anúncio de rota 0 descobrir roteador 0 TTL (sobrevida) expirada 0 erro de cabeçalho IP 4: Camada de Rede 4a-88