Virtualización da Rede
- Bridges (ip e brctl)
- Veth Pairs
- VLAN
- VXLAN
- VPN
- OpenVSwitch
- As SDN (Software Defined Networks)
1. Bridges
Os bridges (pontes) en Linux son dispositivos virtuais de rede que permiten interconectar varias interfaces de rede a nivel de capa 2 (enlace de datos) do modelo OSI, funcionando como un switch de software. En Linux, os bridges son especialmente útiles en virtualización, redes de contedores e en topoloxías de rede complexas, xa que permiten que varias interfaces físicas e/ou virtuais compartan a mesma rede de maneira transparente
1. Introdución aos Bridges en Linux
En Linux, un bridge permite interconectar varias interfaces nun único segmento de rede, reenvíando tráfico entre elas. Funciona como un switch, utilizando a dirección MAC dos paquetes para decidir a que porto envialos. Os bridges empréganse amplamente en:
- Virtualización: para conectar máquinas virtuais (VMs) ou contedores entre si e coa rede física.
- Redes de contedores: permitindo que varios contedores estean nunha mesma rede.
- Interfaces escravas: son as interfaces físicas ou virtuais engadidas ao bridge.
- Filtrado de tráfico: os bridges en Linux poden filtrar tráfico segundo enderezos MAC, habilitar STP (Spanning Tree Protocol) e aprender que interfaces son responsables de cada MAC.
2. Ferramentas para a Xestión de Bridges
Linux proporciona principalmente dúas ferramentas para a xestión de bridges:
- brctl (parte do paquete
bridge-utils): a ferramenta máis tradicional. - ip (parte do paquete
iproute2): máis avanzada e versátil, con soporte adicional para configuracións modernas.
Ambas permiten tarefas como crear bridges, engadir ou eliminar interfaces, listar configuracións, entre outras.
3. Instalación das Ferramentas de Xestión de Bridges
Para instalar as ferramentas necesarias en Debian/Ubuntu:
apt update apt install bridge-utils iproute2
4. Creación e Configuración de Bridges con brctl
brctl é a ferramenta básica para crear e xestionar bridges en Linux. A continuación, detállase como usar brctl para configurar bridges.
4.1 Crear un Bridge
Para crear un bridge:
brctl addbr br0
Este comando crea un bridge chamado br0. Un bridge sen interfaces non reenvía tráfico, polo que é preciso engadir interfaces escravas para que sexa funcional.
4.2 Engadir Interfaces a un Bridge
As interfaces pódense engadir ao bridge co seguinte comando:
brctl addif br0 eth0 brctl addif br0 eth1
Neste caso, eth0 e eth1 son interfaces físicas engadidas ao bridge br0. Os paquetes recibidos en eth0 poden reenviarse a eth1 e viceversa a través do bridge br0.
Nota: Ao engadir unha interface a un bridge, recoméndase non asignarlle IP directamente; no seu lugar, asigna a IP ao propio bridge.
4.3 Eliminar Interfaces dun Bridge
Para quitar unha interface do bridge:
brctl delif br0 eth0
Este comando elimina eth0 de br0, restaurando a súa configuración de rede independente.
4.4 Configurar o Spanning Tree Protocol (STP)
O STP evita bucles na rede. Para habilitar STP no bridge:
brctl stp br0 on
Isto pode ser útil en redes complexas onde existe o risco de bucles.
4.5 Listar Bridges e Verificar a Configuración
Para listar os bridges existentes e verificar a configuración:
brctl show
Este comando amosa todos os bridges creados, as interfaces engadidas e o estado do STP.
4.6 Eliminar un Bridge
Para eliminar un bridge (deben quitarse as interfaces primeiro):
brctl delbr br0
Este comando elimina br0.
4.7 Configuración de bridges no arranque con /etc/network/interfaces
Para configurar un bridge en /etc/network/interfaces no arranque, se configura como unha "tarxeta normal", pero indicando logo con bridge_ports as tarxetas incluidas no bridge. Si o bridge non ten tarxetas se indicará bridge_ports none
auto br0iface br0 inet staticbridge_ports noneaddress ....
5. Creación e Configuración de Bridges con ip
O comando ip ofrece funcionalidade avanzada na xestión de bridges, incluíndo opcións non soportadas por brctl.
5.1 Crear un Bridge
Para crear un bridge con ip:
ip link add br0 type bridge
Este comando crea un bridge chamado br0.
5.2 Engadir Interfaces a un Bridge
Para engadir interfaces a un bridge:
ip link set eth0 master br0 ip link set eth1 master br0
Con isto, eth0 e eth1 convértense en interfaces escravas do bridge br0.
5.3 Asignar IP ao Bridge
Recoméndase asignar a IP ao bridge e non ás interfaces escravas:
ip addr add 192.168.1.1/24 dev br0
Este comando asigna o enderezo IP 192.168.1.1 ao bridge br0.
5.4 Activar o Bridge
Para activar o bridge (e cada interface engadida):
ip link set br0 up
5.5 Listar a Configuración de Bridges
Para ver os bridges e as súas configuracións:
ip link show type bridge
Este comando amosa os bridges creados e as súas propiedades.
5.6 Eliminar un Bridge
Para eliminar un bridge (primeiro quitar interfaces):
ip link delete br0 type bridge
6. Comparación entre brctl e ip para a Xestión de Bridges
| Función | brctl | ip |
|---|---|---|
| Crear un bridge | brctl addbr br0 | ip link add br0 type bridge |
| Engadir interface ao bridge | brctl addif br0 eth0 | ip link set eth0 master br0 |
| Eliminar interface do bridge | brctl delif br0 eth0 | ip link set eth0 nomaster |
| Activar o bridge | ifconfig br0 up | ip link set br0 up |
| Eliminar o bridge | brctl delbr br0 | ip link delete br0 type bridge |
| Soporte avanzado (e.g., VLANs) | Limitado | Completo |
7. Exemplo Completo de Configuración de Bridge
# Crear o bridge ip link add br0 type bridge # Engadir interfaces físicas ip link set eth0 master br0 ip link set eth1 master br0 # Asignar dirección IP ao bridge ip addr add 192.168.1.1/24 dev br0 # Activar o bridge ip link set br0 up
Neste caso, br0 actúa como un switch que conecta eth0 e eth1, permitindo que dispositivos nestas interfaces intercambien tráfico de rede.
8. Integración con Redes Virtuais
Os bridges en Linux son útiles en contornas de virtualización, conectando interfaces de máquinas virtuais ou contedores coa rede física ou entre eles, ao modo dun switch virtual.