[TOC] Instalando OpenVSwitch ----------------------- Para este articulo vamos a instalar OpenVSwitch (OVS) sobre Debian Estable (Jessie), desgraciadamente OVS no está muy actualizado en los repositorios, por lo que tendremos que instalarlo desde los fuentes. Si se quiere comprobar cual versión está disponible podemos hacerlo con el comando $ sudo apt-cache show openvswitch-switch | grep Version ### Compilando Descargamos los fuentes desde <http://openvswitch.org/releases/>, para este artículo vamos a trabajar con la versión 2.4.0. Antes de instalar se requieren algunas dependencias. $ sudo apt-get install build-essential linux-headers-`uname -r` libssl-dev perl python bridge-utils uml-utilities Si se quiere instalar OVS con ovsdmonitor hay que instalar los siguientes paquetes. $ sudo apt-get install python-twisted-conch python-simplejson python-zope.interface python-qt4 Hay que revisar si el módulo bridge está cargado en el kernel y si lo está entonces removerlo $ lsmod | grep bridge bridge 55884 0 stp 12405 1 bridge Si el resultado es como el anterior entonces hay que deshabilitarlo $ sudo rmmod bridge Debemos descargar el paquete desde <http://openvswitch.org/releases/openvswitch-2.4.0.tar.gz>, lo descomprimimos y nos pasamos a la carpeta de trabajo. $ wget http://openvswitch.org/releases/openvswitch-2.4.0.tar.gz $ tar zxvf openvswitch-2.4.0.tar.gz $ cd openvswitch-2.4.0/ Para compilar OpenVSwitch en Debian y crear los módulos del kernel necesarios Compile Openvswitch on Debian and create openvswitch kernel module. $ ./configure --with-linux=/lib/modules/`uname -r`/build $ make $ sudo make install $ sudo make modules_install Podemos probar que el módulo funciona con nuestro kernel $ sudo /sbin/modprobe openvswitch Si todo va bien entonces podemos ver que nuestro módulo está cargado y funcionando $ sudo /sbin/modprobe openvswitch $ openvswitch 100210 0 $ libcrc32c 12426 1 openvswitch Configurando OpenVSwitch ------------------------- Inicializando la base de datos de configuraciones $ sudo mkdir -p /usr/local/etc/openvswitch $ sudo ovsdb-tool create /usr/local/etc/openvswitch/conf.db vswitchd/vswitch.ovsschema Antes de inicializar ovs-vswitchd, necesitamos inicializar la configuración de la base de datos, ovsdb-server. Cada máquina donde OVS esté instalada debe correr su propia copia de ovsdb-server. Hay que configurar la base de datos creada anteriormente para que escuche un socket de dominio de Unix, para conectar cualquier manejador especificado en la misma base de datos y para utilizar la configuración SSL. $ sudo ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \ --remote=db:Open_vSwitch,Open_vSwitch,manager_options \ --private-key=db:Open_vSwitch,SSL,private_key \ --certificate=db:Open_vSwitch,SSL,certificate \ --bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert \ --pidfile --detach Para inicializar la base de datos $ sudo /usr/local/bin/ovs-vsctl --no-wait init Para inicializar el demonios OVS $ sudo ovs-vswitchd --pidfile --detach Se necesita habilitar el reenvío de paquetes en kernel de linux. Se puede hacer al vuelo con $ sudo sysctl -w net.ipv4.ip_forward=1 $ sudo sysctl -w net.ipv6.conf.all.forwarding=1 Pero si se quiere hacer permanente se debe modificar el archivo /etc/sysctl.conf en las siguientes líneas. net.ipv4.ip_forward = 1 net.ipv6.conf.all.forwarding=1 ### Conectando OpenVSwitch con la máquina local Vamos a crear un puente Br0 $ sudo ovs-vsctl add-br br0 Para comprobar que se realizó adecuadamente podemos hacer $ sudo ovs-vsctl show d37e91f3-31c6-417d-ba01-309a560e4a74 Bridge "br0" Port "br0" Interface "br0" type: internal Enlaces de interés -------------------- Este trabajo no sería posible sin la ayuda y documentación encontrada en los siguientes enlaces - <http://brezular.com/2013/12/16/openvswitch-installation-on-debian/> - <https://plasmixs.wordpress.com/2014/05/20/setting-up-kvm-guests-for-openvswitch/> - <https://kashyapc.fedorapeople.org/virt/openvswitch-and-libvirt-kvm.txt>