Está en la página 1de 16

Prá ti a 2

User Mode Linux (UML)

2.1. Introdu ión


User Mode Linux es un método de virtualiza ión que permite eje utar Linux sobre Linux. En esta
prá ti a aprenderemos a rear varias máquinas virtuales que puedan omuni arse entre sí a través del
sistema de interfa es tun/tap de GNU/Linux.

2.2. Instala ión


Aunque en el laboratorio ya tenemos ompleta la instala ión de las máquinas virtuales, des ribimos
el pro eso ompleto para poderlo ha er en otras máquinas, in luso en asa.
La instala ión en Debian pasa por instalar los paquetes user-mode-linux (el nú leo), uml-utilities,
debootstrap y openvswit h-swit h (para ongura ión de los puentes de red en el sistema antrión).
Para instalar estos paquetes en Debian:

# apt-get install user-mode-linux uml-utilities debootstrap openvswit h-swit h s reen

Una vez instalados ya tenemos el nú leo que vamos a utilizar para las máquinas virtuales y diversas
utilidades. Para instalar la distribu ión base de las máquinas virtuales ne esitaremos bien los CD de
instala ión, bien a eso a Internet. Emplearemos para ello la utilidad debootstrap.
Lo primero es generar un  hero donde más tarde rearemos el sistema de  heros para la máquina
virtual. Por suerte, Linux nos permite simular un sistema de  heros sobre un  hero ordinario. Este
 hero podrá ser montado on la orden mount y la op ión -o loop.

2.2.1. Crea ión del sistema de  heros para la máquina virtual


Hemos de de idir uánto espa io deseamos reservar para el sistema de la máquina virtual. En prin ipio,
nos bastarán on 1024MB para el sistema de  heros (que llamaremos root_fs) y 64MB para el  hero
de inter ambio (swap).

5
6 Prá ti a 2. User Mode Linux (UML)

Emplearemos la orden dd para rear ambos  heros, de la siguiente forma:

$ dd if=/dev/zero of=root_fs bs=1M seek=1024 ount=0


$ dd if=/dev/zero of=swap bs=1M seek=64 ount=0

Una parti ularidad que poseen los  heros en los sistemas ext2, ext3, ext4 y reiserfs es que son sparse
(dispersos), es de ir, el sistema operativo omprime largas adenas de eros, de manera que el espa io
que o upan realmente en dis o es mu ho menor que el nominal. Podemos omprobarlo on la op ión -sl
de la orden ls:

$ ls -sl root_fs
256 -rw-r--r-- 1 umusr umusr 1016870912 2007-11-10 09:48 root_fs

Vemos que el  hero o upa, en realidad, sólo 256KB, en lugar de 1GB.


Ahora debemos rear la estru tura del sistema de  heros:

$ /sbin/mkfs.ext4 -F root_fs
mke2fs 1.42.12 (29-Aug-2014)
Des artando los bloques del dispositivo: he ho
Se está reando El sistema de fi heros on 262144 4k bloques y 65536 nodos-i

UUID del sistema de fi heros: 642419d4-df65-4f5f-ab31-3e50 09edb3


Respaldo del superbloque guardado en los bloques:
32768, 98304, 163840, 229376

Reservando las tablas de grupo: he ho


Es ribiendo las tablas de nodos-i: he ho
Creando el fi hero de transa iones (8192 bloques): he ho
Es ribiendo superbloques y la informa ión ontable del sistema de fi heros: he ho

La op ión -F sirve para que la orden mkfs.ext4 no proteste al dete tar que el root_fs no es un
dispositivo de bloques.
Ahora, el sistema de inter ambio:

$ /sbin/mkswap swap

2.2.2. Instala ión del sistema base


Ahora que ya tenemos reado el sistema de  heros va ío, debemos instalar los paquetes bási os para
el arranque de la máquina virtual. Para ello utilizaremos debootstrap. Esta orden nos permite instalar
el sistema base dentro de un dire torio on reto, que se le pasa omo parámetro. Lo primero que haremos
será, pues, montar el sistema de  heros va ío que a abamos de rear sobre el dire torio /mnt:

