Abrir vSwitch es un conmutador de software multicapa gratuito y de código abierto, que se utiliza para administrar el tráfico entre máquinas virtuales y redes físicas o lógicas. Proporciona características como el aislamiento del tráfico en los inquilinos de OpenStack utilizando las técnicas de superposición. GRE, VXLAN y VLAN 802.1Q.
Se puede implementar el uso del motor de reenvío de paquetes vSwitch abierto en el espacio del kernel o en el espacio del usuario y también se puede lograr la agregación de enlaces a través de LACP.
En este artículo, discutiremos cómo instalar la última versión de Open vSwitch 2.9.2 en CentOS 7 y RHEL 7 Server. Aparte de esto, veremos cómo se puede usar Open vSwitch en máquinas virtuales KVM para su conexión en red.
Leer más sobre: Cómo instalar y configurar KVM en el servidor Ubuntu 18.04 LTS
Supongo que ya tiene un servidor CentOS 7 o RHEL 7 configurado con KVM. Open vswitch (OVS) 2.0 está disponible en los repositorios yum predeterminados de CentOS 7 y RHEL 7, pero si instala la última versión de open vSwitch, consulte los pasos a continuación.
Paso 1) Instale los paquetes requeridos usando el comando yum
Inicie sesión en su servidor CentOS 7 o RHEL 7 y ejecute el siguiente comando yum,
[[email protected] ~]# yum install wget openssl-devel python-sphinx gcc make python-devel openssl-devel kernel-devel graphviz kernel-debug-devel autoconf automake rpm-build redhat-rpm-config libtool python-twisted-core python-zope-interface PyQt4 desktop-file-utils libcap-ng-devel groff checkpolicy selinux-policy-devel -y
Paso 2) Cree un usuario ovs y descargue Open vSwitch 2.9
Cree un usuario con nombre ovs usando el siguiente comando
[[email protected] ~]# useradd ovs [[email protected] ~]# su - ovs [[email protected] ~]$
Descargue el archivo tar de OVS 2.9 y cree el rpm de openvswitch usando los comandos debajo,
[email protected] ~]$ mkdir -p ~/rpmbuild/SOURCES [[email protected] ~]$ wget http://openvswitch.org/releases/openvswitch-2.9.2.tar.gz [[email protected] ~]$ cp openvswitch-2.9.2.tar.gz ~/rpmbuild/SOURCES/ [[email protected] ~]$ tar xfz openvswitch-2.9.2.tar.gz [[email protected] ~]$ rpmbuild -bb --nocheck openvswitch-2.9.2/rhel/openvswitch-fedora.spec [[email protected] ~]$ exit logout [[email protected] ~]#
Ahora instale Open vSwitch rpm usando el siguiente comando yum,
[[email protected] ~]# yum localinstall /home/ovs/rpmbuild/RPMS/x86_64/openvswitch-2.9.2-1.el7.x86_64.rpm -y
Paso 3) Inicie y habilite Open vSwitch Service
Use los siguientes comandos systemctl para iniciar y habilitar el servicio vSwitch abierto
[[email protected] ~]# systemctl start openvswitch.service [[email protected] ~]# systemctl enable openvswitch.service Created symlink from /etc/systemd/system/multi-user.target.wants/openvswitch.service to /usr/lib/systemd/system/openvswitch.service. [[email protected] ~]# systemctl status openvswitch.service ● openvswitch.service - Open vSwitch Loaded: loaded (/usr/lib/systemd/system/openvswitch.service; enabled; vendor preset: disabled) Active: active (exited) since Sun 2018-08-05 10:16:12 EDT; 17s ago Main PID: 73958 (code=exited, status=0/SUCCESS) Aug 05 10:16:12 compute02 systemd[1]: Starting Open vSwitch... Aug 05 10:16:12 compute02 systemd[1]: Started Open vSwitch. [[email protected] ~]#
Use el siguiente comando para verificar la versión de OVS
[[email protected] ~]# ovs-vsctl -V ovs-vsctl (Open vSwitch) 2.9.2 DB Schema 7.15.1 [[email protected] ~]#
Paso:4 Cree el puente OVS y agréguele interfaces.
Use el siguiente comando para crear un puente ovs,
[[email protected] ~]# ovs-vsctl add-br ovs-br0
Ahora vacíe o elimine la IP de la interfaz, en mi caso, la IP asignada a eno16777736
[[email protected] ~]# ip addr flush dev eno16777736
Ahora asigne esta dirección IP a ovs bridge (ovs-br0)
[[email protected] ~]# ip addr add 192.168.1.4/24 dev ovs-br0
Agregue la interfaz como puerto en ovs-br0 usando el siguiente comando,
[[email protected] ~]# ovs-vsctl add-port ovs-br0 eno16777736
Ahora abra el puente usando el siguiente comando ‘ip link’,
[[email protected] ~]# ip link set dev ovs-br0 up
Nota : Los cambios anteriores no son persistentes, así que haga que estos cambios sean persistentes durante el reinicio, tenemos que crear un archivo de puente ovs, los pasos se muestran a continuación
[[email protected] ~]# cd /etc/sysconfig/network-scripts/ [[email protected] network-scripts]# cp ifcfg-eno16777736 ifcfg-ovs-br0 [[email protected] network-scripts]# [[email protected] network-scripts]# vi ifcfg-eno16777736 DEVICE=eno16777736 HWADDR="00:0c:29:c1:c3:4e" TYPE=OVSPort DEVICETYPE=ovs OVS_BRIDGE=ovs-br0 ONBOOT=yes
Guardar y salir del archivo
[[email protected] network-scripts]# vi ifcfg-ovs-br0 DEVICE=ovs-br0 DEVICETYPE=ovs TYPE=OVSBridge BOOTPROTO=static IPADDR=192.168.1.4 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 ONBOOT=yes
Guardar y salir del archivo
Reinicie el servicio de red usando el siguiente comando,
[[email protected] network-scripts]# systemctl restart network
Ahora Verifique el puente ovs y sus puertos usando “ovs-vsctlcomando
[[email protected] ~]# ovs-vsctl show 8dc5f8e7-0e54-4d9d-ba7a-cd6b9b94f470 Bridge "ovs-br0" Port "ovs-br0" Interface "ovs-br0" type: internal Port "eno16777736" Interface "eno16777736" ovs_version: "2.9.2" [[email protected] ~]#
Paso: 5) Crear y definir la red virsh ovs
Cree un archivo de red ovs con los siguientes contenidos,
[[email protected] ~]# vi /tmp/ovs-network.xml <network> <name>ovs-network</name> <forward mode='bridge'/> <bridge name='ovs-br0'/> <virtualport type='openvswitch'/> </network>
Ahora defina la red ovs usando el siguiente comando virsh,
[[email protected] ~]# virsh net-define /tmp/ovs-network.xml Network ovs-network defined from /tmp/ovs-network.xml [[email protected] ~]# virsh net-start ovs-network Network ovs-network started [[email protected] ~]# virsh net-autostart ovs-network Network ovs-network marked as autostarted [[email protected] ~]#
Ahora verifique la red virsh usando el comando debajo,
[[email protected] ~]# virsh net-list Name State Autostart Persistent ---------------------------------------------------------- default active yes yes ovs-network active yes yes [[email protected] ~]#
Paso: 6) Crear máquinas virtuales y adjuntar ovs-network
Vamos a crear dos máquinas virtuales de prueba usando el siguiente comando virt-install, especifique la red para estas máquinas virtuales como ovs-network,
[[email protected] ~]# virt-install -n testvm1 --description "Test VM1 for OVS " --os-type=Linux --os-variant=rhel7 --ram=1096 --vcpus=1 --disk path=/var/lib/libvirt/images/testvm1.img,bus=virtio,size=10 --network network:ovs-network --graphics none --location /root/CentOS-7-x86_64-DVD-1511.iso --extra-args console=ttyS0
Del mismo modo, cree una segunda máquina virtual de prueba con el nombre «testvm2»
[[email protected] ~]# virt-install -n testvm2 --description "Test VM2 for OVS " --os-type=Linux --os-variant=rhel7 --ram=1096 --vcpus=1 --disk path=/var/lib/libvirt/images/testvm2.img,bus=virtio,size=10 --network network:ovs-network --graphics none --location /root/CentOS-7-x86_64-DVD-1511.iso --extra-args console=ttyS0
Una vez que se crean las VM, sus interfaces deben agregarse en ovs bridge (ov-br0) automáticamente y podemos verificar esto desde el comando ovs-vsctl,
[[email protected] ~]# ovs-vsctl show 8dc5f8e7-0e54-4d9d-ba7a-cd6b9b94f470 Bridge "ovs-br0" Port "ovs-br0" Interface "ovs-br0" type: internal Port "eno16777736" Interface "eno16777736" Port "vnet0" Interface "vnet0" Port "vnet1" Interface "vnet1" ovs_version: "2.9.2" [[email protected] ~]# ovs-vsctl list-ports ovs-br0 eno16777736 vnet0 vnet1 [[email protected] ~]#
En el comando anterior, vnet0 y vnet1 son la interfaz de toque de las máquinas virtuales. Cuando apaguemos estos VMS, estos puertos se eliminarán de OVS Bridge (ovs-br0) automáticamente. Los archivos de registro para ovs (openvswitch) se guardan en la carpeta «/var/log/openvswitch“.
Con esto concluye este artículo, espero que tenga una idea de cómo instalar y usar Open vSwitch 2.9 con KVM en servidores CentOS 7 y RHEL 7. Si te gusta el artículo, por favor comparte tus comentarios y opiniones.