550 likes | 636 Views
MPLS Multi-Protocol Label Switching. Roteamento Tadicional (Hob by Hop). Nova demanda. Melhor caminho: Para 200.0.0.0/24: 1 -2 -3 Para 210.0.0.0/24: 1-4-5. 50 Mbps para 200.0.0.128/25. 100 Mbps para 200.0.0.0/25. 1Gbps [ 900 ]. 2. 1. 100Mbps [ 0 ]. 50 Mbps para 210.0.0.0/24.
E N D
Roteamento Tadicional (Hob by Hop) Nova demanda Melhor caminho: Para 200.0.0.0/24: 1 -2 -3 Para 210.0.0.0/24: 1-4-5 50 Mbps para 200.0.0.128/25 100 Mbps para 200.0.0.0/25 1Gbps [900] 2 1 100Mbps [0] 50 Mbps para 210.0.0.0/24 200.0.0.128/25 1Gbs [900] 100Mbps [50] 200.0.0.0/24 3 200.0.0.0/25 100Mbps [100] 4 100Mbps [100] 100Mbps [50] 100Mbps [50] 5 210.0.0.0/24
MPLS - Multiprotocol Label Switching • 1997: IETF MPLS Working Group • Técnica de computação por rótulos • Similar ao Frame-Relay e ao ATM • Permite definir múltiplos caminhos para um mesmo destino • Utiliza protocolos de controle baseados em tecnologia IP • Cada nó é configurado para rotear por labels: • SE: entrar com LABEL A pela INTERFACE if0 • ENTÃO: sair com LABEL B INTERFACE if1 • As informações de roteamento IP são utilizadas apenas na definição inicial do caminho • Maior velocidade na busca na tabela de rótulos; • Melhor utilização da infra-estrutura de rede
MPLS Label Switching SE LABEL de entrada for 3 ENTÃO enviar para C com LABEL 5 SE LABEL de entrada for 4 ENTÃO enviar para E com LABEL 6 LFIB Para chegar a FEC X siga o caminho 3 Para chegar a FEC Y siga o caminho 4 FECX 5 C LSP 3 B A LSR LER 4 LSP FECY 6 E LFIB Label Forwarding Information Base LER Label Edge Router LSR Label Switch Router LSP Label Switch Path FER Forwarding Equivalent Class
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 3 LSP1 9 A B E F LSP2 10 4 6 8 D LABEL 7 - EF - LABEL 9 LABEL 8 - EF - LABEL 10 LABEL 6 por BD LABEL 8 por DE LSP1 3AB-5BC-7CE-9EF LSP2 4AB-6BD-8DE-10EF
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.
Empilhamento de Rótulos Rótulo MPLS principal Rótulo MPLS empilhado Cabeçalho L2 1 2 3 Cabeçalho L3 Label 1 Exp 0 TTL Label 2 Exp 0 TTL Label 3 Exp 1 TTL O valor do campo S do último rótulo é 0
Label Switching com Tunelamento G A 7 5 6 F E D C H 7 B 8 6 G 23-6 6 7 5 20-6 A F E D C H B 23-7 7 8 6 20-7
MPLS com ATM e Frame-Relay • Para rótulos simples, o 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 transportados em AAL5 • Label MPLS é mapeado em VPI/VCI • No Frame-Relay • Label MPLS é mapeado no DLCI
Configuração do MPLS • The Next Hop Label Forwarding Entry (NHLFE) • Encaminha pacotes já com labels • Define as seguintes ações sobre labels: • Remover (Pop) • Inserir (Push) • Trocar (Change) • Método de encapsulamento para enviar o pacote • Next hop pode ser outro roteador ou o próprio LSR (Pop) • Incoming Label Map (ILM) • Redireciona pacotes já com labels para as NHLFE • FEC-to-NHLFE Map (FTN) • Redireciona pacotes ainda sem labels para o NHLFE, baseado na FEC
Configuração do MPLS No LER origem FEC (destino) FTN FEC 1 FEC 2 Ação X Next Hop NHLFE No LSR Push Label 1 Next-Hop ip LSR FEC (destino) ILM Change Label 1 to Label 2 Next-Hop LER2 Label 1 X if1 Pop Label 2 Next-Hop SELF Label 2 X if2 No LER destino FEC (destino) ILM Label 2 X if1 Label 3 X if2 Label 1 Sem Label Label 2 LSR LER2 FEC1 LER1 if2 if1 if1 if1 if2
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: Propagação de Rotas • A propagação de rotas pode ser • Por demanda • Não solicitado • No modo não solicitado • O roteador aloca um label para cada rota (FEC) em sua tabela. • Ele anuncia ambos, a rota e o label para os roteadores vizinhos 10.1/16 – Label 10 Rede 10.1/16 anúncio FEC R3 R2 R1 Rede 10.2/16 R4 FEC 10.1/16 – Label 10 10.2/16 – Label 20 10.2/16 – Label 10
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 LABELS 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 DADOS
LSP p/ FEC 64.12 Downstream Sob demanda LABELS 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 DADOS
LSP p/ FEC Combinando formas de Distribuição Solicitação de LABEL para FEC Solicitação de LABEL para FEC LER1 LSR2 LSR3 Anúncio Solicitado LABEL 3 para FEC Anúncio Solicitado LABEL 4 para FEC Anúncio não solicitado LABEL 2 FEC LSR5 LSR4 Anúncio não solicitado LABEL 1
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ó.
Requisitos o protocolo de sinalização MPLS • Sem Restrições • Distribuir LABELS para criar LSPs para a melhor rota indicada pelo IGP • Com Restrições • Distribuir LABELS para criar rotas que não seguem necessariamente a melhor rota do IGP • Suporte a rotas explícitas • Reserva de recursos ao longo do LSP • Controle de admissão para solicitação (a criação do LSP é negada caso não haja recursos suficientes) • Priorização de LSPs e preempção
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
LSP Roteamento Explícito • A rota pode ser explicitada por endereços IPv4, IPv6, S.As ou LSRs. Requisição de LABEL com Rota Explicita: 2, 3, 5 Requisição de LABEL com Rota Explícita: 3, 5 LER1 LSR2 LSR3 Anuncia o LABEL 30 Anuncia o LABEL 20 Requisição de LABEL com Rota Explícita: 5 Anuncia o LABEL 10 LSR4 LSR5
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
Preempção A nova demanda irá derrubar o caminho vermelho 50 Mbps Configuração 3 50 Mbps Retenção 2 100 Mbps 2 1 100Mbps 50 Mbps Retenção 3 200.0.0.128/25 100Mbps 100Mbps 200.0.0.0/24 3 200.0.0.0/25 100Mbps 4 100Mbps 100Mbps 5
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
RSVP-TE (RSVP – Traffic Engineering) • Baseado no RSVP (Resource Reservation Protocol) • RSVP: • Permite fazer reservas fim-fim para fluxos de tráfego individuais • Não possui recursos para distribuição de LABELS • RSVP-TE: • As mensagens do RSVP-TE foram expandidas para suportar distribuição de labels e outros recursos previstos para um protocolo de sinalização para o MPLS • Mensagens Principais: • Path: Solicita um LABEL para uma FEC, incluindo restrições como: • Rota explícita • Banda reservada ao longo do caminho • Resv: Anuncia o LABEL caso a reserva possa ser atendida
1. Path. Define a FEC de destino e restrições de caminho <2,3,4> e recursos 2. Path propagada para o próximo Nó LSP 5. Resv com a informação do Rótulo 3 4. Resv com a informação do Rótulo 2 3. Resv com a informação do Rótulo 1 Criação de um LSP com RSVP-TE FEC LER1 LSR2 LSR3 LER4
RSVP-TE • O RSVP-TE reutiliza todas as sete mensagens RSVP: • Path: pedido de reserva (ingresso) • Resv: confirmação de reserva (egresso) • ResvConf: confirmação pelo ingresso • ResvTear: desistência pelo egresso • ResvErr: notificação de erro ao receber pedido de reserva • PathErr: notificação de erro ao receber medido de path • PathTear: desistência pelo ingresso PDU/RSVP-TE Objeto Objeto Objeto Objeto header PDU Tipo de Mensagem
Objetos da Mensagem PATH e RESV • Resource ReserVation Protocol (RSVP): PATH Message. • RSVP Header. PATH Message. • SESSION: IPv4-LSP, Destination 10.0.1.7, Tunnel ID 0, Ext ID a000103. • HOP: IPv4, 10.0.7.34 • TIME VALUES: 30000 ms • EXPLICIT ROUTE: IPv4 10.0.7.33, IPv4 10.0.1.7 • LABEL REQUEST: Basic: L3PID: IP (0x0800) • SESSION ATTRIBUTE: SetupPrio 7, HoldPrio 7, SE Style, [C1_t0] • SENDER TEMPLATE: IPv4-LSP, Tunnel Source: 10.0.1.3, LSP ID: 13. • SENDER TSPEC: IntServ: Token Bucket, 62500 bytes/sec. • ADSPEC • Resource ReserVation Protocol (RSVP): RESV Message. • RSVP Header. RESV Message. • SESSION: IPv4-LSP, Destination 10.0.1.7, Tunnel ID 0, Ext ID a000103. • HOP: IPv4, 10.0.7.33 • TIME VALUES: 30000 ms • STYLE: Shared-Explicit (18) • FLOWSPEC: Controlled Load: Token Bucket, 62500 bytes/sec. • FILTERSPEC: IPv4-LSP, Tunnel Source: 10.0.1.3, LSP ID: 13. • LABEL: 0
RSVP-TE • Extensões feitas sobre o RSVP: • Gerenciamento de rótulo • Objeto "Label Request" na mensagem Path • Objeto "Label" na mensagem Resv • Dois novos tipos de classe: • IPv4 LSP Tunnel • IPv6 LSP Tunnel • Requisição e Registro de Rotas Explícitas • Objeto "Rota Explícita" na mensagem Path • Objeto "Registro de Rota" nas mensagens Path e Resv [Opcional] • Recursos de Preempção • Objeto "Atributo de Sessão" inclui as prioridades na mensagem Path • Manutenção de conectividade entre LSRs • Mensagens Hellos trocadas entre LSRs adjacentes
Componentes da Mensagem PATH • Um reserva em RSVP é caracterizada por uma estrutura de dados denominada Flowspec. • Flowspec é composta por dois elementos: • Rspec (Reserve Spec): • indica a classe de serviço desejada. • Tspec (Traffic Spec): • indica o que será Transmitido. • OBS. • Rspec e Tspec são definidas na RFC 2210 e são opacos para o RSVP.
saída (bytes/s) d <= b/p p r t O Token Bucket Model • O modelo utilizado pelo RSVP é o Token Bucket. • Este modelo é um método realiza para definir uma taxa de transmissão variável com atraso limitado. r bytes/s R b bytes reserva chegada Serviço Garantido se r <= R saída R p bytes/s B
Tspec • Assumindo o Token Bucket Model, Tspec é definido da seguinte forma: • r - taxa média em bytes/s • Taxa de longo prazo: 1 a 40 terabytes/s • b - tamanho do bucket (em bytes) • Taxa momentânea: 1 a 250 gigabytes • p - taxa de pico • m - tamanho mínimo do pacote • (pacotes menores que esse valor são contados como m bytes) • M - MTU (tamanho máximo do pacote) • Regra: seja T o tráfego total pelo fluxo num período T: • T < rT + b
Rspec • Assumindo o Token Bucket Model, Rspec é definido da seguinte forma: • R - taxa desejável • Taxa média solicitada • s - Saldo (slack) de retardo • Valor excedente de atraso que pode ser utilizado pelos nós intermediários. • Ele corresponde a diferença entre o atraso garantido se a banda R for reservada e o atraso realmente necessário, especificado pela aplicação.
Mensagem RESV (Reservation Request) • RESV: Enviada do receptor para o transmissor • A mensagem RESV contém dois parâmetros • Flow Spec: Especifica a reserva desejada • Service Class: Serviço Garantido ou Carga Controlada • Tspec: requisitos do transmissor • Rspec: taxa de transmissão solicitada • Filter Spec: identifica os pacotes que devem de beneficiar da reserva • Protocolo de transporte e número de porta. RESV .... Flow Spec Filter Spec LABEL Ingress Egress Service Class IP origem Porta origem ou Flow Label Rspec Tspec