MPLS DiffServ , Extensões TE em IGP e MPLS VPN com BGP Edgard Jamhour Necessidade de integração DiffServ MPLS • A RFC 3564 discute cenários que não podem ser tratados aplicado-se soluções baseadas exclusivamente em MPLS ou DiffServ. – a) limitar a proporção de uma dada classe de tráfego em um enlace • exemplo: rede compartilhada com voz e dados • princípio: a fila de voz deve ser limitada, ou seja, a quantidade de tráfego de voz por enlace deve ser limitada – b) manter uma proporção relativa de tráfego em todos enlaces • exemplo: a rede deve manter a política de escalonamento mesmo em caso de falhas • princípio: configurar todos os enlaces com as mesmas políticas de escalonamento e manter uma proporção relativa de tráfego – c) serviços com garantia de banda • exemplo: rede compartilhada com AF e BE • princípio: limitar a proporçao de tráfego AF nos enlaces Exemplo • Em condições normais, voz trafega por A-C-D • Em caso de falha, o tráfego seria roteado para ACGD – CG não atende os requisitos de VoIP se o tráfego for misturado – Solução MPLS: rotear por ACEFD – Solução DiffServ MPLS: alocar VoIP e dados em filas distintas DiffServ MPLS • RFC 3270 descreve os mecanismos para o suporte de MPLS em redes DiffServ • Problema: – A decisão de rota dos LSR (Label-Switching Routers) é baseada apenas nos Labels MPLS – Como tratar tráfegos com PHB distintos (e.g., tempo real ou banda média) em um mesmo caminho MPLS • Proposta: – 3 bits experimentais no cabeçalho MPLS para mapear os 64 valores possíveis do DSCP Estratégias de Mapeamento • Para redes que utilizam menos de 8 PHBs – O PHB é inferido a partir dos bits EXP = E-LSP – Esses bits são configurados pelo administrador • Um único E-LSP pode transportar o tráfego de múltiplos PHBs Estratégias de Mapeamento • Para redes que utilizam mais de 8 PHBs – O Label determina a classe do PHB – Os bits EXP determinam a prioridade de descarte • Um único L-LSP transporta tráfego de um único PHB, ou de múltiplos PHBs com o mesma política de escalonamento Comparação E-LSP L-LSP PHB determinado pelos bits EXP PHB determinado pelo label ou pelo label + bits EXP Até 8 PHBs em um mesmo LSP Um PHB por LSP ou múltiplos PBHs com mesmo escalonamento e níveis de drop distintos Uso conservador de labels: labels são criados apenas pelas necessidades de roteamento Uso intensivo de labels pois eles também afetam os PHBs A atribuição de PHBs independem da sinalização MPLS Os PHBs são definidos juntos com a sinalização MPLS Até 8 PHBs na rede como um todo Número ilimitado de PHBs na rede Priorização de LSP • MPLS define até 8 níveis de prioridade para os LSPs – 0 melhor – 7 pior • Cada LSP possui duas prioridades associadas – setup priority: • prioridade durante o processo de criação de um novo LSP – hold priority • prioridade para manutenção de um LSP já criado • Um LSP com setup priority superior, pode, se necessário, tomar recursos de LSP com hold priority inferior para permitir o seu estabelecimento Vantagens do Modelo de Prioridade • O modelo baseado em prioridades permite: – que LSP menos importantes reservem recursos sem prejuízo dos LSPs mais importantes – que os LSP importantes sempre sejam criados nos melhores caminhos independentemente das reservas existentes – que em caso de falha de enlace, os LSP mais importantes tenham maior chance de encontrar caminhos alternativos • Além da necessidade de banda, os caminhos podem ser sujeitos as seguintes restrições: – atributos administrativos (“cores”) dos enlaces que o LSP pode atravessar • e.g. enlaces com baixa latência – número máximo de saltos para o caminho – outras restrições Extensões de TE • Foram propostas extensões nos protocolos de estado de enlace IS-IS e OSPF para suportar a distribuição desses atributos junto com as informações de roteamento • Essas extensões são denominadas TE extensions – Smit H., Li T., IS-IS extensions for Traffic Engineering - draft-ietfisis-traffic-05.txt – Katz D. Yeung D., Traffic Engineering Extensions to OSPF - draftkatz-yeung-ospf-traffic-10.txt • Quando as informações adicionais de estado de enlaces estão disponíveis, o algorítmo contrained SPF pode ser utilizado – CSPF - Constrained Shortest Path First • elimina os enlaces que não satisfazem as restrições Exemplo • O caminho A-C é criado primeiro • Para o caminho EC, todos os enlaces com menos de 100 Mbps disponíveis são eliminados (pruned) • A sinalização MPLS ocorre para o caminho possível BGP: Border Gateway Protocol • Protocolo de roteamento por vetor de caminho – Versão 4: RFC 1771 • Motivação – Segmentar a Internet em domínios (ASs) administrados independentemente – Eliminar a necessidade de divulgar todas as rotas entre ASs distintos. • Características: – Protocolo transportado por TCP – Cabeçalho Padrão seguido de 5 tipos de mensagem distintos. Mensagens BGP • Open (Tipo 1) – inicia uma sessão entre um par de roteadores BGP – negocia recursos opcionais do BGP • Update (Tipo 2) – anuncia informações de roteamento de um BGP para outro • Notification (Tipo 3) – usada para indicar problemas com as mensagens Open ou Update • KeepAlive (Tipo 4) – utilizada para verificar se o parceiro está ativo • Route-Refresh (Tipo 5) – requisita que um roteador BGP reanuncie todas as suas rotas Cabeçalho BGP • Marcação (16 bytes) – campo obsoleto, não é mais utilizado (preenchido com 0xff) • Tamanho (2 bytes) – máximo 4096 bytes • Tipo da mensagem (1 byte): – 5 tipos Byte 1 Byte 2 Byte 3 Byte 4 Marcador Marcador (cont.) Marcador (cont.) Marcador (cont.) Tamanho da Mensagem Tipo da Mensagem Versão (4) Sessão BGP • Speaker BGP – roteador que pode enviar e receber mensagens BGP • Parceiros BGP – roteadores BGP com conexões TCP ponto-a-ponto estabelecidas – Porta TCP: 179 open open ou notification update update Mensagens BGP: Open ID AS Tempo de Suspensão Identificador BGP Tamanho Opcoes Parâmetros Opcionais Parâmetros Opcionais • Identificador de AS – número de 16 bits: e.g. 65033 – AS Privado: 64512 a 65535 • Tempo de Suspensão: – Tempo que o roteador espera (em segundos) sem keep alive, antes de considerar a sessão como morta – Keep Alive (30 s) = 1/3 do tempo de suspensão ( 90 s) • Identificador de BGP – Endereço IP da interface do roteador • Parâmetros Opcionais – Formato TLV (e.g. autenticação e capacidades adicionais - AS 4 bytes) Mensagem BGP: Update Tamanho Rotas Retiradas Info. Rotas Retiradas Rotas Retiradas Tamanho do Atributos do Caminho Atributos Caminho Atributos Caminho Informação de Alcance da Camada de Rede (NLRI) • A mensagem de update permite adicionar ou remover novas rotas. • Ela é composta de 3 seções: – Rotas Retiradas (Unfeasible Routes) • e.g. 192.168.1.0/24, 10.0.0.0/8, etc. – Atributos do Caminho • atributos comuns a todas as rotas anunciadas – Rotas Anunciadas (NLRI) • e.g. 200.1.0.0/16 Atributos BGP • AS-PATH – seqüência completa de ASs até o destino anunciado – usado para detectar loops • NEXT-HOP – endereço do roteador BGP que corresponde ao primeiro salto do caminho • LOCAL-PREFERENCE – determina o melhor caminho para o tráfego de saída – maior local-preference vence (default 100) • MULTI-EXIT DESCRIMINATOR (EXIT) – melhor caminho para o tráfego entrante • ORIGIN – Origem do Caminho: IGP, EGP ou incomplete • COMMUNITIES – Comunidades aos quais as rotas anunciadas pertencem Confederação BGP • Grandes redes podem ser divididas em vários AS confederados. • Um AS confederado é visto como um simples AS pelos demais ASs AS 1 AS 2 i-BGP e-BGP AS 3 AS 4 AS 5 Comunidades BGP • No BGP rotas podem ser agrupadas em comunidades (através da seção path da mensagem update) – comunidades permitem definir policies para exportação de rotas – o significado da comunidade é local ao AS • Quatro bytes são utilizados: 2 bytes AS: 2 bytes Valor – exemplo: 65033:500 (comunidade 500 do AS 65033) • As seguintes comunidades são padronizadas: – internet (0) – no-export (0xFFFFFF01) • as rotas são anunciadas apenas aos peers que são parte da mesma confederação BGP – no-advertise (0xFFFFFF02) • a rota não é anunciada para nenhum BGP peers – local-AS (0xFFFFFF03) • a rota não é anunciada para nenhum BGP peer externo, mesmo que confederado Políticas BGP • As políticas BGP permitem controlar de maneira seletiva quais rotas serão recebidas e propagadas para outros vizinhos. IXP: Internet Exchange Point • Um IXP (ou PTT: Ponto de Troca de Tráfego) permite a interconexão direta de vários ASs, minimizando o número de saltos • Atualmente, a tecnologia mais utilizada para implementar IXP é o Ethernet. • Em muitos países a manutenção dos IXP é subsidiada por órgãos públicos Peer e Transit • Quando dois AS se interconectam de maneira gratuita, visando benefício mútuo de troca de tráfego, eles são denominados peer. • Quando o relacionamento é comercial, a conectividade é denominada transit. BGP/MPLS VPN • Dois padrões definem como criar VPNs de camada 3 usando MPLS: – RFC 2547 – RFC 2547bis • Conceito de VPN: – Múltiplos sites interconectados através de um backbone – Sites são agrupados em subsets – A conectividade IP é oferecida somente entre sites que estão contidos no mesmo subset • Aplicação das VPNs – Intranets (sites de uma mesma empresa) – Extranet (sites de empresas distintas) Elementos • Customer Edge (CE) Devices – pertencem a um site cliente (host, switch ou router) – tipicamente é um router: CE router • Provider Edge (PE) Routers – pertencem ao provedor, e conectam-se diretamente aos CEs • Provider (P) Routers – pertencem ao provedor, mas não se conectam diretamente aos CEs • Princípios: – CE routers, em sites distintos, não trocam informação de roteamento diretamente. – VPNs que não contém sites compartilhados, podem ter um espaço de enderaçamento sobreposto. Exemplo VPN A LDP VPN VPN B LDP LDP LSP - Label Switched Path PHP: Penultimate Hop Popping VPN VPN VPN B P3 P5 P1 PHP VPNLDP VPN A VPN A P2 P4 Requisitos dos PEs • Deve suportar múltiplas tabelas de encaminhamento – Cada site conectado ao PE deve ser associado a uma tabela de encaminhamento – A tabela de encaminhamento contém rotas apenas para sites que tem pelo menos uma VPN em comum. • per-site forwarding table • As informações relativas as VPNs estão presentes apenas nos PE routers. – Os P routers não precisam ter informações de roteamente descriminadas por VPN Exemplo • PE aprende sobre as rotas de CE1 através de IGP • PE1 propaga as rotas para outros sites que compartilham a mesma VPN que CE1 através de BGP. VPN V CE1 IGP FT de CE2 (VRF) CE2 FT de CE1 (VRF) PE1 BGP VPN V PE2 rotas do site FT de CE3 (VRF) PE3 CE3 VPN V Segurança • Requisito de segurança – Pacotes vindos de um dado site não podem entrar em uma VPN ao qual o site não pertence • Implementação – Nenhum roteador no backbone pode aceitar um pacote com label vindo diretamente de um roteador não pertencente ao backbone a menos que: • (a) o top label tenha sido atribuído pelo próprio roteador do backbone • (b) o label utilizado não conflita com nenhuma VPN existente (isto é, o pacote deixa o backbone antes de ser desempilhado). Distribuição de Rotas VPN via BGP • PE routers usam BGP para distribuir rotas VPN entre si. • No BGP original: – Um BGP speaker pode distribuir apenas uma rota para um dado prefixo. • No cenário VPN: – Um PE router pode receber duas rotas distintas (de diferentes VPNs) para um mesmo prefixo • Extensão do BPG – The BGP Multiprotocol Extensions: MP-BGP RFC 2283 – As rotas são acompanhadas de um prefixo de 8 bytes • • • • RD: Route Distinguisher associado a VRF Endereços de 12 bytes: 8 RD + 4 IP = família VPN IPv4 O anúncio de rota contém o Label MPLS O BGP-NEXT HOP é o próprio PE Filtragem de Rotas via BGP • Objetivo: – rejeitar rotas para VPNs ao qual o site não pertence • Utiliza o conceito de comunidades estendidas do BGP – Nas comunidades originais do BPG (2 bytes), ofertas de rotas são associadas a comunidades. • Rotas são aceitas apenas se o roteador BGP pertencer a mesma comunidade da rota. – Para suportar o cenário MPLS, um novo atributo denominado TARGET VPN foi introduzido. • Uma rota pode: – Ter um único RD – Ter múltiplos TARGET VPN Exemplo Aceita apenas rotas com os atributos Target VPN = 2 ou 3. Um site com duas VPNs: 1 e 2. As rotas são anunciadas com um único RD e dois Target VPN Atribuição de Labels • Quando um PE recebe um pacote, ele atribui 2 labels: – Label externo: LSP para o BGP next-hop – Label interno: Rede de destino Exemplo • No roteador de ingresso, o label interno é aprendido via iBGP. • O label externo identifica LSP para o nó de egresso. Cenário 1: VPN (PE) + LDP (P, PE) Configuração: • Roteamento no core é IGP • Todos os PEs são conectados por MPLS • MP-iBGP fully meshed entre os PE’s • VPN configurado nos VPN PE’s LSP - Label Switched Path PHP: Penultimate Hop Popping VPN A LDP VPN VPN B LDP VPN LDP VPN PHP LDP VPN B P3 P5 P1 VPN A VPN A P2 • Sem controle nos caminhos LSP VPN P4 Cenário 2: VPN (PE) + RSVP TE Tunnel (PE-PE) Configuração: • Utiliza túneis RSVP TE Tunnel (PE-PE) para configurar o LSP • Pode criar túneis de backup entre os PEs OSPF area 1 OSPF area 0 OSPF area 2 VPN A TE VPN TE VPN PHP TE VPN B P3 P5 P1 VPN VPN A VPN A P2 • Possibilidade de fast-reroute VPN B TE VPN P4 Cenário 3: Carrier’s Carrier VPN iBGP ISP B - Site X LDP CE1 VPN B PE1 LDP VPN A VPN B LDP VPN A VPN B ISP B’s Customers LDP VPN A VPN B LDP ASBR1, RR VPN B VPN A ASBR2, RR VPN B MP- iBGP ISP B’s Customers PE2 ISP A Carrier Backbone Carrier’s Carrier VPN Case 3 VPN B LDP VPN B CE2 ISP B - Site Y Cenário 5: Inter-Providers Backbone VPN RR-A AS A RR-B AS B LDP PE1 CE1 VPN AB LDP VPN A PE-ASBR1 LDP VPN A MP- iBGP VPN B VPN B CE2 PE-ASBR2 MP- eBGP PE2 MP- iBGP • MP-iBGP é utilizado para conectar PEs no mesmo AS • MP-eBGP é utilizado para conectar PEs em AS distintos Links de Interesse • http://logbud.com/visual_trace • http://www.asnumber.networx.ch/ • http://www.bgp4.as/internet-exchanges