DNS Split zones

DNS Split zones  може да се използва в много случаи, но в моя го използвам моите 2 офис сървъра да виждат хостовете си локално, вместо всеки един от тях да вижда другия с реалното си айпи.

Ето и пример за това:

DNS Split zones

root@dobrich:~# hostname
office.dobrich.root.bg
root@dobrich:~# host web
web.dobrich.root.bg has address 192.168.1.20
root@dobrich:~# host web.varna.root.bg
web.varna.root.bg has address 84.84.84.84
root@dobrich:~# host 192.168.1.20
20.1.168.192.in-addr.arpa domain name pointer web.dobrich.root.bg.
root@dobrich:~# host 192.168.2.20
Host 20.2.168.192.in-addr.arpa. not found: 3(NXDOMAIN)
root@dobrich:~# host prodweb
prodweb.dobrich.root.bg is an alias for web.dobrich.root.bg.
web.dobrich.root.bg has address 192.168.1.20
root@varna:~# hostname
varna.root.bg
root@varna:~# host web
web.varna.root.bg has address 192.168.2.20

По този начин от Dobrich виждаме хостовете които отговарят за зоната dobrich.root.bg, а от varna виждаме само хостовете които отговарят за varna.root.bg. Ако от единия искаме да достъпим другия, то го правим вписвайки целия хостнейм (които отговаря на външното айпи)
Така дефакто постигаме така нареченият DNS split zones.

Ето и как дефакто става номера:

  1. Махаме този ред от /etc/bind/named.conf: include “/etc/bind/named.conf.default-zones”;
  2. В сървъра Dobrich нашият /etc/bind/named.conf.local трябва да изглежда така:
acl dobrich {
192.168.1.0/24;
127.0.0.1;
};
acl varna {
84.84.84.84;
};
view "dobrich-view" {
match-clients { jfk; };
// recursion yes;
zone "." IN {
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";
};
zone 1.168.192.in-addr.arpa {
type master;
file "/etc/bind/db.192.168.1";
allow-transfer {
192.168.1.29;
84.84.84.84;
};
};
zone "dobrich.root.bg" {
type master;
file "/etc/bind/dobrich.root.bg";
allow-transfer {
192.168.1.0/24;
84.84.84.84;
};
};
};
view "varna-view" {
match-clients { varna; };
// recursion no;
zone "." IN {
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";
};
zone "varna.root.bg" {
type master;
file "/etc/bind/varna.root.bg";
allow-transfer {
192.168.1.0/24;
84.84.84.84;
};
};
zone 2.168.192.in-addr.arpa {
type master;
file "/etc/bind/db.192.168.2";
allow-transfer {
192.168.1.0/24;
84.84.84.84;
};
};
};
include "/etc/bind/rndc.key";
server 192.168.1.0/24 {
keys {
rndc-key;
};
};
  • В сървъра Varna нашият /etc/bind/named.conf.local трябва да изглежда така:

acl dobrich {
44.44.44.44;
};
acl varna {
192.168.2.0/24;
127.0.0.1;
};
view "dobrich-view" {
match-clients { dobrich; };
// recursion yes;
zone "." IN {
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";
};
zone 1.168.192.in-addr.arpa {
type slave;
file "/etc/bind/db.192.168.1";
masters { 44.44.44.44; };
allow-notify { 44.44.44.44; };
};
zone "dobrich.root.bg" {
type slave;
file "/etc/bind/dobrich.root.bg";
masters { 44.44.44.44; };
allow-notify { 44.44.44.44; };
};
};
view "varna-view" {
match-clients { varna; };
// recursion no;
zone "." IN {
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";
};
zone "varna.root.bg" {
type slave;
file "/etc/bind/varna.root.bg";
masters { 44.44.44.44; };
allow-notify { 44.44.44.44; };
};
zone 2.168.192.in-addr.arpa {
type slave;
file "/etc/bind/db.192.168.2";
masters { 44.44.44.44; };
allow-notify { 44.44.44.44; };
};
};

Тук цялата работа върши опцията “acl” като в нея се посочва от кои айпи адреси да се има достъп до коя зона.
В поста съм писал фалшиви публични айпи адреси : 44.44.44.44 и 84.84.84.84 с цел сигурност.
44.44.44.44 = dobrich.root.bg
84.84.84.84 = varna.root.bg

Това е.. 🙂