Puncte:1

Înregistrarea CNAME wildcard specificată de libvirts dnsmasq:options namespace nu funcționează, funcționează doar anumite subdomenii

drapel jp

Din v5.6.0, libvirt a adăugat a dnsmasq spatiu de nume cu element, care permite specificarea opțiunilor direct la serverul dnsmasq de bază. Aș dori să creez o intrare DNS wildcard pentru aplicațiile mele cu această opțiune. Așa că am folosit virsh net-edit, schimbat <network> la <network xmlns:dnsmasq='http://libvirt.org/schemas/network/dnsmasq/1.0'> și a adăugat următoarele opțiuni:

  <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>

După aceea, rețeaua a fost repornită (virsh net-destroy && virsh net-start) și VM de țintire de asemenea (virsh distruge && virsh start).

The cname=boards.cnx65-k8s.hobel.internal functioneaza perfect:

$ dig +scurte boards.cnx65-k8s.hobel.internal @192.168.10.1
cnx65-k8s.hobel.intern.
192.168.10.136

Dar dig +short x.app.cnx65-k8s.hobel.internal @192.168.10.1 nu se rezolvă la nicio adresă ip. Fișierul de configurare generat /var/lib/libvirt/dnsmasq/hobel.internal.conf conține ambele intrări cname la sfârșit:

strict-ordine
utilizator=libvirt-dnsmasq
local=/hobel.internal/
domeniu=hobel.internal
extinde-gazde
pid-file=/run/libvirt/network/hobel.internal.pid
except-interfață=lo
bind-dinamic
interfață=virbr1
dhcp-range=192.168.10.10,192.168.10.254,255.255.255.0
dhcp-no-override
dhcp-autoritar
dhcp-lease-max=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

Conform acestui răspuns, Am adăugat auth-server și nume-interfață la optiuni:

  <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>

Dar x.app.cnx65-k8s.hobel.intern inca nu este rezolvata:

$ dig 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
;; opțiuni globale: +cmd
;; Am răspuns:
;; ->>HEADER<<- opcode: QUERY, stare: NOERROR, id: 43624
;; steaguri: qr rd ad; ÎNTREBARE: 1, RĂSPUNS: 0, AUTORITATE: 0, SUPLIMENTARE: 1
;; AVERTISMENT: recursiunea este solicitată, dar nu este disponibilă

;; PSEUDOSECȚIE OPT:
; EDNS: versiunea: 0, steaguri:; udp: 4096
;; SECȚIUNEA DE ÎNTREBĂRI:
;x.app.cnx65-k8s.hobel.intern. ÎN A

;; Timp de interogare: 0 ms
;; SERVER: 192.168.10.1#53(192.168.10.1)
;; CÂND: Sâmbătă, 03 iulie, 12:14:05 CEST 2021
;; MSG SIZE rcvd: 59

De ce nu funcționează asta? Pana si oficial libvirt documentație listează ca exemplu o intrare wildcard cname:

<dnsmasq:option value="cname=*.foo.example.com,master.example.com"/>
Lion avatar
drapel jp
De ce am primit un vot negativ pentru această întrebare? Doar votul negativ cu orice răspuns sau cel puțin comentariu este foarte slab și nu constructiv!
drapel pt
Te-ai uitat la fișierul de configurare generat pentru rețea? Opțiunile sunt acolo așa cum era de așteptat? Dacă sunt, aveți o întrebare dnsmasq, nu o întrebare libvirt.
Puncte:0
drapel pt

I think you have a dnsmasq configuration problem; maybe the interface name? It looks like you can use a wildcard. Given the following configuration for my default network:

<network xmlns:dnsmasq='http://libvirt.org/schemas/network/dnsmasq/1.0' connections='1'>
  <name>default</name>
  <uuid>34eaa498-ba0f-4762-a0f9-27f53dd07687</uuid>
  <forward mode='nat'>
    <nat>
      <port start='1024' end='65535'/>
    </nat>
  </forward>
  <bridge name='virbr0' stp='on' delay='0'/>
  <mac address='52:54:00:5d:a7:ff'/>
  <ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254'/>
    </dhcp>
  </ip>
  <dnsmasq:options>
    <dnsmasq:option value='cname=foo.example.com,master.example.com'/>
    <dnsmasq:option value='cname=*.foo.example.com,master.example.com'/>
    <dnsmasq:option value='auth-zone=example.com'/>
    <dnsmasq:option value='auth-server=example.com,*'/>
  </dnsmasq:options>
</network>

I end up with /var/lib/libvirt/dnsmasq/default.conf that looks like:

strict-order
pid-file=/run/libvirt/network/default.pid
except-interface=lo
bind-dynamic
interface=virbr0
dhcp-range=192.168.122.2,192.168.122.254,255.255.255.0
dhcp-no-override
dhcp-authoritative
dhcp-lease-max=253
dhcp-hostsfile=/var/lib/libvirt/dnsmasq/default.hostsfile
addn-hosts=/var/lib/libvirt/dnsmasq/default.addnhosts
cname=foo.example.com,master.example.com
cname=*.foo.example.com,master.example.com
auth-zone=example.com
auth-server=example.com,*

The following queries work from a vm attached to that network:

[root@example-vm ~]# dig +short foo.example.com
master.example.com.
[root@example-vm ~]# dig +short a.foo.example.com
master.example.com.
[root@example-vm ~]# dig +short b.foo.example.com
master.example.com.

And as expected this fails to return anything:

[root@example-vm ~]# dig +short bar.example.com

(Tests were run on Fedora 34, using libvirt-7.0.0-4.fc34.x86_64 and dnsmasq-2.85-1.fc34.x86_64)

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.