Начиная с версии 5.6.0, либвирт
добавил dnsmasq
пространство имен с элемент
, что позволяет указывать параметры непосредственно базовому серверу dnsmasq. Я хотел бы создать запись DNS с подстановочными знаками для своих приложений с этой опцией. Так что я использовал вирш сетевое редактирование
, измененный <network>
к <network xmlns:dnsmasq='http://libvirt.org/schemas/network/dnsmasq/1.0'>
и добавил следующие опции:
<dnsmasq:options>
<dnsmasq:option value='cname=boards.cnx65-k8s.hobel.internal,cnx65-k8s.hobel.internal'/>
<dnsmasq:option value='cname=*.app.cnx65-k8s.hobel.internal,cnx65-k8s.hobel.internal'/>
</dnsmasq:options>
После этого сеть была перезапущена (virsh net-destroy && virsh net-start
) и целевая виртуальная машина тоже (вирш уничтожить && вирш начать
).
cname=boards.cnx65-k8s.hobel.internal
отлично работает:
$ dig +short boards.cnx65-k8s.hobel.internal @192.168.10.1
cnx65-k8s.hobel.внутренний.
192.168.10.136
Но копать +short x.app.cnx65-k8s.hobel.internal @192.168.10.1
не разрешается ни на какой IP-адрес. Сгенерированный файл конфигурации /var/lib/libvirt/dnsmasq/hobel.internal.conf
содержит обе записи cname в конце:
строгий порядок
пользователь = libvirt-dnsmasq
местный=/hobel.internal/
домен = hobel.internal
расширить хосты
pid-file=/run/libvirt/network/hobel.internal.pid
кроме интерфейса = вот
связывание-динамический
интерфейс=virbr1
DHCP-диапазон = 192.168.10.10,192.168.10.254,255.255.255.0
DHCP-без переопределения
dhcp-авторитетный
DHCP-аренда-макс = 245
dhcp-hostsfile=/var/lib/libvirt/dnsmasq/hobel.internal.hostsfile
addn-hosts=/var/lib/libvirt/dnsmasq/hobel.internal.addnhosts
cname=boards.cnx65-k8s.hobel.internal,cnx65-k8s.hobel.internal
cname=*.app.cnx65-k8s.hobel.internal,cnx65-k8s.hobel.internal
Согласно этому ответу, Я добавил сервер авторизации
и имя-интерфейса
к вариантам:
<dnsmasq:options>
<dnsmasq:option value='cname=boards.cnx65-k8s.hobel.internal,cnx65-k8s.hobel.internal'/>
<dnsmasq:option value='cname=*.app.cnx65-k8s.hobel.internal,cnx65-k8s.hobel.internal'/>
<dnsmasq:option value='auth-server=cnx65-k8s.hobel.internal,virbr1'/>
<dnsmasq:option value='interface-name=cnx65-k8s.hobel.internal,virbr1'/>
</dnsmasq:options>
Но x.app.cnx65-k8s.hobel.internal
до сих пор не решено:
$ копать x.app.cnx65-k8s.hobel.internal @192.168.10.1
; <<>> DiG 9.16.1-Ubuntu <<>> x.app.cnx65-k8s.hobel.internal @192.168.10.1
;; глобальные параметры: +cmd
;; Получил ответ:
;; ->>HEADER<<- код операции: QUERY, статус: NOERROR, id: 43624
;; флаги: qr rd объявление; ЗАПРОС: 1, ОТВЕТ: 0, АВТОРИЗАЦИЯ: 0, ДОПОЛНИТЕЛЬНО: 1
;; ВНИМАНИЕ: рекурсия запрошена, но недоступна
;; ДОПОЛНИТЕЛЬНЫЙ ПСЕВДОРАЗДЕЛ:
; ЭДНС: версия: 0, флаги:; UDP: 4096
;; РАЗДЕЛ ВОПРОСОВ:
;x.app.cnx65-k8s.hobel.internal. В
;; Время запроса: 0 мс
;; СЕРВЕР: 192.168.10.1#53(192.168.10.1)
;; КОГДА: Сб, 03 июля, 12:14:05 CEST 2021
;; РАЗМЕР MSG rcvd: 59
Почему это не работает? Даже официальный либвирт
документация перечисляет подстановочный знак cname в качестве примера:
<dnsmasq:option value="cname=*.foo.example.com,master.example.com"/>