Jangan secara otomatis menyertakan semua subdomain di alamat DNSMasq

10

Dimungkinkan untuk mengkonfigurasi DNSMasq sedemikian rupa sehingga ia mengembalikan alamat IP tetap hanya untuk permintaan untuk domain yang tepat itu, dan bukan untuk subdomainnya? Artinya, saya ingin kembali IP tetap ketika menyelesaikan example.com, tapi tidak a.example.com, b.example.comdll

Michael Mrozek
sumber

Jawaban:

9
host-record=example.com,1.2.3.4

The halaman manual dnsmasq mengatakan:

--host-record = <name> [, <name> ....] [<IPv4-address>], [<IPv6-address>]
Tambahkan catatan A, AAAA, dan PTR ke DNS. Ini menambahkan satu atau lebih nama ke DNS dengan catatan IPv4 (A) dan IPv6 (AAAA) terkait. Sebuah nama dapat muncul di lebih dari satu catatan host dan karenanya ditugaskan lebih dari satu alamat. Hanya alamat pertama yang membuat catatan PTR yang menghubungkan alamat dengan nama. Ini adalah aturan yang sama dengan membaca file host. Opsi host-record dianggap dibaca sebelum file host, jadi nama yang muncul di sana menghambat pembuatan catatan PTR jika muncul di file host juga. Tidak seperti file host, nama tidak diperluas, bahkan ketika host diperluas berlaku. Nama pendek dan panjang dapat muncul dalam catatan host yang sama , misalnya. --host-record = laptop, laptop.thekelleys.org, 192.168.0.1,1234 :: 100

Pocketpc
sumber
Pertanyaannya membawa tag "internal-dns", di mana "host-record" berlaku untuk eksternal-dns alias dns otoritatif.
Pro Backup
perhatikan bahwa jika Anda mencoba untuk mengambil alih catatan host yang ada di internet (misalnya menulis ulang untuk lan Anda), maka jika Anda menghilangkan alamat v6 dan tuan rumah memiliki alamat v6 asli di internet, dnsmasq akan mengembalikan v4 Anda yang ditimpa alamat sebagai A, dan catatan AAAA internet v6 internet sebenarnya. tentukan keduanya jika Anda tidak ingin host berkemampuan v6 tidak "masuk" ke host internet nyata melalui v6. Saya sedang menulis ulang archive.ubuntu.com untuk menunjuk ke mirror lokal saya, dan hanya menentukan alamat v4 pada LAN saya - ternyata alamat itu juga memiliki alamat v6 dan saya perlu memastikan bahwa saya mengonfigurasinya di dnsmasq juga.
menyelinap
3

Bagaimana file konfigurasi Anda? dnsmasq hanya akan menyelesaikan subdomain jika entri Anda dimulai dengan titik.

Contoh: address=/.subdomain.pc01.domain.com/192.168.1.2

Jika Anda memilikinya seperti ini:

address=/subdomain.pc01.domain.com/192.168.1.2

itu juga akan menyelesaikan asd.subdomain.pc01.domain.com:

$ host asd.subdomain.pc01.domain.com
asd.subdomain.pc01.domain.com has address 192.168.1.2
JorgeeFG
sumber
Poin yang menarik, tetapi jika Anda membaca pertanyaan dengan seksama, ini bukan yang diminta OP.
jcharaoui
1

Cukup tambahkan entri untuk domain spesifik itu di file host di server yang menjalankan DNSMasq

Mathias R. Jessen
sumber
Itu tidak berhasil; DNSMasq mengembalikan IP tetap yang sama untuk semua subdomain dari domain yang dimasukkan
Michael Mrozek
1

Dari halaman manual dnsmasq (untuk --server, tetapi juga berlaku untuk - alamat):

Domain yang lebih spesifik lebih diutamakan daripada domain yang kurang spesifik, jadi: --server = / google.com / 1.2.3.4 --server = / www.google.com / 2.3.4.5 akan mengirimkan kueri untuk * .google.com ke 1.2. 3.4, kecuali * www.google.com, yang akan masuk ke 2.3.4.5

Jadi satu-satunya solusi yang bisa saya lihat adalah dengan menambahkan catatan individual untuk setiap subdomain yang diperlukan. Jelas tidak ideal, tetapi dnsmasq terbaik dapat menyediakan saat ini (yang dapat saya temukan).

tianon
sumber