Агрегация каналов на мосту LXC

Я работаю на сервере с несколькими различными интерфейсами (eth0-3), и в настоящее время я просто использую один для трафика хоста, а другой - для трафика моих мостов LXC. Так как у меня есть несколько запасных портов, и по моему мосту проходит много трафика, я подумал, что буду использовать другие порты для некоторой старой доброй агрегации каналов.

Это не то, с чем я действительно сталкивался раньше, это не вопрос, а то, «как я реализовал бы это в / etc / network / interfaces» ... так что мы идем.

Насколько я понимаю, я могу просто использовать связывающую вещь для связи eth1 и eth2 сказать (или даже eth3!) С устройством bond0, а затем просто изменить bridge_port моего моста br0 до bond0. Теперь все это имеет смысл для меня, что меня очень смущает то, как бы это сделать, если я не хочу назначать ip для bond0 ... В настоящее время мой br0 настроен на отсутствие IP, что означает, что хост isn ' t-способный к контакту, но все контейнеры lxc на хосте, которые имеют маршрутизируемые IP, чтобы с ними можно было связаться.

Как бы я это реализовал? Могу ли я просто не дать bond0 IP-адрес и предположить, что он будет действовать таким же образом?

Вот мои заметки / etc / network / interface file о том, как я буду делать это (имейте в виду, что я еще не реализовал это, потому что я не хочу отключать все мои сети хостов):

# host communications times
auto eth0 inet static 
iface eth0 inet static
    blahblahblah

# first slave device
auto eth1
iface eth1 inet manual
    bond-master bond0

# second slave device
auto eth2
iface eth2 inet manual
    bond-master bond0

# our bond master or aggregation device
auto bond0
iface bond0 inet manual
    # no IP?
    gateway 192.168.1.1
    netmask 255.255.255.0
    bond-mode 0

# our bridge device
auto br0
iface br0 inet manual
    # also no IP
    bridge_ports bond0
    bridge_fd 0
    bridge_maxwait 0
1
задан 6 July 2014 в 06:09

1 ответ

Таким образом, у меня была подобная проблема при получении связывающийся + образующий мост работающий над Ubuntu 14.04. Было три ключевых вещи, которые я должен был сделать:

  1. Отключают BIOS dev имена и обновляют личинку.
  2. Создают мой собственный файл названия правил udev.
  3. Имеют мост, берут IP, не связь.

хорошо шаг 1. Удостоверьтесь, что у Вас есть ЛОКАЛЬНЫЙ доступ к этому полю. Клавиатура и монитор. Мы собираемся повредить Вашу сеть. Отредактируйте этот файл: /etc/default/grub и изменение эта строка:

GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 net.ifnames=1 biosdevname=0"

(Мы не используем IPv6, таким образом, мы отключаем это также)

Затем, работает sudo update-grub и перезагрузка.

хорошо шаг 2. Затем, войдите в систему к своему полю и выполните следующее: sudo dmesg | grep eth

С любой удачей, необходимо найти устройства, таким образом, мы можем записать правила udev. Обычно люди переименовывают свои сетевые устройства MAC-адресом, но связи имеют тенденцию путать udev, потому что связь могла бы взять один из MAC-адресов Вашего NIC в определенных конфигурациях, поэтому просто не идите по той дороге. Вместо этого можно сделать это идентификатором устройства. У меня есть Intel NICs, таким образом, это - мой вывод. Ваш пробег будет варьироваться:

[ 17.888965] igb 0000:07:00.0: added PHC on eth0 [ 17.888969] igb 0000:07:00.0: eth0: (PCIe:2.5Gb/s:Width x1) d0:50:99:xx:xx:xx [ 17.889097] igb 0000:07:00.0: eth0: PBA No: 001300-000 [ 17.932484] igb 0000:08:00.0: added PHC on eth1 [ 17.932488] igb 0000:08:00.0: eth1: (PCIe:2.5Gb/s:Width x1) d0:50:99:xx:xx:xx [ 17.932615] igb 0000:08:00.0: eth1: PBA No: 001300-000

хорошо, таким образом, мои идентификаторы устройства 0000:07:00.0 и 0000:08:00.0. Они уникальны для каждой настройки оборудования.

Редактирование этот файл, и удаляют любые существующие строки из него: /etc/udev/rules.d/70-persistent-net.rules

Добавляют Ваши желаемые имена устройств как это (уведомление где к sub 0000:07:00.0 и 0000:08:00.0):

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", KERNELS=="0000:07:00.0", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", KERNELS=="0000:08:00.0", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

Woot. Почти сделанный.

Шаг 3. По любой причине я не мог заставить сети работать, если бы связь взяла IP-адрес, но это, кажется, работает, просто находят, делает ли мост. Я использую это /etc/network/interfaces (я также использую DHCP вместо статического BTW, просто удерживаю те строки файла конфигурации):

auto lo
     iface lo inet loopback

auto eth0 
iface eth0 inet manual
     bond-master bond0

auto eth1
iface eth1 inet manual
     bond-master bond0

auto bond0
iface bond0 inet manual 
     bond-slaves none
     bond-mode 802.3ad
     bond-miimon 100
     bond-downdelay 200
     bond-updelay 200

auto lan0
iface lan0 inet dhcp
  bridge_ports bond0
  bridge_fd 0
  bridge_maxwait 0

Перезагрузка и крест Ваши пальцы ног.Удачи!

РЕДАКТИРОВАНИЕ

Ubuntu имеет несколько ошибок с упорядочиванием в этой конфигурации. Я вставил, некоторые пост задерживаются, потому что я последовательно не смог вытянуть и IP-адрес по DHCP:

/etc/network/interfaces:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual
    bond-master bond0

auto eth1
iface eth1 inet manual
    bond-master bond0

auto bond0
iface bond0 inet manual
    bond-slaves eth0 eth1
    bond-mode 802.3ad
    bond-miimon 100
    bond-downdelay 200
    bond-updelay 200
    bond-xmit-hash-policy layer3+4
    up sleep 2

auto lan0
iface lan0 inet dhcp
    bridge_ports bond0
    bridge_waitport 10
    bridge_fd 0
    bridge_maxwait 0
    bridge_stp off
    pre-up sleep 2
0
ответ дан 6 July 2014 в 06:09

Другие вопросы по тегам:

Похожие вопросы: