Páginas

lunes, 23 de marzo de 2015

Qemu configurar red FreeBSD

Nivel : avanzado

Diseño de la red : 4 Máquinas virtuales corriento sobre QEMU y FreeBSD 10.1 como host. Instalar los cuatro sistemas operativos basados en BSD (NetBSD, FreeBSD, OpenBSD, DragonFly), permitirles la salida a Internet para adquirir los conocimientos necesarios y acceder al examen de Certificación BSDA.

Referencia:
http://virtuallyhyper.com/2013/02/running-vms-on-freebsd-using-qemu-with-vde/
http://bsdwiki.reedmedia.net/wiki/networking_qemu_virtual_bsd_systems.html
http://www.area536.com/projects/freebsd-as-a-kvm-guest-using-virtio/
http://en.wikibooks.org/wiki/QEMU/Networking
http://www.bsdcertification.org/

BSDCG Videos Jim Brown. Como instalar so host + qemu + VM

La instalación del host + fvwm-crystal + qemu + aqemu + los so invitados tiene este aspecto.:





Interfaz de red TUN/TAP:

En este modo, la máquina virtual QEMU abre un dispositivo TUN o TAP preasignados en el host y utiliza esa interfaz para transferir los datos al sistema operativo invitado.

El puente (bridge) se crea en el sistema host (FreeBSD 10.1)

Cargar módulos:

# kldload aio
# kldload if_bridge
# kldload if_tap

Realizar comprobación:

# kldstat > modulos; awk '{ print $5 }' modulos
 Size     Name
 kernel
 if_tap.ko
 if_bridge.ko
 bridgestp.ko
 aio.ko
...

Crear las interfaces

# ifconfig bridge0 create up
# ifconfig tap0 create
# ifconfig tap1 create
# ifconfig tap2 create
# ifconfig tap3 create
# ifconfig tap4 create

Agregar los grifos al puente. Parámetros para agregar dispositivos de derivación al puente.

# ifconfig bridge0 addm tap0 addm tap1 addm tap2 addm tap3 addm tap4 up

Antes de utilizar los dispositivos de derivación en QEMU dos sysctl requieren ajustes. El primero permite a cualquier programa de usuario y Qemu los es, utilizar el dispositivo de grifo (tap). El segundo marca la interfaz como up:

# sysctl net.link.tap.user_open=1
# sysctl net.link.tap.up_on_open=1

Para que permanezcan los cambios después de un reinicio

# echo 'if_bridge_load="YES"' >>/boot/loader.conf
# echo 'if_tap_load="YES"' >>/boot/loader.conf
# echo 'aio_load="YES"' >>/boot/loader.conf

# echo 'cloned_interfaces="tap0 tap1 tap2 tap3 tap4 bridge0"' >>/etc/rc.conf
# echo 'ifconfig_bridge0="addm tap0 addm tap1 addm tap2 addm tap3 addm tap4 up"' >>/etc/rc.conf

# echo 'net.link.tap.user_open=1' >>/etc/sysctl.conf
# echo 'net.link.tap.up_on_open=1' >>/etc/sysctl.conf

# ifconfig -a

Tenemos que cambiar el modo de conexión de interfaz de red de la máquina virtual para que pueda utilizar la interfaz TUN/TAP.

Parámetros de conexión para DragonFly VM:


Parámetros de conexión para FreeBSD VM:


Parámetros de conexión para NetBSD VM:


Parámetros de conexión para OpenBSD VM:


Iniciar nbsd (NetBSD) desde el terminal:
# qemu -monitor stdio -m 512 -localtime -hda /usr/.aqemu/nbsd_HDA.img -boot once=c,menu=off -net nic,vlan=0,macaddr=00:ee:ae:c6:9b:50,model=e1000 -net user,vlan=0 -name "nbsd"


Método "VDE" (Ethernet Virtual Distribuido):

