ฉันมี:
- เซิร์ฟเวอร์ DNS ภายในกับทรัพย์สินทางปัญญา
ns1.internal
192.168.0.4
- DNS เซิร์ฟเวอร์ภายนอกกับ TLD ภายนอก
mydns.example.com
และภายใน192.168.0.5
IP สามารถเข้าถึงได้ทั้งจากอินเทอร์เน็ต (ผ่านกฎ NAT แบบคงที่) และจากเครือข่ายท้องถิ่น
ฉันกำลังพยายามตั้งค่าเซิร์ฟเวอร์ DNS ภายนอกของฉันเพื่อส่งต่อโซนsubzone.mydns.example.com
ไปยังเซิร์ฟเวอร์ DNS ภายใน เซิร์ฟเวอร์ DNS ภายในมีสิทธิ์สำหรับโซนนี้
สำคัญ: ฉันไม่สามารถแก้ไขการกำหนดค่าเซิร์ฟเวอร์ DNS ภายในได้ อย่างไรก็ตามฉันสามารถอ่านได้หากจำเป็นต้องวินิจฉัยปัญหา
ไฟล์/etc/named.conf
บนเซิร์ฟเวอร์ DNS ภายนอก:
options {
directory "/var/named";
version "get lost";
recursion yes;
allow-transfer {"none";};
allow-query { any; };
allow-recursion { any; };
};
logging{
channel example_log{
file "/var/log/named/named.log" versions 3 size 2m;
severity info;
print-severity yes;
print-time yes;
print-category yes;
};
category default{
example_log;
};
};
// Zones:
zone "mydns.example.com" {
type master;
file "mydns.example.com.zone";
allow-update{none;};
};
zone "subzone.mydns.example.com" {
type forward;
forwarders { 192.168.0.4; };
};
ไฟล์/var/named/mydns.example.com.zone
บนเซิร์ฟเวอร์ DNS ภายนอก:
$TTL 1
$ORIGIN mydns.example.com.
@ IN SOA mydns.example.com. root.mydns.example.com. (
2003080800 ; se = serial number
60 ; ref = refresh
60 ; ret = update retry
60 ; ex = expiry
60 ; min = minimum
)
@ IN NS mydns.example.com.
ดังนั้นตอนนี้ฉันพยายามแก้ไขระเบียน DNS บางรายการ ดูเหมือนเซิร์ฟเวอร์โซนภายนอกจะทำงาน
workstation$ dig mydns.example.com NS +tcp +short
mydns.example.com.
แต่โซนที่ส่งต่อไม่ทำงาน:
workstation$ dig subzone.mydns.example.com NS +tcp
; <<>> DiG 9.8.1-P1 <<>> subzone.mydns.example.com NS +tcp
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 36887
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;subzone.mydns.example.com. IN NS
;; AUTHORITY SECTION:
mydns.example.com. 1 IN SOA mydns.example.com. root.mydns.example.com. 2003080800 60 60 60 60
;; Query time: 3 msec
;; SERVER: 91.144.182.3#53(91.144.182.3)
;; WHEN: Thu Jul 19 17:27:54 2012
;; MSG SIZE rcvd: 108
ผลลัพธ์จะเหมือนกันเมื่อเรียกใช้คำสั่งเหล่านี้บนโฮสต์อินเทอร์เน็ตระยะไกลและบนโฮสต์ภายใน
ถ้าฉันพยายามแก้ไขsubzone.mydns.example.com.
จากเนมเซิร์ฟเวอร์ภายนอกและระบุเซิร์ฟเวอร์ภายในอย่างชัดเจนฉันจะได้รับ:
mydns$ dig @192.168.0.4 subzone.mydns.example.com NS
; <<>> DiG 9.3.6-P1-RedHat-9.3.6-16.P1.el5 <<>> @192.168.0.4 subzone.mydns.example.com NS
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 87
;; flags: qr aa rd; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 3
;; QUESTION SECTION:
;subzone.mydns.example.com. IN NS
;; ANSWER SECTION:
subzone.mydns.example.com. 3600 IN NS ns1.internal.
;; ADDITIONAL SECTION:
ns1.internal. 3600 IN A 192.168.0.4
;; Query time: 613 msec
;; SERVER: 192.168.0.4#53(192.168.0.4)
;; WHEN: Thu Jul 19 18:20:55 2012
;; MSG SIZE rcvd: 163
เกิดอะไรขึ้น ฉันจะกำหนดค่าโซน DNS ที่ส่งต่อให้ทำงานตามที่ฉันคาดไว้ได้อย่างไร
subzone IN NS mydns.example.com.
(ฉันถือว่า zonefile มีที่ใดที่หนึ่งเช่น A ระเบียนสำหรับ @ = mydns.example.com ถูกต้องหรือไม่?)