Virtualización da Rede
- Bridges (ip e brctl)
- Veth Pairs
- VLAN
- VXLAN
- VPN
- OpenVSwitch
- As SDN (Software Defined Networks)
3. OpenVSwitch
Open vSwitch (OVS) é un switch de software avanzado para Linux que permite configurar redes complexas, definidas por software, e a creación de redes virtuais a través de interfaces de rede físicas e virtuais. Utilízase amplamente en contornas de virtualización, contedores e redes definidas por software (SDN) debido á súa flexibilidade e capacidades avanzadas, incluíndo soporte para VLANs, VXLAN, QoS e bonding.
1. Introdución a Open vSwitch
Open vSwitch é unha alternativa avanzada aos bridges tradicionais de Linux, ofrecendo funcionalidades adicionais como:
- Integración con virtualización: OVS permite conectar VMs e contedores directamente a redes virtuais.
- Configuracións complexas de redes: Soporta VLANs, QoS e bonding de interfaces para redundancia.
- Xestión remota e centralizada: Compatible con protocolos SDN como OpenFlow, permitindo a xestión centralizada de redes.
Open vSwitch conta con dúas ferramentas principais para a súa xestión:
- ovs-vsctl: Configura e xestiona a configuración persistente de OVS.
- ovs-appctl: Configura e obten información sobre o switch virtual
- ovs-ofctl: Manipula e consulta regras de fluxo, utilizado en redes definidas por software.
Podemos ver detalles da configuración con man ovs-vswitchd.conf.db
2. Instalación de Open vSwitch
En sistemas Debian/Ubuntu, Open vSwitch pódese instalar executando:
apt update apt install openvswitch-switch
3. Creación e Xestión de Bridges con Open vSwitch
Unha vez instalado, pódense crear e xestionar bridges utilizando ovs-vsctl.
3.1 Crear un Bridge
Para crear un bridge chamado br0:
ovs-vsctl add-br br0
Isto crea o bridge br0, que funcionará como un switch virtual. Pódese verificar a creación do bridge co comando:
ovs-vsctl show
3.2 Engadir Interfaces a un Bridge
As interfaces físicas pódense engadir a un bridge para que reenvíen tráfico a través do switch virtual. Por exemplo, para engadir eth0 ao bridge br0:
ovs-vsctl add-port br0 eth0
Se desexas engadir unha interface virtual, como unha interface TAP (para VMs), tamén podes facelo con add-port.
3.3 Configuración de VLANs en Open vSwitch
Open vSwitch permite crear VLANs para segmentar o tráfico. Pódese engadir unha interface a un bridge cunha VLAN específica, como neste exemplo:
ovs-vsctl add-port br0 eth1 tag=10
Neste caso, eth1 será membro da VLAN 10, permitindo o illamento de tráfico entre diferentes VLANs.
3.4 Bonding de Interfaces en Open vSwitch
Open vSwitch tamén soporta bonding de interfaces, o cal permite engadir varias interfaces a un mesmo bond para redundancia ou maior ancho de banda.
Para crear un bond entre eth1 e eth2 no bridge br0 en modo LACP:
ovs-vsctl add-bond br0 bond0 eth1 eth2 -- set port bond0 bond_mode=balance-tcp lacp=active
Nesta configuración:
- bond_mode=balance-tcp usa o modo de balance de carga en TCP.
- lacp=active activa LACP (Link Aggregation Control Protocol), que require soporte de LACP no switch físico.
3.5 Asignar Enderezos IP ao Bridge
É común asignar o enderezo IP ao propio bridge e non ás interfaces escravas. Podes facelo co comando ip:
ip addr add 192.168.1.1/24 dev br0 ip link set br0 up
3.6 Configuración de QoS en Open vSwitch
Open vSwitch permite aplicar políticas de QoS para priorizar tráfico en función de certos criterios. Por exemplo, para crear unha cola con ancho de banda limitado:
ovs-vsctl set port eth1 qos=@newqos -- \ --id=@newqos create qos type=linux-htb other-config:max-rate=100000000
Neste exemplo, eth1 ten unha limitación de ancho de banda de 100 Mbps.
4. Listar Bridges e Interfaces en Open vSwitch
Para ver todos os bridges e as interfaces en Open vSwitch, utiliza:
ovs-vsctl show
Este comando mostra a configuración completa, incluíndo bonds, VLANs, e QoS asociados aos ports.
5. Eliminar Bridges e Interfaces
5.1 Eliminar un Bridge
Para eliminar un bridge:
ovs-vsctl del-br br0
Este comando elimina o bridge br0 e todas as interfaces asociadas a el.
5.2 Eliminar unha Interface dun Bridge
Para eliminar unha interface específica dun bridge:
ovs-vsctl del-port br0 eth0
6. Integración con Contornas de Virtualización
En contornas de virtualización como KVM, Open vSwitch pódese utilizar para conectar VMs a bridges virtuais. Moitas ferramentas de xestión de hipervisores, como libvirt, soportan OVS, permitindo que as VMs usen interfaces TAP conectadas aos bridges de OVS.
7. Exemplos de Configuración
7.1 Configuración de Bridge Básico con Open vSwitch
# Crear o bridge ovs-vsctl add-br br0 # Engadir unha interface física ao bridge ovs-vsctl add-port br0 eth0 # Asignar enderezo IP ao bridge ip addr add 192.168.1.1/24 dev br0 ip link set br0 up
7.2 Configuración de Bridge con VLANs e Bonding
# Crear o bridge ovs-vsctl add-br br0 # Engadir unha interface cunha VLAN específica ovs-vsctl add-port br0 eth1 tag=10 # Configurar un bond con dúas interfaces e habilitar LACP ovs-vsctl add-bond br0 bond0 eth2 eth3 -- set port bond0 bond_mode=balance-tcp lacp=active
8. Comparación entre Open vSwitch e Bridges Tradicionais
| Funcionalidade | Bridges Linux Tradicionais (brctl, ip) | Open vSwitch (ovs-vsctl) |
|---|---|---|
| Soporte de VLAN | Limitado | Completo |
| Bonding | Soporte básico | Soporte avanzado con LACP |
| QoS e Limitación de Ancho de Banda | Non soportado | Soporte completo |
| Configuración Remota (OpenFlow) | Non soportado | Soporte completo |
| Integración con SDN | Non soportado | Compatibilidade con OpenFlow |