Tpicos Avanzados en Redes y Telecomunicaciones
Universidad Nacional de Asuncin
Profesor: Dr. Juan Carlos Fabero Jimnez (UCM)
Contenidos
Tema 1: Virtualizacin. User-Mode-Linux (UML) Tema 2: IP de nueva generacin: IPv6 Tema 3: Encaminamiento en Sistemas Autnomos. OSPFv2 y OSPFv3
Tema 4: Encaminamiento entre Sistemas Autnomos: BGPv4
Tema 5: Encaminamiento basado en polticas Tema 6: VoIP Tema 7: Multicast
Juan Carlos Fabero
Universidad Nacional de Asuncin
Tecnologas Avanzadas de Redes y Telecomunicaciones
User Mode Linux
Profesor: Dr. Juan Carlos Fabero Jimnez (UCM)
Virtualizacin
Introduccin
Virtualizacin
Objetivo:
Disponer de diferentes sistemas operativos sobre una nica mquina, incluso ejecutndose de forma simultnea. Hardware. Supervisor (Hypervisor) S.O.
S.O. S.O. Supervisor Hw S.O.
Elementos:
Juan Carlos Fabero
Universidad Nacional de Asuncin
Virtualizacin
Alternativas
Wine ([Link] VMWare ([Link] Xen ([Link] VirtualBox (VBox) ([Link] User-Mode-Linux ([Link]
Juan Carlos Fabero
Universidad Nacional de Asuncin
Wine
Historia
Nace en 1993. Es el primer proyecto de virtualizacin para entornos Linux. Simula la API de win32 para que aplicaciones Windows puedan ejecutarse sobre GNU/Linux. Bajo rendimiento. Documentacin incompleta de win32. Difcil portar aplicaciones.
Objetivo
Dificultades
Juan Carlos Fabero
Universidad Nacional de Asuncin
VMWare
Virtualizacin
Virtualizacin por software. Windows GNU/Linux MacOS (sobre Intel) GNU/Linux Windows (varias versiones) Etc.
Sistemas anfitriones
Sistemas clientes
Juan Carlos Fabero
Universidad Nacional de Asuncin
XEN
Paravirtualizacin
Mejora el rendimiento (disminuye la penalizacin <8%). Es necesario adaptar el S.O. cliente a la API de Xen. Disponible para:
Linux NetBSD CentOS
Sistemas clientes:
Linux FreeBSD NetBSD CentOS Windows XP (pero no se puede distribuir pblicamente)
Virtualizacin
Necesita soporta hardware (Vanderpool / Pacfica) Puede ejecutar S.O. clientes sin modificar.
Universidad Nacional de Asuncin
Juan Carlos Fabero
VirtualBox
Creado por Innotek (Alemania). Pas a ser propiedad de Sun Microsystems, adquirido recientemente por Oracle. Software privativo gratuito para evaluacin y uso personal. Disponible versin Software Libre (VirtualBox OSE, Open Source Edition). Virtualizacin software. Sistemas anfitriones:
Windows. GNU/Linux. MacOS.
Sistemas clientes:
Windows. GNU/Linux. MacOS. Etc.
Universidad Nacional de Asuncin
Juan Carlos Fabero
User Mode Linux (UML)
Linux sobre Linux. Virtualizacin por software. Soporte hardware (Vanderpool / Pacfica). Permite ejecutar mltiples ncleos (clientes) sobre cualquier distribucin GNU/Linux (anfitrin). Sistema de ficheros virtual. Soporte para sistemas de ficheros Copy-On-Write (cow).
Juan Carlos Fabero
Universidad Nacional de Asuncin
Virtualizacin
User Mode Linux (UML)
UML
Elementos
Sistema de ficheros virtual (sobre un fichero de la mquina anfitriona). Ncleo (ejecutable) de la mquina virtual. En Debian:
#aptgetinstallusermodelinuxumlutilitiesumlrun debootstrapbridgeutils
Instalacin
Creacin del sistema de ficheros
$ddif=/dev/zeroof=root_fsbs=1Mseek=512count=0 $ddif=/dev/zeroof=swapbs=1Mseek=64count=0
Juan Carlos Fabero
Universidad Nacional de Asuncin
UML
Instalacin del sistema base
$ /sbin/mkfs.ext3 -F root_fs $ /sbin/mkswap swap # mount -o loop root_fs /mnt # debootstrap squeeze /mnt [Link] # vi /mnt/etc/fstab
/dev/ubd/0 /dev/udb/1 proc /dev/udb/2 / none /proc /cdrom ext3 swap proc iso9660 defaults sw defaults ro,user,noauto 0 0 0 0 1 0 0 0
# cp -r /usr/lib/uml/modules/2.6.32 /mnt/lib/modules
Juan Carlos Fabero
Universidad Nacional de Asuncin
UML
Instalacin de paquetes adicionales
# chroot /mnt apt-get install openssh-client openssh-server quagga bind9 dnsutils thttpd telnet mrd6 netcat netcat6 dbeacon # umount /mnt
umount: /mnt: device is busy
# lsof /mnt
COMMAND PID Named USER FD TYPE DEVICE SIZE NODE cwd DIR 7,0 1024 4916 NAME /mnt/var/cache/bind 5246 bind
# kill 5246 # umount /mnt
Juan Carlos Fabero
Universidad Nacional de Asuncin
UML
Configuracin de la mquina virtual
# mount -o loop root_fs /mnt # vi /mnt/etc/securetty (y aadir la lnea:) tty0 # vi /mnt/etc/inittab Cambiar ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now por ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -h now Y 1:2345:respawn:/sbin/getty 38400 tty1 por 1:2345:respawn:/sbin/getty 38400 tty0 Y borrar las lneas 2:23:respawn:/sbin/getty 38400 tty2 hasta 6:23:respawn:/sbin/getty 38400 tty2
Juan Carlos Fabero
Universidad Nacional de Asuncin
UML
Configuracin de la mquina virtual
Modificar el fichero /etc/init.d/[Link]
do_start () { # If hostname has been passed as parameter to command line a=`dmesg | grep "Kernel command line"` b=${a/*hostname=/} h=${b/ */} [ -n "$a" ] && HOSTNAME=$h [ -z "$HOSTNAME" ] && [ -f /etc/hostname ] && HOSTNAME="$(cat /etc/hostname)"
Juan Carlos Fabero
Universidad Nacional de Asuncin
UML
Probar la mquina virtual
$ linux umid=uml1 mem=64M ubda=uml1_fs,root_fs ubdb=swap devfs=mount hostname=uml1 con=xterm
Juan Carlos Fabero
Universidad Nacional de Asuncin
UML
Fichero Copy-on-Write (Cow)
Varias mquinas virtuales pueden compartir gran parte de su configuracin. Para ahorrar espacio en disco, todas ellas utilizan un solo sistema de ficheros base y almacenan su configuracin particular en un archivo cow. Los archivos cow dependen de su sistema base.
Base
Juan Carlos Fabero
cow
Universidad Nacional de Asuncin
UML
Copia del sistema de ficheros base
Una vez creado y configurado el sistema de ficheros base, debe copiarse a su instalacin definitiva. Es un fichero disperso (sparse).
$ ls -ls root_fs
273300 -rw-r--r-- 1 juan juan 536870912 may 1 14:27 root_fs
# cp --sparse=auto root_fs /usr/local/etc/uml/root_fs
Configuracin de red
La comunicacin de las mquinas virtuales se realiza a travs de interfaces tun/tap (tneles IP/Ethernet). Esos interfaces pertenecen al superusuario (root), quien debe permitir el acceso al usuario que ejecutar las mquinas virtuales. Se proporcionan dos parejas de scripts auxiliares:
/usr/local/bin/ifcreate y /usr/local/bin/ifdel /usr/local/bin/ifparse y /usr/local/bin/ifparsedel
Juan Carlos Fabero
Universidad Nacional de Asuncin
UML
Configuracin bsica de red
Se emplean los scripts ifcreate / ifdel. Uso:
# /usr/local/bin/ifcreate juan
Creado switch virtual umlbridge Creado switch virtual vifbridge con direccin de red [Link] Set 'vif1' persistent and owned by uid 1000 Set 'uml1.0' persistent and owned by uid 1000 Set 'uml1.1' persistent and owned by uid 1000 Set 'uml1.2' persistent and owned by uid 1000 ... Set 'vif7' persistent and owned by uid 1000 Set 'uml7.0' persistent and owned by uid 1000 Set 'uml7.1' persistent and owned by uid 1000 Set 'uml7.2' persistent and owned by uid 1000 Set 'uml7.3' persistent and owned by uid 1000
Juan Carlos Fabero
Universidad Nacional de Asuncin
UML
Configuracin bsica de red
Juan Carlos Fabero
Universidad Nacional de Asuncin
UML
Configuracin avanzada de red
Se emplean los scripts ifpaser / ifparsedel Por ejemplo:
# /usr/local/bin/ifparse sdef
sdef: user juan defsw umls0 defsw umls1 defsw umls2 defsw umls3
uml1.1 uml2.1 uml3.0 uml4.0
uml2.0 uml3.1 uml4.1 uml1.0
Juan Carlos Fabero
Universidad Nacional de Asuncin
UML
Preparacin del entorno
Creacin del usuario sin privilegios:
# adduser juan
Creacin de los directorios para los sistemas cow de las mquinas virtuales:
$ mkdir UML $ cd UML $ for i in 1 2 3 4 5 6 7 ; do mkdir uml$i ; done
Crear la memoria de intercambio para cada mquina:
$ for i in uml* ; do /usr/local/bin/creaswap $i/swap ; done
Juan Carlos Fabero
Universidad Nacional de Asuncin
UML
Lanzar las mquinas virtuales
$ for i in 1 2 3 ; do /usr/local/bin/lanza $i ; done
Juan Carlos Fabero
Universidad Nacional de Asuncin
Virtualizacin
Wireshark
UML
Wireshark
Herramienta grfica de inspeccin de trfico. Por defecto, coloca el interfaz de red en modo promscuo. Necesita privilegios de superusuario. Inicio: # wireshark [-i iface] [-k] & Ejemplo: # wireshark -i umlbridge -k &
Juan Carlos Fabero
Universidad Nacional de Asuncin
UML
Wireshark
Juan Carlos Fabero
Universidad Nacional de Asuncin
UML
Wireshark
Juan Carlos Fabero
Universidad Nacional de Asuncin
Virtualizacin
Prctica
UML
Prctica: mensajes ICMP Redirect
Arrancar 3 mquinas virtuales y crear la configuracin de la figura. La mquina uml1 debe usar como encaminador predeterminado a uml2.
uml1# ip route add default via [Link]
Juan Carlos Fabero
Universidad Nacional de Asuncin
UML
Prctica: mensajes ICMP Redirect
Configurar las rutas de uml2 y uml3
uml2# ip route add [Link]/24 via [Link] uml3# ip route add [Link]/24 via [Link]
Juan Carlos Fabero
Universidad Nacional de Asuncin
UML
Prctica: mensajes ICMP Redirect
Activar el reenvo en uml2 y uml3
uml2# sysctl -w net.ipv4.ip_forward=1 uml3# sysctl -w net.ipv4.ip_forward=1
Juan Carlos Fabero
Universidad Nacional de Asuncin
UML
Prctica: mensajes ICMP Redirect
Iniciar wireshark en la mquina anfitriona y escuchar en umlbridge. Hacer un trazado de ruta desde uml1 hasta uml3
uml1# traceroute -n [Link]
Juan Carlos Fabero
Universidad Nacional de Asuncin
UML
Prctica: mensajes ICMP Redirect
Modificar las variables [Link].eth0.accept_redirects , [Link].eth0.secure_redirects de uml1 y estudiar el resultado
Juan Carlos Fabero
Universidad Nacional de Asuncin
UML
Prctica: mensajes ICMP Redirect
Ver la tabla de rutas cache de uml1
# ip route show cache
Juan Carlos Fabero
Universidad Nacional de Asuncin