雷峰夕照
昨天听了一个机器学习的分享,真的是博大精深,各种算法,感觉现在自己一无所知,只能一味得重复各种简单的动作,渺茫一片。
言归正传,这两天在虚拟机CentOS 7系统里起了一个DNS Server,一切顺利,针对本地域的各项解析都很成功,欢欣鼓舞。
But,在欢欣鼓舞时却发觉虚拟机上不了网了,查找原因发现除了本地定义的域之外所有域名——既外域解析无返回结果。
甚为不解,我已经设置了forwarder的上游DNS地址呀,无奈开始debug吧。
查看debug log后看到如下错误:
[root@HK-CentOS ~]# tail -f /var/log/messages
May 9 20:18:13 HK-CentOS named[5979]: error (network unreachable) resolving './NS/IN': 2001:dc3::35#53
May 9 20:18:14 HK-CentOS named[5979]: validating @0x7f1e60672c80: . NS: got insecure response; parent indicates it should be secure
May 9 20:18:14 HK-CentOS named[5979]: error (insecurity proof failed) resolving './NS/IN': 192.5.5.241#53
May 9 20:18:16 HK-CentOS named[5979]: error (network unreachable) resolving 'www.baidu.com/A/IN': 2001:503:a83e::2:30#53
network unreachable都是IPv6,可是我启用的是IPv4,不知道这个是为什么,但是另外一条insecurity proof failed说明了一个重要的问题:在跟根DNS查询的时候引起了签名失败,也就是我的DNS携带了一些key值去根DNS做解析,根DNS不认识这些key,毕竟我自己起的一个DNS server不可能将自己的key值同步到13台根DNS,那我脸也忒大了^_^
那么问题就比较明显了,关闭这些key应该就可以了,翻阅各种典籍经验等等终于得到了蛛丝马迹——dnssec(Domain Name System Security Extensions)的启用导致了认证失败——至于何为DNSSEC,它是由IETF提供的一系列DNS安全认证的机制。它提供了一种来源鉴定和数据完整性的扩展,但不去保障可用性、加密性和证实域名不存在,DNSSEC是为解决DNS欺骗和缓存污染而设计的一种安全机制,更多内容请自行百度或者参考RFC2535。
那么解决方案就是将named.conf中所有dnssec相关的注释掉或者关闭,比如我的虚拟机中自行开启了dnssec-enable和dnssec-validation,那么就将其关闭既修改其值从yes改为no,如下,同时保留forwarders上游DNS的设置:
[root@HK-CentOS ~]# more /etc/named.conf
............................... options { listen-on port 53 { any; }; listen-on-v6 port 53 { ::1; }; directory "/var/named"; ........................... forward first; forwarders { 192.168.10.2; }; ................. recursion yes; dnssec-enable no; dnssec-validation no; ..................... };
重启dns service,CentOS 7使用systemctl管理service,如下:
[root@HK-CentOS ~]# systemctl restart named.service
验证,dig了一下百度,完美解析:
[root@HK-CentOS ~]# dig www.baidu.com ; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.2 <<>> www.baidu.com ;; global options: cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15363 ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 13, ADDITIONAL: 27 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.baidu.com. IN A ;; ANSWER SECTION: www.baidu.com. 907 IN CNAME www.a.shifen.com. www.a.shifen.com. 9 IN A 115.239.211.112 www.a.shifen.com. 9 IN A 115.239.210.27 ;; AUTHORITY SECTION: . 49287 IN NS c.root-servers.net. . 49287 IN NS a.root-servers.net. .........................
;; ADDITIONAL SECTION: c.root-servers.net. 84434 IN A 192.33.4.12 c.root-servers.net. 86393 IN AAAA 2001:500:2::c .........................
a.root-servers.net. 49858 IN A 198.41.0.4 a.root-servers.net. 51531 IN AAAA 2001:503:ba3e::2:30 ;; Query time: 26 msec ;; SERVER: 192.168.10.3#53(192.168.10.3) ;; WHEN: Thu May 11 17:26:08 CST 2017 ;; MSG SIZE rcvd: 884
以上,虚拟机下的DNS server完美覆盖内外网解析,Mark一下~~~(o゜▽゜)o☆[BINGO!]