Иногда мы сталкиваемся с тем, что виртуальная машина недоступна. В данной статье описано что в этом случае следует проверить и на что обратить внимание.
-  Проверьте, что бридж поднят и виртуальный сетевой интерфейс соединен с бриджом. brctl showbridge name bridge id STP enabled interfaces virbr0 8000.000000000000 yes vmbr0 8000.003048f17bf8 no eth0 vnet0 vnet1 vnet2 vnet3 vnet4
- Проверьте файервол на родительском сервере и на самой виртуальной машине.
- Проверьте антиспуфинг. Антиспуфинг реализован средствами 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>В данном случае действует фильтр vm-IPmanager5
Все правила описаны в формате xml и находятся в директории /etc/libvirt/nwfilter/. В фильтрах используются макросы, которые для каждой виртуальной машины определены в соответствующем xml файле. Xml, описывающие виртуальную машину расположены в директории /etc/libvirt/qemu/.
Посмотреть список всех фильтров:
virsh nwfilter-listПосмотреть фильтр:
virsh nwfilter-dumpxml <имя фильтра>Отключить антиспуфинг можно через интерфейс в Управление → Виртуальные машины → Изменить.
Более подробно: http://libvirt.org/firewall.html
- Проверьте настройки сети на виртуальной машине. Подключитесь по vnc к машине и проверьте, что ip, маска и шлюз заданы верно.
- Каждая виртуальная машина имеет свой mac адрес. Поэтому в дата центрах, где используется port security, виртуальные машины доступны не будут.