Иногда мы сталкиваемся с тем, что виртуальная машина недоступна. В данной статье описано что в этом случае следует проверить и на что обратить внимание.

  • Проверьте, что бридж поднят и виртуальный сетевой интерфейс соединен с бриджом. 

    brctl show

    bridge name	bridge id		STP enabled	interfaces
    virbr0		8000.000000000000	yes
    vmbr0		8000.003048f17bf8	no		eth0
    							vnet0
    							vnet1
    							vnet2
    							vnet3
    							vnet4
    CODE
  • Проверьте файервол на родительском сервере и на самой виртуальной машине.
  • Проверьте антиспуфинг. Антиспуфинг реализован средствами libvirt, в iptables правила антиспуфинга не добавляются.

Команда virsh dumpxml <имя виртуальной машины> покажет описание машины, в том числе какие фильтры к ней применяются.

Пример вывода

<interface type='network'>
      <mac address='52:54:00:3e:df:04'/>
      <source network='DefaultBridge'/>
      <target dev='vnet0'/>
      <filterref filter='vm-isptest'>
        <parameter name='IP' value='172.31.224.12'/>
        <parameter name='IPV6' value='2a01:230::bef6:85ff:fed7:4062'/>
      </filterref>
CODE

В данном случае действует фильтр vm-IPmanager5

Все правила описаны в формате xml и находятся в директории /etc/libvirt/nwfilter/. В фильтрах используются макросы, которые для каждой виртуальной машины определены в соответствующем xml файле. Xml, описывающие виртуальную машину расположены в директории /etc/libvirt/qemu/.

Посмотреть список всех фильтров:

virsh nwfilter-list
CODE

Посмотреть фильтр:

virsh nwfilter-dumpxml <имя фильтра>
CODE

Отключить антиспуфинг можно через интерфейс в Управление → Виртуальные машины → Изменить

Более подробно: http://libvirt.org/firewall.html

  • Проверьте настройки сети на виртуальной машине. Подключитесь по vnc к машине и проверьте, что ip, маска и шлюз заданы верно. 
  • Каждая виртуальная машина имеет свой mac адрес. Поэтому в дата центрах, где используется port security, виртуальные машины доступны не будут.