770 likes | 905 Views
MPLS Multi-Protocol Label Switching. MPLS - Multiprotocol Label Switching. Histórico 1997: IETF MPLS Working Group Objetivos: Técnica de computação por rótulos Similar ao Frame-Relay e ao ATM permite definir múltiplos caminhos entre uma origem e um destino na nuvem IP
E N D
MPLS - Multiprotocol Label Switching • Histórico • 1997: IETF MPLS Working Group • Objetivos: • Técnica de computação por rótulos • Similar ao Frame-Relay e ao ATM • permite definir múltiplos caminhos entre uma origem e um destino na nuvem IP • Utiliza protocolos de controle baseados em tecnologia IP
Destino: 64.11 Interface: 2 Destino: 64.12.100 Interface: 1 Destino: 64.12.101 Interface: 1 Destino: 64.10 Interface: 2 Destino: 64.11 Interface: 1 Destino: 64.12.100 Interface: 3 Destino: 64.12.101 Interface: 3 Eduardo Guimarães Nobre Roteamento tradicional (Hop by Hop) Roteamento + Envio Para: 1) 64.12.100.11 2) 64.12.100.11 3) 64.12.100.25 4) 64.12.100.25 5) 64.12.101.10 6) 64.12.101.10 7) 64.12.101.46 8) 64.12.101.46 2 64.10 1 3 1 2 64.12 • Roteamento realizado no nível 3 (IP); • Baixa escalabilidade (aumento significativo das tabelas de rotas) • Lentidão na busca nas tabelas; • Sub-utilização de certas rotas e super-utilização de outras. 64.11
Princípios do MPLS • Os nós precisam ser configurados com as informações sobre encaminhamento e troca de labels, usando a tupla. • (interface + label) ENTRADA (interface + label) SAÍDA • As informações de roteamento IP são utilizadas uma única vez para descoberta da rota entre 2 pontos • Maior velocidade na busca na tabela de rótulos; • Melhor utilização da infra-estrutura do backbone
Label Switching LABEL 3 por AB LABEL 5 para BC LABEL 4 por AB LABEL 6 para BD LABEL 5 por BC LABEL 7 para CD C 5 7 LSR=1 3 9 A B E F LSR=2 10 4 6 8 D LABEL 7 - EF - LABEL 9 LABEL 8 - EF - LABEL 10 LFIB (Label Forwarding Information Base) LABEL 6 por BD LABEL 8 por DE
LSR x LER • LER (Label Edge Routers): roteadores que ficam na borda do domínio MPLS. • Inserem ou retiram pilhas de rótulos dos pacotes/células; • LSR (Label Switching Routers): roteadores que ficam no núcleo do domínio MPLS. • Realizam operações sobre a pilha dos pacotes/células a partir da análise do rótulo do topo; Se destino 200.1.2.0/24 então LABEL 3 Se destino 200.1.3.0/24 então LABEL 4 pacotes com rótulo pacotes sem rótulo pacotes sem rótulo C A G B E F LSR LER LER
Forwarding Equivalence Class (FEC) • FEC é o conjunto de pacotes encaminhados da mesma forma. • O conceito de FEC permite a agregação de vários endereços, aumentando a escalabilidade de proposta MPLS. • Exemplos de FEC • subrede • tráfego agregado AF12 • conjunto de endereços IP • Os LSR de borda (i.e., LER) são responsáveis por mapear inicialmente as FEC aos rótulos MPLS.
Conceito de FEC FEC=64.12, 200.1.2.3 Rótulo de saída = #150 Próx. Vizinho = LSR2 FEC=200.3.2.1 Rótulo de saída = #420 Próx. Vizinho = LSR2 64.12 Rótulo de entrada = #150 Rótulo de saída = #100 Próx. Vizinho = LSR3 Rótulo de entrada = #420 Rótulo de saída = #230 Próx. Vizinho = LSR4 200.1.2.3 LSR3 LER1 LSR2 200.3.2.1 LSR4
Rótulo Exp S TTL Rótulo • Identificador de 32 bits que é inserido no pacote ou célula no momento da entrada destes no domínio MPLS. • Indica o próximo roteador e as operações a serem realizadas sobre o pacote. • Estrutura: • Rótulo (20 bits): valor do rótulo; • Exp(3 bits): reservado. Para uso experimental; • S (1 bit): base da pilha. O valor 1 indica que o rótulo é a base da pilha; • TTL (8 bits): Time to Live = copiado do IP.
Posição em Outra Tecnologias Label Label PPP Header(Packet over SONET/SDH) PPP Header Shim Header Layer 3 Header Ethernet Ethernet Hdr Shim Header Layer 3 Header Frame Relay FR Hdr Shim Header Layer 3 Header GFC VPI VCI PTI CLP HEC DATA ATM Cell Header Subsequent cells GFC VPI VCI PTI CLP HEC DATA
MPLS com ATM e Frame-Relay • No Label MPLS pode ser transportado através dos Labels do Frame-Relay e do ATM sem necessidade de inserir novos cabeçalhos. Exceções: • empilhamento de rótulos • outros campos do MPLS são necessários • No ATM • Pacotes MPLS são trasnportados em AAL5 • Label MPLS é mapeado em VPI/VCI • No Frame-Relay • Label MPLS é mapeado no DLCI
Pilha de Rótulos pacote: ... N cabeçalho N2 1 cabeçalho N3 PDU Rótulo = # X Exp 0 TTL (1) pilha ... 1 Rótulo = # Y Exp TTL (N) • Estrutura a ser codificada no pacote ou célula; • Último rótulo deve ter o valor 1 no campo S.
Label Switching - Tunelamento • Os rótulos internos não são comutados no interior do túnel. LFIB no LSR C LFIB no LSR E 1 5 4- 3 F 9- 3 A D C E B G 8 9 - 7 4 - 7 2
FEC X: inserir rótulo R1 Rótulo R1: trocar por R2 e empilhar rótulo Ra N2 N3 DADOS N2 R1 N3 DADOS N2 Ra R2 N3 DADOS Rótulo Rc: retirar rótulo do topo Rótulo Ra: trocar por Rb N2 Rb R2 N3 DADOS N2 R2 N3 DADOS N2 Rc R2 N3 DADOS Rótulo Rb: trocar por Rc Rótulo R2: retirar a pilha N2 N3 DADOS Eduardo Guimarães Nobre Tunneling LER1 LSR1 LSP LSRB LSRC LSRA LER2 LSP
Descoberta de Rota • Manual • Com protocolos para MPLS • Sem restrições: • LDP (Label Discovery Protocol) • Com restrições: • CR-LDP • Constraint-Based Routed Label Distributed Protocol • RSVP-TE • Resource Reservation Protocol-Traffic Engineering
LDP - Label Distribution Protocol • Protocolo de Distribuição de Rótulos • IETF (Janeiro de 2001) • Quantidade de campos variável: • TLV (Tipo -Tamanho - Valor) • Executa quatro tipo de funções: • Descoberta de LSRs • Estabelecimento de conversação de controle • Anúncio de Rótulos • Retirada de Rótulos ID do LSR PDU/LDP msg LDP header PDU msg LDP header TLV TLV header TLV TLV sub TLV sub TLV
LDP • Quanto MPLS é habilitado em um roteador: • O roteador aloca um label para cada rota em sua tabela. • Ele anuncia ambos, a rota e o prefixo para os roteadores vizinhos • O anuncio solicita que os roteadores vizinhos atachem o label anuciado nos pacotes enviados a esse roteador. Rede 10.1/16 FEC R3 anúncio 10.1/16 – Label 24 R1 R2 R4 10.1/16 – Label 15 10.2/16 – Label 16 10.2/16 – Label 30 Rede 10.2/16 FEC
LDP: Label Distribution Protocol • Existem quatro tipos de mensagens: • 1. Discovery messages: HELLO (UDP Multicast) • anunciar e manter a presença de um LSR na rede; • 2. Session messages: Inicialização de Sessão (TCP) • estabelecer, manter e terminar sessões entre colegas LDP; • 3. Advertisement messages: Anúncio de Endereço e Rótulo (TCP) • criar, mudar e terminar mapeamentos • 4. Notification messages: Notificação de Erro (TCP) • consulta e sinalização de erros. Upstream Downstream Requisição de atribuição para Endereço LSR1 LSR2 Atribuição de rótulo para Endereço
Hello (UDP) Conexão TCP Inicialização de Sessão (IS) (IS) ou notificação de erro Keep Alive (KA) Anúncio de Endereços de Interface Solicitação de LABEL (Label Request) Anúncio de Rótulo (Label Mapping) Remoção de Rótulo (Label Withdraw) Liberação de Rótulo (Label Release)_ Tipos de Mensagem LDP LSR Passivo (menor ID) LSR Ativo (maior ID) tempo de KA tamanho max PDU Indica todos os endereços do LSR Utilizado apenas na distribuição de rótulos sob demanda Controla o mapeamento de FECs em LABELs
Distribuição de rótulos • Métodos de distribuição de rótulos • Downstream por Demanda • Downstream não Solicitado • O método é escolhido durante a fase de inicialização de sessão (IS) do LDP • bit A da mensagem IS = 1 para demanda • Em caso de desacordo, a RFC 3036 define: • ATM e Frame-Relay: Por Demanda • Outras Tecnologias: Não Solicitado • Os dois modos podem ser combinados em diferentes enlaces de uma nuvem MPLS
LSP p/ FEC 64.12 Downstream Não-solicitado Downstream LER1 LSR2 LSR3 Oferta para FEC 64.12 com rótulo #100 Oferta para p/ FEC 64.12 com rótulo #150 Rótulo de entrada = #20 FEC = 64.12 Rótulo de saída = #150 Próx. vizinho = LSR2 Rótulo de entrada = #150 FEC = 64.12 Rótulo de saída = #100 Próx. vizinho = LSR3 Rótulo de entrada = #100 FEC = 64.12 Rótulo de saída = #134 Próx. vizinho = LSR4 Upstream
LSP p/ FEC 64.12 Downstream Sob demanda Downstream Requisição de atribuição para 64.12 Requisição de atribuição para 64.12 LER1 LSR2 LSR3 Atribuição de rótulo #100 p/ FEC 64.12 Atribuição de rótulo #150 p/ FEC 64.12 Rótulo de entrada = #20 FEC = 64.12 Rótulo de saída = #150 Próx. vizinho = LSR2 Rótulo de entrada = #150 FEC = 64.12 Rótulo de saída = #100 Próx. vizinho = LSR3 Rótulo de entrada = #100 FEC = 64.12 Rótulo de saída = #134 Próx. vizinho = LSR4 Upstream
Modos de Controle e Retenção de Rótulos • Controle Programado • Os labels são sempre propagados na direção upstream • Controle Independente • Os rótulos são propagados apenas quando há requisição ou quando o LSR local vê uma boa razão para isso. • Retenção de Label Liberal • Ao receber um anúncio melhor, o LSR mantém a rota anterior. • Retenção de Label Conservadora • O LSR mantém apenas a melhor rota.
LSP #1 LSP #2 LSP #3 LSP #4 Eduardo Guimarães Nobre Controle Programado • Os labels são sempre propagados na direção upstream
LSP #1 LSP #2 LSP #3 LSP #4 Eduardo Guimarães Nobre Controle Independente • Os rótulos são propagados apenas quando há requisição ou quando o LSR local vê uma boa razão para isso.
LSP #1 LSP #2 LSP #3 LSP #4 Eduardo Guimarães Nobre Retenção de Label Conservadora O LSR mantém apenas a melhor rota.
LSP #1 LSP #2 LSP #3 LSP #4 Eduardo Guimarães Nobre Retenção de Label Liberal • Ao receber um anúncio melhor, o LSR mantém a rota anterior.
LSP p/ FEC 64.12 Eduardo Guimarães Nobre Combinando as Formas de Distribuição de Rótulos Rótulo de entrada = #20 FEC = 64.12 Rótulo de saída = #150 Próx. Vizinho = LSR2 Rótulo de entrada = #150 FEC = 64.12 Rótulo de saída = #100 Próx. Vizinho = LSR3 Rótulo de entrada = #100 FEC = 64.12 Rótulo de saída = #134 Próx. Vizinho = LSR4 Requisição de atribuição para 64.12 Requisição de atribuição para 64.12 LER1 LSR2 LSR3 Atribuição de rótulo #100 Atribuição de rótulo #150 Atribuição de rótulo #134 p/ FEC 64.12 LSR5 LSR4 Atribuição de rótulo #212 p/ FEC 64.12 Rótulo de entrada = #212 FEC = 64.12 Rótulo de saída = #47 Próx. Vizinho = LSR6 Rótulo de entrada = #134 FEC = 64.12 Rótulo de saída = #212 Próx. Vizinho = LSR5
Engenharia de Tráfego no MPLS • Mecanismos do MPLS para TE • LSP distinto do sugerido pelo OSPF • Reserva dinâmica de recursos junto com o estabelecimento do LSP • Distribuição de tráfego por LSPs paralelos • Criação e Remoção dinâmica de LSPs conforme as necessidades da rede • Utilização de LSPs como objetos gerenciáveis. • Tratamento de falhas pela migração de tráfego entre LSPs altenativos e criação de LSPs backups ou de espera. • As decisões de encaminho de tráfego são tomadas apenas na entrada do LSP e não em cada nó.
Rotas Explícitas • Rota Explícita: O LDP pode ser utilizado para seguir uma rota explícita, formada por uma seqüência de nós abstratos • Um nó abstrato é formado por um ou mais LSRs • A rota deve passar por pelo menos um LSR do nó abstrato • Tipos de Nós Abstratos: • Estrito: Nenhum nó não especificado pode ser inserido entre o nó estrito e o nó anterior. • Flexível: A passagem pelo nó é obrigatória, mas ela pode ser feita inserindo-se nós não especificados entre o nó flexível e o nós precedentes da rota. * (estrito) + (flexível) A*:B*:D*:E*:G* A*:F+:G* E B G A D C F
Requisitos o protocolo de sinalização MPLS • Requisitos: • O protocolo de roteamento precisa anunciar as capacidades e os recursos disponíveis em cada enlace. • O requisitante do LSP deve indicar as características do fluxo: largura de banda média, picos, requisitos de qualidade. • Protocolo de Sinalização • Suporte a rotas explícitas • Confrontar requisitos de QoS e capacidades • Requisitar reservas ao longo do caminho • Re-anúncio das disponibilidades de recurso modificadas
Preempção • Cada LSP tem dois parâmetros de prioridade: • prioridade de retenção • prioridade em reter recursos • prioridade de configuração • prioridade para tomar recursos • Novos caminhos LSP podem ser configurados, mesmo quando todos os recursos da rede tenham sido esgotados. • Isso é feito através da preempção de recursos de um LSP sobre outros. Isso é feito se: • prioridade de configuração > prioridade de retenção
Protocolos de Sinalização para MPLS • CR-LDP • Contraint-Based LSP Setup Using LDP • RFC 3212 • RSVP-TE • Extensions to RSVP for LSP Tunnels • RFC 3209
CR-LDP (Constrained –LDP) • Baseado na adição de TLVs nas mensagens LDP existentes • Criação de LSPs fim-a-fim sob restrições • Modo Downstream por Demanda • Restrições impostas pelo LSR de ingresso • Labels distribuídos a partir do LSR de egresso • Prioridades podem ser atribuídas para as LSPs para suportar o esquema de preempção • Re-roteamento ou não em caso de falha • Duas classes de Restrições: • Rotas Explícitas • Parâmetros de Tráfego
Mensagens CR-LDP • Hello • Descoberta de parceiros CR-LDP • Label Request • Requisitar anúncio de Rótulo • Label Mapping • Mapeamento de REC e Rótulo • Label Release • Liberar um LSP pelo solicitante (upstream) • Label Withdraw • Remover o LSP pelo fornecedor (downstream) • Notification • Informar erros ou eventos adicionais: i.e. TVL desconhecida para LSRs que não suportam CR-LDP, recursos insuficientes, etc.
TLV - Parâmetros de Tráfego • Mensagem Label Request • Tráfego Prometido • Peak Data Rate - PDR (bytes por segundo) • Peak Burst Size - PBS (bytes) • Serviço Desejado • Commited Data Rate - CDR (bytes por segundo) • Commited Burst Size - EBS (bytes) • Excess Burst Size - EBS (bytes)
Frequência de Amostragem e Peso • Freqüência de amostragem: • Muito frequente • CDR garantido para quaisquer 2 pacotes • Frequente • CDR garantido para uma média de poucos pacotes pequenos • Não Especificado • Uso de uma intervalo razoável (i.e., 1 segundo) • Peso • Valor de 1 a 255 • Indica a capacidade do LSR de utilizar recursos disponíveis de outros LSRs para transporte de tráfego excedente • LSR com maior peso tem prioridade sobre os LSRs de menor peso
Negociação • A TLV de parâmetros de tráfego define um campo flag (1 byte), para indicar quais itens do pedido podem ser re-negociados: • bit 0: reservado • bit 1: reservado • bit 2: PDR • bit 3: PBS • bit 4: CDR • bit 5: CBS • bit 6: EBS • bit 7: Peso
Fluxo de Mensagens: CR-LDP • 1) O LSR A (ingresso) envia a mensagem de Label Request com a TLV de parâmetros de tráfego, indicando os itens negociáveis. • 2) Se houver recursos suficientes, o LSR B efetua a reserva e repassa a mensagem adiante. • Se não houver recursos suficientes, mas houverem parâmetros negociáveis, o LSR B faz uma reserva menor e repassa o pedido alterado para frente. • 2*) Se o LSR B não tiver recursos e não houver itens renegociáveis, ele notifica a falha para o LSR A Label Request Label Request 2 1 C A B D 2* Notification
Fluxo de Mensagens: CR-LDP • 3) O LSR C executa o mesmo procedimento que o LSR B, podendo novamente, encaminhar uma mensagem de Label Request modificada, com menos recursos que os recebidos do LSR B. • 3*) Caso o LSR C não tenha recursos para efetuar a reserva, ele encaminha uma mensagem de notificação para B, fazendo com que ele libere os recursos previamente alocados. Label Request Label Request 3 2 C A B D 3* 3* Notification Notification
Fluxo de Mensagens: CR-LDP • 4) O LSR D (egresso) envia uma mensagem de Label Mapping, que ecoa os parâmetros de tráfego (que são os menores ao longo do caminho). • Essa mensagem é propagada sem modificação até o nó de ingresso. • Os nós intermediários utilizam essa informação para atualizarem sua reserva. • 5) Ao receber a mensagem de Label Mapping, o nó de ingresso decide se os parâmetros alocados são suficientes. Se não forem, ele envia uma mensagem de Label Release. Label Request 3 C A B D 4 4 4 Label Mapping Label Mapping Label Mapping 5 Label Release
LSP Eduardo Guimarães Nobre Roteamento Explícito • ER-Hop: Campo de 14 bits que carrega o tipo de ER: • Valores atualmente definidos: • 0x0801 - IPv4 prefix • 0x0802 - IPv6 prefix • 0x0803 - Autonomous system number • 0x0804 - LSPID Requisição de atribuição contendo caminho explícito: 2, 3, 5 Requisição de atribuição contendo caminho explícito: 3, 5 LER1 LSR2 LSR3 Atribuição de rótulo Atribuição de rótulo Requisição de atribuição Atribuição de rótulo LSR4 LSR5
RSVP-TE • Baseado no RSVP, o qual foi expandido para suportar as funções de distribuição de rótulo. • O RSVP-TE reutiliza todas as sete mensagens RSVP: • Path: pedido de reserva (cliente) • Resv: confirmação de reserva (servidor) • ResvConf: confirmação pelo cliente • ResvTear: desistência pelo servidor • ResvErr: notificação de erro ao receber pedido de reserva • PathErr: notificação de erro ao receber medido de path • PathTear: desistência pelo cliente
RSVP: Resource Reservation Protocol • Protocolo de sinalização que permite as aplicações solicitarem Qos especiais para seus fluxos de dados. 1. Solicita conexão com o servidor Aplicação multimídia com suporte a RSVP Aplicação com Suporte a RSVP 2. Informa requisitos para o cliente (PATH) 3. Solicita Reserva (RESV) 4. Confirma Reserva (RESVconf) Cliente Servidor 9001
RSVP • Padronizado pela RFC2205,Setembro de 1997. • Complementada pelas RFCs 2206, 2207, 2210, 2380, 2745, 2747, 2961. • Protocolo de controle, similar ao ICMP ou IGMP. • Permite que os nós da rede recebem informações para caracterizar fluxos de dados, definir caminhos e características de QoS para esses fluxos ao longo desses caminhos. • RSVP não é um protocolo de roteamento. • Ele depende de outros protocolos para execução dessas funções.
Arquitetura do RSVP • As funções de implementação do QoS pelos nós não são de responsabilidade do RSVP. Outros módulos são especificados na arquitetura: • Módulos de Decisão: • Controle de Admissão: verifica se existem recursos para o pedido. • Controle de Política: verifica se o usuário pode pedir os recursos. • Módulos de Controle de Tráfego: • Classificador: determina a classe do pacote • Escalonador: implementa o QoS
Arquitetura do RSVP Controle de Admissão Host Roteador RSVP RSVP RSVP Processo RSVP Processo RSVP aplicação Processo roteamento Controle de Política Controle de Política dados dados Classificador Classificador Escalonador Escalonador Dados
RSVP é Unidirecional • As reservas em RSVP são sempre unidirecionais. • As reservas podem ser em unicast ou multicast. • No RSVP o pedido de uma reserva sempre é iniciado pelo receptor. • Os direitos da reserva são debitados na conta do cliente. 1. Solicita serviço 2. Especifica os requisitos Cliente Servidor REDE 3. Faz reserva
Sessões RSVP • Em RSVP, a política de QoS não é aplicada individualmente sobre cada pacote, mas sim em sessões. • Uma sessão é definida como um fluxo de dados para um mesmo destino, utilizando um mesmo protocolo de transporte. • Uma sessão é definida por três parâmetros: • Endereço de destino • Identificador de Protocolo (TCP ou UDP) • Porta de destino (Opcional).