DNS服务做为基础的网络服务在互联网中处处存在,学习搭建DNS服务器是网络管理员的基本技能之一。linux
准备环境:vmware workstation 10vim
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...
ide
安装linux,配置本地光盘yum源,配置ipoop
此处省略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
dig -t A www.jwh5566.com @192.168.195.129
再执行下,是否是看到两次的DNS服务器在交替呢,这个就是所谓的DNS负载均衡啦
好啦,文章就写到这里,谢谢你们!