Как добавить еще одну сетевую карту гостю в KVM

Linux
Ну удалось сходу найти в русском сегменте сети инструкцию по данной теме. Тем кто только начинает изучать виртуализацию в среде KVM будет полезно.

Есть уже работающий домен (виртуальный сервер) под названием gw, которому надо добавить еще одно устройство — сетевую карту. Данный домен будет использоваться в качестве шлюза сети, NAT. В системе уже должны быть настроены bridge интерфейсы:

# brctl show
bridge name  bridge id          STP enabled   interfaces
bridge0      8000.00a0d1e848c4  no            eth0
                                              vnet0
                                              vnet1
bridge1      8000.00a0d1e848c5  no            eth1


Из этой картины мы видим, что к bridge0 уже подцеплено два виртуальных сетевых интерфейса, которые уже работают в каких-та доменах.

Задача — на bringe1 повесить еще один виртуальный интерфейс, который будет доступен в виртуальной машине в качестве eth1.

Чем пользоваться: virsh-manager, virsh. С virsh-manager все понятно, гораздо интереснее консольный вариант virsh.

Если домен работает надо его остановить и далее выполнить команду virsh edit gw (фактически вы даете команду открыть для редактирования файл /etc/libvirt/qemu/gw.xml). Найти что-то типа этого:

<interface type='bridge'>
  <mac address='52:54:00:8c:9e:22'/>
  <source bridge='bridge0'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>


Это уже существующая карта. Добавляем рядом еще одну:

<interface type='bridge'>
  <mac address='52:54:00:8c:9e:22'/>
  <source bridge='bridge0'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
<interface type='bridge'>
  <source bridge='bridge1'/>
</interface>


virsh сам проверит правильность тегов и приведет все в порядок. Т.е. будет добавлен тег address и mac. После можно запускать домен. В итоге в гостевой системе появится новая карта, а на хосте будет создана новая виртуальная карта:

# brctl show
bridge name  bridge id          STP enabled   interfaces
bridge0      8000.00a0d1e848c4  no            eth0
                                              vnet0
                                              vnet1
bridge1      8000.00a0d1e848c5  no            eth1
                                              vnet2

5 комментариев

avatar
Ну или просто консольно:
attach-interface gw --type bridge --source bridge0 --persistent


Не люблю XML :)
avatar
да уж, куда проще ))
Как умудрился пропустить данную опцию не понимаю %(