# mount -o loop root_fs /mnt


Instala ión 2.2 7

A ontinua ión, de idiremos qué distribu ión queremos instalar. En nuestro aso hemos elegido la
buster, que es la distribu ión stable en julio de 2019 (Debian 10). Además, hemos optado por ha er

la instala ión desde Internet, aunque también podríamos ha erlo partiendo de los CD de instala ión.
Por tanto, ne esitamos un repositorio a partir del ual nos bajaremos los paquetes del sistema base.
Hemos sele ionado http://ftp.debian.org/debian (lo más fá il es elegir uno de los que tengamos en
/et /apt/sour es.list). Así, la orden que debemos eje utar es la siguiente:

# debootstrap buster /mnt http://ftp.debian.org/debian


I: Retrieving InRelease
I: Retrieving Release
I: Retrieving Release.gpg
I: Che king Release signature
I: Valid Release signature (key id 6D33866EDD8FFA41C0143AEDDCC9EFBF77E11517)
I: Retrieving Pa kages
I: Validating Pa kages
I: Resolving dependen ies of required pa kages...
I: Resolving dependen ies of base pa kages...
I: Found additional required dependen ies: libaudit- ommon libaudit1 libbz2-1.0 lib ap-ng0 libdb5.3 l
I: Found additional base dependen ies: dmsetup gnupg-agent libapparmor1 libassuan0 libbsd0 lib ap2 li
I: Che king omponent main on http://ftp.debian.org/debian...
I: Retrieving liba l1 2.2.52-3+b1
I: Validating liba l1 2.2.52-3+b1
...
I: Configuring tasksel-data...
I: Configuring lib -bin...
I: Configuring systemd...
I: Base system installed su essfully.

A partir de este momento, debootstrap se one tará al repositorio y omenzará a bajar los paquetes
ne esarios, y a rear todo el sistema de arranque dentro del dire torio /mnt (que es donde está montado
nuestro sistema de  heros para la máquina virtual). Una vez nalizado, tendremos todavía que ongurar
algunas osas bási as de nuestra máquina virtual. Por ejemplo, deberemos rear un fstab mínimo que
permita montar los sistemas de  heros durante el arranque, y opiar los módulos del nú leo en el
dire torio ade uado.
Para ongurar el fstab:
# vi /mnt/et /fstab

y es ribimos lo siguiente:
/dev/ubda / ext4 defaults 0 1
pro /pro pro defaults 0 0
none /mnt hostfs /tmp/shared
8 Prá ti a 2. User Mode Linux (UML)

Los dispositivos /dev/ubdX son los equivalentes a /dev/hdX ó /dev/sdX de ualquier distribu ión Linux.
El dispositivo raíz está siempre en /dev/ubda. Es ne esario rear estos dispositivos en el sistema de
 heros re ién reado de manera que estén disponibles para la máquina virtual. Lo podemos ha er así:
# mkdir /mnt/dev/ubd
# for i in {0..7} ; do
mknod /mnt/dev/ubd/$i b 98 $(( $i*16 )) ;
done

Ahora deberemos instalar los módulos. Para ello:


# p -r /usr/lib/uml/modules/4.19.37 /mnt/lib/modules/

En este aso tenemos instalada la versión 4.19.37 del nú leo de uml, pero eso puede ambiar depen-
diendo de uál sea la versión a tual ontenida en el paquete user-mode-linux (se puede averiguar on
dpkg -L user-mode-linux)

2.2.3. Instala ión de paquetes adi ionales


Para el desarrollo de las prá ti as ne esitaremos algunos paquetes adi ionales, que deberemos instalar:

# hroot /mnt apt-get install openssh- lient openssh-server quagga \


bind9 dnsutils telnet telnetd net at vlan \
mrd6 dbea on ssmping is -dh p- lient is -dh p-server

The following additional pa kages will be installed:


