昨天搭建了一个简单的主DNS,是在虚拟机的Centos下搭建的,今天来回顾下一个整体的搭建过程
DNS是域名系统(Domain Name System)的缩写,是因特网的一项核心服务,它能提供域名与IP地址之间对应关系的转换服务。这样我们就可以更方便地去访问互联网了,不用去记住那一串IP数字。本文档主要是说明如何把一台CentOS主机配置成一个DNS服务器,以便能提供域名解析服务。
CentOS的IP地址是:192.168.1.30 要搭建的域名:txtfashion.com 需要的软件:bind-9.3.6-20.P1.el5_8.6 bind-libs-9.3.6-20.P1.el5_8.6 bind-devel-9.3.6-20.P1.el5_8.6 bind-utils-9.3.6-20.P1.el5_8.6 bind-libbind-devel-9.3.6-20.P1.el5_8.6 bind-chroot-9.3.6-20.P1.el5_8.6 bind-sdb-9.3.6-20.P1.el5_8.6
- 安装bind软件
yum -y install bind*
安装完成后,输入命令rpm -qa | grep bind
检查上述软件是否安装完成,如没安装完成,安装对应的软件包。
- 配置
由于安装了bind-chroot-9.3.6-20.P1.el5_8.6,现在的配置文件是在/var/named/chroot/,进入该目录:cd /var/named/chroot/
修改named.conf文件
vi etc/named.conf
options { listen-on port 53 { any; }; //开启监听端口53,接受任意IP连接 listen-on-v6 port 53 { ::1; }; //支持IP V6 directory "/var/named"; //所有的正向反向区域文件都在这个目录下创建 dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; // Those options should be used carefully because they disable port // randomization // query-source port 53; // query-source-v6 port 53; allow-query { any; }; //允许任意IP查询 allow-query-cache { any; }; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; view localhost_resolver { match-clients { any; }; match-destinations { any; }; recursion yes; include "/etc/named.rfc1912.zones"; //主要配置文件 };
修改/etc/named.rfc1912.zones文件,添加txtfashion.com的正向和反向区域
vi etc/named.rfc1912.zones
zone "txtfashion.com" IN { type master; file "data/txtfashion.com.zone"; }; zone "1.168.192.in-addr.arpa" IN{ type master; file "data/192.168.1"; };
这里需要注意的是,添加反向区域时,网络号要反过来写(网络号是IP地址与子网掩码进行与操作后的结果)。例如,我现在配置的网络号192.168.1这个网段,那么它的反向区域是1.168.192.in-addr.arpa。区域里面的file字段表明解析时的数据来源文件,接下来我们去创建txtfashion.com.zone和192.168.1文件。
创建正向和反向区域资源文件
创建正向区域资源文件:vi var/named/data/txtfashion.com.zone
$TTL 3600 @ IN SOA txtfashion.com. root.txtfashion.com. ( 20140401 ; serial 30 ; refresh 60 ; retry 90 ; expire 3600 ) ; minimum IN NS www.txtfashion.com. www IN A 192.168.1.30 mail IN A 192.168.1.30 serv1 IN A 192.168.1.30 dns IN A 192.168.1.30 ftp IN A 192.168.1.30 win IN A 192.168.1.66
创建反向区域资源文件:vi var/named/data/192.168.1
$TTL 3600 @ IN SOA 192.168.1. 192.168.1. ( 20140401 ; serial 30 ; refresh 60 ; retry 90 ; expire 3600 ) ; minimum IN NS www.txtfashion.com. 30 IN PTR www.txtfashion.com. 30 IN PTR mail.txtfashion.com. 30 IN PTR serv1.txtfashion.com. 30 IN PTR dns.txtfashion.com. 30 IN PTR ftp.txtfashion.com. 66 IN PTR win.txtfashion.com.
参数说明:
serial:序列号 refresh:更新时间 retry:更新失败每隔多少时间重新与dns联系 expiry:过期时间 minimum:当前域名的查询结果,将在缓存中保留的时间 H 小时、M 分钟 W 星期 D 天 默认是秒 NS 标识一个域的域名服务器 A 将主机名--->ip (一个主机只有一个A记录) MX 邮件交换记录 PTR ip--->主机名 CNAME 别名
修改完这四个文件后,我们需要修改这四个文件的所有者和拥有者
chown -R named.named etc/named.conf chown -R named.named etc/named.rfc1912.zones chown -R named.named var/named/data/txtfashion.com.zone chown -R named.named var/named/data/192.168.1
重启named服务: service named restart
至此,DNS服务器端的配置已完成,下面我们稍微配置一下客户端来测试我们的DNS服务器是否正常工作。
- 测试
在centos下测试,可以用nslookup来测试,首先需要配置resolv.conf文件:vi /etc/resolv.conf
nameserver 192.168.1.30
上述表示的DNS的地址为192.168.1.30
输入命令:nslookup
> www.txtfashion.com Server: 192.168.1.30 Address: 192.168.1.30#53 Name: www.txtfashion.com Address: 192.168.1.30 > ftp.txtfashion.com Server: 192.168.1.30 Address: 192.168.1.30#53 Name: ftp.txtfashion.com Address: 192.168.1.30 > 192.168.1.30 Server: 192.168.1.30 Address: 192.168.1.30#53 30.1.168.192.in-addr.arpa name = mail.txtfashion.com. 30.1.168.192.in-addr.arpa name = serv1.txtfashion.com. 30.1.168.192.in-addr.arpa name = dns.txtfashion.com. 30.1.168.192.in-addr.arpa name = ftp.txtfashion.com. 30.1.168.192.in-addr.arpa name = www.txtfashion.com.
上述是简单的测试,如果测试不行,请检查防火墙是否开放了53的端口,方法是vi /etc/sysconfig/iptables,添加两行
-I INPUT -p tcp --dport 53 -j ACCEPT -I INPUT -p udp --dport 53 -j ACCEPT
然后重启iptables服务:service iptables restart
在windows下测试,需要在本地连接属性里面修改,如下图:
window下在cmd下也可以用nslookup,方法和在linux下类似,下面不具体说明了,当然,linux下的53端口一定要开放。
上面只是配置了一个简单的DNS服务器,配置了主DNS,当然你也可以再配置一个从DNS,两者一起用,该配置我将在下一次做说明