unbound / nsd mengembalikan SERVFAIL yang menyelesaikan DNS LAN lokal. nsd sendiri berfungsi dengan baik

9

Saya telah menggunakan unbound sebagai server DNS rekursif lokal. Baru saja menambahkan nsd untuk mengatur DNS LAN lokal. nsd mendengarkan pada port 53530 dan itu berfungsi dengan baik:

$ dig @127.0.0.1 data2.datanet.home -p 53530

; <<>> DiG 9.9.2-P2 <<>> @127.0.0.1 data2.datanet.home -p 53530
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59577
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;data2.datanet.home.            IN      A

;; ANSWER SECTION:
data2.datanet.home.     600     IN      A       192.168.1.62

;; AUTHORITY SECTION:
datanet.home.           600     IN      NS      ns1.datanet.home.

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53530(127.0.0.1)
;; WHEN: Mon Jun 15 07:16:24 2015
;; MSG SIZE  rcvd: 81

Saat melewati pemblokiran lokal, itu tidak berfungsi:

$ dig @127.0.0.1 data2.datanet.home

; <<>> DiG 9.9.2-P2 <<>> @127.0.0.1 data2.datanet.home
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 47645
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;data2.datanet.home.            IN      A

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Jun 15 07:18:02 2015
;; MSG SIZE  rcvd: 47

Inilah yang saya dapatkan di log yang tidak terikat dengan kata-kata: 4

