Score:1

ระเบียน Wildcard CNAME ที่ระบุโดย libvirts dnsmasq:options เนมสเปซไม่ทำงาน เฉพาะโดเมนย่อยเท่านั้นที่ใช้งานได้

ธง jp

ตั้งแต่ v5.6.0 libvirt เพิ่ม dnsmasq เนมสเปซกับ ธาตุซึ่งอนุญาตให้ระบุตัวเลือกโดยตรงกับเซิร์ฟเวอร์ dnsmasq พื้นฐาน ฉันต้องการสร้างรายการ DNS แบบไวด์การ์ดสำหรับแอปพลิเคชันของฉันด้วยตัวเลือกนั้น ดังนั้นฉันจึงใช้ virsh สุทธิแก้ไข, เปลี่ยน <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-detroy && virsh net-start) และ VM เป้าหมายด้วย (virsh ทำลาย && เริ่มต้น virsh).

เดอะ cname=boards.cnx65-k8s.hobel.internal ทำงานได้อย่างสมบูรณ์แบบ:

$ ขุด +short boards.cnx65-k8s.hobel.internal @192.168.10.1
cnx65-k8s.hobel.internal.
192.168.10.136

แต่ ขุด + สั้น 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-no-แทนที่
dhcp-ผู้มีอำนาจ
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

ตามคำตอบนี้ฉันเพิ่ม รับรองความถูกต้องเซิร์ฟเวอร์ และ ชื่ออินเทอร์เฟซ ไปที่ตัวเลือก:

  <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<<- opcode: QUERY, สถานะ: NOERROR, id: 43624
;; ธง: โฆษณา qr rd; คำถาม: 1, คำตอบ: 0, ผู้มีอำนาจ: 0, เพิ่มเติม: 1
;; คำเตือน: มีการร้องขอการเรียกซ้ำ แต่ไม่สามารถใช้ได้

;; เลือก PSEUDOSECTION:
; EDNS: เวอร์ชัน: 0, แฟล็ก:; UDP: 4096
;; ส่วนคำถาม:
;x.app.cnx65-k8s.hobel.ภายใน ใน

;; เวลาสืบค้น: 0 มิลลิวินาที
;; เซิร์ฟเวอร์: 192.168.10.1#53(192.168.10.1)
;; เมื่อ: ส. 03 ก.ค. 12:14:05 CEST 2021
;; ขนาดผงชูรส rcvd: 59

ทำไมสิ่งนี้ไม่ทำงาน แม้แต่ เป็นทางการ libvirt เอกสาร แสดงรายการอักขระตัวแทน cname เป็นตัวอย่าง:

<dnsmasq:option value="cname=*.foo.example.com,master.example.com"/>
Lion avatar
jp flag
ทำไมฉันถึงได้รับคะแนนโหวตสำหรับคำถามนี้ การลงคะแนนด้วยคำตอบใด ๆ หรืออย่างน้อยก็แสดงความคิดเห็นนั้นแย่มากและไม่สร้างสรรค์!
pt flag
คุณดูไฟล์การกำหนดค่าที่สร้างขึ้นสำหรับเครือข่ายแล้วหรือยัง ตัวเลือกในนั้นเป็นไปตามที่คาดไว้หรือไม่? หากใช่ แสดงว่าคุณมีคำถาม dnsmasq ไม่ใช่คำถาม libvirt
Score:0
ธง 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)

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา