自己動手搭建自己的DNS服務(wù)器
搭建自己的DNS 域名服務(wù)器(非主從) 前言DNS 協(xié)議是UDP 混合TCP 的一個SERVER ,就是我們在windows 下Linux 下的/etc/resolv.conf配置第一步:下載源碼包和
搭建自己的DNS 域名服務(wù)器(非主從) 前言
DNS 協(xié)議是UDP 混合TCP 的一個SERVER ,就是我們在windows 下
Linux 下的/etc/resolv.conf配置
第一步:下載源碼包和安裝 下載最新版本是9.6.1 tar zxvf bind-9.6.1.tar.gz
cd bind-9.6.1
./configuremake
,make
make install
PS :默認(rèn)安裝是/usr/sbin/named,配置文件在/etc/named.conf ,zone 文件目錄是/var/named
配置rndc.conf
cd /usr/local/sbin/named
/usr/local/named/sbin/rndc-confgen >/etc/rndc.conf
把rndc.conf 中的key 信息輸出到 named.conf 中
tail -10 /etc/rndc.conf | head -9 | sed -e s/# //g > /etc/named.conf
這里強調(diào)一下,rndc.conf 與named.conf 的key 值必須完全一樣,而且并不需要生
配置named.conf
剛才我們已經(jīng)生成了一部分named.conf, 增加如下
key "rndc-key" {
algorithm hmac-md5;
secret "ydF5brUiwvHgsPMOFgNabw==";
};
controls {
inet 127.0.0.1 allow { localhost; } keys { rndc-key; };//如果對外服務(wù)這里的localhost 改any
};
logging {
channel default_debug
{
file "/var/named/named.run";
severity dynamic;
};
};
options {
allow-query { localhost; }; #是否可以對外服務(wù),localhost 就只能自己
directory "/var/named"; #named區(qū)文件目錄
pid-file "named.pid"; #進程id 文件名
listen-on port 53 { 127.0.0.1; };
listen-on-v6 port 53 { ::1; };
dump-file "/var/named/cache_dump.db";
statistics-file "/var/named/named_stats.txt";
,memstatistics-file "/var/named/named_mem_stats.txt";
recursion yes;#迭代查詢
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
};
zone "." IN { //定義根域的zone ,對應(yīng)的 /var/named/named.ca 列出所有根域名服務(wù)器
type hint;
file "named.root"; //可以在 /usr/share/doc/bind-9.8.2/sample/var/named/ 獲取named.ca 模板
};
zone "localhost" IN {
type master;
file "/var/named/localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "/var/named/named.local";
allow-update { none; };
};
zone "test.com" IN {
type master;
file "/var/named/test.zone";
allow-update { none; };
};
zone "19.202.220.in-addr.arpa" IN {
type master;
file "/var/named/test.local";
allow-update { none; };
};
配置localhost.zone
$TTL 3600
@ IN SOA localhost. root.localhost. ( ; @就是代表對應(yīng)/etc/named.conf zone 對
,應(yīng)的名字 zone "xxx"
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS localhost. ; IN 代表一條資源記錄(RR ),NS = NameServer 代表DNS Server
localhost. IN A 127.0.0.1 ; A 是正向解析的標(biāo)志,[hostname] IN A [IP] 代表該主機對應(yīng)該IP
配置named.local
$TTL 600
@ IN SOA localhost. root.localhost. (
@ IN NS localhost. 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum
1 IN PTR localhost. ; PTR為反向解析,與上面的 A 標(biāo)志對應(yīng)
配置test.zone
$TTL 3600
@ IN SOA test.com. root.localhost. ( ;
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS localhost. ; @ 就是 test.com(zone指定), 尋找test.com 則向主機(NS )localhost. 發(fā)出查詢
localhost. IN A 127.0.0.1 ; NS對應(yīng)的IP 記錄
www IN A 220.202.19.204 ; 這里就是真正的主機名的解析,www 自動擴展成 www.test.com
FTP IN A 220.202.19.205 ;
,配置test.local
$TTL 86400
@ IN SOA test.com. root.test.com.(
20031001;
7200;
3600;
43200;
86400);
@ IN NS test.com.
204 IN PTR www.test.com
205 IN PTR ftp.test.com
檢測配置
看看named.conf 是否正確
named-checkconf /etc/named.conf
看看每個zone 是否配置正確
named-checkzone test /var/named/test.zone
看看是否已經(jīng)啟動
Ps –elf |grep named
如果不能確定那里錯誤, 調(diào)試跟log ,你最好配置運行l(wèi)og named -d 4 -c /etc/named.conf , 如果配置了log 就可以查看了 tail –100 more named.run
重啟
Killall named
named -d 4 -c /etc/named.conf
官網(wǎng)弄個named.root
最后修改你linux 下的/etc/resolv.conf
[root@v218128132.sqa.zmf /var/named]
#more /etc/resolv.conf
options timeout:2 attempts:5
,search ztt.alipay.net oob.alipay.net db.alipay.net alipay.net alibank.net
#nameserver 10.210.208.31
#nameserver 10.210.208.45
#nameserver 10.218.128.132
nameserver 127.0.0.1
PS :這里我是以127.0.0.1啟動的,如果你想把你的DNS 服務(wù)器對外服務(wù),綁定你的外網(wǎng)IP 吧
測試
Nslookup 正向
Nslookpu 反向
用dig 正向
用dig 反向
測試對外直接提供服務(wù)
如果DNS 服務(wù)器沒有對外綁定IP 服務(wù),那么你用命令測試 Dig –t A @10.218.128.132將會出錯
把/etc/named.conf的兩個allow :localhost 改為any ,重啟后再測試 正向
反向
詳細(xì)配置參考
如果要做智能解析和轉(zhuǎn)發(fā)(常見用來做DNS 輪訓(xùn)均衡)
如果出現(xiàn)bogon