Иногда мы сталкиваемся с тем, что виртуальная машина недоступна. В данной статье описано что в этом случае следует проверить и на что обратить внимание.
-
Проверьте, что бридж поднят и виртуальный сетевой интерфейс соединен с бриджом.
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, виртуальные машины доступны не будут.