8.2. Мостовое соединение с помощью libvirt
Мостовое соединение используется для выделения физического устройства виртуальной машине и часто применяется для более тонкой настройки серверов с многочисленными сетевыми интерфейсами.
Если ваша система использует мост Xen, рекомендуется его отключить. Для этого в файле /etc/xen/xend-config.sxp
измените строку
(network-script network-bridge)
на
(network-script /bin/true)
NetworkManager не поддерживает мостовое подключение и должен быть отключен, если вы планируете использовать сетевое окружение со старыми сетевыми сценариями.
# chkconfig NetworkManager off
# chkconfig network on
# service NetworkManager stop
# service network start
Note
Вместо отключения NetworkManager можно добавить параметр «NM_CONTROLLED=no
» в сценарии ifcfg-*
.
Создайте или отредактируйте указанные ниже файлы конфигурации сети. Повторите для каждого дополнительного сетевого моста (изменив имя).
Перейдите в каталог /etc/sysconfig/network-scripts
.
# cd /etc/sysconfig/network-scripts
Откройте сценарий для добавляемого устройства. В приведенном примере ifcfg-eth0
содержит определение физического сетевого интерфейса, входящего в состав моста:
DEVICE=eth0
# измените аппаратный адрес, чтобы он соответствовал адресу сетевой карты
HWADDR=00:16:76:D6:C9:45
ONBOOT=yes
BRIDGE=br0
Подсказка
Можно настроить максимальный размер блока передачи (MTU, Maximum Transfer Unit), добавив переменную MTU
в конец файла конфигурации.
MTU=9000
Создайте новый сценарий с именем ifcfg-br0
(или аналогичным названием) в каталоге /etc/sysconfig/network-scripts
. br0
обозначает имя моста и может иметь любую длину, главное — чтобы эта часть имени файла совпадала с параметром DEVICE.
DEVICE=br0
TYPE=Bridge
BOOTPROTO=dhcp
ONBOOT=yes
DELAY=0
Warning
The line, TYPE=Bridge
, is case-sensitive. It must have uppercase 'B' and lower case 'ridge'.
Завершив настройку, перезапустите службу сети или перезагрузите компьютер.
# service network restart
Configure iptables
to allow all traffic to be forwarded across the bridge.
# iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT
# service iptables save
# service iptables restart
Disable iptables on bridges
Alternatively, prevent bridged traffic from being processed by iptables
rules. In /etc/sysctl.conf
append the following lines:
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
Reload the kernel parameters configured with sysctl
# sysctl -p /etc/sysctl.conf
Restart the libvirt
daemon.
# service libvirtd reload
Теперь должно быть доступно общее физическое устройство, которое гости могут подключить. Проверьте его наличие:
# brctl show
bridge name bridge id STP enabled interfaces
virbr0 8000.000000000000 yes
br0 8000.000e0cb30550 no eth0
Обратите внимание, что созданный мост совершенно не зависит от virbr0
. НЕ пытайтесь подключить физическое устройство к virbr0
. Мост virbr0
используется исключительно для NAT.