mpls prática com linux
DESCRIPTION
MPLS Prática com Linux. 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 - PowerPoint PPT PresentationTRANSCRIPT
2008, Edgard Jamhour
MPLSPrática com Linux
Edgard Jamhour
2008, 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
2008, Edgard Jamhour
Princípio
NHLFE
Key 0x3: push label2 e nexthop para ip2
Key 0x4: push label3 e nexthop para ipn
FEC (destino)
Se subrede1
Se subrede 2
No LER origem
No LSR
Interface X Label
Se eth0 X label4
Se eth0 X label5
Key 0x2: push label1 e nexthop para ip1FTN=FEC
XNHLFE
XC Label entrada – Label saída
Se label4 então label 0
Se label 5 então label 0
ILM
Ação sobre label e encaminhamento
Se label 6 então label 0
Se não houver entrada na XC, então é o LSR de saída
No LER saída ou no LSR
Label Spacepor
Interface
NHLFE = Next Hop Label Forwarding Entry
FEC = Forwarding Equivalency Classes
ILM - Incomming Label Map
2008, Edgard Jamhour
Comandos
Cria uma entrada nhlfe que adiciona o label 1000 e encaminha os pacotes para 10.0.0.3 pela interface eth1.
2008, Edgard Jamhour
Comandos
Mapeia uma FEC para uma NHLFE
2008, Edgard Jamhour
Comandos
O labelspace define que o roteador irá esperar pacotes marcados como mpls em sua interface
2008, Edgard Jamhour
Comandos
A tabela ILM diz quais labels serão esperados
2008, Edgard Jamhour
Comandos
Este comando implementa encaminha um pacote rotulado para uma nhlfe
2008, Edgard Jamhour
Seqüência para o Egress Router
• Se for necesário encaminhar o pacote e fazer o pop do label
– mpls labelspace set dev ethIN labelspace 0
– mpls ilm add label gen 1000 labelspace 0
– mpls nhlfe add key 0 instructions nexthop ethOUT ipv4 ipGateway
– (returns key 0x2)
– mpls xc add ilm_label gen 1000 ilm_labelspace 0 nhlfe_key 0x2
• Se for necessário fazer apenas o pop do label
– mpls labelspace set dev ethIN labelspace 0
– mpls ilm add label gen 1000 labelspace 0
2008, Edgard Jamhour
Cenário 1• LER: Label Edge router
Host A Host B
192.168.0.2/24
192.168.1.1/24
10.26.128.A
eth0 eth1:1
eth1 eth1
eth1:1 eth0LERA LERB
192.168.0.1/24 10.26.128.B
192.168.1.2/24
LABEL 1000
2008, Edgard Jamhour
Configuração• # HOST A
• ip route add 192.168.1.0/24 via 192.168.0.2 src 192.168.0.1
• # LERA
• mpls nhlfe add key 0 instructions push gen 1000 nexthop eth1 ipv4 10.26.128.B
• ip route add 192.168.1.0/24 via 10.26.128.B mpls 0x2
• echo 1 > /proc/sys/net/ipv4/ip_forward
• # LER2
• mpls labelspace set dev eth1 labelspace 0
• mpls ilm add label gen 1000 labelspace 0
2008, Edgard Jamhour
Script MPLS para LER 1
#!/bin/bash -x# Carrega o módulo de mplsmodprobe mpls4
key_value=`mpls nhlfe add key 0 instructions push gen 1000 nexthop eth1 ipv4 10.26.128.B `;
key=`echo $key_value|awk '{print $4}'`;
ip route add 192.168.1.0/24 via 10.26.128.B mpls $key
echo 1 > /proc/sys/net/ipv4/ip_forward
2008, 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
2008, Edgard Jamhour
Cenário 2• LSR: Label Switching Router
Host A Host B
192.168.1.0/2410.26.128.0/17
eth0 eth1:1 eth1 eth1 eth1:1 eth0LERA LERB
LSRC
eth1:2
eth1:1
eth1:2
eth1:2
.1
192.168.0.0/24
.2 .1 .2
10.0.0.4/30 10.0.0.8/30
.5
.6.9
.10
.1 .2
LABEL 2000 LABEL 2001
2008, Edgard Jamhour
Configuração
• # HOST A
• ip route add 192.168.1.0/24 via 192.168.0.2 src 192.168.0.1
• # LER1
• mpls nhlfe add key 0 instructions push gen 2000 nexthop eth1:2 ipv4 10.0.0.6
• ip route add 192.168.1.0/24 via 10.0.0.6 mpls 0x3
• echo 1 > /proc/sys/net/ipv4/ip_forward
• # LSR
• 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:2 ipv4 10.0.0.10
• mpls xc add ilm_label gen 2000 ilm_labelspace 0 nhlfe_key 0x2
• echo 1 > /proc/sys/net/ipv4/ip_forward
• # LER2
• mpls labelspace set dev eth1:2 labelspace 0
• mpls ilm add label gen 2001 labelspace 0
2008, Edgard Jamhour
Script para o LSR
#!/bin/bash -x# Carrega o módulo de mplsmodprobe mpls4
mpls labelspace set dev eth1:1 labelspace 0mpls ilm add label gen 2000 labelspace 0key_value=`mpls nhlfe add key 0 instructions push 2001 nexthop eth1:2 ipv4 10.0.0.10`;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