Linux下DNS服务器的配置

什么是DNS

DNS是计算机域名系统的缩写(Domain Name System),它是由域名解析器和域名服务器组成。全世界只有13台DNS根服务器,1个为主根服务器,放置在美国。其余12个均为辅根服务器,其中9个放置在美国,欧洲2个,位于英国和瑞典,亚洲1个,位于日本。域名服务器是指保存有该网络中所有主机域名和对应IP地址,并具有将域名转为IP地址的功能。其中域名只能对应一个IP地址,而一个地址则可以对应多个IP。域名服务器作为c/s模式中的服务器方,它主要有两种形式:主服务器和转发服务器。将域名映射为IP地址的过程就称为“域名解析”。域名解析需要由专门的域名解析器来完成,DNS就是进行域名解析的服务器。

身边的DNS

在我们手动配置IP地址的时候,程序员们肯定不陌生吧,要输入DNS设置,而一般都填写本地DNS地址。
为什么要填写本地网络服务商的DNS地址呢?
因为我们离本地网络商的网络连接的距离是最近的,所以以本地服务商DNS地址设置可以最大限度提升电脑与网络的交换速度。全国不同地区电信或网通等都有不同的DNS IP地址,所以如果需要固定本地IP就需要填写上本地网络服务商服务器的DNS地址,如果不知道填写的最不要去固定IP地址,选择自动获取即可,如需要可以联系网络商或上网查询即可。

什么是BIND

BIND (Berkeley Internet Name Domain) 是Domain Name System(DNS)协议的一个实现,提供了DNS主要功能的开放实现,包括
* 域名服务器 (named)
* DNS解析库函数
* DNS服务器运行调试所用的工具 Bind是一款开放源码的DNS服务器软件,由美国加州大学Berkeley分校开发和维护的,Bind主要分为三个版本:
* v4,1998年多数UNIX捆绑的是BIND4,已经被多数厂商抛弃了,除了OpenBSD还在使用。OpenBSD核心人为BIND8过于复杂和不安全,所以继续使用BIND4。这样一来BIND8/9的很多优点都不包括在v4中。 * v8,就是如今使用最多最广的版本,其详细内容可以参阅 BIND 8+ 域名服务器安全增强 * v9,最新版本的BIND,全部重新写过,免费(但是由商业公司资助),也添加了许多新的功能(但是安全上也可能有更多的问题)。BIND9在2000年十月份推出,现在稳定版本是9.3.2。

环境配置

服务器IP:202.196.35.138
操作系统:Ubuntu 12.04.3
DNS程序:Bind9
测试域名:98ki.com
目标IP:202.196.35.129

1 安装BIND9程序包

sudo apt-get install bind9  

2 安装后系统会新增文件,总共需要编辑2个文件,新增2个文件,如下:修改/etc/bind/named.conf.options,去掉forwarders的注释,其中的IP为网络营运商提供的DNS服务器

forwarders {  
       x.x.x.x;    
       x.x.x.x;    
};    


修改/etc/bind/named.conf.local,在最后增加增加双向解析代码:

zone "98ki.com" {  
     type master;  
     file "/etc/bind/db.98ki.com";  
};  

zone "35.196.202.in-addr.arpa" {  
     type master;  
     file "/etc/bind/db.202.196.35";  
};  

注意:其中的35.196.202是目标IP 202.196.35.129的前三段,表示一个IP地址段

3 新增域名(98ki.com)解析文件/etc/bind/db.98ki.com,内容如下:

;  
; BIND data file for dev sites  
;  
$TTL    604800  

@       IN      SOA     98ki.com. Root.98ki.com. (  
                              1         ; Serial  
                         604800         ; Refresh  
                          86400         ; Retry  
                        2419200         ; Expire  
                         604800 )       ; Negative Cache TTL  
;  
@          IN  NS  ns.98ki.com.  
@          IN  A   127.0.0.1  
ns         IN  A   202.196.35.129  
zpy        IN  A   202.196.35.129  
www        IN  CNAME zpy  

4 新增IP地址反向解析文件/etc/bind/db.202.196.35,内容如下:

;  
; BIND reverse data file for dev domains  
;  
$TTL    604800  
@       IN      SOA     98ki.com. Root.98ki.com. (  
                              1         ; Serial  
                         604800         ; Refresh  
                          86400         ; Retry  
                        2419200         ; Expire  
                         604800 )       ; Negative Cache TTL  
;  
@      IN        NS     ns.  
129    IN       PTR     ns.98ki.com.  
129      IN     PTR     zpy.98ki.com.  
129      IN     PTR     www.98ki.com.  

5 重启BIND9服务

Service bind9 restart  

有错误的话要到/var/log/syslog看错误信息。

6 检测配置是正确

named-checkzone 98ki.com /etc/bind/db.98ki.com  
named-checkzone 98ki.com /etc/bind/db.202.196.35  

如果文件配置有问题将会被提示,修改文件中的配置即可。

测试

把测试机的DNS设置成DNS服务器的IP,然后可以通过Ping,nslookup,dig,host等命令对正向和反向解析进行测试。

nslookup

张鹏宇

继续阅读此作者的更多文章