Привет всем!
Что то я немного туплю с настройкой сети КVM. А именно, начало вопроса здесь: http://linuxforum.ru/viewtopic.php?id=23274 Далее - курим интернет, конференцию и приходим к выводу, что можно для организации сети под мои особенности применить виртуализацию сетевого интерфейса с помощью VDE-2.
Итак, имеем RFR-15, libvirt 9.13. К нему virt-manager 0.9.1. IP-форвардинг включен.
устанавливаем пакет VDE следующим образом:
svn co https://vde.svn.sourceforge.net/svnroot/vde/trunk/vde-2 vde_svn
cd vde_svn
autoreconf -fi
./configure --enable-kernel-switch && make && make installПроблем с этим нет. Далее делаем:
[console] #vde_tunctl -t tap0 [/console]
На выходе - молчание, ifconfig интерфейса tap0 не показывает. Но, думаем, что интерфейс создан.
Далее делаем на tap0 свитч:
[console] #vde_switch -x -n 5 -s /run/vde2/vde.ctl -g vde2-net -m 770 -d -p /run/vde2/vde.pid -t tap0 [/console]
Сообщений опять нет никаких, думаем, что свитч поднимается в заданной конфигурации. Но ifconfig все равно нам ничего не показывает. Делаем дальше, как написано в VDE README-файле:
[console] #ifconfig tap0 192.168.43.208 up[/console]
То есть назначаем на бридж tap0 сетевой адрес. Только после этого ifconfig нам показывает интерфейс tap0.
Далее - настраиваю сеть виртуальных машин через virt-manager. И тут то и приходит нам пушной зверек. Выбираю там в интерфейсе при настройке сетевого моста tap0, ставлю инфтефейс virtio, пытаюсь запустить гостя и ролучаю окно с текстом:
Ошибка запуска : Unable to add bridge tap0 port vnet1: Неподдерживаемая операцияПри этом в расшифровке дополнительно сообщается:
Ошибка запуска : Unable to add bridge tap0 port vnet1: Неподдерживаемая операция
Traceback (most recent call last):
File "/usr/share/virt-manager/virtManager/asyncjob.py", line 45, in cb_wrapper
callback(asyncjob, *args, **kwargs)
File "/usr/share/virt-manager/virtManager/asyncjob.py", line 66, in tmpcb
callback(*args, **kwargs)
File "/usr/share/virt-manager/virtManager/domain.py", line 1114, in startup
self._backend.create()
File "/usr/lib/python2.7/site-packages/libvirt.py", line 620, in create
if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self)
libvirtError: Unable to add bridge tap0 port vnet1: Неподдерживаемая операция
То есть libvirt откровенно (как я понимаю) не хочет видеть мост tap0, который поднят средствами VDE. При этом, tap0 пингуется (адрес то есть) и через него можно зайти на тестовую машину, где он поднят, по ssh. То есть, оно работает...
Ладно, морщим лоб и пытаемся через brctl поднять мост br0 на tap0. Проблем с этим не возникает, в результате имеем:
[console]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.ea68fb6bac9e yes tap0
virbr0 8000.52540022d39f yes virbr0-nic
#ifconfig
.....
tap0 Link encap:Ethernet HWaddr EA:68:FB:6B:AC:9E
inet addr:192.168.43.208 Bcast:192.168.43.255 Mask:255.255.255.0
inet6 addr: fe80::e868:fbff:fe6b:ac9e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:25 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:0 (0.0 b) TX bytes:4881 (4.7 KiB)
virbr0 Link encap:Ethernet HWaddr 52:54:00:22:D3:9F
inet addr:192.168.100.1 Bcast:192.168.100.255 Mask:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:936 errors:0 dropped:0 overruns:0 frame:0
TX packets:676 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:65337 (63.8 KiB) TX bytes:77317 (75.5 KiB)
[/console]
Снова настраиваем в virt-manager сетевой интерфейс. Пишем там имя моста br0, после чего гостевая ось (CentOS) запускается. Но... там, унутре гостя, сетевой его интерфейс болтается "в воздухе", выхода через него во внешний мир нету никакого.
Коллеги, спинным мозгом чую, что истина где то рядом. Наведите на решение проблемы. Почему KVM не хочет видеть мосты VDE на Fedora?
И, кстати, после установки VDE virt-manager об интерфейсах macvtap забыл напрочь...