
Я использую Lenny Xen dom0, размещающий несколько виртуальных машин в маршрутизируемой настройке IP. Чтобы получить дополнительную частную подсеть, я создал мост xenbr0 в dom0 с помощью следующих команд:
brctl addbr xenbr0
ifconfig xenbr0 10.0.0.1 netmask 255.255.255.0
ifconfig xenbr0 up
Это работает, как и ожидалось, и интерфейсы domU добавляются к мосту Xen при запуске VM. Моя единственная проблема: как, черт возьми, мне указать эту конфигурацию в /etc/network/interfaces, чтобы она оставалась постоянной, а мост был доступен после перезагрузки? Я попробовал следующую конфигурацию, которую можно найти во многих руководствах:
auto xenbr0
iface xenbr0 inet static
address 10.0.0.1
netmask 255.255.255.0
network 10.0.0.0
broadcast 10.0.0.255
bridge_stp no
Я получаю 2 разные ошибки, в зависимости от того, существует ли мост или нет. Если его нет:
root@dom0:~# brctl show
bridge name bridge id STP enabled interfaces
root@dom0:~# /etc/init.d/networking restart
Reconfiguring network interfaces...if-up.d/mountnfs[eth0]: waiting for interface xenbr0 before doing NFS mounts (warning).
SIOCSIFADDR: No such device
xenbr0: ERROR while getting interface flags: No such device
SIOCSIFNETMASK: No such device
SIOCSIFBRDADDR: No such device
xenbr0: ERROR while getting interface flags: No such device
xenbr0: ERROR while getting interface flags: No such device
Failed to bring up xenbr0.
done.
И если он существует:
root@dom0:~# brctl show
bridge name bridge id STP enabled interfaces
xenbr0 8000.000000000000 no
root@dom0:~# /etc/init.d/networking restart
Reconfiguring network interfaces...if-up.d/mountnfs[eth0]: waiting for interface xenbr0 before doing NFS mounts (warning).
RTNETLINK answers: File exists
Failed to bring up xenbr0.
done.
Может ли кто-нибудь указать мне правильное направление? Мост отлично работает, если его создать вручную, мне просто нужны правильные записи в файле конфигурации. Большинство руководств, которые я нашел, добавляют некоторые устройства в мост в конфигурации, может быть, в этом проблема, почему он не работает? У меня нет интерфейсов, которые я хочу добавить в мост при создании, так как они добавляются позже при запуске виртуальной машины...
Спасибо, Матиас.
решение1
Кажется, вы упустили самую важную строку:
auto xenbr0
iface xenbr0 inet static
bridge_ports eth0 eth4 eth7 # bridge traffic between these interfaces
bridge_stp no
address 10.0.0.1
netmask 255.255.255.0
network 10.0.0.0
broadcast 10.0.0.255
man
говорит: Если вам нужно указать интерфейсы более гибко, вы можете использовать следующий синтаксис (наиболее полезен на Xen dom0):
bridge_ports regex (eth|vif).*
Это означает оценку (как в egrep(1)) выражений, следующих после «regex».
решение2
А как насчет скрипта, который запускается после запуска и выполняет нужные вам команды?
решение3
Возможно, вам придется удалить network-manager
пакет. Он часто мешает ручным настройкам интерфейса.