Как мне установить мост xen?

Я читал различные страницы о том, как настроить сеть для xen. К сожалению, ни один из них не имеет полного примера конфигурации. Они ясно показывают, как должен выглядеть раздел xenbr0, но не как вы должны изменить eth0 после упоминания:

Примечание! Конфигурация IP мостового устройства должна заменить конфигурацию IP базового интерфейса, то есть удалить настройки IP из eth0 и переместить их в интерфейс моста. eth0 будет функционировать исключительно как физическая линия связи от моста, поэтому на нем не может быть никаких настроек IP (L3)!

Я перепробовал много конфигураций, которые все не работают (после запуска /etc/init.d/networking перезапуска нет нормального доступа к netowork и не может войти или выйти ssh).

Вот мой текущий конфиг:

auto lo
iface lo inet loopback

auto xenbr0
iface xenbr0 inet static
    bridge_ports eth0
    address 10.0.0.3
    netmask 255.0.0.0
    broadcast 10.255.255.255
    gateway 10.0.0.1

auto eth0
iface eth0 inet manual

Возможно, это правильно, и мне просто нужно установить некоторые правила пересылки iptables? Я попытался запустить команду sudo iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT, но получил сообщение об ошибке, что --physdev-is-bridged не является опознанной опцией.

Отладочный вывод перезапуска сети дает следующий вывод:

Reconfiguring network interfaces...
Waiting for xenbr0 to get ready (MAXWAIT is 32 seconds).
RTNETLINK answers: No such process
Failed to bring up xenbr0
ssh stop/waiting
ssh start/running, process 3775

Я проверил, что xenbr0 уже существует, потому что когда я пытаюсь создать мост с таким именем, brctl говорит мне, что это не может создать как уже существующее.

5
задан 16 February 2013 в 20:17

2 ответа

Сначала определите eth0, без настройте шлюз и IP. (В противном случае у вас будут возникать ошибки «RTNETLINK answers: файл существует», когда система попытается создать маршрут для интерфейса, поскольку мост попытается создать маршрут с тем же приоритетом и шлюзом, и он недостаточно умен, чтобы понять, что они ' в любом случае идентичны.)

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual

auto xenbr0
iface xenbr0 inet static
    address 192.168.1.10
    netmask 255.255.255.0
    gateway 192.168.1.1
    bridge_ports eth0
    #allow-hotplug xenbr0 #Uncomment if using vSwitches

В качестве альтернативы, ваш мост может использовать DHCP:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual

auto xenbr0
iface xenbr0 inet dhcp
    bridge_ports eth0
    #allow-hotplug xenbr0 #Uncomment if using vSwitches

По завершении перезагрузите компьютер. В противном случае, поскольку вы меняли eth0, но не устанавливали новый IP-адрес, ваш мост может работать некорректно, даже если вы используете команду ifup / перезапустите сеть. Это потому, что eth0 может случайно сохранить свой IP-адрес.

Наконец, настройте сетевые интерфейсы вашей гостевой ОС, как если бы это был любой другой физический хост в вашей сети. (В примере 1 вы можете использовать 192.168.1.11.) В этот момент другие устройства в вашей сети должны быть в состоянии связаться с гостем.

ping 192.168.1.11 

Нет необходимости в iptables или IP-пересылке (sysctl.conf). STP необходим только , если ваша сеть поддерживает STP, и вам нужно избегать петель сети 2-го уровня, и вы не хотите обрабатывать это вручную. (т.е. малым сетям не понадобятся bridge_stp, bridge_fd или bridge_maxwait.)

0
ответ дан 16 February 2013 в 20:17

В конце концов, я просто создал интерфейс и переадресовал через него пакеты с некоторыми правилами iptables, что, похоже, работает для меня. Это НЕ использует параметр 'bridge', который, как кажется, предлагают все уроки, поэтому я не знаю, есть ли фатальный недостаток?

auto lo
iface lo inet loopback


auto xenbr0
iface xenbr0 inet static
        bridge_ports none
        address 192.168.2.1
        netmask 255.255.255.0
        network 192.168.2.0
        broadcast 192.168.2.255
        gateway 10.0.0.3


# The primary network interface
auto eth0
iface eth0 inet static
        address 10.0.0.3
        netmask 255.0.0.0
        network 10.0.0.0
        broadcast 10.255.255.255
        gateway 10.0.0.1
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 8.8.8.8

Вам нужно отредактировать /etc/sysctl.conf и и раскомментируйте следующую строку:

net.ipv4.ip_forward=1 

Затем вам нужно создать скрипт для редактирования iptables для пересылки пакетов:

sudo /sbin/iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
sudo /sbin/iptables --append FORWARD --in-interface xenbr0 -j ACCEPT
return 0

Затем вам нужно убедиться, что скрипт вызывается Файл rc.local:

sudo vi /etc/rc.local

Добавьте следующую строку:

/bin/sh <path-to-script-you-just-created-here>

Затем перезагрузите компьютер, чтобы все настройки вступили в силу.

Как вы можете заметить, я настроил его так, чтобы виртуальные машины использовали адресную подсеть 192.168.2.x, в то время как внешняя локальная сеть находится на 10.xxx, что, вероятно, отличается от того, что большинство людей захотят, поэтому придется редактировать их в соответствии с вашими личными потребностями.


Обновление
Позже я понял, что отсутствие моста означает, что я не могу получить доступ к своим виртуальным машинам из-за пределов сети (то есть я не могу напрямую подключиться к ним из дома или запустить веб-сайт). от них и т. д.)

Использование конфигурации сети, как это работает:

# The loopback network interface
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual

auto xenbr0
iface xenbr0 inet static
        address 23.29.115.142
        netmask 255.255.255.248
        network 23.29.115.136
        broadcast 23.29.115.143
        gateway 23.29.115.137
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0

(скопировано отсюда)

Я предполагаю, что те дополнительные опции моста заставили его работать, или, возможно, порядок, в котором интерфейсы были перечислены в файле (на этот раз перед мостом eth0)

0
ответ дан 16 February 2013 в 20:17

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

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