Procedimiento para enrutar tráfico desde hipervisor Xen a DomU Consideraciones: Hipervisor Xen = Opensuse 12.3 en MV del laboratorio DomU = opensuse ya creada dentro del Hipervisor 1 Debido a que utilizaremos ruteo y para evitar problemas con el DHCP del laboratorio se utilizarán direcciones IP estáticas, para este documento utilicé: IPv4 del hipervisor = 192.168.2.98 IPv4 del DomU = 192.168.2.201 Ustedes utilicen las direcciones IP acorde a su red. Verificaciones previas. (omitir si todo está bien) 1. Verificar que la DomU exista y se esté ejecutando serops123:~ # xm list Name ID Mem VCPUs Domain-0 0 435 2 opensuse12 492 1 State r----- Time(s) 20.7 0.0 Para iniciar la DomU puede utilizar el asistente gráfico virt-manager (visto en el módulo anterior) o el comando xm start opensuse12 2. Verificar que el bridge está bien configurado y asociado serops123:~ # xm network-list opensuse12 Idx BE MAC Addr. handle state evt-ch tx-/rx-ring-ref BE-path 0 -1 00:16:3e:55:ec:8d 0 -1 -1 -1 /-1 0 3. Verifique que se crea la tarjeta virtual para el DomU serops123:~ # ifconfig br0 Link encap:Ethernet HWaddr 08:00:27:21:11:23 inet addr:192.168.2.98 Bcast:192.168.2.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:271 errors:0 dropped:0 overruns:0 frame:0 TX packets:190 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:21048 (20.5 Kb) TX bytes:26280 (25.6 Kb) eth0 Link encap:Ethernet HWaddr 08:00:27:21:11:23 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:365 errors:0 dropped:0 overruns:0 frame:0 TX packets:190 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:41834 (40.8 Kb) TX bytes:26630 (26.0 Kb) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 Página 1. collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) vif1.0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:2 overruns:0 carrier:0 collisions:0 txqueuelen:32 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) serops123:~ # brctl show bridge name bridge id br0 8000.080027211123 STP enabled no interfaces eth0 vif1.0 Pasos para configurar el ruteo a la DomU Paso 1 – Apagar la Dom U 1.1 Apague la DomU por comandos o gráficamente serops123:~ # xm start opensuse12 serops123:~ # xm list Name ID Mem VCPUs Domain-0 0 435 2 opensuse12 492 1 State r----- Time(s) 20.7 0.0 Paso 2 – Crear una tarjeta para DomU Se utilizará como nombre de la tarjeta: domU1.0 2.1 Cree el siguiente archivo: serops123:~ # mcedit /etc/sysconfig/network/ifcfg-domU1.0 2.2 Digite el siguiente código name = "DomU Opensuse 12" BOOTPROTO = "static" STARTMODE = "hotplug" Paso 3 – Configure el firewall de Opensuse para permitir el ruteo 3.1 Edite el archivo de configuración del firewall de Opensuse serops123:~ # mcedit /etc/sysconfig/SuSEfirewall2 3.2 Edite las siguientes opciones: Tenga cuidado con lo que digita y cierre las comillas FW_DEV_EXT="br0 domU1.0" FW_ROUTE=“yes” FW_FORWARD="192.168.2.201/32,0/0" Página 2. 3.3 Reinicie el firewall serops123:~ # rcSuSEfirewall2 restart Paso 4 - Definir la nueva ruta en el hipervisor Se puede hacer con route add pero para evitar que se cree dinámicamente lo haremos editando el archivo 4.1 Edite el archivo que almacena las rutas serops123:~ # mcedit /etc/sysconfig/network/routes 4.2 Agregue la siguiente línea 192.168.2.201 - - domU1.0 Paso 5 – Permitir el tráfico arp (para ping y otros protocolos) 5.1 Edite el archivo para las opciones de red serops123:~ # mcedit /etc/sysctl.conf 5.2 Agregue o modifique las líneas para el reenvío de paquetes y arp net.ipv6.conf.all.disable_ipv6 = 1 kernel.sysrq = 0 net.ipv4.ip_forward = 1 net.ipv4.tcp_syncookies = 1 net.ipv6.conf.all.forwarding = 1 net.ipv4.conf.all.proxy_arp = 1 5.3 Reinicie el servicio de red Puede reiniciar el hipervidor si gusta también serops123:~ # systemctl restart systemd-sysctl.service serops123:~ # rcnetwork restart redirecting to "systemctl restart network.service" Paso 6 – Modificación de la configuración del DomU Debido a que la DomU se creó con el asistente del virt-manager (utilizando YasT), se cambiará la opción que crea de forma predeterminada para agregar el routeo a la nueva tarjeta que hemos creado. Tome en cuenta que la configuración se almacena en la BD de Xen por lo crearemos un archivo de configuración para editarlo y luego registrar la nueva DomU. 6.1 Ingrese a la ruta donde se guardan las imágenes de las DomU en Opensuse con Xen serops123:~ # cd /var/lib/xen/images/opensuse12 6.2 Visualice las plantillas serops123:/var/lib/xen/images/opensuse12 # ls disk0.raw opensuse12.orig opensuse12.orig.xml Página 3. 6.3 Cree un archivo a partir de la DomU registrada serops123:/var/lib/xen/images/opensuse12 # xm list -l opensuse12 > miopensuse12 6.4 Verifique que haya creado el archivo con la configuración de la plantilla serops123:/var/lib/xen/images/opensuse12 # ls disk0.raw miopensuse12 opensuse12.orig opensuse12.orig.xml 6.5 Sustituya los valores de la tarjeta de red serops123:/var/lib/xen/images/opensuse12 # mcedit miopensuse12 Busque la sección de la red (vif (bridge br0) (mac 00:16:3e:55:ec:8d) (devid 'None') (uuid 7fa292a2-20b1-73ec-a8ce-5c075bd1ffe8) (script /etc/xen/scripts/vif-bridge) ) Debe quedar de la siguiente manera (vif (vifname domU1.0) (mac 00:16:3e:55:ec:8d) (devid 'None') (uuid 7fa292a2-20b1-73ec-a8ce-5c075bd1ffe8) (script /etc/xen/scripts/vif-route-ifup) ) Paso 7 – Actualización del archivo de configuración de Xen 7.1 Eliminar la configuración del DomU opensuse12 serops123:/var/lib/xen/images/opensuse12 # xm del opensuse12 7.2 Comprobación que ha eliminado la configuración de la DomU Nota:Recuerde ha eliminado la plantilla serops123:/var/lib/xen/images/opensuse12 # xm list Name ID Mem VCPUs State Time(s) Domain-0 0 966 2 r----2821.7 7.2 Crear nueva configuración a partir del archivo que modificamos serops123:/var/lib/xen/images/opensuse12 # xm new -F miopensuse12 7.3 Comprobación que ha creado un nuevo registro serops123:/var/lib/xen/images/opensuse12 # xm list Name Domain-0 opensuse12 ID 0 Mem VCPUs 966 2 512 1 State r----- Time(s) 2824.6 52.3 Página 4. Paso 8 – Configuración de la red dentro de la DomU 8.1 Inicie la DomU Puede utilizar virt-manager o el siguiente comando serops123:/var/lib/xen/images/opensuse12 # xm start opensuse12 Nota: parece que la máquina virtual del laboratorio se está congelando (según las pantallas que me han enviado al correo electrónico), espere “hasta” que inicie, esto toma varios minutos y es posible que sea por los drivers; ya que, yo cree esa DomU en un sistema Opensuse Instalado en una Laptop, pero en el laboratorio se utiliza una MV para el dicho Hipervisor. 8.2 Defina los valores de la red Los valores que debe tener la DomU son los siguientes IPv4 = 192.168.2.201 (usted utilice la que corresponde) Máscara = 255.255.255.0 DNS = 192.168.2.1 GW = 192.168.2.98 (utilice la IPv4 del hipervisor) Deberá agregar la ruta “192.168.2.98 - - eth0” Abra Yast y busque Ajustes de red Página 5. En la ficha Adrress – Defina la dirección IPv4 estáticamente En la ficha Hardware – Verifique que el módulo sea “xennet” Página 6. En la ficha Routing – Defina el GW y agregue la red El GW será la dirección IPv4 del Hipervisor Debe agregar la red “192.168.2.98 - eth0” para tener arp, icmp, etc. 8.3 Reinicie la red del DomU linuxhost:~ # rcnetwork restart redirecting to "systemctl restart network.service" Paso 9 – Establezca comunicación con el DomU y otros equipos. Observe que al TTL se le disminuirá un salto debido a reenvío interno. Nota si tiene error puede realizar lo siguiente Reinicie la DomU y reinicie el hipervisor Compruebe que el domU tiene las reglas de ruteo Edite el archivo /etc/sysconfig/network/routes y verifique que se hayan creado las siguientes líneas: 192.168.2.98 - eth0 default 192.168.2.98 - Compruebe que ha realizado correctamente el paso 5 y paso 6 Página 7.