Jun 15 06:12:39 pizza.yoderdev.com unbound[1947]: [1947:0] info: validator operate: query router.datanet.home. A IN
Jun 15 06:12:39 pizza.yoderdev.com unbound[1947]: [1947:0] debug: validator: pass to next module
Jun 15 06:12:39 pizza.yoderdev.com unbound[1947]: [1947:0] debug: mesh_run: validator module exit state is module_wait_module
Jun 15 06:12:39 pizza.yoderdev.com unbound[1947]: [1947:0] debug: iterator[module 1] operate: extstate:module_state_initial event:
Jun 15 06:12:39 pizza.yoderdev.com unbound[1947]: [1947:0] debug: process_request: new external request event
Jun 15 06:12:39 pizza.yoderdev.com unbound[1947]: [1947:0] debug: iter_handle processing q with state INIT REQUEST STATE
Jun 15 06:12:39 pizza.yoderdev.com unbound[1947]: [1947:0] info: resolving router.datanet.home. A IN
Jun 15 06:12:39 pizza.yoderdev.com unbound[1947]: [1947:0] debug: request has dependency depth of 0
Jun 15 06:12:39 pizza.yoderdev.com unbound[1947]: [1947:0] info: use stub datanet.home. NS IN
Jun 15 06:12:39 pizza.yoderdev.com unbound[1947]: [1947:0] debug: cache delegation returns delegpt
Jun 15 06:12:39 pizza.yoderdev.com unbound[1947]: [1947:0] info: DelegationPoint<datanet.home.>: 0 names (0 missing), 1 addrs (0 r
Jun 15 06:12:39 pizza.yoderdev.com unbound[1947]: [1947:0] debug:    ip4 127.0.0.1 port 53530 (len 16)
Jun 15 06:12:39 pizza.yoderdev.com unbound[1947]: [1947:0] debug: iter_handle processing q with state INIT REQUEST STATE (stage 2)
Jun 15 06:12:39 pizza.yoderdev.com unbound[1947]: [1947:0] info: resolving (init part 2):  router.datanet.home. A IN
Jun 15 06:12:39 pizza.yoderdev.com unbound[1947]: [1947:0] info: use stub datanet.home. NS IN
Jun 15 06:12:39 pizza.yoderdev.com unbound[1947]: [1947:0] debug: iter_handle processing q with state INIT REQUEST STATE (stage 3)
Jun 15 06:12:39 pizza.yoderdev.com unbound[1947]: [1947:0] info: resolving (init part 3):  router.datanet.home. A IN
Jun 15 06:12:39 pizza.yoderdev.com unbound[1947]: [1947:0] debug: iter_handle processing q with state QUERY TARGETS STATE
Jun 15 06:12:39 pizza.yoderdev.com unbound[1947]: [1947:0] info: processQueryTargets: router.datanet.home. A IN
Jun 15 06:12:39 pizza.yoderdev.com unbound[1947]: [1947:0] debug: processQueryTargets: targetqueries 0, currentqueries 0 sentcount
Jun 15 06:12:39 pizza.yoderdev.com unbound[1947]: [1947:0] info: DelegationPoint<datanet.home.>: 0 names (0 missing), 1 addrs (0 r
Jun 15 06:12:39 pizza.yoderdev.com unbound[1947]: [1947:0] debug:    ip4 127.0.0.1 port 53530 (len 16)
Jun 15 06:12:39 pizza.yoderdev.com unbound[1947]: [1947:0] debug: attempt to get extra 3 targets
Jun 15 06:12:39 pizza.yoderdev.com unbound[1947]: [1947:0] debug: skip addr on the donotquery list ip4 127.0.0.1 port 53530 (len 1
Jun 15 06:12:39 pizza.yoderdev.com unbound[1947]: [1947:0] debug: No more query targets, attempting last resort
Jun 15 06:12:39 pizza.yoderdev.com unbound[1947]: [1947:0] debug: configured stub servers failed -- returning SERVFAIL
Jun 15 06:12:39 pizza.yoderdev.com unbound[1947]: [1947:0] debug: store error response in message cache
Jun 15 06:12:39 pizza.yoderdev.com unbound[1947]: [1947:0] debug: return error response SERVFAIL

Khususnya apa dengan ini? [1947: 0] debug: lewati addr pada daftar donotquery port ip4 127.0.0.1 53530 (len 1 Itu sepertinya menjadi kunci, tapi saya benar-benar tidak yakin mengapa dikatakan demikian.

Ini seluruh unbound.conf saya:

server:
  interface: 127.0.0.1
  interface: 192.168.1.50
  use-syslog: yes
  username: "unbound"
  directory: "/etc/unbound"
  trust-anchor-file: trusted-key.key
  access-control: 192.168.1.0/24 allow
  verbosity: 2
  local-zone: "1.168.192.in-addr.arpa" nodefault
remote-control:
  control-enable: yes
  control-interface: 127.0.0.1
  control-port: 8953
  server-key-file: "/etc/unbound/unbound_server.key"
  server-cert-file: "/etc/unbound/unbound_server.pem"
  control-key-file: "/etc/unbound/unbound_control.key"
  control-cert-file: "/etc/unbound/unbound_control.pem"

stub-zone:
  name: "datanet.home"
  stub-addr: 127.0.0.1@53530
#  stub-first: yes
stub-zone:
  name: "1.168.192.in-addr.arpa"
  stub-addr: 127.0.0.1@53530

nsd.conf memiliki banyak komentar jadi tidak yakin apakah saya harus menempelkannya tetapi dalam kasus apa pun nsd tampaknya berfungsi dengan baik. Ini hampir sama dengan conf contoh yang disertakan kecuali mengubah port, mengaktifkan hal-hal kontrol, dan menambahkan zona.

Saya bingung dengan ini, jadi ide apa pun akan dihargai!

Micah Yoder
sumber

Jawaban:

12

Baris ini dari log menunjukkan masalah:

Jun 15 06:12:39 pizza.yoderdev.com unbound[1947]: [1947:0] debug: skip addr on the donotquery list ip4 127.0.0.1 port 53530 (len 1

Tidak terikat secara default menolak untuk mengirim permintaan DNS apa pun ke localhost. Untuk mengaktifkannya ke kueri localhost, atur do-not-query-localhostke nodalam di server-bagian konfigurasi Unbound:

server:
  interface: 127.0.0.1
  interface: 192.168.1.50
  [...]
  do-not-query-localhost: no

Lihat dokumentasi untuk unbound.conf untuk deskripsi opsi.

olav
sumber
baik itu terlihat benar tetapi pengujian cepat saya tidak menunjukkan bahwa menyelesaikannya. Saya sedang bekerja sekarang dan akan terlihat lebih ketika saya pulang. Terima kasih!
Micah Yoder
Ini memang aneh: Dengan perubahan itu, penggalian di atas menjadi tidak terikat (yang kedua) mengembalikan hasil yang sama persis kepada pengguna (SERVFAIL). Tetapi ketika saya melihat log yang tidak terikat yang dihasilkan pada saat instan dari permintaan itu, itu menunjukkan bahwa ia mendapat jawaban yang benar dari hulu. Tidak ada indikasi dalam log respons SERVFAIL!
Micah Yoder
Sayangnya tidak ada saran dari saya. Yang bisa saya katakan adalah bahwa menghapus do-not-query-localhostopsi pada server nama saya memberi saya SERVFAIL ketika mencari zona rintisan, sementara memasukkannya lagi membuatnya berfungsi lagi.
olav
kira saya akan menerima ini dan menggali lebih banyak dan mungkin meminta tindak lanjut apa yang masih terjadi ....
Micah Yoder
1
+1 untuk dijawab: Pembaruan karena jawaban ini memberikan beberapa saran jelas yang membantu. Mungkin situasi saya tidak identik dengan posting asli, tetapi saran itu masih membantu menghasilkan resolusi cepat pada sesuatu yang tidak berfungsi.
TOOGAM
0

Untuk pertanyaan tentang Unbound dan NSD, Anda dapat menggunakan milis yang dijalankan oleh NLnet Labs ( https://www.nlnetlabs.nl/support/mailing-lists/ ). Pada milis ini, ada komunitas hebat yang sangat responsif (termasuk pengembang perangkat lunak Unbound dan NSD).

Benno Overeinder
sumber