User Mode Linux

José Ulloa Suárez.

 

 

 

Funcionamiento

Características

Instalación

Creando Particiones

Recomendaciones

Arranque

Configuración de   la Red

Probando Kernel

Página Principal

Configuración de la red.

 

Lo primero que debemos saber es que UML consta con un daemon que cumple la función de switch.
 

El switch daemon (uml\_switch) puede actuar tanto como switch o como hub para las máquinas que corran UML. Cada una de éstas consta de tarjetas virtuales, las cuales se conectan con el daemon usando socket de unix, y realiza el forwards tal como lo haria un switch.
 

El switch daemon también puede conectarse a la tarjeta virtual creada en la máquina host. De esta forma las máquinas virtuales pueden tener salida al mundo(internet).

A continuación se muestran los comandos necesarios para la configuración de la red en suse 9.

  1.  Crear un dispositivo tun/tap con tunctl:
          $ tunctl -t uml0
     

  2. Luego debemos configurar este dispositivo en el host:
        En SuSE las interfaces se encuentran definidas en el directorio /etc/sysconfig/network, en los archivos ifcfg-*.
    Nosotros debemos crear un archivo llamado ifcfg-uml0, el cual debe tener algo similar a lo siguiente:

         BOOTPROTO="static"
         BROADCAST="172.23.42.255"
         IPADDR="172.23.42.1"
         NETMASK="255.255.255.0"
         NETWORK="172.23.42.0"
         STARTMODE="onboot"
     

  3. Una vez creado el archivo, podemos levantar la interfaz escribiendo:
         $ ifup uml0
     

  4. Ahora es necesario configurar el ruteamiento y traslado de paquetes dentro del sistema. es decir, que los paquetes generados en la red virtual, tengan salida a la internet.El siguiente script realiza esta configuración.

          NAT_IF="$1"
          OUT_IF="${2-eth0}"

          if test "$NAT_IF" = ""; then
          echo "usage: $0 if1 [ if2 ]"
          echo " if1 -- the interface to be NAT'ed"
          echo " if2 -- the interface the NAT'ed traffic should go"
          echo " default: eth0"
          exit 1
           fi
          set -ex

          # reset tables
          iptables -t filter -F
          iptables -t mangle -F
          iptables -t nat -F

          # mark packages which we want NAT
         iptables -t mangle -A FORWARD -i "$NAT_IF" -o "$OUT_IF" -j MARK --  set-mark 1

          # allow forward for marked (+related) packages
          iptables -t filter -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
          iptables -t filter -A FORWARD -m mark --mark 1 -j ACCEPT
          iptables -t filter -P FORWARD DROP

          # translate marked packages
          iptables -t nat -A POSTROUTING -m mark --mark 1 -j MASQUERADE

          # enable IP forwarding
          echo 1 > /proc/sys/net/ipv4/ip_forward
     

  5. Una vez creado, es necesario ejecutarlo.
          $ uml-nat-setup uml0

     

  6. Hecho esto, iniciamos el daemon switch:
          $ uml\_switch -tap uml0
        Para trabajar en modo Hub, basta con colocar -hub cuando se ejecuta el daemon.
     

  7. Luego booteamos la maquina UML con la tarjeta virtual seteada:
          $ /path/to/linux eth0=daemon,mac-address [ other args ]
     

Otra forma de configurar la red es a través de un bridge. El siguiente script realiza esta configuración.

#! /bin/sh

# setup bridge
if ip link ls | grep -q hw0; then
echo "### hw0 exists"
else
echo "### setup bridge"
set -ex
modprobe bridge
ip link set eth0 name hw0
brctl addbr eth0
brctl addif eth0 hw0
ip link set hw0 up
set -ex
fi

# setup uml device + add to bridge
if ip link ls | grep -q uml0; then
echo "### uml0 exists"
else
echo "### setup uml0"
set -ex
modprobe tun
tunctl -t uml0 -u 500
brctl addif eth0 uml0
ip link set uml0 up
set -ex
fi