网络: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地址。