bind9-host bind9utils bzip2 a- ertifi ates dbus dh-python file geoip-database
...
Suggested pa kages:
bind9-do resolv onf ufw bzip2-do librrds-perl
...
The following NEW pa kages will be installed:
bind9 bind9-host bind9utils bridge-utils bzip2 a- ertifi ates dbea on
...
0 upgraded, 124 newly installed, 0 to remove and 0 not upgraded.
Need to get 38.2 MB of ar hives.
After this operation, 160 MB of additional disk spa e will be used.
Do you want to ontinue? [Y/n℄
Get:1 http://ftp.debian.org/debian buster/main amd64 perl-modules-5.24 all 5.24.1-3+deb9u2 [2724 kB℄
...
Pro essing triggers for a- ertifi ates (20161130+nmu1) ...
Updating ertifi ates in /et /ssl/ erts...
0 added, 0 removed; done.
Congura ión de la máquina virtual 2.3 9

Running hooks in /et / a- ertifi ates/update.d...


done.
Pro essing triggers for systemd (232-25+deb9u2) ...

Si apare e un error rela ionado on bind9, se produ e porque el demonio named no ha podido ini iarse,
pero no debe preo uparnos.
A la hora de desmontar el sistema de  heros, a ve es nos informa de que no es posible pues está
o upado. Ello puede deberse a que algún pro eso lo esté utilizando. Podemos emplear la orden lsof para
averiguar uál es, y matarlo:
# umount /mnt
umount: /mnt: devi e is busy
umount: /mnt: devi e is busy
# lsof /mnt
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
named 5246 bind wd DIR 7,0 1024 49168 /mnt/var/ a he/bind
named 5246 bind rtd DIR 7,0 1024 2 /mnt
named 5246 bind txt REG 7,0 375148 41301 /mnt/usr/sbin/named
...
# kill 5246
# umount /mnt

Por un error en el empaquetado de Debian, el programa de utilidad port-helper, pertene iente al


paquete uml-utilities, se instala en la ruta /usr/lib64/uml/port-helper, mientras que el paquete
user-mode-linux espera en ontrarlo en /usr/lib//uml/port-helper, omo podemos ver al eje utar la
siguiente orden:
$ strings $(whi h linux) | grep port-helper
/usr/lib//uml/port-helper

por lo que tendremos que ha er un enla e simbóli o en la máquina antriona:


# ln -s /usr/lib64/uml/port-helper /usr/lib/uml/port-helper

2.3. Congura ión de la máquina virtual


Modi aremos los ar hivos /et /se uretty, /et /network/interfa es y /et /passwd en el sistema
de  heros re ién reado. Para ello será ne esario volver a montar el sistema de  heros, si es que lo
habíamos desmontado. En /et /se uretty1 añadimos la línea:
tty0
1 De la máquina virtual, es de ir, que tendremos que añadir el punto de montaje a esta ruta si lo estamos ha iendo desde
la máquina antriona. Lo más sen illo es eje utar en la máquina antriona la orden hroot /mnt antes de seguir on la
ongura ión y así evitamos tener que añadir /mnt/ a la ruta de ada ar hivo que vamos a modi ar.
10 Prá ti a 2. User Mode Linux (UML)

También debemos asegurarnos de que en el ar hivo /et /network/interfa es gura la deni ión
del loopba k:

auto lo
ifa e lo inet loopba k

Podemos eliminar la ontraseña del usuario root editando el ar hivo /et /passwd y dejando la línea
orrespondiente omo sigue:

root::0:0:root:/root:/bin/bash

2.3.1. Sistema init.d


Para sistemas basados en init.d debemos ha er las siguientes modi a iones:
En /et /inittab modi amos dos líneas:

a:12345: trlaltdel:/sbin/shutdown -t1 -a -r now

por

a:12345: trlaltdel:/sbin/shutdown -t1 -a -h now

1:2345:respawn:/sbin/getty 38400 tty1

por

1:2345:respawn:/sbin/getty 38400 tty0

y omentar las siguientes líneas (las que omienzan por 2: hasta 6:) para que no nos muestre más de
una onsola por ada máquina virtual.
De esta manera estamos permitiendo el a eso a root en la onsola tty0, y también estamos indi ando
que la onsola virtual número 1 irá sobre tty0 (la misma en la que apare en los mensajes de arranque).
Para fa ilitar la identi a ión de las máquinas virtuales, también se puede modi ar el ar hivo
/et /init.d/hostname.sh para que muestre algo omo esto:

do_start() {
# If hostname has been passed as parameter to ommand line
a=$(dmesg | grep "Kernel ommand line")
b=${a##*hostname=}
h=${b%% *}
[ -n "$a" ℄ && HOSTNAME=$h

[ -z "$HOSTNAME" ℄ && [ -f /et /hostname ℄ && HOSTNAME="$( at /et /hostname)"


Congura ión de la máquina virtual 2.3 11

# Keep urrent name if /et /hostname is missing.


[ -z "$HOSTNAME" ℄ && HOSTNAME="$(hostname)"
# And set it to 'lo alhost' if no setting was found
[ -z "$HOSTNAME" ℄ && HOSTNAME=lo alhost
...

2.3.2. Sistema systemd


Para los sistemas GNU/Linux más re ientes se ha migrado al sistema systemd, por lo que los pasos
ahora son los siguientes:
Lo primero, es muy importante ha er hroot al dire torio de instala ión:
# hroot /mnt

Para que sólo tengamos una onsola por máquina:


# system tl enable onsole-getty.servi e
# system tl mask getty-stati .servi e
# system tl disable getty.servi e

Para que podamos apagar la máquina virtual desde la antriona, mediante la utilidad uml_m onsole,
hay que enlazar trl-alt-del.target a powero.target:
# d /lib/systemd/system
# ln -sf poweroff.target trl-alt-del.target

Por último, para que el nombre de ada máquina sea el deseado, deberemos rear una unidad llamada
firstboot:

# d /lib/systemd/system
# at <<EOF > firstboot.servi e
[Unit℄
ConditionPathExists=|!/et /hostname
Before=network-pre.target
After=network-pre.target
DefaultDependen ies=true

[Servi e℄
Type=oneshot
Exe Start=/bin/bash - "/usr/lo al/sbin/firstboot.sh"
RemainAfterExit=yes

[Install℄
WantedBy=network.target
12 Prá ti a 2. User Mode Linux (UML)

EOF

# d /usr/lo al/sbin
# at <<EOF > firstboot.sh
name=$(dmesg | grep "Kernel ommand line" | sed -e 's/.*hostname=//;s/ .*//')

if [ -z $name ℄ ; then
exit 0
fi

e ho $name > /et /hostname


hostname $name
EOF

# system tl enable firstboot

Y ya podemos salir del hroot:

# exit

2.4. Fi heros COW (Copy on Write)


Cuando tenemos mu has máquinas virtuales, es normal que todas ompartan gran parte de su ongu-
ra ión. Si tuviéramos un sistema de  heros para ada una de ellas re ería demasiado el espa io ne esario
en dis o. UML permite emplear  heros COW (Copy on Write, opia en es ritura). Estos  heros se
onstruyen a partir de una opia maestra y sólo guardan las modi a iones que hagamos respe to de
esa opia maestra. De esta manera, todas las máquinas virtuales pueden ompartir una misma opia del
sistema de  heros y guardar su ongura ión espe í a en el  hero ow.
Hay que tener en uenta que el  hero ow depende del sistema de  heros maestro (situado en
/usr/lo al/et /uml/root_fs). Si realizamos ualquier modi a ión en éste, todos los ow que dependan
de él quedarán invalidados. Esto es importante si de idimos llevarnos nuestras máquinas virtuales, on
su ongura ión in luída, a otro omputador.

2.4.1. Modi a ión del tamaño del sistema de  heros


Supongamos que hemos reado un sistema de  heros de 512MB para la máquina virtual y nos damos
uenta de que se nos ha quedado pequeño. Es posible ampliar el espa io sin ne esidad de volver a instalar
el sistema base y todas las apli a iones desde ero. Podemos ampliarlo a, por ejemplo, 784MB, on los
siguientes pasos.
Supongamos que el sistema original lo tenemos en el  hero root_fs. Lo primero que haremos será
rear el nuevo  hero on la orden dd:
Fi heros COW (Copy on Write) 2.4 13

$ dd if=/dev/zero of=newroot_fs bs=1M seek=784 ount=0

Ya sabemos que el  hero que rea será disperso. Ahora vol amos el ontenido del sistema de  heros
original sobre el nuevo:

$ dd if=root_fs of=newroot_fs onv=notrun


$ /sbin/e2fs k -f newroot_fs
$ /sbin/resize2fs -p newroot_fs
$ /sbin/e2fs k -f newroot_fs

Y ya tenemos el nuevo sistema de  heros en newroot_fs. Antes de nada, deberíamos omprobar que
la máquina virtual arran a sin problemas:

$ linux umid=uml0 mem=64M ubda=newroot_fs ubdb=swap devfs=mount

Para apagar la máquina virtual, debemos entrar omo root (no requiere ontraseña) y eje utar:

# shutdown -h now

Si todo ha ido bien, ya podemos renombrar el nuevo sistema de  heros:

$ mv newroot_fs root_fs

2.4.2. Copia del sistema de  heros


Un problema on los  heros dispersos es que si intentamos realizar una opia de seguridad en, por
ejemplo, un CD o una memoria USB, los respe tivos sistemas de  heros de estos dispositivos no tienen
soporte para el tratamiento de  heros dispersos, por lo que pasan a o upar el tamaño ompleto. Esto
quiere de ir que si hemos denido nuestro root_fs on un tamaño de 512MB, aunque en realidad sólo
o upe 100MB, en el CD o en la llave USB o upará los 512MB. Para evitarlo, se puede guardar la imagen
omprimida on las órdenes bzip2 o gzip:

$ bzip2 -k root_fs
$ gzip - root_fs >root_fs.gz

La op ión -k indi a que se onserve el ar hivo original. Después de la eje u ión, tendremos también el
ar hivo root_fs.bz2 (o root_fs.gz si hemos usado gzip), que ya podremos guardar en nuestra memoria
USB o CD para llevarlo a otro omputador.
En aso de querer opiar la instala ión de las máquinas del laboratorio deberios opiar el ar hivo
/usr/lo al/et /uml/root_fs y los s ripts auxiliares situados en /usr/lo al/bin/.
14 Prá ti a 2. User Mode Linux (UML)

2.5. Congura ión de red


La omuni a ión de las máquinas virtuales on la máquina antriona y entre ellas se realiza a través
de las interfa es tun/tap (túneles IP/Ethernet respe tivamente). Di has interfa es debe rearlas el su-
perusuario y permitir su a eso al usuario que vaya a eje utar las máquinas virtuales. Se propor ionan
dos s ripts, if reate e ifparse para rear la red virtual, y otros dos, ifdel e ifparsedel para borrar
las interfa es virtuales.

2.5.1. Congura ión bási a


Mediante la orden:

# if reate umluser

se rea la red virtual bási a omo puede verse en la gura 2.1 En esta red, se rean 5 interfa es virtuales
Host
192.168.254.254/24

vifbridge
vif1 vif2 vif3

eth9 eth9 eth9

uml1 uml2 uml3


eth0 eth3 eth0 eth3 eth0 eth3
eth1 eth2 eth1 eth2 eth1 eth2

uml1.0 uml1.3 uml2.0 uml2.3 uml3.0 uml3.3

umlbridge

Figura 2.1: Red virtual bási a UML


para ada máquina virtual (y se permite un máximo de 7 máquinas virtuales). Por ejemplo, para la
máquina virtual uml1 se rean 5 interfa es virtuales, uml1.0, uml1.1, uml1.2, uml1.3 y uml1.9. Las 4
primeras se one tan al bridge virtual umlbridge, y uml1.9 se one ta on el bridge vifbridge. Estas
interfa es se aso iarán después on las interfa es eth0, eth1, eth2, eth3 y eth9 de la máquina virtual.
Es de ir, la interfaz uml1.0 de la máquina antriona se mapeará sobre la interfaz eth0 de la máquina
virtual uml1, y así su esivamente. De esta manera todas las máquinas virtuales que levantemos tendrán
sus interfa es one tadas al mismo bridge. Desde la máquina antriona podremos inspe ionar las omu-
ni a iones entre las máquinas virtuales viendo el trá o en la interfaz umlbridge mediante wireshark.
El puente vifbridge está reservado para omuni a iones entre la máquina antriona y las máquinas
virtuales, y no lo usaremos en estas prá ti as.
Para borrar las interfa es virtuales, emplearemos la orden:

# ifdel
Prepara ión del entorno 2.6 15

2.5.2. Congura ión avanzada


Mediante la orden:

# ifovsparse net. onf

se rea la red virtual denida en el ar hivo sdef. Por ejemplo, dada una ongura ión omo la de la
gura 2.2 deberemos denir el siguiente ar hivo net. onf:

uml1 uml2
eth0 eth3 eth0 eth3
eth1 eth2 eth1 eth2

umls0

umls3 umls1

umls2

eth1 eth2 eth1 eth2


eth0 eth3 eth0 eth3

uml4 uml3

Figura 2.2: Red virtual de propósito espe ial UML

defsw br12 uml1.1 uml2.0


defsw br23 uml2.1 uml3.1
defsw br34 uml3.0 uml4.1
defsw br14 uml4.0 uml1.0

Para eliminar la ongura ión de red virtual, deberemos eje utar la orden:

# ifovsdel

2.6. Prepara ión del entorno


Para utilizar los s ripts que se propor ionan, es ne esario seguir algunos pasos. Primero deberemos
rear un usuario para orrer las máquinas virtuales, si es que no tenemos ya uno reado:
16 Prá ti a 2. User Mode Linux (UML)

# adduser mipropiousuario
Adding user `mipropiousuario' ...
Adding new group `mipropiousuario' (1005) ...
Adding new user `mipropiousuario' (1003) with group `mipropiousuario' ...
Creating home dire tory `/home/mipropiousuario' ...
Copying files from `/et /skel' ...
Introduz a la nueva ontraseña de UNIX:
Vuelva a es ribir la nueva ontraseña de UNIX:
passwd: ontraseña a tualizada orre tamente
Cambiando la informa ión de usuario para mipropiousuario
Introduz a el nuevo valor, o presione ENTER para el predeterminado
Nombre ompleto [℄:
Número de habita ión [℄:
Teléfono del trabajo [℄:
Teléfono de asa [℄:
Otro [℄:
¾Es orre ta la informa ión? [y/N℄ y
# exit

A ontinua ión debemos errar la sesión de root y entrar en el entorno de ventanas on el usuario
re ién reado. Una vez en el home del usuario, rear un dire torio UML, dentro del ual se alojarán los
dire torios parti ulares para ada máquina virtual, on el nombre uml<número> (tener en uenta que en
Linux se distinguen mayús ulas y minús ulas):

$ d
$ mkdir UML
$ d UML
$ for i in 1 2 3 4 5 ; do mkdir uml$i ; done
$ ls -l
total 0
drwxr-xr-x 2 mipropiousuario mipropiousuario 48 2008-02-15 15:59 uml1
drwxr-xr-x 2 mipropiousuario mipropiousuario 48 2008-02-15 15:59 uml2
drwxr-xr-x 2 mipropiousuario mipropiousuario 48 2008-02-15 15:59 uml3
drwxr-xr-x 2 mipropiousuario mipropiousuario 48 2008-02-15 15:59 uml4
drwxr-xr-x 2 mipropiousuario mipropiousuario 48 2008-02-15 15:59 uml5

Ahora rearemos los ar hivos de inter ambio de memoria virtual (swap) para ada máquina:

$ for i in uml? ; do reaswap $i/swap ; done


Creando ar hivo de swap en uml1/swap
0+0 re ords in
0+0 re ords out
Prepara ión del entorno 2.6 17

0 bytes (0 B) opied, 1,8158e-05 se onds, 0,0 kB/s


Setting up swapspa e version 1, size = 67104 kB
no label, UUID=b454e6ba-bae5-42b7-99b4-81e1b6 a8812
...
Creando ar hivo de swap en uml5/swap
0+0 re ords in
0+0 re ords out
0 bytes (0 B) opied, 1,2292e-05 se onds, 0,0 kB/s
Setting up swapspa e version 1, size = 67104 kB
no label, UUID=2 eaa8f6-7af7-4571-a28 -93d903e23e4f

Antes de arran ar las máquinas virtuales, debemos rear la red virtual. Para ello emplearemos la
orden if reate omo superusuario:
$ su - '/usr/lo al/bin/if reate mipropiousuario'
Contraseña:
Creado swit h virtual umlbridge
Creado swit h virtual vifbridge on dire ión de red 192.168.0.0
Set 'vif1' persistent and owned by uid 1003
Set 'uml1.0' persistent and owned by uid 1003
Set 'uml1.1' persistent and owned by uid 1003
Set 'uml1.2' persistent and owned by uid 1003
Set 'uml1.3' persistent and owned by uid 1003
...
Set 'vif7' persistent and owned by uid 1003
Set 'uml7.0' persistent and owned by uid 1003
Set 'uml7.1' persistent and owned by uid 1003
Set 'uml7.2' persistent and owned by uid 1003
Set 'uml7.3' persistent and owned by uid 1003

Ahora ya podemos lanzar las máquinas virtuales que ne esitemos para nuestra prá ti a:
$ lanza 1
Se va a lanzar uml1 on:
NAME=uml1
UPATH=/home/mipropiousuario/UML/uml1
ROOTFS=/usr/lo al/et /uml/root_fs
COWFS=/home/mipropiousuario/UML/uml1/uml1_fs
SWAP=/home/mipropiousuario/UML/uml1/swap
HOSTIP=192.168.0.254

El resultado lo podemos ver en la gura 2.3. Una vez que han arran ado las máquinas virtuales,
debemos ongurar las interfa es de red. Se ha e de la manera habitual en ada una de ellas, teniendo
18 Prá ti a 2. User Mode Linux (UML)

Figura 2.3: Arranque de la máquina virtual uml1

en uenta que si modi amos los ar hivos /et /network/interfa es, la ongura ión de ada máquina
será permanente.

2.7. Prá ti a
En esta prá ti a omprobaremos el envío de mensajes ICMP de tipo e ho-request y e ho-replay de
prueba de a esibilidad en una red. Crearemos una ongura ión on tres máquinas virtuales omo la
mostrada en la gura 2.4. Todas las máquinas pertene erán a la misma subred IP 192.168.1.0/24. Se

uml1 uml2 uml3

eth0 eth0 eth0

192.168.1.1/24 192.168.1.2/24 192.168.1.3/24

umlbridge

Figura 2.4: Red virtual para la prueba de ICMP e ho


Prá ti a 2.7 19

re omienda asignar a ada máquina uml la dire ión 192.168.1.<máquina> en su interfaz eth0.
uml1 # if onfig eth0 192.168.1.1 up (en uml1)
uml2 # if onfig eth0 192.168.1.2 up (en uml2)
uml3 # if onfig eth0 192.168.1.3 up (en uml3)

Ini iar wireshark en la máquina antriona para inspe ionar el trá o por la interfaz umlbridge.
Eje utar la orden ping desde la máquina uml1 a las máquinas uml2 y uml3:
uml1 # ping - 5 192.168.1.2
PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.
64 bytes from 192.168.1.2: i mp_seq=1 ttl=64 time=0.277 ms
64 bytes from 192.168.1.2: i mp_seq=2 ttl=64 time=0.318 ms
64 bytes from 192.168.1.2: i mp_seq=3 ttl=64 time=0.308 ms
64 bytes from 192.168.1.2: i mp_seq=4 ttl=64 time=0.310 ms
64 bytes from 192.168.1.2: i mp_seq=5 ttl=64 time=0.321 ms

--- 192.168.1.2 ping statisti s ---


5 pa kets transmitted, 5 re eived, 0% pa ket loss, time 3999ms
rtt min/avg/max/mdev = 0.277/0.306/0.321/0.027 ms

Utilizar wireshark para estudiar los datagramas inter ambiados entre las máquinas.

También podría gustarte