Roteamento na Internet IntraAS RIP OSPF InterAS BGP
RIP Protocolo de informação de roteamento (Routing Information Protocol) Definido nas RFCs 1058 (versão 1) e 2453 (versão 2) RIPng IPv6 Protocolo de vetor de distâncias RIPv2 Uso de sub-redes (CIDR) Uso de autenticação
RIP Usa contagem de saltos como métrica de custo Cada enlace tem um custo igual a 1 Custos definidos entre um roteador de origem e uma sub-rede de destino Saltos Número de sub-redes no caminho mais curto entre o roteador de origem e a sub-rede de destino, incluindo esta
RIP Exemplo do número de saltos de A até várias sub-redes (fonte: Kurose)
RIP Custo máximo de um caminho é 15 Limita o tamanho do AS Tabelas de roteamento são trocadas a cada 30 s Mensagem de resposta RIP Contém até 25 sub-redes de destino e as distâncias entre o remetente e cada sub-rede Também chamada anúncio RIP
RIP Exemplo de parte de um sistema autônomo (fonte: Kurose)
RIP Tabela de roteamento em D (fonte: Kurose) sub-rede de destino roteador seguinte no. de saltos para dest. w A 2 y B 2 z B 7 x -- 1.....
RIP D recebe anúncio vindo de A (fonte: Kurose) sub-rede de destino roteador seguinte no. de saltos para dest. z C 4 w -- 1 x -- 1.....
RIP Tabela de D após o anúncio vindo de A (fonte: Kurose) sub-rede de destino roteador seguinte no. de saltos para dest. w A 2 y B 2 z A 5 x -- 1.....
RIP Roteador não ouve anúncio do vizinho em 180 s Vizinho não pode ser alcançado Rotas através do vizinho são invalidadas Roteador propaga essas informações (via anúncio) para os vizinhos Vizinhos enviam novos anúncios se suas tabelas são alteradas Reversão envenenada usada para prevenir loops Distância infinita 16 saltos
RIP Roteador pode pedir informação sobre o custo do vizinho até um dado destino Mensagem de requisição RIP Mensagens de requisição e resposta UDP Porta 520
RIP Implementação do RIP como um daemon routed (fonte: Kurose)
RIP Tabela de giroflee.eurocom.fr (fonte: Kurose) Destination Gateway Flags Ref Use Interface -------------------- -------------------- ----- ----- ------ --------- 127.0.0.1 127.0.0.1 UH 0 26492 lo0 192.168.2. 192.168.2.5 U 2 13 fa0 193.55.114. 193.55.114.6 U 3 58503 le0 192.168.3. 192.168.3.5 U 2 25 qaa0 224.0.0.0 193.55.114.6 U 3 0 le0 default 193.55.114.129 UG 0 143454 Três redes locais Roteador só conhece rotas para as redes locais Roteador default Rota multicast: 224.0.0.0 Interface de loopback (para debugar)
OSPF Open Shortest Path First Definido na RFC 2178 (versão 2) Protocolo de estado de enlace Usa difusão de informação de estado de enlace Usa o algoritmo de menor custo de Dijkstra Roteador constrói uma árvore de caminho mais curto para todas as sub-redes Sendo ele o nó raiz Custos dos enlaces são configurados pelo administrador da rede Pode fazer balanceamento de carga
OSPF Roteador transmite informações (anúncios) Sempre que houver mudança no estado de um enlace Periodicamente (pelo menos a cada 30 min) Anúncios transportam um registro para cada roteador Usam mensagens OSPF (sobre IP) OSPF verifica se os enlaces estão operacionais através de mensagens HELLO
OSPF Tipos de mensagens OSPF (fonte: Tanenbaum)
OSPF - características avançadas Segurança Uso de autenticação Permite múltiplos caminhos de igual custo Suporte integrado para roteamento unicast e multicast Suporte para hierarquia dentro de um único domínio de roteamento OSPF para grandes domínios
OSPF hieráquico Configuração em áreas Hierarquia de dois níveis Área local e backbone Anúncios de estado de enlace apenas nas áreas Cada nó tem a topologia detalhada da área, mas somente direções conhecidas (caminhos mais curtos) para redes em outras áreas
OSPF hieráquico Roteadores internos Realizam apenas roteamento intraas Roteadores de borda de área Resumem distâncias para redes na própria área e enviam para outros roteadores de borda de área Roteadores de backbones Executam o roteamento OSPF de forma limitada ao backbone Roteadores de borda Conectam-se a outros ASs
Exemplo de sistema autônomo com OSPF hieráquico (fonte: Kurose)
BGP Protocolo de roteador de borda (Border Gateway Protocol) Definido na RFC 4271 (versão 4) Provê a cada AS meios de Obter de ASs vizinhos informações de atingibilidade de sub-redes Propagar a informação de atingibilidade a todos os roteadores internos do AS Determinar boas rotas para sub-redes com base na informação de atingibilidade e na política do AS
Exemplo de sistemas autônomos (fonte: Kurose)
BGP Pares de roteadores (pares BGP) trocam informações por conexões TCP semipermanentes Porta 179 Conjunto da conexão TCP e das mensagens BGP é chamado sessão BGP Normalmente há uma conexão para cada enlace que conecta dois roteadores de ASs diferentes Sessão ebgp Conexões TCP semipermanentes entre roteadores dentro de um AS Sessões ibgp
BGP Não há obrigatoriamente relação das sessões BGP com os enlaces físicos
Exemplo de sessões ebgp e ibgp (fonte: Kurose)
BGP AS anuncia prefixos Prometendo que irá repassar todos os datagramas destinados ao prefixo através de um caminho na direção desse prefixo AS pode agregar prefixos
BGP Ex.: Quatro sub-redes conectadas ao AS2 138.16.64/24, 138.16.65/24, 138.16.66/24, 138.16.67/24 AS2 anuncia 138.16.64/22 Ex.: Última sub-rede agora em AS3 AS2 anuncia 138.16.64/22 AS3 anuncia 138.16.67/24
BGP Exemplo Na sessão ebgp entre 3a e 1c, o AS3 envia informações de alcance de prefixos para AS1 1c pode usar o ibgp para distribuir essa nova informação para todos os roteadores em AS1 1b pode comunicar essa nova informação para AS2 por meio da sessão ebgp entre 1b e 2a Quando um roteador aprende um novo prefixo, ele cria uma entrada para o prefixo na sua tabela de roteamento
BGP Sistema autônomo identificado por um número globalmente exclusivo Número de sistema autônomo (ASN) Roteador anuncia um prefixo para uma sessão BGP Inclui vários atributos BGP juntamente com o prefixo Um prefixo juntamente com os atributos é chamado rota pares BGP anunciam rotas
BGP - atributos de caminho Dois atributos mais importantes AS-PATH Contém os ASs pelos quais passou o anúncio Usado para detectar e evitar looping de anúncios NEXT-HOP Endereço IP da interface que leva ao roteador de próximo salto Rota pode ser aceita ou filtrada
BGP - seleção de rota Roteador pode conhecer mais do que uma rota para um determinado prefixo Regras de eliminação (simplificadas) Rotas com maiores valores de preferência local Decisão política Rotas que têm os AS-PATHs mais curtos Rotas que têm os NEXT-HOPs mais próximos Roteamento da batata quente Rota baseada nos identificadores BGP
BGP Exemplo de uso do BGP - tabela de F em relação a D (fonte: Tanenbaum) (a) Conjunto de roteadores BGP (b) Informações enviadas para F
BGP Exemplo Descarta as rotas que passam por F Supondo que tenha escolhido a rota GCD Resolve o problema da contagem até infinito Se G falha ou FG é desativada F recebe BCD, IFGCD e EFGCD Escolhe BCD
BGP - política de roteamento Exemplo ASs W, X e Y são redes stub Tráfego que entra é destinado à rede Tráfego que sai é originado naquela rede ASs A, B e C são redes provedoras de backbone
BGP - política de roteamento Exemplo (cont.) Como impedir X de repassar tráfego entre B e C? Através do controle do modo como as rotas são anunciadas X anuncia (a B e C) que não há nenhum caminho para outros destinos a não ser ele próprio
BGP - política de roteamento Exemplo (cont.) Como impedir um provedor de repassar tráfego a outro? B conhece o caminho BAW B deve anunciar o caminho a C? C poderia usar o caminho CBAW Solução Qualquer tráfego que esteja fluindo para uma rede de backbone de um ISP deve ter ou uma origem ou um destino (ou ambos) em uma rede que seja cliente daquele ISP
Protocolos intraas x interas Em função de Política Questões políticas são mais dominantes entre ASs Escalabilidade Problema maior para o interas Desempenho Problema maior dentro de um AS
Encaminhamento IP Entrega direta x entrega indireta
Encaminhamento IP entrega direta Hospedeiro entrega datagramas a máquinas conectadas diretamente (mesma sub-rede)
Datagrama da fonte ao destino (Kurose) misc fields 223.1.1.1 223.1.1.3 data Starting at A, send IP datagram addressed to B: look up net. address of B in forwarding table find B is on same net. as A link layer will send datagram directly to B inside link-layer frame B and A are directly connected A B forwarding table in A Dest. Net. next router Nhops 223.1.1 1 223.1.2 223.1.1.4 2 223.1.3 223.1.1.4 2 223.1.1.1 223.1.2.1 223.1.1.2 223.1.1.4 223.1.2.9 223.1.1.3 223.1.3.27 223.1.2.2 E 223.1.3.1 223.1.3.2
Encaminhamento IP entrega indireta Hospedeiro envia datagramas a um roteador Roteadores encaminham datagramas a outros roteadores Último roteador entrega datagramas diretamente
Datagrama da fonte ao destino (Kurose) misc fields 223.1.1.1 223.1.2.2 data Starting at A, dest. E: look up network address of E in forwarding table E on different network A, E not directly attached routing table: next hop router to E is 223.1.1.4 link layer sends datagram to router 223.1.1.4 inside link-layer frame datagram arrives at 223.1.1.4 continued.. A B forwarding table in A Dest. Net. next router Nhops 223.1.1 1 223.1.2 223.1.1.4 2 223.1.3 223.1.1.4 2 223.1.1.1 223.1.2.1 223.1.1.2 223.1.1.4 223.1.2.9 223.1.1.3 223.1.3.1 223.1.3.27 223.1.2.2 223.1.3.2 E
Datagrama da fonte ao destino (Kurose) misc fields 223.1.1.1 223.1.2.2 data Dest. Arriving at 223.1.4, destined for 223.1.2.2 look up network address of E in router s forwarding table E on same network as router s interface 223.1.2.9 router, E directly attached link layer sends datagram to 223.1.2.2 inside link-layer frame via interface 223.1.2.9 datagram arrives at 223.1.2.2!!! (hooray!) Net router Nhops interface 223.1.1-1 223.1.1.4 223.1.2-1 223.1.2.9 223.1.3-1 223.1.3.27 A B forwarding table in router 223.1.1.1 223.1.2.1 223.1.1.2 223.1.1.4 223.1.2.9 223.1.1.3 223.1.3.1 223.1.3.27 223.1.2.2 223.1.3.2 E
Encaminhamento IP No recebimento de datagramas Se endereço IP do hospedeiro ou endereço de difusão é o endereço de destino aceita o datagrama Senão se é roteador datagrama é roteado Senão descarta o datagrama