内容简介:
DNS的简述
DNS服务器的安装
DNS常见名词
DNS配置文件详解
配置主要的DNS服务
DNS的简述
网络中为了区别各个主机,必须给每台主机配置一个唯一的IP地址,但这些数字的地址人们比较难以记忆,所以就采用了“域名”的方式来取代这些数字。
当某台主机要与其他主机进行通信时,就可以利用域名通信,域名向DNS服务器进行查询,转换成相应的IP地址进行通信。
早期的DNS服务是有一个文件提供/etc/hosts文件,但是后来随着互联网的开发,这个文件已经不能满足需求,于是由伯克利大学开发了BIND软件,来进行提供更广的DNS服务。
DNS服务器系统由以下四个组成部分:
DBS域名空间
资源记录
DNS服务器
DNs客户端
域分为:
组织域:com、org、net、cc....
国家域:cn、tw,hk,....
反向域:IP-->FQDN
区域的划分:如图1
DNS的查询过程分为两部分进行
名称查询从客户端开始,并传输给本机的DNS客户服务查询进行解析,如果本地不能在本机解析查询,则向本机设定的DNS服务器进行解析。如图2
DNS服务进行域名解析有两种方式:
递归查询:只发送一次请求,而后的查询由DNS服务器完成并返回其结果。
迭代查询:发送一次或者多次查询。DNS服务器返回一个绝对值或参考值,有客户端自己完成查询。如图3
hosts文件
hosts文件是Linux系统中一个负责IP地址与域名快速解析的文件,/etc/hosts
Hosts文件包含了IP地址和主机名之间的映射,还包括主机名的别名。
hosts文件的格式如下:
IP地址 主机名/域名 如图4
DNS服务器的安装
软件包:
bind97:程序主包,提供DNS服务的安装
bind97-libs:提供DNS服务器程序运行的库文件
bind97-utils:DNS工具包
bind97-level:开发包
需要安装bind97,bind97-libs,bind97-utils。安装之前需要卸载系统上之的文件,包括库文件和utils。
rpm -qa bind* //查询已安装的软件包
rpm -e bind-libs bind-utils //卸载软件包
yum install bind97 bind97-libs bind97-utils //安装bind97必须软件包
安装完成后检查所有包是否安装正确:如图5

rpm -qa bind97*
DSN服务的启动和停止
1、启动DNS服务
service named start
2、停止DNS服务
service named stop
3、重启NDS服务
service named restart
4、开启DNS服务的启动选项
chkconfig --list named //查看启动项
chkconfig named on //开启dns启动项
如图6所示

5、重读配置文件,不重启服务而使配置文件生效
service named reload
DNS常见名词:
ZONE:DNS名称,其中包含了存储在DNS服务器上的资源记录。
FQDN:(Fully Qualified Domain Name)主机全名
正向解析:域名到IP地址的解析过程
反向解析:从IP到域名的解析过程
DNS配置文件:
/etc/named.conf:主文件,设置一般的参数,指向该服务器使用的域数据库的存放位置
/var/named/named.ca:根域配置服务文件,指向根域名配置的服务器
/var/named/named.localhost.zone:localhost区的正向解析文件,用于将localhost名字转换为Ip127.0.0.1
/var/named/named.loopback:locahost的反向解析文件,用于将IP127.0.0.1转换为localhost主机名
资源记录类型:
SOA资源记录:起始授权记录(Start of Authority Record),简称SOA记录。SOA定义了域的全局参数,进行整个域的管理设置。一个区域文件只允许存在唯一的SOA记录。
格式:区域名(当前) 记录类型 SOA 主域名服务器(FQDN) 管理员邮件地址 (序列号 刷新间隔 重试间隔 过期间隔 TTL)
NS资源记录:名称服务器(NS)资源记录表示该区的授权服务器,它们表示SOA资源记录中指定的该区的主和辅助服务器,也表示了任何授权区的服务器。每个区在区根处至少包含一个NS记录。
格式:区域名 IN NS 完整主机名(FQDN)
A资源记录:地址(A)资源记录把FQDN映射到IP地址,因而解析器能查询FQDN对应的IP地址。
格式:完整主机名(FQDN) IN A IP地址
PTR资源记录:相对于A资源记录,指针(PTR)记录把IP地址映射到FQDN
格式:IP地址 IN PTR 主机名(FQDN)
CNAME资源记录:规范名字(CNAME)资源记录创建特定FQDN的别名。
格式:别名 IN CNAME 主机名
MX资源记录:邮件交换(MX)资源记录为DNS域名指定邮件交换服务器。
格式:区域名 IN MX 优先级(数字) 邮件服务器名称(FQDN)
主配置文件/etc/named.conf,如图7
named.confi文件的语法格式:
花括号必须成对出现,并且以;结尾
花括号的前后得有空格
花括号内的每段必须也以;结尾
type字段指定区域的类型
master:表示定义的是主域名服务器 。拥有区域数据文件,并对此区域提供管理数据
slave:表示定义的是辅助域名服务器。拥有主DNS服务器的区域数据文件的副本,辅助DNS服务器会从主DNS服务器同步所有区域数据
hint:表示是互联网中根域名服务器。当服务器启动时,它使用根线索来查找根域名服务器,并找到最近的根域名服务器列表
forward:一个forward zone是每个域的配置转发的主要部分
下面来我们自己架构一个简单的根DNS,
根区域定义
1、配置named.conf文件,如图

