Maxim_ka
@Maxim_ka
Системный инженер

Недопонимание настройки сети Xen?

Добрый день, потратил несколько часов на то, что самому разобраться в этом вопросе, но увы, что-то не получается, прошу помощи у сообщества. В общем есть ситуация, нужно решение, или хотя бы навести меня, где можно посмотреть.

Ситуация: Сервер с установленным OracleLinux, на нем установлен Xen, oralcelinux выступает dom0. Установил еще один домен, на котором ОС WindowsXP. Вроде все хорошо. Но как не пытался сконфигурировать bridge, так и не получилось. Сам бридж создан.

Прошу помочь тех кто сталкивался с настройкой такого.

Заранее благодарю.
  • Вопрос задан
  • 8604 просмотра
Пригласить эксперта
Ответы на вопрос 4
@impass
Предположим, что вы используете Xen 4.0.1.
В /etc/xen/xend-config.sxp у вас должны быть строчки
(vif-script vif-bridge)
(network-script 'network-bridge netdev=eth0')

Это необходимо для запуска скрипта (с именем network-bridge, находится в /etc/xen/scripts), создающего мост для указанного сетевого интерфейса (eth0). Если через параметр bridge не задаёте явно имя моста, то он создаётся с тем же именем, что и физический интерфейс, а интерфейс переименовывается с префиксом «p» (т.е. в случае с eth0 у вас создастся мост eth0, а физический интерфейс станет peth0).
В конфиге гостя соответветсвенно указываете строчку:
vif = [ 'mac=00:11:22:33:44:55, ip=используемый_IP_адрес, bridge=имя_моста' ]

Затем перезапустите xend (/etc/init.d/xend restart). Если мост по тем или иным причинам не создался (проверьте через brctl show или ifconfig), то попробуйте запустить скрипт моста вручную:
/etc/xen/scripts/network-bridge start [параметры]
В качестве параметров укажите всё то, что следует в строчке network-script после имени скрипта, т.е. «netdev=eth0» и пр.
В /etc/xen/scripts/network-bridge также есть странная баго-фича, препятствующая созданию моста, если хотя бы один уже существует (бессмыслица, если вам нужно иметь больше 1 моста для тех или иных целей). Если вы с этим всё-таки истолкнулись, то уберите из скрипта /etc/xen/scripts/network-bridge конструкцию
    if [ `brctl show | wc -l` != 1 ]; then
        return
    fi

Под Windows стоит установить паравиртуальные драйверы. Это можно сделать в любой момент, даже когда сеть уже настроена.
Ответ написан
neptune
@neptune
Не знаю смогу ли помочь, настраивал xen года 3 назад.
Включение bridge сводилось только к строке в конфиге
vif = [ 'type=ioemu, bridge=xenbr0' ]

