Назад | Перейти на главную страницу

LXC контейнерная сеть / проблемы с маршрутизацией

Я экспериментировал с виртуализацией LXC, чтобы запускать виртуальные машины на выделенном сервере, но у меня возникли проблемы с правильной настройкой сети.

Я использую мостовую сеть veth, как указано здесь: http://blog.foaa.de/2010/05/lxc-on-debian-squeeze/ (руководство, которое я использовал для настройки контейнера LXC)

Когда я запускаю контейнер, он работает нормально, имеет доступ к Интернету и принимает входящие соединения на свой собственный IP-адрес. Однако, как только я его запустил, сеть на моем хост-компьютере (выделенном сервере) полностью отключилась и не вернется, пока сервер не будет перезагружен.

Единственное, что я могу думать о том, что могло бы вызвать это, - это неправильно настроенные параметры моста, однако я не совсем уверен, какие должны быть правильные. Любой совет о том, как я могу это перенастроить? Спасибо.

И хост-узел, и сам контейнер работают под управлением Debian Squeeze с обновленными до последних версий пакетами.

Конфигурация сети хост-узла (выделенного сервера) (/ etc / network / interfaces):

allow-hotplug eth0
auto br0
iface br0 inet static
    bridge_ports eth0
    bridge_fd 0
    bridge_stp off
    bridge_maxwait 0 
    address 46.105.102.29
    netmask 255.255.255.0
    network 46.105.102.0
    broadcast 46.105.102.255
    gateway 46.105.102.254

Конфигурация сети контейнера LXC (/ etc / network / interfaces):

auto eth0
iface eth0 inet static
    address 94.23.153.205
    netmask 255.255.255.0
    broadcast 94.23.153.205
    post-up route add 46.105.102.254 dev eth0
    post-up route add default gw 46.105.102.254
    post-down route del 46.105.102.254 dev eth0

Конфигурация сети контейнера (из конфигурационного файла LXC):

lxc.utsname = paradox
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br0
lxc.network.hwaddr = 02:00:00:ba:47:a0
lxc.network.ipv4 = 94.23.153.205

Я создал множество контейнеров squeeze / wheezy по той же инструкции (http://blog.foaa.de/2010/05/lxc-on-debian-squeeze/)

Единственное, что я делаю иначе, это то, что я использую виртуальный сетевой мост. (И я думаю, проблема в том, что у вас есть мост к сетевой карте, а не к виртуальному устройству)

Добавьте что-то вроде этого в свой / etc / network / interfaces (используя свои собственные номера):

#VLAN 5
auto eth0.5
iface eth0.5 inet manual
  vlan_raw_device eth0

auto vzbr5
iface vzbr5 inet static
  address 10.11.15.1
  netmask 255.255.255.0
  network 10.11.15.0
  broadcast 10.11.15.255
  bridge_maxwait 0
  bridge_ports none
  post-up /usr/sbin/brctl addif vzbr5 eth0.5
  post-up /sbin/ifconfig eth0.5 up

затем

sudo ifup vzbr5

После этого используйте vzbr5 как сетевое устройство.

Пожалуйста, посмотрите полная инструкция.

Вы хотите поместить статический адрес в контейнеры / etc / network / interfaces или в файл конфигурации, но не в оба. Лично я предпочитаю устанавливать его в / etc / network / interfaces.

Вы также можете удалить, поскольку файл конфигурации заботится о шлюзе:

post-up route add 46.105.102.254 dev eth0
post-up route add default gw 46.105.102.254
post-down route del 46.105.102.254 dev eth0

Почему вы выбрали allow-hotplug eth0 на вашем хосте? Обычно в этом нет необходимости. Также дважды проверьте адрес шлюза и любые настройки брандмауэра на шлюзе.

Кажется, вы снова подключаете адаптер. ..

У вас есть апатер на выделенном сервере, который подключен к мосту? Мне было бы любопытно, что будет, если запустить второй контейнер?

Вместо маршрутизации с использованием таких слов, как dev и eth0, я хотел бы взглянуть на кое-что для управления виртуальными сетями, особенно если вы также согласны с решением NAT. На ливбвирте брали?