1. 2012 Universidad de El Salvador
Facultad Multidisciplinaria de Occidente
Departamento de Ingeniería
PROYECTO MPLS USANDO SOFTWARE LIBRE
PRESENTADO POR:
Cárcamo Ramírez, Jodie Tatiana
Mendoza Figueroa, Henry Rafael
Valle Castillo, Rocío Natalia
CÁTEDRA:
Comunicaciones II
Santa Ana 26 de Junio de 2012
2. Universidad de El Salvador MPLS usando software libre
2
MPLS - Multi Protocol Label Switching
MPLS (siglas de Multiprotocol Label Switching) es un mecanismo de transporte de
datos estándar creado por la IETF y definido en el RFC 3031. Opera entre la capa de
enlace de datos y la capa de red del modelo OSI. Fue diseñado para unificar el servicio
de transporte de datos para las redes basadas en circuitos y las basadas en paquetes.
Puede ser utilizado para transportar diferentes tipos de tráfico, incluyendo tráfico de
voz y de paquetes IP.
Cuandolos paquetes de una red basada en el protocolo MPLS viajan de un Router hacia
el siguiente, cada Router elabora decisiones independientes para cada paquete. Cada
router analiza el header del paquete y corre un algoritmo de enrutamiento de nivel de
red. La elección del próximo salto en la red, puede ser pensada como la composición de
dos funciones:
Una primera función particiona el posible conjunto de los paquetes en un conjunto de
Clases de Equivalencia de enrutamiento, (FEC).
La segunda, mapea a cada FEC con su próximo salto en la red.
En MPLS, la asignación de un paquete a una FEC particular se hace tan solo una vez, y
es cuando el paquete ingresa a la red MPLS. La FEC a la que es asignado dicho paquete
es codificada como un valor fijo llamado "etiqueta".
Cuando un paquete es enviado hacia el próximo hop, su etiqueta es enviada junto con
él; o sea que los paquetes han sido etiquetados antes de ser enviados. En los siguientes
salto, no se hace mayor análisis de los paquetes en su header de nivel de red. En su
lugar, la etiqueta es usada como un índice en una tabla para especificar el próximo
salto, y la nueva etiqueta. Se reemplaza la vieja etiqueta por la nueva y se envía el
paquete resultantehacia el próximo salto.Los routersque manejan MPLS son llamados
Label Switching Routers, (LSR).
En el envío de paquetes de MPLS, una vez que un paquete es asignado a una FEC, no
se efectúa más análisis en los siguientes routers, o sea todo el "forwarding" de los
mismos es manejado mediante las "etiquetas". Esto tiene un número importante de
ventajas:
3. Universidad de El Salvador MPLS usando software libre
3
El despacho de paquetes en MPLS puede ser hecho por routers con la capacidad de
inspeccionar las etiquetas y reemplazarlas, pero sin capacidad de analizar headers de
paquete a nivel de red, o al menos sin poder hacerlo a la velocidad adecuada.
Como a cada paquete se le asigna su etiqueta al ingresar a la red, el router de ingreso a
la red puede utilizar para asignar la etiqueta cualquier información relativa al paquete,
aún información no proveniente del header de nivel de red.
Es sencillo establecer decisiones de enrutamiento en base al router de ingreso a la red,
cosa imposible en enrutamiento convencional. Las consideraciones que determinan la
asignación de un paquete a una FEC pueden ser muy complejas sin impacto en los
Routers del "core" que solo reciben y despachan los paquetes etiquetados.
Se pueden establecer reglas de precedencia en las FEC, de forma de aplicar Clase de
Servicio al tráfico manejado. Esta técnica permite el etiquetado de paquetes de
cualquier protocolo de nivel de red, por ello se la denomina "Multiprotocolo".
Ventajas del uso de MPLS
La conmutación de paquetes mediante el uso de etiquetas es un proceso más
rápido que el encaminamiento basado en el análisis de la cabecera.
Se admite mayor complejidad en el proceso de clasificación, sin que ésto tenga
impacto en los dispositivos de encaminamiento intermedios, ya que estos solo
se encargan de encaminar paquetes etiquetados.
MPLS simplifica las tareas de monitorización del tráfico, ya que los paquetes
pertenecientes a una misma clase de equivalencia FEC son fácilmente
identificables gracias a su etiqueta.
Desventajas del uso de MPLS
Si bien la posibilidad de apilar múltiples etiquetas aporta beneficios indudables,
el incremento de la proporción de cabecera transportada contribuye a reducir el
rendimiento de la red.
MPLS está limitado al ámbito de conectividad de la Red del proveedor de
Servicios.
4. Universidad de El Salvador MPLS usando software libre
4
Identificar mediante una etiqueta la calidad de servicio deseada no implica que
esta solicitud se satisfaga. Es imprescindible que las tecnologías de red
subyacentes rovean los mecanismos necesarios para garantizar dicha calidad.
Requisitosde Instalación:
Tener instalado debian lenny
Descargar linux-image-2.6.35.13-mpls1.980_i386.deb
Descargar linux-headers-2.6.35.13-mpls1.980_i386.deb
Descargar iptables-1.4.11.1-1-mpls_i386.deb
Descargar iproute-2.6.39-mpls_i386.deb
Pasos para la instalación:
Colocar todoslos archivos que descargodentro de una sola carpeta.
Abrir una terminal y entrar como superusuario:
Descomprimir los paquetes descargadose instalarlos
#dpkg –i *.deb
Si observa algúnproblemade dependencias realizar el siguiente paso:
#apt-get –f install
Si desea instalar cada paquete por separadoescribir en consola
#dpkg -i linux-image-2.6.35.13-mpls1.980_i386.deb
#dpkg –i linux-headers-2.6.35.13-mpls1.980_i386.deb
#dpkg –i iptables-1.4.11.1-1-mpls_i386.deb
#dpkg –i iproute-2.6.39-mpls_i386.deb
De esta forma tendrá parchadosu kernel mpls y está listo paraser usado, paraverificar
el soporte de MPLS escriba en consola
dmesg | grep MPLS
deberá observarlo siguiente:
MPLS: versión1.980
MPLS: protocolodriver interface
5. Universidad de El Salvador MPLS usando software libre
5
MPLS: ipv4 over MPLS support
MPLS: ipv6 over MPLS support
Comandos básicospara el usode MPLS
Crear unaentrada de NHLFE añadir la etiqueta 1000y reenviar paquetes a la dirección
10.0.0.3utilizando la interfaz eth1.
Mapa de una FEC a unNHLFE, para usaren realidad el NHLFE creado.
Crea una nueva entrada en la
tabla NHLFE
Instrucción de NHLFE
Agrega una nueva etiqueta
en la pila de etiquetas
EncapsulamientoEthernet
Valor de la etiqueta
Camino alsiguientesalto
Interfaz de salida
Protocolode capa 3
IP del siguiente salto
Comando
MPLS
Agregar
Nueva llave: valor que es
devuelto si el comando es
exitoso
# mpls nhlfe add key 0 instructions push gen 1000 nexthop eth1 ipv4 10.0.0.3
#ip route add 192.168.1.0/24 via 10.0.0.3 mpls 0x2
Comando ip
Agregar
via
Modifica la tabla de encaminamiento
Dirección de red de destino
obliga a la FEC a utilizar este
NHLFE
la clavequeidentifica
el NHLFE
Direccion ipdelsiguientesalto
6. Universidad de El Salvador MPLS usando software libre
6
Establecer un labelspace para el router que espera paquetes MPLS a través de una
interfaz.
Agregueuna entradaa la tabla ILM y lista unaetiqueta esperada.
Valor del labelspace
#mpls ilm add label gen 1000 labelspace 0
Comando MPLS
Etiqueta de entrada
Valor de la etiqueta entrante
Palabra clave
Valor del labelspace
Asocia un ilm con un labelspace
Agregar
Encapsulación Ethernet
configurar las interfaces a
un labelspaceespecífica
# mpls labelspace set dev eth0 labelspace 0
Comando MPLS
Palabra clave
Palabra clave
Interfaz de entrada de paquetes mpls
Palabra clave
7. Universidad de El Salvador MPLS usando software libre
7
Hacer el cambio de etiquetas
Comando mpls
EncapsulamientoEthernet
Agregar
#mpls xc add ilm_label gen 1000 ilm_labelspace 0 nhlfe_key 0x2
Palabra clave
Valor del labelspace
enlacea unNHLFE
clave NHLFE utilizada
Especificación de etiqueta
entrante
Cambio de Etiqueta
Valor de la etiqueta entrante
8. Universidad de El Salvador MPLS usando software libre
8
Ejercicio: MPLS IPv4
Descripción:
1. Se envían paquetes de C1con destino a C2 con un “Echo Request”.
2. El router R1clasifica los paquetesentrantes,añade la etiqueta 1000 y reenvía los
paquetes a R2.
3. R2 es el encargadodel cambio de etiquetas, de 1000a 1001y de enviar el paquete a
R3.
4. R3 descarta etiqueta 1001y encamina el paquete a C2.
5. C2 responde con un “Echo Replay” a C1.
6. El routerR3 es ahora un nodode entraday clasifica el paquete, luegoagrega la
etiqueta de 2000 para llegaral destino C1.
9. Universidad de El Salvador MPLS usando software libre
9
7. R2 es el encargado del cambio de etiquetas, de 2000 a 2001 y envía el paquete a E2.
8. El router R1 descarta la etiqueta y encamina el paquete a C1.
Configuraciones para cada máquina:
Cliente 1
echo ConfigurandoC1
ifconfig eth0 down
ifconfig eth0 172.16.10.10netmask255.255.255.0 up
echo "eth0 tiene la ip 172.16.10.10"
ip routeadd 172.16.20.0/24 dev eth0
Cliente 2
echo ConfigurandoC2
ifconfig eth0 down
ifconfig eth0 172.16.20.20 netmask255.255.255.0 up
echo "eth0 tiene la ip 172.16.20.20"
ip routeadd 172.16.10.0/24 dev eth0
Router 1
Script CONF.SH
echo ConfigurandoR1
ifconfig eth0 down
ifconfig eth1down
ifconfig eth0 10.0.2.2 netmask 255.255.255.0 up
ifconfig eth1172.16.10.2 netmask255.255.255.0 up
echo eth0tiene la ip 10.0.2.2
echo eth1tiene la ip 172.16.10.2
echo "1" >/proc/sys/net/ipv4/ip_forward
echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
Script MPLS.SH
echo configurandoMPLS para R1
echo 'trafico de A2->A1'
mpls labelspace set dev eth0 labelspace0
mpls ilm add labelgen 2001 labelspace 0
echo 'trafico de A1->A2'
var=`mpls nhlfe add key 0 instructionspushgen 1000 nexthopeth0 ipv4 10.0.2.3| grep
key |cut -c 17-26`
ip routeadd 172.16.20.0/24 via 10.0.2.3 mpls$var
10. Universidad de El Salvador MPLS usando software libre
10
Router 2
Script CONF.SH
echo Configurandorouter2
ifconfig eth2 down
ifconfig eth0 down
ifconfig eth2 10.0.2.3 netmask 255.255.255.0 up
echo eth2 tiene la ip 10.0.2.3
ifconfig eth0 10.0.6.3netmask 255.255.255.0 up
echo eth0tiene la ip 10.0.6.3
echo "1" >/proc/sys/net/ipv4/ip_forward
echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
Script MPLS.SH
echo Configurandorouter2
echo 'A1->A2'
#Cambiando etiqueta entrante1000 a 1001
mpls labelspace set dev eth2 labelspace 0
mpls ilm add labelgen 1000 labelspace0
var=`mpls nhlfe add key 0 instructionspushgen 1001nexthop eth0 ipv4 10.0.6.4 |grep
key | cut -c 17-26`
mpls xc add ilm_label gen 1000ilm_labelspace 0 nhlfe_key $var
echo 'A2->A1'
#Cambiando etiqueta entrante2000 a 2001
mpls labelspace set dev eth0 labelspace0
mpls ilm add labelgen 2000 labelspace0
var=`mpls nhlfe add key 0 instructionspushgen 2001 nexthop eth2 ipv4 10.0.2.2 | grep
key |cut -c 17-26`
mpls xc add ilm_label gen 2000 ilm_labelspace 0 nhlfe_key $var
Router 3
Script CONF.SH
echo Configurandorouter3
ifconfig eth0 down
ifconfig eth1down
ifconfig eth0 10.0.6.4 netmask255.255.255.0 up
echo eth0tiene la ip 10.0.6.4
ifconfig eth1172.16.20.4 netmask255.255.255.0 up
echo eth1tiene la ip 172.16.20.4
11. Universidad de El Salvador MPLS usando software libre
11
echo "1" >/proc/sys/net/ipv4/ip_forward
echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
Script MPLS.SH
echo ConfigurandoMPLSen Router3
echo 'A2->A1'
var=`mpls nhlfe add key 0 instructionspushgen 2000 nexthop eth5 ipv4 10.0.6.3 |grep
key | cut -c 17-26`
ip routeadd 172.16.10.0/24 via 10.0.6.3mpls $var
echo 'A1->A2'
mpls labelspace set dev eth5 labelspace0
mpls ilm add labelgen 1001 labelspace0
12. Universidad de El Salvador MPLS usando software libre
12
Ejercicio: MPLS IPv6
Configuraciones para cada máquina:
Cliente 1
ifconfig eth0 inet6 add 2001:db8:4000::10/64up
ip -6 route add 2001:db8:3000::/64 via 2001:db8:4000::2
Cliente 2
ifconfig eth0 inet6 add 2001:db8:3000::20/64up
ip -6 route add 2001:db8:4000::/64via 2001:db8:3000::4
Router 1
Script CONF.SH
/etc/init.d/network-manager stop
ifconfig eth0 inet6 add 2001:db8:1000::2/64up
ifconfig eth1 inet6 add 2001:db8:4000::2/64up
echo"1" >/proc/sys/net/ipv6/conf/all/forwarding
ScriptMPLS.SH
echoMPLS Para R1
echo'trafico de A2->A1'
mplslabelspace set dev eth0 labelspace 0
mplsilm add label gen2001 labelspace 0
13. Universidad de El Salvador MPLS usando software libre
13
echo'trafico de A1->A2'
var=`mplsnhlfe add key 0 instructions push gen 1000 nexthop eth0 ipv6 2001:db8:1000::3 |grep
key |cut-c 17-26`
ip -6 route add 2001:db8:3000::/64 via 2001:db8:1000::3 mpls $var
Router 2
ScriptCONF.SH
/etc/init.d/network-manager stop
ifconfig eth2 inet6 add 2001:db8:1000::3/64up
ifconfig eth0 inet6 add 2001:db8:2000::3/64up
echo"1" >/proc/sys/net/ipv6/conf/all/forwarding
ScriptMPLS.SH
echoMPLS para R2
echo'A1->A2'
mplslabelspace set dev eth2 labelspace 0
mplsilm add label gen1000 labelspace 0
var=`mplsnhlfe add key 0 instructions push gen 1001 nexthopeth0 ipv6 2001:db8:2000::4| grep
key |cut -c17-26`
mpls xcadd ilm_label gen 1000 ilm_labelspace 0 nhlfe_key$var
echo'A2->A1'
mplslabelspace set dev eth0 labelspace 0
mplsilm add label gen2000 labelspace 0
var=`mplsnhlfe add key 0 instructions push gen 2001 nexthop eth2 ipv6 2001:db8:1000::2 |grep
key |cut-c 17-26`
mpls xcadd ilm_label gen 2000 ilm_labelspace 0 nhlfe_key$var
Router 3
ScriptCONF.SH
ifconfig eth0 inet6 add 2001:db8:2000::4/64up
ifconfig eth2 inet6 add 2001:db8:3000::4/64 up
echo"1" >/proc/sys/net/ipv6/conf/all/forwarding
ScriptMPLS.SH
echoMPLS para E2
echo'A2->A1'
mplslabelspace set dev eth0 labelspace 0
mplsilmaddlabel gen 1001 labelspace 0
echo'A1->A2'
var=`mplsnhlfe add key 0 instructions push gen 2000 nexthop eth0 ipv6 2001:db8:2000::3 |
grep key |cut-c 17-26`
ip -6 route add 2001:db8:4000::/64via 2001:db8:2000::3mpls $var
14. Universidad de El Salvador MPLS usando software libre
14
CONCLUSION
La conmutación por Etiquetas Multiprotocolo (MPLS) combina el enrutamiento de la
capa de red con la conmutación de la capa de enlace para el envío de paquetes
utilizando etiquetas cortas de longitud fija. MPLS ofrece nuevos servicios los cuales no
podían ser soportados con las técnicas IP convencionales, es decir, es la evolución
natural de las redes existentes que necesitan converger en sistemas que puedan
soportar las capacidades necesarias que el crecimiento de Internet implica. MPLS es un
protocolo que sigue el principio de ser compatible con lo que existe en el mercado
actualmente, con posibilidad de sustituir estas infraestructuras en el futuro sin
problemas.
15. Universidad de El Salvador MPLS usando software libre
15
ANEXOS
Link de descarga de archivos .deb
http://sourceforge.net/projects/mpls-linux/files/mpls-linux/debian/lenny