将树莓派作为DNS服务器(BIND9)

网络:192.168.1.0/24
目标:树莓派作为DNS,将此网络作为ki.local。
测试记录:
router.ki.local 192.168.1.1
pc.ki.local 192.168.1.126
DNS本身   192.168.1.123

首先安装BIND9。
sudo apt-get install bind9 bind9utils dnsutils

修改配置文件复杂程度总的来说还算可以,但是一定一定要注意细节问题,不能漏分号、不能漏点号。括号该写在同一行的绝对不要另起一行。

另外还要把树莓派设为固定IP。本例中被设置为192.168.1.123/24。DNS也设置成这个IP。记得重启网络服务或者干脆重启树莓派以便配置生效。

1、修改 /etc/bind/named.conf.options:
去掉forward那段的注释。0.0.0.0改成自己的DNS,如210.22.84.3
修改dnssec-validation,从auto改为no;
在此行前加一行dnssec-enable no;

这样不认识的域名还是能交给上游DNS去解析。

2、修改 /etc/bind/named.conf.local,加:

zone "ki.local" IN {
	type master;
	file "/etc/bind/db.ki";
};
zone "1.168.192.in-addr.arpa" {
	type master;
	file "/etc/bind/db.ki.rev";
};

3、创建并编辑 /etc/bind/db.ki:(分号是注释)

$TTL	1D
@	IN	SOA	ki.local. pi.ki.local. (
	1;
	8H;
	4H;
	4W;
	1D;	
)
	IN	NS	ns
;	IN	MX	0	mail.ki.local.
@	IN	A	192.168.1.123
ns	IN	A	192.168.1.123
router	IN	A	192.168.1.1
pc	IN	A	192.168.1.126
;mail	IN	A	192.168.1.123

4、创建并编辑 /etc/bind/db.ki.rev:
$TTL	1D
@	IN	SOA	ki.local. pi.ki.local. (
	3;
	8H;
	4H;
	4W;
	1D;
)
@	IN	NS	ki.local.
1	IN	PTR	router.ki.local.
126	IN	PTR	pc.ki.local.
123	IN	PTR	ns.ki.local.
;123	IN	PTR	mail.ki.local.

最后运行 sudo /etc/init.d/bind9 restart重启服务。
也可以在重启服务前先用sudo named-checkconf /etc/bind/named.conf.local检测一下配置文件是不是有问题。

重启后查看下日志:tail /var/log/syslog,应该没有报错,并且能看到all zones loaded这行。

测试:
方法一:找台同一网段里的PC,DNS设置成192.168.1.123(树莓派的IP),ping一下pc.ki.local,应该要能在返回信息中看到192.168.1.126(能不能通对DNS来说不重要),再ping一下一个外网域名,如www.sina.com.cn,也应该能看到它的IP。

方法二:在PC上或者树莓派上运行nslookup,第一条命令打server 192.168.1.123。然后在“>”提示后直接打域名,应该能返回IP地址。


猜你喜欢

转载自blog.csdn.net/ki1381/article/details/81013717