Redes
Multiple Protocol Label Switching (MPLS)
Redes de Longa Distância e Alta
Velocidade
Multi Protocol Label Switching - MPLS
Mecanismo eficiente de encapsulamento
Pacotes MPLS podem rodar sobre outras tecnologias de
camada 2, como ATM, FR, PPP, Ethernet
Outras tecnologias de camada 2 podem rodar sobre uma
rede MPLS
MPLS é uma tecnologia de entrega de serviços IP
Concebida inicialmente como uma tecnologia para
permitir aos roteadores dos provedores encaminhar
pacotes baseados num cabeçalho simplificado, evoluiu
para
VPN MPLS e
Multi Protocol Label Switching - MPLS
Combina o melhor das camadas de rede 2 e 3
Camada 2 (ATM/FR): encaminhamento eficiente e
engenharia de tráfego
Camada 3 (IP): flexível e escalável
Plano de encaminhamento MPLS
Usa rótulos (labels) para encaminhar tráfego de camada
2/3
Pacotes rotulados são chaveados em vez de roteados
Melhora a eficiência de encaminhamento da camada 2
Plano de controle/sinalização MPLS
Usa extensões de protocolos de controle IP existentes
combinados com novos protocolos para troca de
informação de rótulos
Classe equivalente de encaminhamento
Forwarding Equivalent Class – FEC
Mecanismo para mapear pacotes de camada 2 ou 3
em caminhos de encaminhamento de rótulos (Label
Swiched Path – LSP) no roteador de borda de
entrada (ingress PE)
Possíveis FECs
Prefixo IP ou endereço IP de hosts
Grupo de enderços/sites (VPN x)
Usado em L3VPNs
Identificador de circuito de camada 2 (ATM, FR, PPP, HDLC,
Ethernet)
Usado em Pseudo fios (L2VPNs)
Uma instância de Ponte/Switch (VSI), usada em virtualização
Usado em VPLS (L2VPNs)
Interface de Túnel
Protocolo de distribuição de rótulos - LDP
Label Distribution Protocol – LDP
Nós MPLS precisam trocar info sobre os rótulos
Nó de entrada PE (operação de inserção)
Tem de saber o rótulo a usar para uma determinada FEC a
ser enviada ao nó vizinho
Nó do núcleo P (operação de troca – swap)
Necessita saber o rótulo a usar para os pacotes recebidos
com rótulos
Nó de saída PE (operação de remoção)
Precisa informar o vizinho anterior (upstream) que rótulo
usar para a FEC específica de acordo com o LDP
Além do LDP, outros protocolos são usados para a troca
Protocolo LDP (Cont.)
Atribui, distribui e instala (no encaminhamento)
rótulos para prefixos difundidos por protocolos de
roteamento unicast
OSPF, IS-IS, EIGRP, etc
Usa UDP (porta 646) para a descoberta de sessão e
TCP (porta 646) para a troca de mensagens LDP
Operações LDP
Descoberta de nós pares (Peer Discovery)
Estabelecimento de Sessão (Session Establishment)
Alocação e distribuição de rótulos MPLS e atualização de
encaminhamento MPLS
Repositórios de informações usados pelo LDP
LIB: Label Information Database (leitura/escrita)
Funcionamento do LDP
Inicialização
Rótulos locais
atribuídos aos prefixos
RIB e armazenados na
LIB
Descoberta de pares e
estabelecimento de
sessão
Troca de info de
associação de rótulos
MPLS
Programação do
encaminhamento
MPLS
Baseada na info
CEF/MFI da LIB
CEF: Cisco Express Forwarding
Planos de Controle e Encaminhamento do MPLS
Plano de controle
Usado para distribuir rótulos
e definir os LSPs
Tipicamente suportado pelo
LDP, mas pode ser também
via protocolos RSVP e BGP
Rótulos definem o destino e
o serviço
Plano de encaminhamento
Usado para inserção, troca e
remoção de rótulos
Independente do tipo de
plano de controle usado
Rótulos separam o
encaminhamento do
roteamento baseado no
Exemplo de encaminhamento de pacote no MPLS (Cont.)
Exemplo de encaminhamento de pacote no MPLS (Cont.)
Exemplo de encaminhamento de pacote no MPLS (Cont.)
Exemplo de encaminhamento de pacote no MPLS (Cont.)
Resumo: passos do encaminhamento MPLS
Cada nó mantém informação de roteamento IP via IGP
Tabela de roteamento IP (RIB) e tabela de encaminhamento IP
(FIB)
O LDP aprimora as info do roteamento IGP
Após o IGP convergir, ocorre a troca de info sobre o
mapeamento de rótulo do LDP entre os nós MPLS
LDP depende da convergência do IGP
As info de associações de rótulos são armazenas na LIB
Assim que o LDP recebe as info de associações de
rótulos remotas o encaminhamento MPLS é atualizado
As info de associações de rótulos são recebidas dos pares
LDP remotos
Resumo: Protocolos MPLS
IGP: OSPF, IS-IS, EIGRP – nos roteadores P e PE
RSVP e/ou LDP – nos roteadore P e PE
MPLS: Virtual Private Network - VPN
Proporciona
comunição
segura
entre
um
conjunto de sites ou grupos
Tipicamente sobre um infraestrutura, pública ou
privada, compartilhada
Definida por um conjunto de política de
administração
Políticas por parte dos próprios clientes da VPN
Políticas pelos provedores da VPN (gerenciadas
ou não gerenciadas)
Possibilita conectividade inter-site
Possibilita interligação de diferente organizações
MPLS: Virtual Private Network – VPN (Cont.)
Enlace PE-CE:
Conecta redes de clientes à rede do
provedor – camada 2 ou camada 3
MPLS: VPN de camada 3
Roteador do cliente (CE) possui uma conexão peering
com o roteador de borda (PE) na rede MPLS
Roteamento/encaminhamento IP no enlace PE-CE
A rede VPN do MPLS é responsável por distribuir as info
de roteamento para os sites VPN remotos
É parte do domínio de roteamento do cliente IP
Requer configuração apenas nos nós PE
VPN de camada 3: componentes
Enlace PE-CE
Qualquer tipo de conexão de camada (ex., FR, Ethernet)
CE roteia tráfego IP para/de roteador PE adjacente
Opções de roteamento: rotas estáticas, eBGP, OSPF, IS-IS
Plano de contole da VPN camada 3
O roteamento dos clientes fica separado por tabelas de
roteamento VPN virtual
As interfaces do cliente são conectadas a tabelas de
roteamento virtual no PE
Rotas do cliente são trocadas via BGP entre os PEs
Plano de encaminhamento da VPN camada 3
MPLS: Virtual Routing and Forwarding
Virtual Routing and Forwading instance (VRF)
Usualmente há uma VRF no PE para cada cliente VPN
A VRF é associada com uma ou mais interface do cliente
A VRF possui sua própria instância de tabela de
roteamento
(RIB),
bem
como
de
tabela
de
encaminhamento (CEF)
Também possui sua própria instância para o protocolo de
MPLS: Distribuição de rota VPN
Formam-se BGP sessões completamente conectadas
(full meshed) entre todos os roteadores PE
Multi-Protocol BGP (MP-iBGP)
VPN: Processamento do plano de controle
Rotaúnicas para os clientes
Route Distinguisher (RD): campo de 8 bytes, parâmetros VRF ; valor de VPN exclusivo atribuído pelo provedor
VPNv4 address: prefixo IP RD+VPN Distribuição seletiva de rotas para os
clientes
Route Target (RT): campo de 8 bytes, parâmetros VRF, valor exclusivo de regras de importação/exportação para rotas VPNv4
Etapas de processamento:
1. CE1 redistribui rota IPv4 p/ PE1 via eBGP
2. PE1 aloca rótulo VPN para os prefixos informados por CE1 a fim de criar rota VPNv4 exclusiva
3. PE1 redistribui rota VPNv4 p/ MP-iBGP, se define como o roteador “next hop” e encaminha as rotas do site da VPN para PE2
VPN: Processamento do plano de encaminhamento
Etapas de processamento:
CE2 encaminha o pacote IPv4 para PE2
PE2 insere rótulo VPN pré-alocado (informado pelo MP-iBGP) no pacote IPv4 proveniente de CE2
PE2 insere rótulo IGP externo (informado pelo LDP) e encaminha o pacote rotulado para o roteador “next hop” P2
VPN MPLS para separação de tráfego
VPN MPLS para simplificar design do site
VPNs MPLS proporcionam redução no número de
pares de roteamento no site central
Exercício 1: VPN camada 3 com MPLS
Exercício 1: habilitando o OSPF no provedor
P1(config)# interface loopback0
P1(config-if)# ip address 10.0.0.1 255.255.255.255 P1(config-if)# ip ospf 1 area 0
P2(config)# interface loopback0
P2(config-if)# ip address 10.0.0.2 255.255.255.255 P2(config-if)# ip ospf 1 area 0
PE1(config)# interface f1/0 PE1(config)# ip ospf 1 area 0
PE1(config)# interface loopback0
PE1(config-if)# ip address 10.0.0.3 255.255.255.255 PE1(config-if)# ip ospf 1 area 0
PE2(config)# interface f0/0 PE2(config)# ip ospf 1 area 0
Exercício 1: habilitando o OSPF nos CEs
CE1A(config)# int loopback0
CE1A(config-if)# ip address 172.16.0.1 255.255.255.255 CE1A(config-if)# no shut
CE1A(config-if# router ospf 2
CE1A(config-router)# network 0.0.0.0 255.255.255.255 area 0
CE1B(config)# int loopback0
CE1B(config-if)# ip address 172.17.0.1 255.255.255.255 CE1B(config-if)# no shut
CE1B(config-if# router ospf 3
CE1B(config-router)# network 0.0.0.0 255.255.255.255 area 0
CE2A(config)# int loopback0
CE2A(config-if)# ip address 172.16.0.2 255.255.255.255 CE2A(config-if)# no shut
CE2A(config-if# router ospf 2
CE2A(config-router)# network 0.0.0.0 255.255.255.255 area 0
CE2B(config)# int loopback0
CE2B(config-if)# ip address 172.17.0.2 255.255.255.255 CE2B(config-if)# no shut
CE2B(config-if# router ospf 3
CE2B(config-router)# network 0.0.0.0 255.255.255.255 area 0
Exercício 1: habilitando o MPLS nos roteadores
P1(config)# interface f0/0 P1(config-if)# mpls ip
P1(config-if)# interface f0/1 P1(config-if)# mpls ip
P1(config-if)# do show mpls interfaces
Interface IP Tunnel Operational FastEthernet0/0 Yes (ldp) No Yes
FastEthernet0/1 Yes (ldp) No Yes
P2(config)# interface f0/0 P2(config-if)# mpls ip P2(config-if)# interface f0/1 P2(config-if)# mpls ip PE1(config)# interface f1/0 PE1(config-if)# mpls ip PE2(config)# interface f0/0 PE2(config-if)# mpls ip
Exercício 1: criando e atribuindo as VRFs
Próximo passo é criar as VRFs para os clientes nos roteadores
PE e atribuir as interfaces ligadas ao cliente a esses roteadores
PE1(config)# ip vrf Cliente_A PE1(config-vrf)# rd 1500:1
PE1(config-vrf)# route-target both 1500:1 PE1(config-vrf)# ip vrf Cliente_B
PE1(config-vrf)# rd 1500:2
PE1(config-vrf)# route-target both 1500:2
PE2(config)# ip vrf Cliente_A PE2(config-vrf)# rd 1500:1
PE2(config-vrf)# route-target both 1500:1 PE2(config-vrf)# ip vrf Cliente_B
PE2(config-vrf)# rd 1500:2
PE2(config-vrf)# route-target both 1500:2
Para cada VRF deve ser
atibuído um Route
Distinguisher (RD) para
identificar prefixos como
sendo exclusivamente daquela
VRF
Também dever atribuir a cada
VRF uma ou mais Route
Target (RT) para se especificar
como as rotas devem ser
importadas/exportadas da VRF
Exercício 1: criando e atribuindo as VRFs (Cont.)
Deve-se atribuir as interfaces adequadas a cada VRF e aplicar
novamente o seus correspondentes endereço IP
PE1(config)# interface f0/0
PE1(config-if)# ip vrf forwarding Cliente_A
PE1(config-if)# ip address 10.0.1.1 255.255.255.252 PE1(config-if)# interface f0/1
PE1(config-if)# ip vrf forwarding Cliente_B
PE1(config-if)# ip address 10.0.1.5 255.255.255.252 PE1(config-if)# ^Z
PE1# show ip vrf interfaces
Interface IP-Address VRF Protocol Fa0/0 10.0.1.1 Cliente_A up
Exercício 1: criando e atribuindo as VRFs (Cont.)
Deve-se atribuir as interfaces adequadas a cada VRF e aplicar
novamente o seus correspondentes endereço IP
PE2(config)# interface f0/0
PE2(config-if)# ip vrf forwarding Cliente_A
PE2(config-if)# ip address 10.0.2.1 255.255.255.252 PE2(config-if)# interface f1/0
PE2(config-if)# ip vrf forwarding Cliente_B
PE2(config-if)# ip address 10.0.2.5 255.255.255.252 PE2(config-if)# ^Z
PE2# show ip vrf interfaces
Interface IP-Address VRF Protocol Fa0/0 10.0.2.1 Cliente_A up
Exercício 1: configurando o MP-BGP nos roteadores PE
O protocolo Multiprotocol BGP (MP-BGP) deve ser configurado
para difusão das rotas VRF entre os PEs
PE1(config)# router bgp 1500
PE1(config-router)# neighbor 10.0.0.4 remote-as 1500
PE1(config-router)# neighbor 10.0.0.4 update-source loopback 0 PE1(config-router)# address-family vpnv4
PE1(config-router-af)# neighbor 10.0.0.4 activate
PE2(config)# router bgp 1500
PE2(config-router)# neighbor 10.0.0.3 remote-as 1500
PE2(config-router)# neighbor 10.0.0.3 update-source loopback 0 PE2(config-router)# address-family vpnv4
PE2(config-router-af)# neighbor 10.0.0.3 activate
Para verificar as configurações
Exercício 1: configurando o OSPF entre PE-CE
Um IGP entre cada roteador PE e seu roteador CE
correspondente (em vez do OSPF poderia ser o RIP ou EIGRP)
Exercício 1: configurando o OSPF entre PE-CE (Cont.)
Três processos OSPF rodam nos roteadores PE
Provedor: pocesso OSPF 1 Cliente_A: processo OSPF 2 Cliente_B: processo OSPF 3
Exercício 1: configurando o OSPF entre PE-CE (Cont.)
PE1(config)# router ospf 2 vrf Cliente_A PE1(config-router)# router-id 10.0.1.1 PE1(config-router)# interface f0/0 PE1(config-if)# ip ospf 2 area 0
PE1(config-if)# router ospf 3 vrf Cliente_B PE1(config-router)# router-id 10.0.1.5
PE1(config-router)# interface f0/1 PE1(config-if)# ip ospf 3 area 0
PE2(config)# router ospf 2 vrf Cliente_A PE2(config-router)# router-id 10.0.2.1 PE2(config-router)# interface f0/0 PE2(config-if)# ip ospf 2 area 0
PE2(config-if)# router ospf 3 vrf Cliente_B PE2(config-router)# router-id 10.0.2.5
PE2(config-router)# interface f1/0
Para verificar as configurações
Exercício 1: configurando a redistribuição de rotas
Redistribuição das rotas CE em cada VRF no MP-BGP
PE1(config)# router bgp 1500
PE1(config-router)# address-family ipv4 vrf Cliente_A PE1(config-router-af)# redistribute ospf 2
PE1(config-router-af)# address-family ipv4 vrf Cliente_B PE1(config-router-af)# redistribute ospf 3
PE2(config)# router bgp 1500
PE2(config-router)# address-family ipv4 vrf Cliente_A PE2(config-router-af)# redistribute ospf 2
PE2(config-router-af)# address-family ipv4 vrf Cliente_B PE2(config-router-af)# redistribute ospf 3
Verificar as configurações
Exercício 1: configurando a redistribuição de rotas (Cont.)
Redistribuição das rotas BGP no processo OSPF de cada cliente
PE1(config)# router ospf 2
PE1(config-router)# redistribute bgp 1500 subnets PE1(config-router)# router ospf 3
PE1(config-router)# redistribute bgp 1500 subnets
PE2(config)# router ospf 2
PE2(config-router)# redistribute bgp 1500 subnets PE2(config-router)# router ospf 3
PE2(config-router)# redistribute bgp 1500 subnets
Verificar as configurações com os testes:
CE1A# show ip route CE2A# show ip route CE1A# ping 172.16.0.2
MPLS: Engenharia de Tráfego (TE)
MPLS usa túneis entre sites para carregar tráfego com
QoS distinto
A TE (Traffic Engineering) é um processo de
manipulação de tráfego da rede a fim de proporcionar
melhor uso da capacidade da rede
MPLS: Engenharia de Tráfego (TE) (Cont.)
Redes IP convencionais usam a métrica do
menor caminho na busca por rota
Agregação de tráfego nas rotas mais curtas
pode sobrecarregá-las e deixar as rotas
alternativas subutilizadas
Desperdício de banda passante
MPLS: Engenharia de Tráfego
MPLS: Engenharia de Tráfego (Cont.)
Motivações:
Dificuldade
em
se
conseguir
rede
simétricas
MPLS: Engenharia de Tráfego (Cont.)
MPLS: Engenharia de Tráfego (Cont.)
MPLS: Engenharia de Tráfego (Cont.)
Além do problema de engenharia de
tráfego, o MPLS TE pode
Controle de admissão (Admission Control)
Direcionamento de tráfego (Route Pinning)
MPLS-TE: estabelecimento de caminhos
MPLS-TE: estabelecimento de caminhos (Cont.)
Exemplo de criação de túnel MPLS TE
Substituição de labels (label switching) Divulgação de labels (label
MPLS: Proteção de Tráfego (Fast ReRoute)
Garantir “Alta Disponibilidade” torna-se a cada mais
importante para um provedor
Falhas na rede são comuns
IGPs não conseguem rapidez desejada
Portanto: o tráfego em redes MPLS deve ser protegido
contra falhas na rede
Falhas de
: Nós
ou
Links
(enlaces)
Recuperação rápida (Fast Restoration) pode ser
baseada no RSVP-TE e dividida em:
Path Protection (proteção fim-a-fim)
Local Protection
MPLS: Proteção de Tráfego (FRR)
Path protection: usa túnel backup
Link protection
Exercício MPLS Engenharia de Tráfego
FAST REROUTE –
FAST LINK RECOVERY – FAST NODE RECOVERY
Túnel 1 Backup apenas de
Configuração do MPLS-TE e OSPF nos Roteadores
MPLS com Engenharia de Tráfego
R1(config)# mpls label protocol ldp
R1(config)# mpls ip
R1(config)# mpls traffic-eng tunnel
R1(config-if)# no shut
R1(config-if)# router ospf 1
R1(config-router)# network 0.0.0.0 255.255.255.255 area 0
OSPF com Engenharia de Tráfego
R1(config)# int loopback 0
R1(config-if)# ip address 10.10.10.101 255.255.255.255
R1(config-if)# ip ospf 1 area 0
R1(config-if)# no shut
R1(config-if)# router ospf 1
R1(config-router)# network 0.0.0.0 255.255.255.255 area 0
R1(config-router)# traffic-eng area 0
R1(config-router)# traffic-eng router-id loopback 0
Configuração dos tuneis fim-a-fim
Túnel 1000
R1(config)# int tunnel 1000
R1(config-if)# ip unnumbered loopback 0
R1(config-if)# tunnel mode mpls traffic-eng
R1(config-if)# tunnel destination 10.10.10.104
R1(config-if)# tunnel mpls traffic-eng bandwidth sub-pool 10
R1(config-if)# tunnel mpls traffic-eng path-option 1 explicit name LSP_PRICIPAL
R1(config-if)# tunnel mpls traffic-eng autoroute announce
R1(config-if)# exit
Túnel 2000
R1(config)# int tunnel 2000
R1(config-if)# ip unnumbered loopback 0
R1(config-if)# tunnel mode mpls traffic-eng
R1(config-if)# tunnel destination 10.10.10.104
R1(config-if)# tunnel mpls traffic-eng bandwidth 5
R1(config-if)# tunnel mpls traffic-eng path-option 1 explicit name LSP_PRINCIPAL
Configuração do caminho explícito e do fast-reroute
Caminho explícito
R1(config)# ip explicit-path name LSP_PRINCIPAL
R1(config-if)# tunnel destination 10.10.10.2
R1(config-if)# tunnel destination 10.10.10.6
R1(config-if)# tunnel destination 10.10.10.10
R1(config-if)# tunnel destination 10.10.10.104 Verifique: sh mpls traffic-eng tunnels summary
Fast ReRoute para os dois túneis
R1(config)#int tunnel 1000
R1(config-if)# tunnel mpls traffic-eng fast-reroute
R1(config)#int tunnel 2000
R1(config-if)# tunnel mpls traffic-eng fast-reroute bw-protect
Configuração do protocolo RSVP p/ sinalizar falhas
Algumas arquiteturas de rede, como a Ethernet, não
possuem mecanismo de detecção de falha nó-a-nó
rápido o suficiente para o exigido na detecção de falhas
de enlaces (links)
As mensagens “RSVP Hello” possibilitam essa detecção
de falhas e portanto podem ser usadas em FRR para
notificações de falhas de link
R2(config)# ip rsvp signalling hello
R2(config# int f1/0
R2(config-if)# ip rsvp signalling hello
R3(config)# ip rsvp signalling hello
R3(config# int f0/0
R3(config-if)# ip rsvp signalling hello
NOTA
As mesagens Hello devem ser configuradas
• globalmente no roteador
• na interface específica para o FRR
Configuração de R2 p/ proteção de link entre R2 e R3
Primeiro túnel de backup (túnel 1) – protege o link R2-R3
R2(config)# int tunnel 1
R2(config-if)# ip unnumbered loopback 0
R2(config-if)# tunnel mode mpls traffic-eng
R2(config-if)# tunnel destination 10.10.10.103
R2(config-if)# tunnel mpls traffic-eng path-option 1 explicit name EVITE_LINK
R2(config-if)# tunnel mpls traffic-eng autoroute announce
R2(config-if)# exit
R2(config)# ip explicit-path name EVITE_LINK
R2(config)# exclude-address 10.10.10.6
R2(config-if)# exit
Configurando túnel 1 como túnel de backup da interface protegida
R2(config)# int f1/0
R2(config-if)# mpls traffic-eng backup-path tunnel 1
Configuração de R2 p/ proteção do nó R3
Segundo túnel de backup (túnel 2) – protege falha no nó R3
R2(config)# int tunnel 2
R2(config-if)# ip unnumbered loopback 0
R2(config-if)# tunnel mode mpls traffic-eng
R2(config-if)# tunnel destination 10.10.10.104
R2(config-if)# tunnel mpls traffic-eng path-option 1 explicit name EVITE_NO
R2(config-if)# tunnel mpls traffic-eng autoroute announce
R2(config-if)# exit
R2(config)# ip explicit-path name EVITE_NO
R2(config)# exclude-address 10.10.10.103
R2(config-if)# exit
Configurando túnel 2 como túnel de
backup da interface protegida
R2(config)# int f1/0
R2(config-if)# mpls traffic-eng backup-path tunnel 2
Configuração de R2 (opcional) QoS
Túnel 1 é backup
apenas de LSPs que usam reserva de
banda do tipo pool global (neste caso o
túnel 2000
)
Túnel 2 é backup
apenas de LSPs que usam reserva de
banda do tipo sub-pool (neste caso o
túnel 1000
)
R2(config)# int tunnel 1
R2(config-if)# tunnel mpls traffic-eng backup-bw global-pool unlimited
R2(config-if)# exit
R2(config)# int tunnel 2
R2(config-if)# tunnel mpls traffic-eng backup-bw sub-pool 1000
R2(config-if)# exit
Verificações após as falhas no link R2-R3 e nó 3
R2# sh mpls forwarding-table
R2# sh mpls forwarding-table detail R2# sh ip rsvp sender detail
R2# sh mpls traffic-eng fast-reroute database R2# sh ip rsvp reservation
Verificações
Avaliação da atuação do fast reroute
R2# sh ip interface brief
R2# sh ip rsvp sender
R2# sh ip rsvp sender detail
R2# sh mpls traffic-eng fast-reroute database
R2# sh mpls traffic-eng fast-reroute database detail
R2# sh mpls traffic-eng tunnels brief
Depois da falha no link R2-R3
R2# sh mpls traffic-eng fast-reroute database
Nota-se aqui que não há indicação de falha, pois os dois túneis principais têm backup para essa situação. O mesmo resultado para R1