Configuración de red para OpenVZ en servidor iWeb
Este documento toma elementos de la configuración mostrada en Using private IPs for Hardware Nodes.
Sistema instalado
iWeb entrega el sistema configurado así:
# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 10
link/ether 00:1b:21:28:d5:15 brd ff:ff:ff:ff:ff:ff
inet 70.38.78.182/27 brd 70.38.78.191 scope global eth0
inet 70.38.83.81/29 brd 70.38.83.87 scope global eth0:1
inet 70.38.83.82/29 brd 70.38.83.87 scope global eth0:2
inet 70.38.83.83/29 brd 70.38.83.87 scope global eth0:3
inet 70.38.83.84/29 brd 70.38.83.87 scope global eth0:4
inet 70.38.83.85/29 brd 70.38.83.87 scope global eth0:5
inet 70.38.83.86/29 brd 70.38.83.87 scope global eth0:6
inet6 fe80::21b:21ff:fe28:d515/64 scope link
valid_lft forever preferred_lft forever
# ip route show 70.38.83.80/29 dev eth0 proto kernel scope link src 70.38.83.81 70.38.78.160/27 dev eth0 proto kernel scope link src 70.38.78.182 default via 70.38.78.161 dev eth0
Reservar IPes para contenedores
Desconfigurar todas las IP, menos la principal y una de los alias del archivo /etc/network/interfaces (solo debe quedar eth0 y eth0:1 activas en el HN)
Reiniciar interfaces de red:
/etc/init.d/networking restart
# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 10
link/ether 00:1b:21:28:d5:15 brd ff:ff:ff:ff:ff:ff
inet 70.38.78.182/27 brd 70.38.78.191 scope global eth0
inet 70.38.83.81/29 brd 70.38.83.87 scope global eth0:1
inet6 fe80::21b:21ff:fe28:d515/64 scope link
valid_lft forever preferred_lft forever
Paquetes requeridos
apt-get install bridge-utils
Script para crear bridge
#!/bin/bash
sleep 5
brctl addbr br0
ifconfig eth0 0
brctl addif br0 eth0
ifconfig br0 70.38.78.182/27
ifconfig br0:1 70.38.83.81/29
ip route del default via 70.38.78.161 dev eth0
ip route add default via 70.38.78.161 dev br0
Ejecutar script en background. Esto perderá conexion de red y requerirá volver a conectar.
# ./bridge.sh >/dev/null 2>&1 & # exit
Al volver a conectar se creo un bridge:
- La IP principal esta en br0
- Una IP virtual queda en br0:1
- eth0 no tiene IP
- la ruta por defecto está en br0
# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 10
link/ether 00:1b:21:28:d5:15 brd ff:ff:ff:ff:ff:ff
inet6 fe80::21b:21ff:fe28:d515/64 scope link
valid_lft forever preferred_lft forever
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
link/ether 00:1b:21:28:d5:15 brd ff:ff:ff:ff:ff:ff
inet 70.38.78.182/27 brd 70.38.78.191 scope global br0
inet 70.38.83.81/29 brd 70.38.83.87 scope global br0:1
inet6 fe80::21b:21ff:fe28:d515/64 scope link
valid_lft forever preferred_lft forever
# ip route show 70.38.83.80/29 dev eth0 proto kernel scope link src 70.38.83.81 70.38.78.160/27 dev br0 proto kernel scope link src 70.38.78.182 default via 70.38.78.161 dev br0
Configuración fija
Si todo queda bien, adaptar el /etc/network/interfaces para que esta configuración sea la por defecto:
auto lo
iface lo inet loopback
auto br0
iface br0 inet static
address 70.38.78.182
netmask 255.255.255.224
network 70.38.78.160
broadcast 70.38.78.191
gateway 70.38.78.161
bridge_ports eth0
auto br0:1
iface br0:1 inet static
address 70.38.83.81
netmask 255.255.255.248
Se coloca el alias en el bridge.
Reiniciar y ver que todo quede funcionando normalmente.
Crear primer contenedor
Ya se puede crear el primer contenedor, sugiendo este documento