DNS服务是互联网中的基础性服务,在Linux系统中提供DNS服务的软件是Bind,能够使用Bind配置DNS服务,是运维工程师必备的技能,Bind的安装配置过程如下:
测试过程中使用的主机:
DNS服务器,IP:192.168.1.132
MAIL服务器 IP:192.168.1.135
WWW服务器 IP:192.168.1.128
首先安装Bind,# yum install -y bind
修改配置文件:
在options中listen on port默认监听的是本机的127.0.0.1端口,可以选择将其注释掉,这样默认就监听本机所有端口。另外allow-query默认的是本机从能查询,DNS服务需要对外提供查询功能,默认这个项一定要修改或者直接注释,就可以开启查询功能,recursion是提供的递归功能,测试中,先使用默认配置,实际的使用中需要做限制。
配置文件修改后使用检查配置文件的语法:# named-checkconf
启动服务:# service named start,第一次启动服务时会生成rndc.key文件,这个过程需要使用熵池中的随机数,如果随机数不够,那么生成秘钥的时会被阻塞住,简单的方法,打开另外的终端随意键入字符,生成随机数,一会rndc.key就自动生成了,另外可以在named的脚本配置文件中关于生成rndc-key的脚本段部分使用/dev/urandom来使用软件模拟的方式来生成随机数,这样的话,rndc-key在生成的过程中就不会卡住了。
服务启动后查看服务监听的端口状态,# ss -tunl;
可以看到tcp和udp的53号端口都监听了。
在配置文件中添加新区域的定义:
为新区域添加解析库文件,编辑的内容如下:
修改区域解析库文件属性,调整属组为named,权限为640:
# chgrp named sueking.com.zone
# chmod 640 suekig.com.zone
检查区域解析库文件的语法错误:# named-checkzone "sueking.com" /var/named/sueking.com.zone
重新启动服务:# rndc reload
使用dig,host,nslookup工具测试DNS服务器的正向解析功能是否正常,这些工具由bind-utils工具包提供。
host工具测试,通常默认情况下host工具测试会先使用本机的/etc/resolv.conf文件中定义的DNS服务器地址来解析,所以我们在使用这个命令测试DNS服务器解析是否正常的情况下,需要指定DNS服务器的地址,要求通过指定的IP地址来解析,来判断测试结果:
另外几条测试结果如下:
正向区域解析测试成功后,添加反向区域,在配置文件中增加如下区域定义:
检查配置文件的语法错误:# named-checkconf
添加反向区域解析文件:# vim /var/named/192.168.1.zone,文件内容如下:
检查反向区域文件的语法并修改文件的属性:# named-checkzone "1.168.192.in-addr.arpa" /var/named/192.168.1.zone
# chmod 640 /var/named/192.168.1.zone
语法检查通过后,重启服务,再使用工具检查DNS反向解析的功能是否正常:
注:在区域解析文件中定义的记录名称,除SOA和NS记录外,其他的名称字段都可以简写,只写主机名,域名部分的配置文件中定义了zone名称,那么会在这些解析文件中自动添加上这个zone名称或者可以在区域的解析文件中使用自定义变量$ORIGIN指定要不全的域名。
Bind安装配置