DNS服务作为基础的网络服务在互联网中到处存在,学习搭建DNS服务器是网络管理员的基本技能之一。
准备环境:vmware workstation 10
redhat 5.10 x86_64 虚拟机2台
主DNS:192.168.195.129 ns1.jwh5566.com
192.168.1.114 连外网 主要是客户端用来测试DNS是否递归查询的
从DNS:192.168.195.128 ns2.jwh5566.com
域名:jwh5566.com
代理的客户端:192.168.195.130 131 132...
安装linux,配置本地光盘yum源,配置ip
此处省略1000字......
查看是否安装dns,dns服务的软件叫做bind,所以
yum list | grep "^bind"
可以看到有2个版本的bind,bind和bind97,bind是为了兼容以前老版本的,所以我们要安装bind97,
系统默认安装了bind-utils,和bind-libs,请卸载
yum remove bind-utils bind-libs -y
主DNS,192.168.195.129的配置
安装完成后会在/etc下生成/etc/named.conf文件和/var/named/目录
备份/var/named.conf文件,后面自己写
mv /etc/named.conf /etc/named.conf.bak
vim /etc/named.conf 类似如下,后面解释内容
options :定义了dns服务的工作特性
directory:定义dns的区域数据文件所在目录,数据文件就是真正能够查找所需要的IP或者主机名的地方
allow-recursion:指定允许代理那个网段的客户端去递归查询,不指定的话,互联网上所有的客户机都指定你的dns服务器去递归查询,你的服务器就要忙死了,所以这里指定代理自己域内的客户机去递归查询。(建议指定)
"." 区域 :根域
type:指定了域的类型 hint 表示根域,还有master表示主DNS的配置,slave表示从DNS的配置
file:表示数据文件路径,此为相对路径,相对于/var/named而言
named.ca里面记录了全球13台根DNS服务器的IP地址。
allow-transfer:指定允许传输给其他的DNS服务器的列表
none表示不传输,一般如果指定的话,就只指定给我们自己的从DNS服务器即可,如果开放互联网的话,会有安全隐患。(建议指定)
"localhost" :本地域
named.localhost:记录localhost的ip是127.0.0.1和::1
"0.0.127.in-addr.arpa":指定反向域查询的数据文件
named.lookback:记录了127.0.0.1和::1对应的主机名是localhost
重点来了
"jwh5566.com": 我们自己要代理的域
allow-transfer:指名允许将这个域信息传输给从服务器
"195.168.195.in-addr.arpa":jwh5566的反向域,即用IP来获得主机名
好了,到目前为止DNS的主配置文件 修改好了,下面去配置数据文件
在/var/named目录下named.ca和named.localhost,loopback都有所以不需要我们编写,我们只需要编写我们自定义的即可。
vim wjh5566.com.zone 这是一个正向解析的数据文件
$TTL:表示客户机在获得ip或者主机名之后缓存多久时间,这是一个全局的变量
ns1表示
下面每行表示一条记录,一次的格式是
主机名 IN 记录类型 IP
第一行的SOA记录有点特别,我来详细说下
@:表示取主配置文件中的域名,还记得前面引号里面的域名么?不错,@在这里就是只它
IN:关键字
SOA:记录类型, 其他的还有:
NS:指名这个域的DNS服务器
A:指名从主机名到IP
PTR:指名从IP到主机名
MX:指名邮件服务器
CNAME:指名是哪个服务器的别名
ns1.jwh5566.com.:指定DNS服务器(注意不要忘了最后的那个点)
admin.jwh5566.com:指定管理员的邮箱地址(注意不是@而是点,因为这@有特殊含义)
括号中的5个数字分别表示
2015051701 序列号:每一次更新数据文件,应该将序列号更新,以便从服务器判断从而进行更新
1H 刷新时间:从服务器多久来访问一次,H表示小时
5M 重试时间:从服务器访问失败之后,多久之后重试,M表示分钟
2D 过期时间:此时间之后,判定主服务器down机 ,D表示天
6H ) 否定回答的保留时间:即在通知客户机没有查询到结果之后,多久时间不在相应客户机的查询
下面空白的表示继承@的域名,MX后面10表示邮件服务器的优先级一般是1~99
下面来看看反向解析的数据文件
可以看到 方向解析的数据文件和正向的很类似
只需要将IP和主机名为止调换即可,但是这里的主机名要写全,因为这里的@不在表示“jwh5566.com”了,你知道表示什么吗?对咯,就是“195.168.192.in-addr.arpa”
至此,主DNS的配置就算完了,对于从DNS的配置就不要这么麻烦了,因为他会同步数据文件的。
从DNS,192.168.195.128的配置
因为主配置文件大部分都相同,所以我们cp主DNS的配置文件,稍加修改即可,
scp 192.168.195.129:/etc/named.conf /etc/named.conf
vim named.conf
file:数据文件为什么要放在slaves目录下呢?因为named目录默认对于named用户不可写,所以我们用slaves目录
masters:指定主DNS服务器的地址
其他地方都不需要修改,OK
启动主DNS服务器
service named start
启动从DNS服务器
service named start
查看主DNS服务器的日志
tail /var/log/messages
查看从DNS服务器named目录下已经有对应域的数据文件
那么我们在主DNS修改jwh5566.com的数据文件会不会同步过去呢?我们来试一下
编辑数据文件 在里面添加一行记录pop3或者sftp(注意要修改序列号,这里修改为2015051703)
重启dns服务,查看日志
看到发送的序列号了么 2015051703
注意下最后的IXFR表示增量更新,IXFR ended 表示增量更新结束,看下从DNS服务器的数据文件是不是同步了呢。
测试DNS服务器
dig 命令使用
dig 命令可以测试DNS服务器
-t:指定记录类型
@指定用哪个DNS服务器来查询(注意测试的时候要加哦,否则会默认使用本机系统的的DNS,就是/etc/resove.conf里面的dns服务器来解析的)
例如:查询jwh5566.com的NS的地址
dig -t NS jwh5566.com @192.168.195.129
可以看到有2个DNS服务器,分别是129和128
查询下www.jwh5566.com的IP地址
dig -t A www.jwh5566.com @192.168.195.129
再执行下,是不是看到两次的DNS服务器在交替呢,这个就是所谓的DNS负载均衡啦
好啦,文章就写到这里,谢谢大家!