平台:centos 5.5 + bind9.8.1
网络设备:ciscoasa + cisco 3750
之前在自己的小本上的ubuntu11.10上按
http://blog.sina.com.cn/s/blog_5f66526e0100xzjh.html所述的方式安装并启动后测试成功。当然测试方式用dig,nslookup之类的。
但公司需要自己架设cdn服务器,所以需要在两台服器上安装dns主备服务器:
两台机器的ip分别是:
222.73.255.234(假设值)
222.73.255.235
首先还是按如上的配置方法配置bind9(主要是先验证dns解析能用,可以后再加入CDN需要的智能解析的设置)并启动服务器,假设我的域名是mydomain.com。我把此域名的dns服器分别指向了ns1.mydomain.com 222.73.255.234,ns2.mydomain.com 222.73.255.235。等待解析成功后,我用nslookup www.mydomain.com 查看解析情况时总是连不上dns服务器,即便是在当前服务器上也是如此。
用netstat -antl |grep 53 查看监听情况很正常,953和53端都在,两台服务器都是如此。于是我修改/etc/resolv.conf,把nameserver改成222.73.255.234,这时再用nslookup www.mydomain.com 就可以看到能正常解析了。但是把/etc/resolv.conf 中的nameserver公网的dns服务器就是不行。
通过以上的现象我想到有可能是防火墙的问题,我的防火墙默认是关闭外网对内网访问端口的。
enable
confi t
增加了:
access-list out-to-in extended permit tcp any host 222.73.255.234 eq domain
access-list out-to-in extended permit tcp any host 222.73.255.235 eq domain
end保存后再试
还是不行。很是郁闷。。。。。。。。。。。。。
(本文出自php_sir的新浪博客,用户名php_sir,首页链接:http://blog.sina.com.cn/phpsir,未经本人(php_sir)同意禁止转载)
我从外网用telnet 222.73.255.234 53完全能正常连上的呀,怎么回事?
难道dns服务器不是用tcp协议传输的?用netstat -anul grep 53果然发现了named的UDP监听存在,改掉防火墙的设置再说吧:
no access-list out-to-in extended permit tcp any host 222.73.255.234 eq domain
no access-list out-to-in extended permit tcp any host 222.73.255.235 eq domain
access-list out-to-in extended permit udp any host 222.73.255.234 eq domain
access-list out-to-in extended permit udp any host 222.73.255.235 eq domain
end 保存
再用nslookup www.mydomain.com
终于,终于解析成功了。用小本nslookup www.mydomain.com也能正常解析了。可以回家吃饭了,成功的感觉真好呀。可惜公司就剩我一个人在了,几个办室都是黑呼呼的,有一丝丝恐怖,我看看时间:哇....都18:56了,赶紧回家。
大功告成了,平时搞的东东大多数使tcp协议传输,dns用的是udp,真是没有想到呀。幸好bind在启动后正常启动了udp的端口监听。
最终还是忍不住到管网看了下,有如下的说明:
By default, host uses UDP when making queries. The
-T
option makes it use a TCP connection when querying the name server. TCP will be automatically selected for queries that require it, such as zone transfer (AXFR) requests.
汗死,早该看下的。
本文关键: dns bind9.8.1 named 防火墙 ciscoasa udp tcp