En la entrada anterior escribía como usar openvswitch con xen y debian jessie, este software me permite crear la infraestructura virtual de red de forma rápida y sencilla. Pero, no solo me permite la conexión interna entre las maquinas virtuales, sino también hacia la red física. Es esta oportunidad vamos a usar openvswitch y configuraremos vlans de trabajo las cuales asociaremos vlans existentes en los switch de nuestra red.
Esta entrada surge debido la siguiente situación, tengo un servidor el cual utilizaré para virtualizar, el mismo posee dos tarjetas físicas, una de las tarjetas la uso como acceso administrativo, quedando sólo una interfaz para crear maquinas virtuales que puedan conectarse a mi red DMZ, LAN y una que WAN que posee ip publica.
Para repasar, instalamos openvswitch con el comando
# apt-get install openvswitch-switch
una vez instalado verificamos que este corriendo con el comando
# ovs-vsctl show
e2ffe3b2-4224-443e-a939-21a5b2ca02e1 ovs_version: "2.3.0"
vemos que esta instalado y debemos configurar según nuestra necesidad. Y hacemos lo siguiente.
configuramos la interfaz del servidor, editando el archivo interfaces
# vi /etc/network/interfaces
auto lo ovsbr0 eth0 eth1 vlan10 iface lo inet loopback # The primary network interface allow-hotplug eth0 allow-hotplug eth1 iface eth0 inet static address 172.31.91.164 netmask 255.255.252.0 gateway 172.31.91.2 ##################bridge y vlans para XEN ###################### allow-ovs ovsbr0 eth1 iface ovsbr0 inet manual up ifconfig $IFACE 0.0.0.0 up down ifconfig $IFACE down ovs_type OVSBridge ovs_ports eth1 vlan10 vlan215 allow-ovsbr0 eth1 iface eth1 inet manual ovs_bridge ovsbr0 ovs_type OVSPort #ovs_options tag=1 vlan_mode=native-untagged # Alternatively if you want to also restrict what vlans are allowed through # you could use: ovs_options tag=1 vlan_mode=native-untagged trunks=10,215 allow-ovsbr0 vlan10 iface vlan10 inet manual ovs_type OVSIntPort ovs_bridge ovsbr0 ovs_options tag=10 ovs_extra set interface ${IFACE} external-ids:iface-id=$(hostname -s)-${IFACE}-vif up ifconfig $IFACE 0.0.0.0 up down ifconfig $IFACE down En mi red la vlan10 tiene un segmento 172.16.x.x, la vlan 215 es un segmento de ip publicas y la vlan1 esta en un segmento 172.31.x.x configuraremos la vlan10 y la vlan1. En el archivo interfaces configuramos como normalmente lo hariamos pero la diferencia esta en las líneas. ovs_ports eth1 vlan10 vlan215 ovs_options tag=1 vlan_mode=native-untagged trunks=10,215 aqui definimos las interfaces vlans y el tipo de acceso del puerto ovsbr0 que creamos, en nuestro caso seria un puerto troncal en le switch virtual (ovsbr0). Reiniciamos las interfaces # /etc/init.d/networking restart
verificamos con el comando ifconfig que todo este arriba # ifconfig
eth0 Link encap:Ethernet HWaddr 98:4b:e1:65:93:84 inet addr:172.31.91.164 Bcast:172.31.91.255 Mask:255.255.252.0 inet6 addr: fe80::9a4b:e1ff:fe65:9384/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:171184 errors:0 dropped:306 overruns:0 frame:0 TX packets:51715 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:81121169 (77.3 MiB) TX bytes:5696893 (5.4 MiB) Memory:c0400000-c041ffff eth1 Link encap:Ethernet HWaddr 98:4b:e1:65:93:85 inet6 addr: fe80::9a4b:e1ff:fe65:9385/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:167684 errors:0 dropped:0 overruns:0 frame:0 TX packets:26302 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:69563654 (66.3 MiB) TX bytes:1879692 (1.7 MiB) Memory:c0460000-c047ffff lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:6 errors:0 dropped:0 overruns:0 frame:0 TX packets:6 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:944 (944.0 B) TX bytes:944 (944.0 B) ovsbr0 Link encap:Ethernet HWaddr 98:4b:e1:65:93:85 inet6 addr: fe80::9a4b:e1ff:fe65:9385/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:39286 errors:0 dropped:131 overruns:0 frame:0 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:2721632 (2.5 MiB) TX bytes:648 (648.0 B) vlan10 Link encap:Ethernet HWaddr 2e:18:70:28:d7:aa inet6 addr: fe80::2c18:70ff:fe28:d7aa/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:520 errors:0 dropped:0 overruns:0 frame:0 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:64046 (62.5 KiB) TX bytes:648 (648.0 B) Luego en el switch virtual hacemos # ovs-vsctl set port ovsbr0 trunks=1,10,215
procedemos a revisar la configuración del switch virtual # ovs-vsctl show
9909c85f-5cbc-4b18-bdbd-bf0cab6ae1cf Bridge "ovsbr0" Port "ovsbr0" trunks: [1, 15, 215] Interface "ovsbr0" type: internal Port "eth1" tag: 1 trunks: [1, 10, 215] Interface "eth1" Port "vlan10" tag: 10 Interface "vlan10" type: internal ovs_version: "2.3.0" Luego en las maquinas virtuales procedemos a configurar de la siguiente forma. Veran que esta difindo el bridge con el tag de la vlan de la forma bridge=ovsbr0.10
Iniciamos las maquinas virtuales # xl create /etc/xen/siglas.conf # xl create /etc/xen/atencionciudadano.conf podemos ver con el comando ifconfig la configuración de red de cada maquina. y verificamos como queda la configuración del switch luego de iniciar las maquinas virtuales Verificamos la salida a internet en las maquinas virtuales y el acceso desde la red interna. NOTA: Se deben realizar las respectivas configuraciones en los switch físicos. Bibliografia: http://blog.scottlowe.org/2013/05/28/vlan-trunking-to-guest-domains-with-open-vswitch/ http://blog.scottlowe.org/2012/11/07/using-vlans-with-ovs-and-libvirt/ http://docs.openvswitch.org/en/latest/faq/vlan/ http://blog.scottlowe.org/2012/10/04/some-insight-into-open-vswitch-configuration/ https://pve.proxmox.com/wiki/Open_vSwitch#VLANs_Host_Interfaces http://wiki.flav.com/wiki/Open_vSwitch_Tutorial |