Encaminhadores IP Sistemas Telemáticos 2002/2003 LESI Grupo de Comunicações por Computador Departamento de Informática Universidade do Minho Fontes utilizadas • Alguns materiais de – – – – Scott Karlin and Larry Peterson Zhenhai Duan N. Mckeown @ stanford.edu; S. Keshav @ cornell.edu • Artigo – IP Routers Architecture: An Overview , James Aweya, acessível na net. A Internet é um grafo de encaminhadores ! RouterIP de Núcleo O Núcleo da Internet Router de IP de Periferia Qual o aspecto dos comutadores /encaminhadores? Encaminhadores De acesso e.g. ISDN, ADSL Encaminhador de Núcleo Comutador ATM de Núcleo Componentes dum Encaminhador Genérico Processamento de um pacote num encaminhador IP 1. Aceitar o pacote de uma ligação de entrada 2. Localizar o endereço de destino do pacote na tabela de expedição, para identificar a(s) porta de saida . 3. Manipular o cabeçalho do pacote: decrementar o TTL e calcular a soma de verificação do cabeçalho. 4. Enviar o pacote para a(s) portas de saída. 5. Colocar o pacote na fila de espera 6. Transmitir o pacote pela linha de saída Interior dum Encaminhador IP melhor esforço Outra visão dum Encaminhador IP Protocolos de Encaminhamento Tabela de Encaminhamento Tabela de Comutação expedição Plano de Controlo Plano de Dados Processamento por Pacote Componentes Arquitecturais Básicos Plano de dados: processamento por pacote 1. Ingresso Tabela de Expedição Decisão de expedição Tabela de Expedição Decisão de expedição Tabela de Expedição Decisão de expedição 2. Interconexão 3. Egresso Interconexões Duas Técnicas Básicas Filas de Espera de Entrada Normalmente uma switch fabric não bloqueante (e.g. crossbar) Filas de Espera de Saída Normalmente um barramento rápido Interconexões Filas de Espera de Saída Filas de Saída Individuais Memória centralizada partilhada LB Memória = 2N.R 1 2 N 1 2 LB da Memória = (N+1).R N Interconexões Comutação via Memória Partilhada Inúmeros trabalhos provaram e tornaram possível: Entrada 1 Entrada 2 Entrada N – Equidade(Fairness) – Garantia de atraso Saída 1 – Controlo de jitter – Garantia de Perdas – Garantias estatísticas Saída 2 simples Um buffer em memória alocado dinamicamente : N escritas por tempo de célula N leituras por tempo de célula Limitado pela largura de banda da memória Saída N Filas de Espera de Saída Quão rápida pode ser a memória partilhada? SRAM de 5 ns Memória Partilhada 1 2 N • 5ns por operação de memória • 2 operações de memória por pacote • Portanto até um máximo de 160Gb/s • Na prática a velocidade de comutação é próxima de 80Gb/s Barramento de 200 byte Interconexões Dados de Entrada Filas de Espera de Entrada com Crossbar configuração LB Memória = 2R Dados de Saída Fila de Espera de Entrada Atarso Bloqueio de Topo de Linha (Head of Line Blocking) Carga 58.6% 100% Head of Line Blocking Fila de Espera de Entrada Filas de Espera de Saída Virtuais Fila de Espera de Entrada Atraso Filas de Espera de Saída Virtuais Carga 100% Fila de Espera de Entrada Filas de Espera de Saída Virtuais LB Memória = 2R Arbiter Complexo ! Engenho de Expedição Pacote dados cabeçalho Router Endereço de destino Estrutura de Dados para localização do encaminhamento Tabela de Expedição Rede destino Porta 65.0.0.0/8 3 128.9.0.0/16 1 149.12.0.0/19 7 Porta de saída Ex. de Tabela de Expedição Prefixo IP de Destino Porta de saída 65.0.0.0/ 8 3 128.9.0.0/16 142.12.0.0/19 Tamanho do Prefixo 1 7 Prefixo IP : 0-32 bits 65.0.0.0/8 128.9.0.0/16 128.9.16.14 224 65.0.0.0 65.255.255.255 0 142.12.0.0/19 232-1 Prefixos podem sobrepor-se Maior prefixo que unifique 128.9.176.0/24 128.9.16.0/21 128.9.172.0/21 65.0.0.0/8 0 128.9.0.0/16 128.9.16.14 142.12.0.0/19 232-1 Lookup de encaminhamento: Encontre o maior prefixo que unifique (i.e. a rota mais específica) entre todos os prefixos que unifiquem com endereço de destino. Comprimento do Prefixo Dificuldade da unificação com o prefixo mais longo Busca bi-dimensional: - Comprimento do prefixo - Valor do Prefixo 32 24 128.9.176.0/24 128.9.16.0/21 8 65.0.0.0/8 128.9.172.0/21 142.12.0.0/19 128.9.0.0/16 128.9.16.14 Valores de prefixo Lookup da Tabela de Encaminhamento • Não é nada fácil! • A operação de busca não é uma unificação exacta – O lookup directo precisa de 4G entradas (32 bits no endereço IP) – Unificação com o maior prefixo • Tabelas de Hash • Árvores balanceadas Número de Prefixos Tamanho da Tabela de Expedição 100000 90000 80000 70000 60000 50000 10,000/ano 40000 30000 20000 10000 0 95 96 97 Ano 98 Fonte http://www.telstra.net/ops/bgptable.html 99 00 Trees e Tries Binary Search Tree < > > < N entries > log2N < Binary Search Trie 0 0 1 1 010 0 1 111 Trees and Tries Multiway tries 16-ary Search Trie 0000, ptr 0000, 0 1111, ptr 000011110000 1111, ptr 0000, 0 1111, ptr 111111111111 Problema CIDR • Aloque endereços de forma tão sequencial quanto possível dos seguintes pedidos de endereços. O último endereço usado para o último pedido foi 124.24.7.255. • • • • • Rede A - 1024 Hosts Rede B B - 4096 Hosts Rede C - 16,384 Hosts Rede D - 1024 Hosts Rede E - 2048 Hosts – Para cada rede mostre o endereço de rede, a máscara e a gama de endereços. Problema CIDR • Satisfaça os mesmos pedidos do problema anterior sem CIDR – Indique para cada rede o endereço de rede e como os endereços seriam alocados • Compare esta solução com a anterior e diga quantos endereços eram desperdiçados (poupados). Encaminhamento com CIDR • • • • A tabela de encaminhamento seguinte usa CIDR (Classless Inter-Domain Routing). Os endereços estão em hexadecimal. A notação "/12" em C4.50.0.0 / 12 indica uma máscara de rede com os primeiros 12 bits isto é FF.F0.0.0. Observe que as três últimas entradas cobrem todo o espaço de endereçamento e constituem rota por defeito. Diga para onde serão expedidos os pacotes com os seguintes endereços de destino: a.C4.5E.13.87 b. C4.5E.22.09 C. C3.41.80.02 d.5E.43.91.12 Rede / Tamanho da máscara Próximo Salto C4.50.0.0 / 12 A C4.5E.10.0 / 20 B C4.60.0.0 / 12 C C4.68.0.0 / 14 D 80.0.0.0 / 1 E 40.0.0.0 / 2 F 00.0.0.0 / 2 G a.A b.A c.E d.F Discussão • Discuta a adopção da abordagem CIDR (Classless Inter-Domain Routing) referindo – problemas que permite resolver – a complexidade introduzida no procedimento de expedição de pacotes Interiores dum Encaminhador IP com QOS Encaminhador com QoS • Que diferenças básicas existem entre um encaminhador melhor esforço e um encaminhador com qualidade de serviço? Que módulos adicionais existem e para que servem? Componentes Arquitecturais Básicos dum Router com QoS Controlo de Congestão Controlo de Admissão Reservas Controlo Encaminhamento Policiamento Comutação Escalonamento da Saída Fluxo de dados processamento por pacote Componentes arquitecturais básicos Percurso de dados: processamento por pacote 1. Ingresso Tabela de classificação 2. Interconexão 3. Egresso Tabela de Expedição Policiamento & Contrlo de Accessos Decisão de Expedição Tabela de classificação Tabela de Expedição Policiamento & Contrlo de Accessos Decisão de Expedição Tabela de classificação Tabela de Expedição Policiamento & Contrlo de Accessos Decisão de Expedição Limitação: LB Memória Limitação: LB Interconexão Energia & Arbitragem Limitação: LB Memória Evolução dos Encaminhadores IP Routers IP de Primeira Geração Shared Backplane Buffer Memory CPU DMA DMA DMA Line Interface Line Interface Line Interface MAC MAC MAC A maioria dos switches Ethernet e routers mais baratos O Estrangulamento pode ser o CPU, barramento de I/O ou host adaptor O que é mais caro? Barramento? Memória? Interface? CPU? Routers IP de Primeira Geração Estrutura de Filas: Memória Partilhada Entrada 1 Entrada 2 Entrada N Inúmeros trabalhos provaram e tornaram Output 1 possível: – Equidade(Fairness) – Garantia de atraso – Controlo de jitter – Garantia de Perdas Output 2 estatísticas – Garantias Um buffer simples em memória alocado Output N dinamicamente : N escritas per “cell” time N leituras per “cell” time. Limitado pela largura de banda da memória Routers IP de Segunda Geração Buffer Memory CPU DMA DMA DMA Line Card Local Buffer Memory Line Card Local Buffer Memory Line Card Local Buffer Memory MAC MAC MAC Correspondência de portas nas placas de interface Alta % de acertos na cache local para lookups O que é mais $? Bus? Memória? Interface? CPU? Routers IP de Segunda Geração Estruturas combinadas de filas de entrada e saída 1 escrita por tempo de célula Taxa de E/L determinada pela velocidade do bus Bus 1 leitura por tempo de célula Switches/Routers de 3ª Geração Switched Backplane Line Card Disponibiliza CPU Card Line Card Local Buffer Memory Local Buffer Memory MAC MAC percursos paralelos (switching fabric) O que é mais $? Bus? Memória, CPU? Switches/Routers de 3ª Geração Estrutura de filas de espera 1 escrita por tempo de célula Taxa de E/L determinada pela capacidade a fabric speedup Switch Arbiter Tipicamente <50Gb/s capacidade agregada 1 leitura por tempo de célula Routers/Switches de 4ª Geração Ligações ópticas 100’s of feet Switch Core Linecards Separação física entre o núcleo de comutação e as cartas de linha • Distribui energia por vários armários. • Permite todo armazenamento (buffering) colocado nas placas de linha: – Reduz energia. – Coloca a complexidade (escalonamento, gestão de buffers, política de descarte de pacotes, etc…) na placa de linha Routers/Switches de 4ª Geração Protocolo LCS Ligações ópticas 100’s of feet Switch Core Linecards Routers/Switches de 4ª Geração Estruturas de filas de espera 1 escrita por tempo de célula Filas de espera de saída virtuais Velociadade de Escrita/leitura Determinadas pela velocidade da switching fabric Lookup & Política de descrate Lookup & Política de descrate Lookup & Política de descrate Linecard 1 leitura por tempo de célula Escalonamento de saída Switch Fabric Escalonamento de saída Switch Arbitration Switch Core (Bufferless) Tipicamente <5Tb/s capacidade agregada Escalonamento de saída Linecard Problemas dos Fabricantes • Rápida expedição (lookup de rotas) • Identificação de Fluxos – Percurso rápido de expedição • Suporte de QoS – Routers de núcleo, empresa ou acesso – A simplicidade é a chave do sucesso • Fiabilidade(estabilidade) de routers de alta velocidade – Energia dual – Percursos de dados duplicados • Facilidade de configuração – Má configuração é outro problema sério • Possibilidade de contabilização