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

Как правильно настроить связанный мост на Centos 6 для гостей KVM?

Как правильно настроить связанный мост на Centos 6 для гостей KVM?

В настоящее время я играю с настройкой двух KVM-хостов, каждый из которых будет принимать несколько гостей. У меня есть два HP DL380: s по 4 ника каждый. Я хотел бы использовать два сетевых адаптера (eth0, eth1) в связке с активным резервным копированием (mode = 1) по причинам аварийного переключения, выходящим в Интернет. Затем я хотел бы, чтобы два других сетевых устройства (eth2, eth3) также были в связке с активным резервным копированием, обращенные к административной / задней сети.

Помимо связи, мне нужен мост, который гости KVM будут использовать для доступа к передней или задней сети.

В interwebz я нашел много разных способов это настроить. Некоторые просто упоминают соединение, некоторые просто мосты, а некоторые пытаются объединить его. Ни один из найденных мною не сказал, что произойдет, если я буду использовать переднюю и заднюю сеть со многими хостами.

Некоторые из моих проблем / вопросов.

Вот красивая картинка, как выглядит окружение (по крайней мере, его часть).

Вот мои соответствующие файлы конфигурации.

/ и т.д. / sysconfig / сеть

NETWORKING=yes
HOSTNAME=host1
GATEWAYDEV=br0
NETWORKING_IPV6=no

/ и т.д. / sysconfig / сетевые сценарии / ifcfg-eth0 - ifcfg-eth3

DEVICE="ethX"
NM_CONTROLLED="no"
ONBOOT=yes
HWADDR=xx:xx:xx:xx:xx:xx
SLAVE=yes
MASTER=bondX
HOTPLUG=no
BOOTPROTO=none

/ и т.д. / sysconfig / сетевые скрипты / ifcfg-bond0 - ifcfg-bond1

DEVICE=bondX
BONDING_OPTS="miimon=100 mode=1"
ONPARENT=yes
BOOTPROTO=none
BRIDGE=brX

/ и т. д. / sysconfig / сетевые сценарии / ifcfg-br0

DEVICE=br0
TYPE=Bridge
ONBOOT=yes
DELAY=0
BOOTPROTO=none

/ и т. д. / sysconfig / сетевые сценарии / ifcfg-br1

DEVICE=br1
TYPE=Bridge
ONBOOT=yes
DELAY=0
BOOTPROTO=static
IPADDR=10.0.1.100
NETMASK=255.255.255.0

Обновление 1

* Обновление 2 *

  1. переадресация в iptables будет работать, но зачем? это определенно создаст дополнительные накладные расходы
  2. сетевая схема кажется правильной, хотя я бы попытался заставить оборудование использовать режим 4 вместо 1, чтобы быть в безопасности, а также для агрегации трафика
  3. не имея IP-адресов на br0 и br1, есть ли у вас другие сетевые адаптеры, через которые можно получить доступ к хосту? Вы действительно не хотите блокировать себя (если, конечно, у вас также нет iLO)
  4. сообщение ядра, которое вы опубликовали, обычно связано с использованием режимов связывания, несовместимых с мостом (0 и 6). Можете ли вы убедиться, что вы действительно находитесь в режиме 1 (/ proc / net / bonding / ...), обычно содержит указание
  5. пересылка между подсетями не должна происходить без определенной конфигурации, однако ядро ​​хостов должно иметь возможность определять, какой пакет предназначен, где в br0 и br1 находятся в разных подсетях, поэтому виртуальная машина на br0 должна иметь возможность разговаривать в сети br0 , и если вы хотите, чтобы он также мог общаться на br1, добавьте еще одну виртуальную сетевую карту и прикрепите ее туда

Не уверен насчет CentOS 6, но в Fedora модуль связывания не добавлен в ядро ​​Linux по умолчанию, поэтому вам нужно создать файл /etc/modprobe.d/bonding.conf с содержанием

alias bond0 bonding

Перезагрузитесь, и вы должны увидеть, что модуль связывания загружается во время загрузки.

Поскольку у вас есть два связанных интерфейса, вам, возможно, придется добавить еще одну строку псевдонима для bond1. Однако я никогда этого не пробовал.

Предложите вам запустить один, а затем позаботиться о настройке второго.

Другая проблема, которую вы подняли по поводу моста, другие моменты, на которые следует обратить внимание, эти конфигурации работают с сеть демон, но я не верю, что они работают с Сетевой менеджер. Вы используете сеть или демон NetworkManager?

И, наконец, существуют разные способы настройки netfilter для обработки мостовых интерфейсов. По крайней мере, в Fedora 12+ по умолчанию netfilter на мостах отключен. Однако вы можете изменить это, отредактировав /etc/sysctl.conf и установка

net.bridge.bridge-nf-call-iptables=1

Сделайте то же самое для arp и ipv6, и в этом файле вам также необходимо установить

net.ipv4.ip_forward=1

Очистите цепочку FORWARD и замените правилом iptables

iptables -A FORWARD -m physdev --physdev-is-bridged -j ACCEPT