100% работещи Master и Salve DNS сървъри, изградени с BIND-9 и Gentoo
от Илия Няголов на окт..19, 2008, категории Линукс, Мрежата
Преди всичко искам да кажа, че примера ми е доста скромен, но напълно работещ. В него влизат 3 мрежи клас „C“ и един домейн „sharcom.org“ закупен от host.bg.
1. Инсталиране то на BIND-9 в Gentoо е сладко нещо 🙂 .
dns1 ~ # emerge -av bind
These are the packages that would be merged, in order:
Calculating dependencies… done!
[ebuild U ] net-dns/bind-9.4.1_p1 [9.3.4-r3] USE=“berkdb ipv6 ldap mysql postgres ssl -dlz -doc -idn -odbc -resolvconf (-selinux) -threads -urandom%“ 6,193 kBTotal: 1 package (1 upgrade), Size of downloads: 6,193 kB
Would you like to merge these packages? [Yes/No]
2. Master DNS.
След като съм инсталирал BIND-а на master dns и slave dns машините, редактирам „/etc/bind/named.conf“ на master dns машината.
dns1 bind # cat /etc/bind/named.conf
options {
directory „/var/bind“;// uncomment the following lines to turn on DNS forwarding,
// and change the forwarding ip address(es) :
//forward first;
//forwarders {
// 89.215.250.10;
// 217.9.224.2;
// 89.106.96.4;
//};// listen-on-v6 { none; };
listen-on { 127.0.0.1;
212.114.121.19;
};// to allow only specific hosts to use the DNS server:
allow-query {
127.0.0.1;
212.114.121.0/24;
212.114.122.0/24;
212.114.123.0/24;
};// Zabraniava rekursivnite zaiavki, osven vatre6nite.
allow-recursion {
127.0.0.1;
212.114.121.0/24;
212.114.122.0/24;
212.114.123.0/24;
};// if you have problems and are behind a firewall:
//query-source address * port 53;
pid-file „/var/run/named/named.pid“;
};// Briefly, a zone which has been declared delegation-only will be effectively
// limited to containing NS RRs for subdomains, but no actual data beyond its
// own apex (for example, its SOA RR and apex NS RRset). This can be used to
// filter out „wildcard“ or „synthesized“ data from NAT boxes or from
// authoritative name servers whose undelegated (in-zone) data is of no
// interest.
// See http://www.isc.org/products/BIND/delegation-only.html for more info//zone „COM“ { type delegation-only; };
//zone „NET“ { type delegation-only; };zone „.“ IN {
type hint;
file „named.ca“;
};zone „localhost“ IN {
type master;
file „pri/localhost.zone“;
allow-update { none; };
notify no;
};zone „127.in-addr.arpa“ IN {
type master;
file „pri/127.zone“;
allow-update { none; };
notify no;
};zone „sharcom.org“ IN {
type master;
file „pri/sharcom.zone“;
allow-update { none; };
allow-transfer { 212.114.121.21; 127.0.0.1; }; //ograni4enie v transfer na zonite
allow-query { any; }; //zashtita ot spufing, zabraniava zaiavkite koito ne sa za nas
notify yes;
};zone „10.168.192.in-addr.arpa“ {
type master;
file „pri/192.zone“;
allow-update { none; };
allow-query { any; }; //zashtita ot spufing, zabraniava zaiavkite koito ne sa za nas
notify no;
};zone „121.114.212.in-addr.arpa“ {
type master;
file „pri/212.114.121.zone“;
allow-update { none; };
allow-transfer { 212.114.121.21; 127.0.0.1; 217.19.224.2; 217.19.224.3; }; //ograni4enie v transfer na zonite
allow-query { any; }; //zashtita ot spufing, zabraniava zaiavkite koito ne sa za nas
notify yes;
};zone „122.114.212.in-addr.arpa“ {
type master;
file „pri/212.114.122.zone“;
allow-update { none; };
allow-transfer { 212.114.121.21; 127.0.0.1; 217.19.224.2; 217.19.224.3; }; //ograni4enie v transfer na zonite
allow-query { any; }; //zashtita ot spufing, zabraniava zaiavkite koito ne sa za nas
notify yes;
};zone „123.114.212.in-addr.arpa“ {
type master;
file „pri/212.114.123.zone“;
allow-update { none; };
allow-transfer { 212.114.121.21; 127.0.0.1; 217.19.224.2; 217.19.224.3; }; //ograni4enie v transfer na zonite
allow-query { any; }; //zashtita ot spufing, zabraniava zaiavkite koito ne sa za nas
notify yes;
};logging{
channel info_log {
file „/var/log/named/bind_info.log“ versions 3 size 5m;
severity info;
print-time yes;
print-severity yes;
print-category yes;
};
channel warning_log {
file „/var/log/named/bind_warning.log“ versions 3 size 5m;
severity warning;
print-time yes;
print-severity yes;
print-category yes;
};category default{
info_log; warning_log;
};
};
В „/etc/bind/pri/“ създавам следните четири файла „212.114.121.zone 212.114.122.zone 212.114.123.zone sharcom.zone“, а
в „/etc/bind/sec“ нямам нищо!
ls /etc/bind/pri/
127.zone
192.zone
212.114.121.zone
212.114.122.zone
212.114.123.zone
localhost.zone
sharcom.zone
Създавам файл „sharcom.zone“ в който ще опиша правата зона (обръщане на име към IP адрес) към домейна sharcom.org.
dns1 pri # cat sharcom.zone
$TTL 86400
@ IN SOA dns1.sharcom.org. hostmaster.sharcom.org. (
2008101101 ; serial, todays date + todays serial #
8H ; refresh, seconds
2H ; retry, seconds
2W ; expire, seconds
1D ) ; minimum, seconds
;
TXT „Sharcom.org, your DNS consultants“
NS dns1.sharcom.org.
NS dns2.sharcom.org.
MX 10 mailsharcom.org. A 212.114.121.21
TXT „v=spf1 ip4:212.114.121.0/24:212.114.122.0/24:212.114.123.0/24 a mx ptr a:sharcom.org mx:sharcom.org include:sharcom.org ~all“
;localhost A 127.0.0.1
dns1 A 212.114.121.19
MX 10 mail
HINFO „Gentoo“ „OS“dns2 A 212.114.121.21
MX 10 mail
HINFO „Gentoo“ „OS“mail A 212.114.121.21
MX 10 mail
HINFO „Gentoo“ „OS“
TXT „v=spf1 a -all“mail2 A 212.114.121.21
MX 10 mail
HINFO „Gentoo“ „OS“
TXT „v=spf1 a -all“blog A 212.114.121.21
MX 10 mail
HINFO „Gentoo“ „OS“
gallery A 212.114.121.21
MX 10 mail
HINFO „Gentoo“ „OS“
gsm A 212.114.121.21
MX 10 mail
HINFO „Gentoo“ „OS“
cs-stats A 212.114.121.21
MX 10 mail
HINFO „Gentoo“ „OS“
www A 212.114.121.21
MX 10 mail
HINFO „Gentoo“ „OS“
order-bg A 212.114.121.21
MX 10 mail
HINFO „Gentoo“ „OS“bongo A 212.114.122.10
testi A 212.114.123.10
Създавам файл „212.114.121.zone“ в който ще опиша обратната зона към мрежа: 212.114.121.0/24.
dns1 pri # cat 212.114.121.zone
$TTL 86400
@ IN SOA dns1.sharcom.org. hostmaster.sharcom.org. (
2008101101 ; Serial, todays date + todays serial
8H ; Refresh
2H ; Retry
2W ; Expire
1D) ; Minimum TTL
;
NS dns1.sharcom.org.
NS dns2.sharcom.org.
NS ns.interbgc.com.
NS ns1.interbgc.com.
;19 PTR dns1.sharcom.org.
21 PTR dns2.sharcom.org.
Създавам файл „212.114.122.zone“ в който ще опиша обратната зона към мрежа: 212.114.122.0/24.
dns1 pri # cat 212.114.122.zone
$TTL 86400
@ IN SOA dns1.sharcom.org. hostmaster.sharcom.org. (
2008101101 ; Serial, todays date + todays serial
8H ; Refresh
2H ; Retry
2W ; Expire
1D) ; Minimum TTL
;
NS dns1.sharcom.org.
NS dns2.sharcom.org.
NS ns.interbgc.com.
NS ns1.interbgc.com.
;10 PTR bongo.sharcom.org.
Създавам файл „212.114.123.zone“ в който ще опиша обратната зона към мрежа: 212.114.123.0/24.
dns1 pri # cat 212.114.123.zone
$TTL 86400
@ IN SOA dns1.sharcom.org. hostmaster.sharcom.org. (
2008101101 ; Serial, todays date + todays serial
8H ; Refresh
2H ; Retry
2W ; Expire
1D) ; Minimum TTL
;
NS dns1.sharcom.org.
NS dns2.sharcom.org.
NS ns.interbgc.com.
NS ns1.interbgc.com.
;10 PTR testi.sharcom.org.
3. Slave DNS.
Редактирам „/etc/bind/named.conf“ на slave dns машината.
www ~ # cat /etc/bind/named.conf
options {
directory „/var/bind“;// uncomment the following lines to turn on DNS forwarding,
// and change the forwarding ip address(es) :
//forward first;
//forwarders {
// 123.123.123.123;
// 123.123.123.123;
// 212.114.155.3;
//};// listen-on-v6 { none; };
listen-on { 127.0.0.1;
212.114.121.21;
};// to allow only specific hosts to use the DNS server:
allow-query {
127.0.0.1;
212.114.121.0/24;
212.114.122.0/24;
212.114.123.0/24;
};// Zabraniava rekursivnite zaiavki, osven vatre6nite.
allow-recursion {
127.0.0.1;
212.114.121.0/24;
212.114.122.0/24;
212.114.123.0/24;
};// if you have problems and are behind a firewall:
//query-source address * port 53;
pid-file „/var/run/named/named.pid“;
};// Briefly, a zone which has been declared delegation-only will be effectively
// limited to containing NS RRs for subdomains, but no actual data beyond its
// own apex (for example, its SOA RR and apex NS RRset). This can be used to
// filter out „wildcard“ or „synthesized“ data from NAT boxes or from
// authoritative name servers whose undelegated (in-zone) data is of no
// interest.
// See http://www.isc.org/products/BIND/delegation-only.html for more info//zone „COM“ { type delegation-only; };
//zone „NET“ { type delegation-only; };zone „.“ IN {
type hint;
file „named.ca“;
};zone „localhost“ IN {
type master;
file „pri/localhost.zone“;
allow-update { none; };
notify no;
};zone „127.in-addr.arpa“ IN {
type master;
file „pri/127.zone“;
allow-update { none; };
notify no;
};zone „sharcom.org“ in{
type slave;
file „sec/sharcom.zone“;
masters {212.114.121.19;};
allow-query { any; }; //zashtita ot spufing, zabraniava zaiavkite koito ne sa za nas
};zone „121.114.212.in-addr.arpa“ in{
type slave;
file „sec/212.114.121.zone“;
masters {212.114.121.19;};
allow-query { any; }; //zashtita ot spufing, zabraniava zaiavkite koito ne sa za nas
};zone „122.114.212.in-addr.arpa“ in{
type slave;
file „sec/212.114.122.zone“;
masters {212.114.121.19;};
allow-query { any; }; //zashtita ot spufing, zabraniava zaiavkite koito ne sa za nas
};zone „123.114.212.in-addr.arpa“ in{
type slave;
file „sec/212.114.123.zone“;
masters {212.114.121.19;};
allow-query { any; }; //zashtita ot spufing, zabraniava zaiavkite koito ne sa za nas
};logging{
channel info_log {
file „/var/log/named/bind_info.log“ versions 3 size 5m;
severity info;
print-time yes;
print-severity yes;
print-category yes;
};
channel warning_log {
file „/var/log/named/bind_warning.log“ versions 3 size 5m;
severity warning;
print-time yes;
print-severity yes;
print-category yes;
};category default{
info_log; warning_log;
};
};
След като заредите Slave DNS-а той автоматично си издърпва файловете със зони от Master DNS-а и ги запаметява в „/etc/bind/sec“.
www sec # pwd
/etc/bind/sec
www sec # ls
212.114.121.zone 212.114.122.zone 212.114.123.zone sharcom.zone
4. https://admin.host.bg
Предполагам че няма смисъл да обяснявам какво е това домейн и как става неговото закупуване 🙂 .
След което отивам в „Създаване/промяна на собствени nameserver-и“.
Добавям моите два DNS сървъра (master and slave).
След което се връщам в „домейн инфо“ и в менюто „Name-сървъри“ добавям моите два DNS сървъра, като „Nameserver 1“ и „Nameserver 2“ и почивах 24 часа.
5. Обратно резолване (преобразуване IP-адрес във име).
Така като са настроени двата DNS-а, обратното резолване ще работи за хората които го ползват (това са моите клиенти). Но на вън дали работи, може да се разбере от следния тест?
http://www.db.ripe.net/cgi-bin/delcheck/delcheck2.cgi
Избирам една от трите мрежи и пробвам.
От теста се вижда че почети всичко е направено перфектно 🙂 и обратното резолване работи.