Modo de usuario en red - En este modo, la máquina virtual QEMU inicia automáticamente un servidor DHCP interno en una dirección de red interna 10.0.2.2/24. Una red  interna para huéspedes que no es visible desde el entorno de acogida (host). Si el sistema operativo invitado está configurado para DHCP, el cliente obtendrá una dirección IP de este servidor DHCP interno.

FreeBSD 9.2 - 10.0.2.15/24
NetBSD 6.0 - 10.0.2.20
OpenBSD 5.6 - 10.0.2.25
DragonFly - 10.0.2.30

Utilizando el método "VDE" (Ethernet Virtual Distribuido):

El backend de red VDE utiliza la infraestructura Ethernet Distributed Virtual para clientes de la red. Desde la página VDE:

VDE interruptor Al igual que un conmutador Ethernet física, un interruptor VDE tiene varios puertos virtuales en máquinas virtuales, aplicaciones, interfaces virtuales, herramientas de conectividad y - por qué no? - Otro interruptor VDE puede virtualmente enchufado.

# cd /usr/ports/net/vde2
# sudo make install

Ver las opciones de configuración:

# make showconfig
===> The following configuration options are available for vde2-2.3.2_1:
     PYTHON=on: Python bindings or support
===> Use 'make config' to modify these settings
# make install clean

# Cargar módulos necesarios:
# kldload if_bridge
# kldload if_tap

Activar módulos al inicio del sistema:
# echo if_bridge_load="YES">>/boot/loader.conf
# echo if_tap_load="YES">>/boot/loader.conf

Después de instalar debemos crear una interfaz tap para actuar como un enlace ascendente para nuestro VDE-switch. En primer lugar vamos a crear el puente:

# ifconfig bridge0 create

Crear las interfaces tap:

# ifconfig tap0 create
# ifconfig tap1 create

Ahora vamos a tender un puente sobre nuestra interfaz física con la interfaz tap:

# ifconfig bridge0 addm tap0 up

Para que los cambios permanezcan después de un reinicio:
# echo 'cloned_interfaces="tap0 bridge0"'>>/etc/rc.conf
# echo 'ifconfig_bridge0="addm tap0 up"'>>/etc/rc.conf

# ifconfig bridge0

Si vamos a conectar con el dispositivo tap con usuarios habituales, vamos a permitir que esos usuarios se conecten al dispositivo tap:
# sysctl net.link.tap.user_open=1
net.link.tap.user_open: 0 -> 1
# sysctl net.link.tap.up_on_open=1
net.link.tap.up_on_open: 0 -> 1

Establecer los permisos del dispositivo tap:
# chown carles /dev/tap0
# chmod 660 /dev/tap0

Agregar lo siguiente al fichero /etc/devfs.conf
own tap0 root:carles
perm tap0 660

Vamos a crear una VDE-Switch y añadir los tap como uplink (enlace ascendente)
# vde_switch -d -s /tmp/vdel -M /tmp/mgmtl -tap tap0 -m 660 -g carles --mgmtmode 660 --mgmtgroup carles

root@fbsd:~ # vde_switch -d -s /tmp/vdel -M /tmp/mgmtl -tap tap0 -m 660 -g carles --mgmtmode 660 --mgmtgroup carles
root@fbsd:~ # unixterm /tmp/mgmtl
VDE switch V.2.3.2
(C) Virtual Square Team (coord. R. Davoli) 2005,2006,2007 - GPLv2

vde$ ds/showinfo
0000 DATA END WITH '.'
ctl dir /tmp/vdel
std mode 0660
.
1000 Success

vde$ port/allprint
0000 DATA END WITH '.'
.
1000 Success

vde$ vlan/allprint
0000 DATA END WITH '.'
VLAN 0000
.
1000 Success

vde$ logout
9999 END OF SESSION root@fbsd:~ #


Tarjeta de red Qemu para todos los so invitados:


Iniciar los diferentes sistemas operativos instalados en la VM (Qemu) para configurar la red y comprobar que tienen conexión a Internet:

nbsd:
obsd:


dfly:

fbsd:
Cerrar Qemu

Unix es genial!.

No hay comentarios:

Publicar un comentario