martes, 10 de enero de 2017

Openvswitch + Vlans

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
 
 
 

No hay comentarios:

Publicar un comentario