Post on 17-Apr-2015
MPLSPrática com Linux
Edgard Jamhour
2010, Edgard Jamhour
Instalação yum update yum install udev.i386 071-0.FC4.3 yum install hardlink yum install bridge-utils
rpm -ivh kernel-2.6.15-1.1831_FC4mpls_1.950.i686.rpm rpm -ivh iproute-2.6.11-1_mpls_1.950d.i386.rpm rpm -ivh --force iproute-2.6.11-1_mpls_1.950d.i386.rpm rpm -ivh ebtables-2.0.6-7_mpls_1.950d.i386.rpm rpm -ivh iptables-ipv6-1.3.0-2_mpls_1.950d.i386.rpm rpm -ivh --force iptables-1.3.0-2_mpls_1.950d.i386.rpm rpm -ivh kernel-devel-2.6.15-1.1831_FC4mpls_1.950.i686.rpm rpm -e iptables-1.3.0-2 rpm -e iproute-2.6.11-1
2010, Edgard Jamhour
ip1
mpls nhlfe add key 0 instructions push gen LABEL nexthop ETHO ipv4 NEXTHOP
Configuração LER de Ingresso
LER
LSR
LSR
eth0 label1
eth1 label2 ip2
ip route add SUBREDE via NEXTHOP mpls KEY
FTN =FEC X NHLFE
FEC (destino)
subrede1
subrede2
subrede1
subrede2
Chave
Ação NHLFE
0x2 push label1 e envia por eth0 para ip1
0x3 push label2 e envia por eth1 para ip2
2010, Edgard Jamhour
Configuração LER de Egresso
LSR
LER
eth0label1
eth1label2
mpls labelspace set dev ETHI labelspace 0
mpls ilm add label gen LABEL labelspace 0
subrede1
labelspace Interface Label ILM
0 eth0 label1
1 eth1 label2
LSR
2010, Edgard Jamhour
ip1
Configuração do LSR
LSR
LER
LSR
eth2 label11
eth3 label21 ip2
• mpls labelspace set dev ETHI labelspace 0• mpls ilm add label gen LABEL labelspace 0• mpls xc add ilm_label gen LABEL ilm_labelspace 0 nhlfe_key KEY
Chave
ação NHLFE
0x2 push label11 e enviar por eth2 para ip1
0x3 push label21 e enviar por eth3 para ip2
LER
LSReth0
eth1
label10
label20
ILM labelspace
If Label
0 eth0 label10
1 eth1 label20
XC
2010, Edgard Jamhour
Exercício 1
a
LABEL 1000
LER1
LER2
Host A
Host Ba b
HOST A a eth1 192.168.0.2
LER 1 a eth1:1 192.168.0.1
b eth1 10.0.0.1/30
LER 2 a eth1 10.0.0.2/30
b eth1:1 192.168.1.1
HOST B a eth1 192.168.1.2
a b a
LABEL 2000
2010, Edgard Jamhour
Configuração HOST A
ip route add 192.168.1.0/24 via 192.168.0.1 src 192.168.0.2
LER 1 mpls nhlfe add key 0 instructions push gen 1000
nexthop eth1 ipv4 10.0.0.2 ip route add 192.168.1.0/24 via 10.0.0.2 mpls 0x2 echo 1 > /proc/sys/net/ipv4/ip_forward
LER 2 mpls labelspace set dev eth1 labelspace 0 mpls ilm add label gen 1000 labelspace 0
2010, Edgard Jamhour
Script MPLS para LER 1
#!/bin/bash -xip_ler2a=10.0.0.2if_ler1b=eth1feca=192.168.1.0/24
modprobe mpls4
key_value=`mpls nhlfe add key 0 instructions push gen 1000 nexthop $if_ler1b ipv4 $ip_ler2a `;
key=`echo $key_value|awk '{print $4}'`;
ip route add $feca via $ip_ler2a mpls $key
sysctl -w net.ipv4.ip_forward=1
2010, Edgard Jamhour
Comandos para Evitar Redirecionamento sysctl net.ipv4.conf.eth1.send_redirects=0 sysctl net.ipv4.conf.eth1.accept_redirects=0 sysctl net.ipv4.conf.all.send_redirects=0 sysctl net.ipv4.conf.all.accept_redirects=0
2010, Edgard Jamhour
Cenário 2
Host A
Host Ba LER
1
192.168.0.0/24
LER2
L:2000 Host C
192.168.1.0/25
192.168.1.128/25
L:2001
b
c
da
a
LER 1 a eth1 192.168.0.1
b eth1:1 10.0.0.1/30
c eth1:2 10.1.0.1/30
LER 2 a eth1 10.2.0.2/30
b eth1:1 10.0.0.2/30
c eth1:2 192.168.0.129
d eth1:3 192.168.1.1
LSR a eth1 10.1.0.2/30
b eth1:1 10.2.0.1/30
HOST A a eth1 192.168.0.2
HOST B a eth1 192.168.1.2
HOST C a eth1 192.168.1.130
LSR
c
L:1000 b
aa b
2010, Edgard Jamhour
Configuração LER 1 LER1 (Rota Vermelha)
mpls nhlfe add key 0 instructions push gen 1000 nexthop eth1:1 ipv4 10.0.0.2
ip route add 192.168.1.0/25 via 10.0.0.2 mpls 0x2 LER1 (Rota Azul)
mpls nhlfe add key 0 instructions push gen 2000 nexthop eth1:2 ipv4 10.1.0.2
ip route add 192.168.1.128/24 via 10.1.0.2 mpls 0x3
Roteamento echo 1 > /proc/sys/net/ipv4/ip_forward
2010, Edgard Jamhour
Configuração LSR # LSR (Rota Azul)
mpls labelspace set dev eth1 labelspace 0 mpls ilm add label gen 2000 labelspace 0 mpls nhlfe add key 0 instructions push gen 2001
nexthop eth1:1 ipv4 10.2.0.2 mpls xc add ilm_label gen 2000 ilm_labelspace 0
nhlfe_key 0x2 echo 1 > /proc/sys/net/ipv4/ip_forward
2010, Edgard Jamhour
Configuração LER 2 LER2 (Rota Vermelha)
mpls labelspace set dev eth1 labelspace 0 mpls ilm add label gen 1000 labelspace 0
LER2 (Rota Azul) mpls labelspace set dev eth1:1 labelspace 0 mpls ilm add label gen 2001 labelspace 0
2010, Edgard Jamhour
Configuração Hosts HOST A
ip route add 192.168.1.0/24 via 192.168.0.2 src 192.168.0.1
HOST B ip route add 192.168.0.0/24 via 192.168.1.2 src
192.168.1.2 HOST C
ip route add 192.168.0.0/24 via 192.168.1.129 src 192.168.1.130
2010, Edgard Jamhour
Exemplo: Script para o LSR
#!/bin/bash -x
if_lsra=eth1if_lsrb=eth1:1ip_ler2a=10.2.0.2
modprobe mpls4
mpls labelspace set dev $if_lsra labelspace 0mpls ilm add label gen 2000 labelspace 0key_value=`mpls nhlfe add key 0 instructions push 2001 nexthop $if_lsrb ipv4 $ip_ler2a `;key=`echo $key_value|awk '{print $4}'`;mpls xc add ilm_label gen 2000 ilm_labelspace 0 nhlfe_key $key
echo 1 > /proc/sys/net/ipv4/ip_forward
2010, Edgard Jamhour
Exercício 2 Implemente o cenário 2 de forma que os
pacotes enviados pelo host A para a subrede: 192.168.0.0/25 sigam o caminho vermelho 192.168.0.128/25 sigam o caminho vermelho
Escreva o script de configuração de um dos caminhos
Capture os quadros mpls em LSR1 ou LER2, conforme o caminho.
2010, Edgard Jamhour
Cenário 3
LER 1 a eth1 66.0.0.1/24
b eth1:1 10.0.0.1/30
LER 2 a eth1 77.0.0.1/24
b eth1:1 10.0.0.13/30
LER 3 a eth1 10.0.0.10/30
b eth1:1 10.0.0.22/30
c eth1:2 88.0.0.1/24
FEC A
FEC C
a
L:2000
L:1000L:1001
LSR 1 a eth1 10.0.0.2/30
b eth1:1 10.0.0.5/30
c eth1:2 10.0.0.14/30
d eth1:3 10.0.0.17/30
LSR 2 a eth1 10.0.0.6/30
b eth1:1 10.0.0.9/30
LSR 3 a eth1 10.0.0.18/30
b eth1:1 10.0.0.21/30
FEC B
192.168.0.0/24
LSR1LSR1
LSR2LSR2
LSR3LSR3
LER3LER3
LER2LER2
LER1LER1b
L:1002
L:2001 L:2002
a b
a b
c d
a b
a b
a
bc
2010, Edgard Jamhour
Exercício 3 Implemente o cenário 3 de forma que os
pacotes enviados: Pela FEC A: sigam o caminho vermelho Pela FEC B: sigam o caminho azul
Os caminhos de volta a partir da FEC C devem ser simétricos e utilizar os mesmos Labels.