आंतरिक DNS सर्वर के लिए BIND फ़ॉरवर्ड ज़ोन को ठीक से कॉन्फ़िगर कैसे करें?


15

मेरे पास है:

  1. ns1.internalIP के साथ आंतरिक DNS सर्वर 192.168.0.4
  2. बाहरी TLD mydns.example.comऔर आंतरिक IP के साथ बाहरी DNS सर्वर 192.168.0.5। यह इंटरनेट (एक स्थैतिक 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 ज़ोन को कैसे कॉन्फ़िगर करूं?


मेरा संदेह (मुझे यकीन नहीं है कि इसे कैसे जांचना है) यह है कि बाहरी DNS सर्वर आंतरिक से रिकॉर्ड प्राप्त करता है और इस तथ्य को अधिलेखित नहीं करता है कि ns1.internal ज़ोन के लिए ज़िम्मेदार है। तो, क्लाइंट का रिज़ॉल्वर उस नाम (ns1.internal) को हल करने की कोशिश करता है और विफल हो जाता है।
vadipp

3
वास्तव में क्या हो रहा है यह देखने के लिए एक खुदाई + ट्रेस की कोशिश करें। क्वेरी लॉगिंग को सक्षम करने और त्रुटियों की जांच करने के लिए nscd का भी उपयोग करें।
coredump

सबसे पहले, व्यक्तिगत अनुरोधों को लॉग करने के लिए बाहरी बाइंड के लॉग स्तर को बढ़ाएं। मेरी अटकलें यह हैं कि डीएनएस सर्वर mydns.example.com में ही जोन subzone.mydns.example.com का प्रतिनिधिमंडल होना है। इसे mydns.example.com ज़ोनफाइल में जोड़ने का प्रयास करें: subzone IN NS mydns.example.com.(मुझे लगता है कि ज़ोनफ़ाइल के पास कहीं ए @ @ mydns.example.com, सही के लिए रिकॉर्ड भी है?)
Nils Toedtmann

जवाबों:



0

आपको NS के लिए A RR कॉन्फ़िगर करना होगा "subzone.mydns.example.com।" अपने बाहरी DNS पर। इसे "ग्लू रिकॉर्ड" नाम दिया गया है और यह आपके आंतरिक DNS के आईपी के अनुरूप होगा। वर्तमान में, आपका बाहरी DNS आंतरिक DNS का IP ज्ञात करने में सक्षम नहीं है। सादर


0

मैंने किया और अन्य कदम अधिक, पहला जो @ ब्रैंडन-ज़ेवियर द्वारा उल्लिखित है:

zone "subzone.mydns.example.com" {
    type forward;
    forward only;
    forwarders { 192.168.0.4; };
};

और नया:

$ORIGIN subzone.mydns.example.com.
@             IN      NS      ns1.subzone.mydns.example.com.

लेकिन मुझे नहीं पता कि यह क्यों है ...

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.