2008, Edgard Jamhour MPLS Prática com Linux Edgard Jamhour
2008, Edgard Jamhour Instalação yum update yum install udev.i FC4.3 yum install hardlink yum install bridge-utils rpm -ivh kernel _FC4mpls_1.950.i686.rpm rpm -ivh iproute _mpls_1.950d.i386.rpm rpm -ivh --force iproute _mpls_1.950d.i386.rpm rpm -ivh ebtables _mpls_1.950d.i386.rpm rpm -ivh iptables-ipv _mpls_1.950d.i386.rpm rpm -ivh --force iptables _mpls_1.950d.i386.rpm rpm -ivh kernel-devel _FC4mpls_1.950.i686.rpm rpm -e iptables rpm -e iproute
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 ip1 FTN= FEC X NHLFE 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 Space por 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 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 AHost B / / A eth0 eth1:1 eth1 eth1:1 eth0 LERA LERB / B /24 LABEL 1000
2008, Edgard Jamhour Configuração # HOST A ip route add /24 via src # LERA mpls nhlfe add key 0 instructions push gen 1000 nexthop eth1 ipv B ip route add /24 via 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 mpls modprobe mpls4 key_value=`mpls nhlfe add key 0 instructions push gen 1000 nexthop eth1 ipv B `; key=`echo $key_value|awk '{print $4}'`; ip route add /24 via 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 AHost B / /17 eth0 eth1:1 eth1 eth1:1 eth0 LERA LERB LSRC eth1:2 eth1:1 eth1: / / / LABEL 2000 LABEL 2001
2008, Edgard Jamhour Configuração # HOST A ip route add /24 via src # LER1 mpls nhlfe add key 0 instructions push gen 2000 nexthop eth1:2 ipv ip route add /24 via 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 ipv 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 mpls modprobe mpls4 mpls labelspace set dev eth1:1 labelspace 0 mpls ilm add label gen 2000 labelspace 0 key_value=`mpls nhlfe add key 0 instructions push 2001 nexthop eth1:2 ipv `; 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