Нормальная локалка+выход в инет на контейнерах OpenVZ
acrobatНе вдаваясь в подробности VETH/VENET
yum install bridge-utils
1. cp /etc/sysconfig/network-scripts/eth0 /etc/sysconfig/network-scripts/vmbr0
Меняем
DEVICE="vmbr0"
TYPE="Bridge"
Добавляем, если нет
IPV6INIT="no"
IPV6_AUTOCONF="no"
ONBOOT="yes"
2. Если IP статический - сюда /etc/sysconfig/network добавляем GATEWAY из eth0
3. Сюда /etc/sysconfig/network-scripts/ifcfg-eth0 пишем:
DEVICE="eth0"
HWADDR="08:00:27:2D:82:3A"
ONBOOT="yes"
BRIDGE="vmbr0"
где 08:00:27:2D:82:3A - РЕАЛЬНЫЙ MAC-адрес сетевухи (физической)
4. Применяем настройки: sudo service network restart
5. Сюда /etc/vz/vznet.conf добавляем EXTERNAL_SCRIPT="/usr/sbin/vznetaddbr"
6. Прописываем eth0 в контейнер:
vzctl start 100 vzctl set 100 --netif_add eth0 --save
Если орет по поводу "нельзя", комментируем строку в /etc/vz/vznet.conf и пробуем еще раз
Если что-то вроде "уже есть", удаляем NETIF-строку из /etc/vz/conf/100.conf и пробуем еще раз
Если пишет "unable umount" - выйдите из /vz/root каталога на хост-машине
7. Заходим в контейнер vzctl enter 100
8. Прописываем конфиг /etc/sysconfig/network-scripts/ifcfg-eth0
Либо DHCP:
DEVICE="eth0"
TYPE="Ethernet"
BOOTPROTO="dhcp"
IPV6INIT="no"
IPV6_AUTOCONF="no"
ONBOOT="yes"
Либо статический (удобнее):
DEVICE="eth0"
TYPE="Ethernet"
BOOTPROTO="static"
IPV6INIT="no"
IPV6_AUTOCONF="no"
ONBOOT="yes"
IPADDR=192.168.1.101
NETMASK=255.255.255.0
9. На хост-машине прописываем:
iptables -t nat -A POSTROUTING -o vmbr0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
честно, не разбирался зачем оба, но только eth0 не работает.
10. На хост-машине: service network restart
11. Если нужен проброс белого IP-шника на виртуалку - просто добавляем его к виртуалке:
vzctl set 100 --ipadd x.x.x.x
где x.x.x.x - белый IP адрес