16
2008, Edgard Jamhour MPLS Prática com Linux Edgard Jamhour

MPLS Prática com Linux

Embed Size (px)

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 Presentation

Citation preview

Page 1: MPLS Prática com Linux

2008, Edgard Jamhour

MPLSPrática com Linux

Edgard Jamhour

Page 2: MPLS Prática com Linux

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

Page 3: MPLS Prática com Linux

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

Page 4: MPLS Prática com Linux

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.

Page 5: MPLS Prática com Linux

2008, Edgard Jamhour

Comandos

Mapeia uma FEC para uma NHLFE

Page 6: MPLS Prática com Linux

2008, Edgard Jamhour

Comandos

O labelspace define que o roteador irá esperar pacotes marcados como mpls em sua interface

Page 7: MPLS Prática com Linux

2008, Edgard Jamhour

Comandos

A tabela ILM diz quais labels serão esperados

Page 8: MPLS Prática com Linux

2008, Edgard Jamhour

Comandos

Este comando implementa encaminha um pacote rotulado para uma nhlfe

Page 9: MPLS Prática com Linux

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

Page 10: MPLS Prática com Linux

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

Page 11: MPLS Prática com Linux

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

Page 12: MPLS Prática com Linux

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

Page 13: MPLS Prática com Linux

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

Page 14: MPLS Prática com Linux

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

Page 15: MPLS Prática com Linux

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

Page 16: MPLS Prática com Linux

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