Я работаю на сервере с несколькими различными интерфейсами (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
Таким образом, у меня была подобная проблема при получении связывающийся + образующий мост работающий над Ubuntu 14.04. Было три ключевых вещи, которые я должен был сделать:
хорошо шаг 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