Назад | Перейти на главную страницу

How to assign VM hostname by <host> определение в интерфейсе виртуальной сети libvirt</host>

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

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

<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 - вам просто нужно скомпилировать его из исходного кода с правильным флагом. Это описано в документы (эта ссылка указывает на конкретную фиксацию в истории - будущие читатели захотят взглянуть на последнюю версию этих документов).