Как назначить имя хоста виртуальной машиныопределение в виртуальном сетевом интерфейсе libvirt

Как назначить имя хоста виртуальной машиныопределение в виртуальном сетевом интерфейсе libvirt

Fedora 30 Workstation Host, Fedora 30 Server (netinstall) Гости. Я не эксперт во всех этих супер-сумасшедших сетевых штучках Linux и прочитал кучу материалов там и там. Поэтому у меня есть виртуальный сетевой интерфейс libvirt:

<network>
  <name>ocp-cluster</name>
  <forward mode='nat'>
    <nat>
      <port start='1024' end='65535'/>
    </nat>
  </forward>
  <bridge name='virbr-ocpc' stp='on' delay='0'/>
  <mac address='52:54:00:2c:01:00'/>
  <domain name='ocp.domain.local' localOnly='no'/>
  <dns>
    <forwarder addr='192.168.130.10'/>
  </dns>
  <ip address='192.168.131.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.131.50' end='192.168.131.254'/>
      <host mac='52:54:00:2c:01:10' name='lb-1.ocp.domain.local' ip='192.168.131.10'/>
      <host mac='52:54:00:2c:01:11' name='bootstrap.ocp.domain.local' ip='192.168.131.11'/>
      <host mac='52:54:00:2c:01:12' name='master-1.ocp.domain.local' ip='192.168.131.12'/>
      <host mac='52:54:00:2c:01:13' name='worker-1.ocp.domain.local' ip='192.168.131.13'/>
    </dhcp>
  </ip>
</network>

но когда я создаю новые виртуальные машины и назначаю правильный MAC-адрес сетевому интерфейсу (вручную или в kickstart --mac 52:54:00:2c:01:10 \), имя хоста, назначенное этому MAC-адресу, не установлено для виртуальной машины. Но если я правильно понял из документации libvirt - оно должно быть назначено. Связано ли это с <dns><forwarder ardr...>? В моем случае 192.168.130.10это адрес виртуальной машины DNSmasq, которая использует отдельный мост NAT. Конечно, я могу назначить имя хоста в файле kickstart network --hostname=lb-1.ocp.domain.local, но я хочу понять, как это <host name...>работает. IP-адрес для виртуальной машины назначается правильно.

решение1

Атрибут имени на членах хоста не тот, что вам нужен. Как ни странно, правильный способ сделать это — использовать раздел DNS вместо раздела IP. Добавление атрибута имени делает соответствие слишком ограничивающим (хотя я не разбирался, почему именно это происходит), поэтому это не применимо к вашим машинам. Попробуйте что-то вроде этого:

<network>
  ...
  <dns>
    <host ip='192.168.131.10'>
      <hostname>lb-1.ocp.domain.local</hostname>
    </host>
    <host ip='192.168.131.11'>
      <hostname>bootstrap.ocp.domain.local</hostname>
    </host>
    <host ip='192.168.131.12'>
      <hostname>master-1.ocp.domain.local</hostname>
    </host>
    <host ip='192.168.131.13'>
      <hostname>worker-1.ocp.domain.local</hostname>
    </host>
  </dns>
  <ip address='192.168.131.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.131.50' end='192.168.131.254'/>
      <host mac='52:54:00:2c:01:10' ip='192.168.131.10'/>
      <host mac='52:54:00:2c:01:11' ip='192.168.131.11'/>
      <host mac='52:54:00:2c:01:12' ip='192.168.131.12'/>
      <host mac='52:54:00:2c:01:13' ip='192.168.131.13'/>
    </dhcp>
  </ip>
</network>

И поскольку я вижу, что вы пытаетесь установить OpenShift, я также добавлю, что вам не нужно делать эту настройку вручную. Установщик поддерживает libvirt - вам просто нужно скомпилировать его из исходников с нужным флагом. Это описано вдокументы(Эта ссылка ведет на конкретный коммит в истории — будущие читатели захотят взглянуть на последнюю версию этих документов).

Связанный контент