一、DNS简介
DNS 域名系统(Domain Name System)万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记让人头疼的一大串数字。
根服务器:13组服务器负责DNS解析
通过域名去查找ip地址的过程叫做域名解析
通过ip地址去查找域名的过程叫做反向解析
DNS协议运行在UDP协议之上,端口号53
通常 Internet 主机域名的一般结构为树状结构:主机名.三级域名.二级域名.顶级域名。
二、DNS工作原理
1、dns查询方式可分为递归查询和迭代查询
递归查询:当主机向dns服务器发送解析请求时,dns服务器如果知道答案就直接告诉请求的主机,如果不知道,那么它会替主机去问其他的dns服务器,得到结果后再告诉请求主机。
迭代查询:当主机向dns服务器发送解析请求时,dns服务器如果知道那么就直接返回答案,不知到就告诉它一个其他dns服务器的地址,让它去问别的dns服务器。
2、ip地址解析为域名的过程:
首先查找本机的host文件中定义的内容,没有
然后询问我们定义的dns服务器,服务器会先查看缓存,没有 然后看是不是自己的解析范围,不是
去问顶级域名,顶级域名说去找二级域名
去问二级域名,二级域名说起找三级域名...直到找到返回ip或者没有找到返回错误信息
3、DNS服务器的类型:
主DNS服务器:维护所负责解析的域内解析库服务器,解析库由它管理维护;
从DNS服务器:从主DNS服务器或其它的从DNS服务器那里“复制”(区域传递)一份解析库;
区域传送分为:
全量传送:传送整个解析库
增量传送:传递解析库变化的那部分内容
解析库中的时间变量:
序列号:解析库的版本号;当主服务器解析库内容发生变化,其序列号递增;
刷新时间间隔:从服务器从主服务器请求同步解析库的时间间隔;
重试时间间隔:从服务器从主服务器请求同步解析库失败时,再次尝试的时间间隔;
过期时长:从服务器始终联系不到主服务器时停止提供服务;
三、DNS正反向解析:使用的是两台虚拟机系统为Centos6.5
ip:192.168.2.107(主)
ip:192.168.2.109(辅)
搭建DNS服务要用到三个程序包:
bind:主程序包
bind-libs :提供库文件
bind-utils :测试工具
dns服务名:named
服务脚本:/etc/rc.d/init.d/named
主配置文件:/etc/named.conf, /etc/named.rfc1912.zones, /etc/rndc.key
解析库文件:/var/named/ZONE_NAME.ZONE
1、安装bind程序包
yum install bind 两台服务器一块安装
2、启动服务 service named start
然后查看服务是否启动成功 service named start
3、更改dns主配置文件/etc/named.conf
全局配置:options {}
日志子系统配置:logging {}
完成后使用 named-checkconf命令来检查配置文件中是否有语法错误!!
4、重启服务查看监听端口
service named restart
netstat -tanlp | grep named
以上配置完成我们的dns服务器就变成了缓存dns服务器了,另外一台用来做dns辅服务器的配置和上面一样,就是ip地址不同而已。要配置成辅dns服务器,必须先配置成缓存dns服务器。
5、下面我们定义正向解析库
定义一个pingan.com的区域
需要更改配置文件/etc/named.rfc1912.zone 用来定义区域的
我们用named-checkconf 检查配置文件是否存在错误
6、区域定义完成后我们需要创建与之对应的解析库文件名称为/var/named/pingan.com.zone
vim /var/named/pingan.com.zone
7.检查解析库文件是否正确 named-checkzone “pingan.com.zone" /var/pinggan.com.zone
8.修改文件的权限和属组,我们将我们创建的解析库的权限改成其他人没有访问权限,并将属组改为named用户
9.rndc工具 rndc: remote name domain controller,默认与bind安装在同一主机,且只能通过127.0.0.1来连接named进程;提供辅助性的管理功能;
rndc reload 可用于更改完配置文件后使其生效
rndc flush 可用于清空dns缓存
rndc querylog 开启或关闭日志功能
rndc status 查看dns的状态
10、测试工具介绍
测试命令:dig的使用
我们测试正向解析是否成功:
dig -t A www.pingan.com @192.168.2.107
dig用于测试dns系统,因此,不会查询hosts文件进行解析;
查询选项:
+[no]trace:跟踪解析过程
+[no]recurse:进行递归解析
测试反向解析:
dig -x IP @SERVER
模拟区域传送:
dig -t axfr ZONE_NAME @SERVER
例如:dig -t axfr pingan.com @192.168.2.107
host命令:
host [-t type] name [SERVER]
host 命令使用方法同dig命令差不多
nslookup命令:
nslookup [-option] [name | -] [server]
交互式模式:
nslookup>
server IP: 指明使用哪个DNS server进行查询;
set q=RR_TYPE: 指明查询的资源记录类型;
NAME: 要查询的名称;
以上过程正向解析完成
下面开始演示反向解析
11、创建反向解析域 更改配置文件/etc/named.rfc1912.zone
添加反向域 2.168.192.in-addr.arpa (注意此时的网络地址需要反写)
检查文件:
12、创建反向解析库文件/var/named/2.168.192.zone
将反向解析库的权限改为其它人不可读,属组改为named
检查文件:
13、更改配置文件后需要重载 rndc reload
14、查看反向解析是否成功
dig -x 192.168.2.107 @192.168.2.107
可以解析出来证明解析成功!!!
四、下面开始搭建dns从服务器,以上我们已经完成了主服务器的创建,从服务器也要搭建成缓存服务器,1-4步骤相同,
主从复制要求:
1、应该为一台独立的名称服务器;
2、主服务器的区域解析库文件中必须有一条NS记录是指向从服务器;
3、从服务器只需要定义区域,而无须提供解析库文件;解析库文件应该放置于/var/named/slaves/目录中(定义好后自动从主服务器上传送过来);
4、主服务器得允许从服务器作区域传送;
5、主从服务器时间应该同步,可通过ntp进行;
6、bind程序的版本应该保持一致;否则,应该从高,主低;
1、定义从区域的方法:只需要将从服务器(192.168.2.109)设置成缓存服务器后将/etc/named.rfc1912.zone文件上添加一个区域,类型为slave 、指定主服务器地址、指明解析库文件存储路径
zone "ZONE_NAME" IN {
type slave;
masters { MASTER_IP; };
file "slaves/ZONE_NAME.zone";
};
2、下面我们在/etc/named.rfc1912.zone添加两个区域,为主服务器的正、反向解析区域
检查语法:named-checkconf
3、配置完成后
rndc reload 重新载入
使用 cat /var/log/message查看日志
以上只传送了正向解析区域,反向解析出了点错错误,经过排查发现是由于字母写错了。以更改下面把更改后传送反向区域的图补上。
ls /var/named/slaves 查看获得的解析库
4、当主服务器解析库发生变化时,要将序列号增加,主服务器一但发现自己的序列号发生了变化就会通知其他的服务器过来更新解析库。
下面我们
5、修改后重启服务
tail /var/log/messages
查看结果
正在传送新解析库
6、cat /var/named/slaves
查看到从服务器已获得更新
五、DNS子域创建
以上DNS主从服务器搭建好以后我们开始创建一个子域。
1、我们在主服务器107的pingan.com域解析库文件中添加一个abc的子域
完成后检查语法 named-checkconf
重载 rndc reload
2、我们用从服务器109充当子域服务器,在从服务器的配置文件 /etc/named.rfc1912.zones中添加一个abc.pingan.com的子域
3、添加完成后我们先检查语法是否正确 named-checkconf
查看下状态rndc reload 显示为21个区域
然后重载 rndc reload
再查看下状态发现区域变成了22个 则添加成功
4、添加子域的区域解析库文件
/var/named/abc.pingan.com.zone
更改解析库文件权限和属组
然后named reload重载
查看日志 tail /var/log/messages
成功
5、在子域服务器上解析 dig -t A www.abc.pingan.com @192.168.2.109
成功解析出www.abc.pingan.com的ip地址
6、但是在主服务器上解析www.abc.pingan.com 不成功
没找到原因,想了一个解决办法,在主服务器上定义转发区域 将来至 abc.pingan.com的解析请求,全部转发到 从服务器上
7、在主服务器上定义区域转发
然后检查语法 named-checkconf
重载named reload
8、然后在用dig测试 dig -t A www.abc.pingan.com @192.168.2.107
原文地址:http://blog.51cto.com/13287875/2068893