LINUX.ORG.RU

как узнать о гостевой сети в libvirt?

 , , ,


0

2

Доброго времени суток!

Может кто подскажет, как через API libvirt выдернуть IP адрес, который получила виртуалка? Вывести информацию о сетевых интерфейсах виртуалки? Возможно ли это реализовать средствами libvirt или по-другому, более элегантно, чем парсинг dhcp.leases?

До этого делал парсинг dhcp.leases по мак адресу машинки на хосте гипервизора. Т.к. гипервизор может быть удаленным, то парсинг делать не хочется.

P.S. использую python-libvirt

★★★

никак

создай один dhcp сервер и пропиши для маков нужные ip адреса.

dimon555 ★★★★★
()

агент в ВМ который сообщает по сети или через hyperchannel какой айпи она получила. именно это делает rhev-agent и ovirt-agent

dyasny ★★★★★
()
Ответ на: комментарий от dyasny

агент в ВМ который сообщает по сети или через hyperchannel какой айпи она получила.

вот изврат-то, через hyperchannel, если есть ip адрес то накрайняк можно подключиться на какой-нибудь сервер или через snmp.

dimon555 ★★★★★
()
Ответ на: комментарий от dyasny

есть ip, есть и сеть

ещё можно образы подготавливать специальные каждый с маленьким дифом

проблема в том, что ip адрес не часть компьютера, а часть стека tcp/ip операционной системы(биоса и т.д.) и hypercall это уже паравиртуализация.

dimon555 ★★★★★
()
Ответ на: комментарий от dimon555

есть ip, есть и сеть

а если нет, apipa как показать?

проблема в том, что ip адрес не часть компьютера, а часть стека tcp/ip операционной системы(биоса и т.д.) и hypercall это уже паравиртуализация.

нет, это просто сериальный девайс проброшенный из хоста в гест, с драйвером и сокетом

dyasny ★★★★★
()
Ответ на: комментарий от dyasny

Так и не разобрал механизм работы этих агентов. Да и слишком много кода.

Я решил проблему по-другому. Узнаю имя сетевого интерфейса и соответствующий CIDR. Потом пингую всю сеть CIDR и считываю таблицу ARP на предмет искомого MAC. Кода гораздо меньше.

insider ★★★
() автор топика
Ответ на: комментарий от dyasny

ВМ не в той сети, что и хост, это как, например?

Я рассчитываю на два самых распространенных случая сетевой настройки ВМ: NAT и bridge.

Обычно ВМ не в той сети, если подключение к удаленному хосту, в этом случае узнавать IP несколько бесполезно, потому как если там NAT, то все равно снаружи по этому IP не подключиться.

insider ★★★
() автор топика
Ответ на: комментарий от insider

простой случай - хост с несколькими мостами смотрящими в разные сети. большинство мостов айпи не имеют, так как хост, из соображений безопасности, не должен быть доступен из данной сети.

случайно воткнули ВМ не в тот бридж (бывает, когда их много)

. . .

no profit :)

dyasny ★★★★★
()
Ответ на: комментарий от dyasny

К сожалению, такой случай неразрешим с хоста. Нужно ставить сторонний софт на ВМ, дабы получить желаемый ip.

insider ★★★
() автор топика
Ответ на: комментарий от insider

вот и я о том же. просто если уже ставишь агента, то можно доставать из него и другию информацию, не только айпи. и передавать через него команды в ВМ кстати тоже

dyasny ★★★★★
()
Ответ на: комментарий от insider

это демон в ВМ, который цепляется к hypercall. на хосте бежит vdsmd который этих агентов опрашивает, а центральный сервер управления, RHEV-M собирает инфу с хостов. Там не только айпи адреса, но и список установленного софта, залогиненный юзер в данный момент и т.д.

dyasny ★★★★★
()
Ответ на: комментарий от apmucm

вряд ли, но можно поискать на ovirt, оно может и взлететь.

dyasny ★★★★★
()
Ответ на: комментарий от dyasny

Судя по статье об установке на хосте должна быть специфически сконфигурирована сеть. Мне это не подходит, т.к. на хосте ничего не хочу устанавливать/модифицировать. Разве что выполнить питоний код.

insider ★★★
() автор топика
Ответ на: комментарий от insider

это для vdsm, но его гонять не обязательно. к сокету hypercall можно подключиться и вручную, просто vdsm уже делает всю работу

dyasny ★★★★★
()
Ответ на: комментарий от dyasny

сокету hypercall можно подключиться и вручную

Что это за Элис и где она живет?

Можно пару ссылок, желательно с примерами кода?

insider ★★★
() автор топика
Ответ на: комментарий от insider

кстати, еще как вариант работы с независимым от сети портом - можно подцепить вполне штатный сериальный порт, и использовать его как для консоли, так и как обычный порт для передачи информации, готовых модулей для работы с сериальными портами полным полно

dyasny ★★★★★
()
Ответ на: комментарий от insider

да, конечно надо. Я тут описал весь процесс для консоли: http://www.ovirt.org/Features/Serial_Console_in_CLI#Currently_operational_wor...

правда это скорее как дополнительная фича в овирте, но все изменения в ВМ и в domxml там есть

dyasny ★★★★★
()
Ответ на: комментарий от dyasny

Я уже впендюрил поддержку консоли. Вот что вырисовывается.

insider ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.