Redes de Computadores Protocolos de Roteamento t Dinâmico i I RIP Reinaldo Gomes reinaldo@cefet-al.br 1 Roteamento Relembrando: O roteamento IP consiste em duas fases: 1. Como repassar um pacote de uma interface de entrada para uma interface de saída de um roteador (encaminhamento de pacotes)? 2. Como localizar e configurar uma rota? A primeira parte já foi descutida Há duas abordagens para o cálculo l da tabela de roteamento: t Roteamento Estático Roteamento Dinâmico: Rotas calculadas pelos protocolos de roteamento 2 1
Roteamento IP routing daemon route comman d netstat comman d UDP TCP YES routing table ICMP Redirect ICMP IP Output: Calculate Next Hop Router NO: if forwarding enabled Source Routing For me? Process IP Options IP Input Queue Network Interfaces 3 Sistemas Autônomos Um sistema autônomo é uma região da Internet que é administrada por uma entidade única. Exemplos: Rede da RNP Rede de Backbone da Embratel ISP Regional Roteamento é feito de maneira diferente se estamos dentro de um sistema autônomo (roteamento intra-domínio) ou se devemos permitir que sistemas autônomos se comuniquem (roteamento inter-domínio) 4 2
Sistemas Autônomos (AS) Ethernet Ethernet Autonomous System 1 Router Ethernet Router Router Router Ethernet Ethernet Router Autonomous System 2 Router Ethernet 5 Roteamento Intradomínio e Interdomínio Roteamento Intradomínio Roteamento dentro de um AS Ignora o que está fora do AS Protocolos para roteamento intradomínio também são chamados de Interior Gateway Protocols ou IGP s. Protocolos mais populares são: RIP (simples, antigo) OSPF (melhor) Roteamento Interdomínio Roteamento entre AS s Assume que a Internet consiste de uma coleção de AS s interconectados Geralmente, há um roteador dedicado em cada AS que trata o tráfego interdomínio. Protocolos para roteamento interdomínio também são chamados Exterior Gateway Protocols ou EGP s. Protocolos de Roteamento: EGP BGP (mais recente) 6 3
Componentes de um Algoritmo de Roteamento Um procedimento para enr e receber informações de alcançabilidade sobre a rede para outros roteadores Um procedimento para computação de rotas ótimas Rotas são calculadas utilizando algoritmo de menor caminho (shortest path): Objetivo: Dada uma rede, a cada enlace é atribuído um custo. Procurar o caminho de menor custo entre duas redes com custo mínimo. Um procedimento para reagir e anunciar mudanças na topologia 7 Abordagens para o Roteamento de Menor Caminho Existem duas estratégias de roteamento na Internet 1. Roteamento Vetor de Distância Cada nó conhece a distância i (=custo) para seus vizinhos i diretamente t conectados Um nó en periodicamente uma lista de atualizações de roteamento para seus vizinhos. Se todos os nós atualizam seus custos, as tabelas de roteamento evetualmente convergem Novos nós anunciam sua chegada a seus vizinhos 2. Roteamento Estado de Enlace Cada nó sabe a distância para seus vizinhos A informação de distância (=estado de enlace) é difundida para todos os nós da rede Cada nó calcula sua tabela de roteamento de forma independente 8 4
Algoritmos de Roteamento na Internet Vetor de Distância Routing Information Protocol (RIP) Gateway-to-Gateway Protocol (GGP) Estado de Enlace Intermediate System - Intermediate System (IS-IS) Open Shortest Path First (OSPF) Exterior Gateway Protocol (EGP) Interior Gateway Routing Protocol (IGRP) 9 Uma rede é como um grafo Daqui em diante, redes são representadas como grafos: Nós estão conectados na rede Rede pode ser um enlace ou uma LAN a interface da rede tem um custo redes são destinos Net(v,w) é um endereço IP de uma rede Para facilitar a notação, normalmente as nuvens entre os nós são substituídas por enlaces. c(v,w) v c(v,n) Net(v,w) Net(v,n) n w Net 10 5
Algoritmo Vetor de Distância: Tabela de Roteamento c(v,w): custo para transmitir na interface para a rede Net(v,w) Net(v,w): Endereço de rede da rede entre v e w A rede pode ser um enlace, mas também pode ser uma LAN 11 Algoritmo Vetor de Distância: Mensagens Nós enm mensagem para seus vizinhos que contém entradas na tabela de roteamento v [Net, c(v,net)] n Uma mensagem que tem o formato: [Net, c(v,net)] significa Meu custo para ir a Net é c(v,net) 12 6
Algoritmo Vetor de Distância: Enndo Atualizações Periodicamente, cada nó v en o conteúdo de sua tabela de roteamento para seus vizinhos: [Net 1,D(v,Net 1 )] [Net 1,D(v,Net 1 )] m [Net N,D(v,Net N )] [Net N,D(v,Net N )] v [Net 1,D(v,Net 1 )] [Net N,D(v,Net N )] n w 13 Iniciando uma Tabela de Roteamento I Suponha que o nó v torna-se ativo. O custo para acessar as redes diretamente conectadas é zero: c (v, Net(v,m)) = 0 c (v, Net(v,w)) = 0 c (v, Net(v,n)) = 0 m c(v,m) Net(v,m) RoutingTable c (v,w) Net(v,w) Dest (next hop) v w Net(v,m) m 0 c(v,n) Net(v,n) Net(v,w) w 0 n Net(v,n) n 0 14 7
Iniciando uma Tabela de Roteamento II Dest RoutingTable (next hop) Net(v,m) Net(v,w) Net(v,n) m w n 0 0 0 O novo Nó v en as entradas da tabela de roteamento para todos os vizinhos: [n,0] [n,0] [w,0] [m,0] m v w [m,0] [w,0] n 15 Iniciando uma Tabela de Roteamento III Nó v recebe as tabelas de roteamento de outros nós e constrói sua tabela de roteamento 16 8
Atualizando as Tabelas de Roteamento I Suponha que o nó v recebe uma msg de um nó m: [Net,c(m,Net)] O Nó v atualiza sua tabela de roteamento e en mensagens para outros nós se a mensagem reduz o custo de uma rota 17 Atualizando as Tabelas de Roteamento II Antes de receber a mensagem: Suponha c(m,net) + c(v,m) < c(v,net): 18 9
Exemplo Assumir: - custo do enlace é 1, i.e., c(v,w) = 1 - atualização de todos, atualiza simultaneamente - Inicialmente, cada roteador conhece apenas o custo das interfaces conectadas 10.0.1.0/24 10.0.2.0/24 10.0.3.0/24 10.0.4.0/24 10.0.5.0/24.2.1.2.1.2.1.2.1 Roteador A Roteador B Roteador C Roteador D Net Net Net Net t=0: 10.0.1.0-0 t=0: t=0: t=0: 10.0.5.0-0 t=1: 10.0.1.0-0 10.0.3.0 10.0.2.2 1 t=1: 10.0.1.0 10.0.2.1 1 10.0.4.0 10.0.3.2 1 t=1: 10.0.2.0 10.0.3.1 1 10.0.5.0 10.0.4.2 1 t=1: 10.0.3.0 10.0.4.1 1 10.0.5.0-0 t=2: 10.0.1.0-0 10.0.3.0 10.0.2.2 1 10.0.4.0 10.0.2.2 2 t=2: 10.0.1.0 10.0.2.1 1 10.0.4.0 10.0.3.2 1 10.0.5.0 10.0.3.2 2 t=2: 10.0.1.0 10.0.3.1 2 10.0.2.0 10.0.3.1 1 10.0.5.0 10.0.4.2 1 t=2: 10.0.2.0 10.0.4.1 2 10.0.3.0 10.0.4.1 1 10.0.5.0-0 19 Exemplo 10.0.1.0/24 10.0.2.0/24 10.0.3.0/24 10.0.4.0/24 10.0.5.0/24.2.1.2.1.2.1.2.1 Router A Router B Router C Router D Net Net Net Net t=2: 10.0.1.0-0 10.0.3.0 10.0.2.2 1 t=2: 10.0.1.0 10.0.2.1 1 10.0.4.0 10.0.2.2 2 10.0.4.0 10.0.3.2 1 10.0.5.0 10.0.3.2 2 t=2: 10.0.1.0 10.0.3.1 2 10.0.2.0 10.0.3.1 1 10.0.5.0 10.0.4.2 1 t=2: 10.0.2.0 10.0.4.1 2 10.0.3.0 10.0.4.1 1 10.0.5.00 0-0 t=3: 10.0.1.0-0 10.0.3.0 10.0.2.2 1 10.0.4.0 10.0.2.2 2 10.0.5.0 10.0.2.2 3 t=3: 10.0.1.0 10.0.2.1 1 10.0.4.0 10.0.3.2 1 10.0.5.0 10.0.3.2 2 t=3: 10.0.1.0 10.0.3.1 2 10.0.2.0 10.0.3.1 1 10.0.5.0 10.0.4.2 1 t=3: 10.0.1.0 10.0.4.1 3 10.0.2.0 10.0.4.1 2 10.0.3.0 10.0.4.1 1 10.0.5.0-0 Agora, as tabelas de roteamento convergiram! 20 10
Características do Roteamento Vetor de Distância Atualizações Periódicas: Atualização das tabelas são realizadas num certo período de tempo. Um valor típico é 90 segundos. Atualizações Disparadas: Se uma métrica muda em um enlace, um roteador imediatamente uma mensagem de atualização sem esperar o período de atualização. Atualização da Tabela de Roteamento Completa: A maioria dos protocolos de vetor de distância enm a seus vizinhos a tabela de rotamento inteira (não apenas as entradas modificadas). d Temporizadores para Invalidação de Rotas: Entradas nas tabelas de roteamento são inválidas se não são atualizadas. Um período típico para invalidar uma entrada não atualizada é depois de 3-6 mensagens de atualização. 21 O Problema de Contagem ao Infinito A 1 B 1 C 22 11
Contagem ao Infinito A razão para o problema da contagem ao infinito é que cada roteador tem apenas next-hop-view não através de quem está indo Por exemplo, no primeiro passo, A não percebe que sua rota (com custo 2) para C vêm através do nó B Como resolver o problema de Contagem ao Infinito? 23 Contagem ao Infinito A razão para o problema da contagem ao infinito é que cada nós tem apenas next-hop-view não através de quem está indo Por exemplo, no primeiro passo, A não percebe que sua rota (com custo 2) to C vêm através do nó B Como resolver o problema de Contagem ao Infinito? Solução 1: Sempre passar o caminho inteiro na mensagem de atualização (Path vectors ou Vetor de Distância por Caminho) Se as tabelas são grandes, as mensagem de roteamento vão requerir largura de banda substancial BGP usa esta solução 24 12
Contagem ao Infinito A razão para o problema da contagem ao infinito é que cada nós tem apenas next-hop-view não através de quem está indo Por exemplo, no primeiro passo, A não percebe que sua rota (com custo 2) to C vêm através do nó B Como resolver o problema de Contagem ao Infinito? Solução 2: Nunca anunciar o custo para um vizinho se este é o próximo salto no caminho atual (Horizonte Dividido) Exemplo: A não enria a primeira atualização de rota para B, visto que B é o próximo salto na rota atual de A para C (A não manda antes de B) Também falha, dependendo da situação 25 RIP - Routing Information Protocol Um protocolo intradomínio simples Implementação pura do Roteamento Vetor de Distância Cada roteador anuncia seu vetor de distância a cada 30 segundos (ou sempre que a tabela de roteamento muda) para todos os seus vizinhos RIP sempre usa 1 como métrica de enlace A máxima quantidade de salto é 15, com 16 igual a Rotas são temporizadas (configura para 16) depois de 3 minutos se elas não são atualizadas 26 13
RIP - Histórico Final 1960s : Protocolos com Vetor de Distância são usados na ARPANET Met-1970s: XNS (Xerox Network System) é o protocolo de rotamento precursor do RIP 1982 Release do routed para BSD Unix 1988 RIPv1 (RFC 1058) - roteamento classful 1993 RIPv2 (RFC 1388) - adiciona máscarsa de subrede com cada entrada de rota - permite roteamento classless 1998 Versão atual do RIPv2 (RFC 2453) 27 RIPv1 Formato do Pacote IP header UDP header RIP Message 1: RIPv1 1: request 2: response 2: para IP 0 0: requisição de tabela de rot. completa Endereço de Destino Custo (medido em saltos) Uma mensagem RIP pode ter 25 entradas de rotas Command Version Set to 00...0 address family Set to 00.00 32-bit address Unused (Set to 00...0) Unused (Set to 00...0) metric (1-16) Up to 24 more routes (each 20 bytes) one ro oute entry (20 bytes) 32 bits 28 14
RIPv2 RIPv2 é uma extensão do RIPv1: Máscaras de subrede são transportadas nas informações de rota Autenticação de mensagens de roteamento Informações de roteamento transportam endereço do nexthop Suporta IP multicasting Extensões do RIPv2 nos campos não utilizados das mensagens do RIPv1 29 RIPv2 Formato do Pacote IP header UDP header RIP Message 1: RIPv1 1: request 2: response 2: para IP 0 0: requisição de tabela de rot. completa Endereço de Destino Custo (medido em saltos) Uma mensagem RIP pode ter 25 entradas de rotas Command Version Set to 00...0 address family Set to 00.00 32-bit address Unused (Set to 00...0) Unused (Set to 00...0) metric (1-16) Up to 24 more routes (each 20 bytes) one ro oute entry (20 bytes) 32 bits 30 15
RIPv2 Formato do Pacote IP header UDP header RIPv2 Message 2: RIPv2 Usado para transportar informações de outros protocolos de roteamento (e.g., número de AS) Máscara de Subrede para enderço IP Identifica um melhor nexthop que o roteador,se existir algum (caso contrário 0.0) Command Version Set to 00.00 address family route tag IP address Subnet Mask Next-Hop IP address metric (1-16) Up to 24 more routes (each 20 bytes) ute entry bytes) one ro (20 32 bits 31 Mensagens RIP Esta é a operação do RIP em routed. Porta dedicada RIP é a porta UDP 520. Dois tipos de mensagens: Mensagens Request usada para solicitar aos nós vizinhos uma atualização Mensagens Response contém uma atualização 32 16
Roteamento com RIP Inicialização: En um request packet (command = 1, address family=0..0) para todas das interfaces: RIPv1 usa broadcast se possível, RIPv2 usa endereço de multicast 224.0.0.9, se possível requisitando tabelas de roteamento de roteadores vizinhos Request received: Roteadores que recebem requisições acima enm suas tabelas de roteamento inteiras Response received: Atualiza a tabela de roteamento Atualização de Roteamento Regular: A cada 30 segundos, en toda ou parte da tabela de roteamento para todos os vizinhos em uma mensagem response Atualizações Disparadas: Sempre que a métrica for alterada para uma rota, en a tabela de roteamento inteira. 33 Segurança no RIP RIPv1: Sem proteção RIPv2: Esquema de autenticação simples IP header UDP header RIPv2 Message 2: plaintext password Command Version Set to 00.00 0xffff Authentication Type Password (Bytes 0-3) Password (Bytes 4-7) Password (Bytes 8-11) Password (Bytes 12-15) Autheticatio on Up to 24 more routes (each 20 bytes) 32 bits 34 17
Problemas com RIP RIP demora para estabilizar Mesmo para uma rede pequena, ele leva vários minutos até que as tabelas de roteamento tenham sido setadas depois de uma mudança RIP herda o problema de todos os algoritmos de vetor de distância, e.g., contagem ao infinito» RIP usa técnica split horizon ou horizonte dividido para evitar a contagem ao infinito O caminho máximo no RIP é 15 hops 35 Redes de Computadores Protocolos de Roteamento t Dinâmico i I RIP Reinaldo Gomes reinaldo@cefet-al.br 36 18