打算建立一个lnsjb.com的网站,首先要先去ISP申请一个公网IP地址,假设申请到的这个地址是172.16.0.1。有了IP地址之后去某个域名服务商那里申请lnsjb.com域名,如果审核通过了,那么服务商会提供管理员一套账号和密码来管理网站,与此同时,域名服务商还会提供两个DNS服务器专门用来面对公网用户解析lnsjb.com的地址。流程图如下:

wKiom1braDLhaZivAAAnoY7Cp2w640.png

如果公司比较壕,自己购置了DNS服务器,这样可以让公司内部人员实用递归查询解析lnsjb.com(外来用户必须使用迭代查询,因为递归查询很占内存),同时也可以公司内部的pop和mail域也可以使用这个私用DNS解析(但是这两个域是不能上公网的),整个规划图如下:

wKioL1bra-3xVLmBAACOHQ4tF-w912.png

这里看到,原本域名服务商指向的仅仅是lnsjb.com,但是现在指向了企业内部的dns服务器。这里示范如何配dns这台企业dns服务器,ns2的配置方法是一模一样的。


#yum install bind -y,安装完成之后,#vim /etc/named.conf,建立一个主配置文件。named.conf的样子如下:

wKioL1bqvqahylPOAABmK45SFEI683.png

先将目录文件夹定位/var/named,保存这个主配置文件并退出之后。然后就对应写里面三个红名的文件。


named.ca很简单,这是设定全球根服务器,#dig -t NS . > /usr/named/named.ca即可。

localhost.zone的写法如下(这里添加的注释在实际操作的时候是不能有的,文件并不认识#):

wKioL1bqvyWTxlVpAABFJEi_ohA797.png

named.local的写法如下(这里添加的注释在实际操作的时候是不能有的,文件并不认识#):

wKiom1bqvrOAHlziAABK3qxXwKY587.png

完事之后,用chown命令把这三个文件加上面的named.conf的属组都要改成named。


然后就可以启动服务,#service named start,回车一下。然后可以正向解析验证,#dig -t A localhost,反向解析验证命令就是#dig -x 127.0.0.1。此时应该能看到localhost与127.0.0.1正反解析都已经对应了。


如第二个手绘图那样,现在已经将域名服务商的NS记录指向了我们公司内部的DNS主服务器和DNS从服务器,此时就可以建立企业内部的名称服务器了。重新#vim /etc/named.conf,刚刚只是把named.conf实现最基本的dns解析功能,也就是仅仅是一台缓存服务器而已,现在是lnsjb.com加入进去,使这个文件具体化,丰富化。于是在我们刚刚建立的named.conf结尾处加上这样的内容:

wKioL1bqx06jE9SJAABfeBuhMtI084.png

然后就是写上面的“lnsjb.com.zone”和“172.16.zone”了,他们的长相跟上面的localhost.zone差不多,毕竟都是zone描述文件。


lnsjb.com.zone下面除了www域还有pop域和mail域,于是它的写法如下:

wKioL1bqywWyCS0RAABX42j6Idk314.png

注意,上面的文件我虽然写了CNAME,只是说明CNAME的用法,实际的文件里,有A就不能有CANME,有CNAME就不能有A。所以说,应该把CNAME那一行删除掉。

172.16.zone的写法如下,做到一一对应:

wKiom1bq0EWQI61jAABOoQNI2Zg492.png

保存退出之后,使用#named-checkzone “域名” 域名文件 来分别检查正反解析文件的语法错误。


然后#service named restart,重启dns服务。然后可以测试,比如#dig -t A www.lnsjb.com,看一下是不是说好的172.16.0.1。或者是#dig -t A www.lnsjb.com @127.0.01,指定是使用本机来解析www.lnsjb.com。


#dig -t MX  lnsjb.com @127.0.0.1,这是测试邮件交换器。

4a36acaf2edda3ccb41d249c06e93901203f9295

结果输出里有一个flags,flags里有一项aa,这个aa代表“权威答案”,即@后面指定的DNS服务器正好是负责你要查询的域名。如果flags没有aa,代表反馈的内容不是权威答案,是从缓存得来的,或者是访问而来的。