На более старой машине с ubuntu 8.04 и ubuntu в хостовой машине прописано вот так
vif = [ 'ip=192.168.1.201','mac=00:16:3E:B1:B5:5B' ]
Ответ написан
Maxim_ka
@Maxim_ka Автор вопроса
Системный инженер
Изучил файл /var/log/xen/xend.log, вот отрывок который может заинтересовать, в прошу посмотреть есть ли в нем явные ошибки. Если нет, то завтра попробую удалить все что есть, и создать новый конфиг, и новую инсталяцию гостевой системы.
[2011-08-11 20:11:48 xend 9410] DEBUG (DevController:114) DevController: writing {'backend-id': '0', 'virtual-device': '768', 'device-type': 'disk', 'state': '1', 'backend': '/local/domain/0/backend/vbd/31/768'} to /local/domain/31/device/vbd/768.
[2011-08-11 20:11:48 xend 9410] DEBUG (DevController:116) DevController: writing {'domain': 'Update-Server', 'frontend': '/local/domain/31/device/vbd/768', 'format': 'raw', 'dev': 'hda', 'state': '1', 'params': '/usr/XenDisk/myimage.img', 'mode': 'w', 'online': '1', 'frontend-id': '31', 'type': 'file'} to /local/domain/0/backend/vbd/31/768.
[2011-08-11 20:11:48 xend 9410] DEBUG (DevController:114) DevController: writing {'backend-id': '0', 'mac': '00:16:3E:51:92:8C', 'handle': '0', 'state': '1', 'backend': '/local/domain/0/backend/vif/31/0'} to /local/domain/31/device/vif/0.
[2011-08-11 20:11:48 xend 9410] DEBUG (DevController:116) DevController: writing {'domain': 'Update-Server', 'handle': '0', 'script': '/etc/xen/scripts/vif-bridge', 'ip': '192.168.5.6', 'state': '1', 'frontend': '/local/domain/31/device/vif/0', 'mac': '00:16:3E:51:92:8C', 'online': '1', 'frontend-id': '31'} to /local/domain/0/backend/vif/31/0.
[2011-08-11 20:11:48 xend 9410] INFO (image:434) spawning device models: /usr/lib64/xen/bin/qemu-dm ['/usr/lib64/xen/bin/qemu-dm', '-d', '31', '-m', '256', '-boot', 'c', '-serial', 'pty', '-vcpus', '1', '-domain-name', 'Update-Server', '-net', 'nic,vlan=1,macaddr=00:16:3E:51:92:8C,model=rtl8139', '-net', 'tap,vlan=1,bridge=xenbr0', '-vnc', '192.168.5.5:31', '-vncunused']
[2011-08-11 20:11:48 xend 9410] INFO (image:437) device model pid: 25468
[2011-08-11 20:11:48 xend.XendDomainInfo 9410] DEBUG (XendDomainInfo:990) Storing VM details: {'shadow_memory': '8', 'uuid': '985e35d7-9508-705c-5c59-cfb261f94e8e', 'on_reboot': 'restart', 'start_time': '1313075508.97', 'on_poweroff': 'destroy', 'name': 'Update-Server', 'xend/restart_count': '0', 'vcpus': '1', 'vcpu_avail': '1', 'memory': '256', 'on_crash': 'restart', 'image': "(hvm (kernel /usr/lib/xen/boot/hvmloader) (args 'VNC_VIEWER=127.0.0.1:5512 ') (device_model /usr/lib64/xen/bin/qemu-dm) (vcpus 1) (boot c) (timer_mode 1) (serial pty) (vnc 1) (vncunused 1) (vnclisten 192.168.5.5) (display localhost:11.0) (xauthority /root/.Xauthority) (vncpasswd ))", 'maxmem': '256'}
[2011-08-11 20:11:48 xend.XendDomainInfo 9410] DEBUG (XendDomainInfo:1025) Storing domain details: {'console/port': '3', 'name': 'Update-Server', 'console/limit': '1048576', 'vm': '/vm/985e35d7-9508-705c-5c59-cfb261f94e8e', 'domid': '31', 'cpu/0/availability': 'online', 'memory/target': '262144', 'store/ring-ref': '65534', 'store/port': '2'}
[2011-08-11 20:11:48 xend.XendDomainInfo 9410] DEBUG (XendDomainInfo:2045) UUID Created: False
[2011-08-11 20:11:48 xend.XendDomainInfo 9410] DEBUG (XendDomainInfo:2046) Devices to release: [], domid = 30
[2011-08-11 20:11:48 xend.XendDomainInfo 9410] DEBUG (XendDomainInfo:2050) Releasing PVFB front-end devices (uuid not created)...
[2011-08-11 20:11:48 xend.XendDomainInfo 9410] DEBUG (XendDomainInfo:2058) Releasing PVFB backend devices ...
[2011-08-11 20:11:48 xend.XendDomainInfo 9410] DEBUG (XendDomainInfo:1246) XendDomainInfo.handleShutdownWatch
[2011-08-11 20:11:49 xend 9410] DEBUG (DevController:158) Waiting for devices vif.
[2011-08-11 20:11:49 xend 9410] DEBUG (DevController:164) Waiting for 0.
[2011-08-11 20:11:49 xend 9410] DEBUG (DevController:509) hotplugStatusCallback /local/domain/0/backend/vif/31/0/hotplug-status.
[2011-08-11 20:11:49 xend 9410] DEBUG (DevController:509) hotplugStatusCallback /local/domain/0/backend/vif/31/0/hotplug-status.
[2011-08-11 20:11:49 xend 9410] DEBUG (DevController:523) hotplugStatusCallback 1.
[2011-08-11 20:11:49 xend 9410] DEBUG (DevController:158) Waiting for devices usb.
[2011-08-11 20:11:49 xend 9410] DEBUG (DevController:158) Waiting for devices vbd.
[2011-08-11 20:11:49 xend 9410] DEBUG (DevController:164) Waiting for 768.
[2011-08-11 20:11:49 xend 9410] DEBUG (DevController:509) hotplugStatusCallback /local/domain/0/backend/vbd/31/768/hotplug-status.
[2011-08-11 20:11:49 xend 9410] DEBUG (DevController:509) hotplugStatusCallback /local/domain/0/backend/vbd/31/768/hotplug-status.
[2011-08-11 20:11:49 xend 9410] DEBUG (DevController:523) hotplugStatusCallback 1.
[2011-08-11 20:11:49 xend 9410] DEBUG (DevController:158) Waiting for devices irq.
[2011-08-11 20:11:49 xend 9410] DEBUG (DevController:158) Waiting for devices vkbd.
[2011-08-11 20:11:49 xend 9410] DEBUG (DevController:158) Waiting for devices vfb.
[2011-08-11 20:11:49 xend 9410] DEBUG (DevController:158) Waiting for devices pci.
[2011-08-11 20:11:49 xend 9410] DEBUG (DevController:158) Waiting for devices ioports.
[2011-08-11 20:11:49 xend 9410] DEBUG (DevController:158) Waiting for devices tap.
[2011-08-11 20:11:49 xend 9410] DEBUG (DevController:158) Waiting for devices vtpm.
[2011-08-11 20:11:49 xend 9410] INFO (XendDomain:387) Domain Update-Server (31) unpaused.


Заранее благодарю всех.
Ответ написан
Maxim_ka
@Maxim_ka Автор вопроса
Системный инженер
В общем наконец нашел ошибку почему все это дело не работает, надеюсь правильно понял, если нет, прошу поправить. Во-первых:

[root@OracleLinux xen]# brctl show
bridge name bridge id STP enabled interfaces
virbr0 8000.000000000000 yes
xenbr0 8000.feffffffffff no peth0
vif0.0
Если я правильно понял, то он создал мне бридж на интерфейс eth0.
Мне необходимо поменять его на eth2, вот тут-то и засада.
Конструкцию которую указал мне Lux_In_Tenebris в файле скрипта я не нашел. При попытке создать бридж руками получаю следующее сообщение:

[root@OracleLinux ~]# /etc/xen/scripts/network-bridge bridge=eth2bridge netdev=eth2 start

Link veth0 is missing.
This may be because you have reached the limit of the number of interfaces
that the loopback driver supports. If the loopback driver is a module, you
may raise this limit by passing it as a parameter (nloopbacks=); if the
driver is compiled statically into the kernel, then you may set the parameter
using loopback.nloopbacks= on the domain 0 kernel command line.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы