При запуске Ubuntu 12.04 у нас есть 12 интерфейсов на гипервизоре, которые мы хотим предоставить в каждой виртуальной машине. Когда мы используем только элементы интерфейса в xml, мы получаем интерфейсы, но мы не можем предсказать / контролировать, подключается ли eth0 в виртуальной машине к eth0 на HV. Мы пробовали использовать нумерацию шины PCI, как показано в lspci, для управления ею, но, похоже, это не сработало.
Должны ли мы определять наши сети в отдельном элементе в сетевом xml на HV, или как мы должны настроить?
образец из текущего xml для vm:
<interface type='hostdev'>
<source dev='eth3' mode='vepa'>
<address type='pci' domain='0x0000' bus='0x16' slot='0x10' function='0x1'/>
</source>
<target dev='macvtap0'/>
</interface>
<interface type='bridge'>
<source bridge='br4'/>
<target dev='vnet0'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
Обычным способом согласованного сопоставления сетевых адаптеров в Linux является указание MAC-адреса в определениях сетевых адаптеров или использование udev 70-persistent-net-rules
Если вы определяете MAC в domXML (используя режимы транзитной передачи по мосту или macvtap), вы управляете этим MAC и можете определить его в виртуальной машине. Если вы используете vepa (у вас должен быть коммутатор, поддерживающий 802.1Qbg), то MAC-адрес подключенного сетевого адаптера должен распространяться на виртуальную машину, и вы можете указать, на каком сетевом адаптере в виртуальной машине будет находиться интерфейс (с помощью конфигураций udev или сетевого адаптера или обоих )