Как установить -h, --no-hosts для экземпляра KVM dnsmasq

У меня есть виртуальные машины на основе KVM, работающие на моем ноутбуке, а имена виртуальных машин разрешаются через DNS-сервер KVM dnsmasq. Однако DNS-сервер KVM dnsmasq также разрешает имена в файле hosts / etc / hosts, что вызывает у меня некоторые проблемы. Поэтому я хочу изменить конфигурацию, согласно которой файл / etc / hosts KVM-сервера не используется для разрешения имен.

Согласно справке dnsmasq, это должно быть возможно с использованием опции -h или --no-hosts, однако я не нашел способа правильно настроить dnsmask KVM. virsh net-edit позволяет мне редактировать конфигурационный XML, однако неясно, как установить там параметр -h или --no-hosts.

1
задан 16 May 2018 в 18:21
1 ответ

Метод 1

Самый простой способ решить эту проблему — установить ACL в /etc/hosts, который запрещает пользователю dnsmasq доступ к файлу. В Debian это пользователь nobody, в Ubuntu это libvirt-dnsmasq.

Вы можете установить acl следующим образом:

setfacl -m user:nobody:--- /etc/hosts

Метод 2

Однако, если у вас очень новая версия libvirt (еще недоступная в debian buster), теперь есть официальная поддержка для этого:

Libvirt v5.6.0 (2019-08-05) добавлена ​​поддержка передачи пользовательских параметров в dnsmasq.

Из документации:

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

В этом примере XML строки параметров foo=bar и cname=*.foo.example.com,master.example.com будут переданы непосредственно в базовый экземпляр dnsmasq.

<сетевой xmlns:dnsmasq='http://libvirt.org/schemas/network/dnsmasq/1.0'>
 ...
 
 
 
 

Я бы попробовал так:

<network xmlns:dnsmasq='http://libvirt.org/schemas/network/dnsmasq/1.0'>
  ...
  <dnsmasq:options>
    <dnsmasq:option value="no-hosts"/>
  </dnsmasq:options>
</network>
0
ответ дан 18 May 2020 в 14:22

Теги

Похожие вопросы