เซิร์ฟเวอร์ DNS ที่ใช้ BIND9 สำหรับ LAN [DEBIAN]


2

ฉันกำลังพยายามกำหนดค่าเซิร์ฟเวอร์ LAN DNS โดยใช้ BIND9 บน DEBIAN

บริบท: network mask: 255.255.0.0, IP เครือข่าย: 10.1.xxx.xxx
ฉันเป็นเจ้าของโดเมนสาธารณะ example.com จัดการโดย NS ภายนอกและเป้าหมายของฉันคือจัดการโดเมนย่อยทั้งหมด lan.example.com , เช่น. ที่อยู่ node1.lan.example.com เป็นคอมพิวเตอร์ที่มี IP 10.1.1.1

การกำหนดค่าปัจจุบัน
/etc/bind/named.conf:

include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";

/etc/bind/named.conf.options:

options {
    directory "/var/cache/bind";
    forwarders {
        EXTERNAL_DNS_NAMESERVERS;
    };
    dnssec-validation auto;
    recursion yes;
    allow-query { 10/24; 127.0.0.1; };
    allow-recursion { 10/24; 127.0.0.1; };
    auth-nxdomain no;    # conform to RFC1035
    listen-on-v6 { any; };
    listen-on port 53 { 127.0.0.1; 10.1.0.2; } ;
};

/etc/bind/named.conf.local:

zone "lan.example.com" {
    type master ;
    allow-query { 10/24; 127.0.0.1; };
    file "/etc/bind/zone.lan.example.com" ;
};
zone "0.1.10.in-addr-arpa" {
    type master ;
    notify no ;
    allow-query { 10/24; 127.0.0.1; };
    file "/etc/bind/zone.0.1.10.in-addr.arpa" ;
} ; 
zone "2.1.10.in-addr-arpa" {
    type master ;
    notify no ;
    allow-query { 10/24; 127.0.0.1; };
    file "/etc/bind/zone.2.1.10.in-addr.arpa" ;
} ; 

/etc/bind/named.conf.default-zones:

zone "." {
    type hint;
    file "/etc/bind/db.root";
};
zone "localhost" {
    type master;
    file "/etc/bind/db.local";
};

zone "127.in-addr.arpa" {
    type master;
    file "/etc/bind/db.127";
};

zone "0.in-addr.arpa" {
    type master;
    file "/etc/bind/db.0";
};

zone "255.in-addr.arpa" {
    type master;
    file "/etc/bind/db.255";
};

/etc/bind/zone.lan.example.com:

; zone.lan.example.com BIND9 configuration file.
;
$TTL 604800
@   IN  SOA ns.lan.example.com. root.localhost. (
    201212041   ; serial no. (increment by +1 after every edit!)
    604800      ; refresh
    86400       ; retry after failure
    2419200 ; expired
    604800); TTL negative cache
;
@   IN  NS  ns.lan.example.com.
@   IN  A   127.0.0.1
;
; A records - Local machines and addresses:
; Servers:
router  IN  A   10.1.0.1    ; Router
ns      IN  A   10.1.0.2    ; NS Server
server  IN  A   10.1.0.2    ; Server
media   IN  A   10.1.0.3    ; Media Server

;
; Workstations:
node1   IN  A   10.1.1.1    ; node1

ปัญหา:

client 10.1.0.1#50808: query (cache) 'a.root-servers.net/A/IN' denied
client 10.1.0.2#59641: query (cache) 'example.com/A/IN' denied
client MY_EXTERNAL_IP#37853: query 'server.lan.example.com/A/IN' denied
client MY_EXTERNAL_IP#56367: query (cache) 'superuser.com/A/IN' denied

เมื่อฉันพยายามขุด server.lan.example.com บนเนมเซิร์ฟเวอร์ ns.lan.example.com ทุกอย่างใช้ได้ผลถ้าฉันลองทำจากเครื่องอื่นมันจะล้มเหลว

ฉันจะแก้ปัญหานี้ได้อย่างไร

ขอบคุณล่วงหน้า

คำตอบ:


2

คุณกำหนดค่า BIND ให้อนุญาตการสืบค้นจาก 10/24. ฉันไม่แน่ใจว่า BIND จะยอมรับว่าเป็น netmask ที่ถูกต้องหรือไม่ แต่ถ้าเป็นเช่นนั้นมันจะขยายเป็น 10.0.0 0.0 / 24 หรือ 10.0.0.0/255.255.255.0ซึ่ง ไม่ตรง 10.1.0 0.1 . (คุณมิกซ์ /24 กับ 10 .0.0.0 / 8 ?)

ตามบันทึกของคุณ network mask: 255.255.0.0, IP เครือข่าย: 10.1.xxx.xxx เครือข่ายที่ถูกต้องควรเป็น 10.1 .0.0 / 16 .


0

คำตอบก่อนหน้านี้แก้ปัญหาสำหรับผู้ส่งเริ่มต้น แต่สำหรับอีกวิธีการทั่วไปคุณสามารถใช้ ACLs "localnets" และ "localhost" ในตัวเช่น:

allow-recursion { localnets; } ;

localhost นั้นค่อนข้างอธิบายตัวเองได้ (ยกเว้นว่านอกเหนือจาก 127.0.0.1 หรือ :: 1 ซึ่งรวมถึงที่อยู่ที่กำหนดค่าไว้ของทุก ๆ อินเตอร์เฟสเครือข่าย BIND กำลังใช้งาน (ดังนั้น 127.0.0.1 รวมทั้งแอดเดรสทั้งหมดที่กำหนดให้กับโฮสต์ในพื้นที่)

localnets ขึ้นอยู่กับการกำหนดค่าโลคัลอินเตอร์เฟสของคุณและมาจากที่อยู่และเน็ตมาสก์ของพวกเขา

หากเซิร์ฟเวอร์ของคุณมีอินเตอร์เฟสนั่นก็คือ ไม่ ในพื้นที่ที่อยู่ส่วนตัว แต่สามารถใช้งานอินเทอร์เน็ตได้ดังนั้นคุณอาจไม่ต้องการใช้ "localnets"

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.