SELinux:selinux控制的机制比较特殊,启动DNS服务器的时候需要把SELinux关掉。

启动DNS服务如下所示,图8
netstat -tunlp查看服务的相关端口,如图9
测试:
vim /etc/resolv.conf
nameserver 172.16.7.1 //本机IP做DNS服务器
search localdomain
dig -t A localhost @172.16.7.1 //查找localhost的A记录,如图10
DNS服务器案例一
需求规划:
主机:
master:172.16.7.1
slave:172.16.7.2
测试机:172.16.7.3
master:
ns ns1.chris.cm
www 172.16.7.6
ftp 172.16.7.7
mail 172.16.7.8
chris 172.16.7.9
chrislee cname www
slave:
ns2.chris.com
要求:其能实现正反向解析
master设置:
1、vim /etc/named.conf在下面增加

3、vim /var/named/172.16.7.zone 如下图13
4、更改这两个文件的权限和属主属组并测试配置

5、测试:如图14、15
slave服务器的设置:
1、先在master服务器上配置named.conf配置文件

2、配置数据文件chris.com.zone

3、配置172.16.7.zone反向解数据文件

4、slave只需要配置named.conf

解释如图17
5、测试
解析测试
启动测试机7.3,编辑etc/resolv.conf
nameserver 172.16.7.1
search localdomain
dig -t A ftp.chris.com 结果如图18
区域传输测试,如图19
下面把master上的序列号加1,再重启服务,master的日志文件如图20
查看slave服务器上的文件,如图21
OK,此服务器到此已经实现了我们预设的全部功能,架设完毕。
泛域名解析:
只需建立一个A记录 *.ZONE NAME. IN A IP
fg:*.chris.com. IN A 172.168.0.1
rndc:服务本地/远程控制命令
rndc-confgrn > /etc/rndc.conf //生成rdnc配置文件
如图22所示
vim /etc/rndc.conf
:,$-1w >> /etc/named.conf把配置文件追加到named.conf内
vim /etc/named.conf,如图23
rndc的子命令选项,如图24
利用rdns查询信息,如图25
远程主机连接的时候需要把/etc/rndc.conf拷贝到客户端主机上面
scp /etc/rndc.conf 172.16.7.3:/root/
然后修改配置,如图26
由于远程控制开启不安全,所以建议不要开启DNS的远程控制
DNS子域授权
格式:SUB_NAME IN NS NSSERVER_SUB_ZONE_NAME
NSSERVER_SUB_ZONE_NAME IN A IP
fg:ns1.fin.chris.com 172.16.100.1
ns1.market.chris.com 172.16.200.1
只需要在named.cof内增以下配置即可
fin IN NS ns1.fin
ns1.fin IN A 172.16.100.1
market IN NS ns1.market
ns1.market IN A 172.16.200.1
然后在100.1和200.2上分别建立相应的DNS服务器,只是域为fin.chris.com和market.chris.com。这样就可以完成DNS的子域授权了,以后这两个小域可以分别负责自己域内主机的域名解析了。
解析转发:

智能DNS:视图view
格式
view VIEW_NAME {
};
一旦定义视图,所有的区域都必须定义在视图中。根区域只需要定义在需要递归的视图内。
fg:
需求规划:
172.16.10.0/8网段通过chris.com域解析
剩余的其他网段通过chrislee.com域解析
编辑named.conf

下面配置chris.com.zone和chrislee.com.zone数据文件即可实现其分类解析功能