<由于字数太多此处只黏贴了一部分,详细请下载附件pdf文件>
本节内容介绍
一、DNS简介
查看named端口号监听状态
二、DNS解析的方式
DNS解析的方式分为4种
三、bind安装
四、配置文件详细解析
1、主配置文件
语句解析:
2、域数据文件
常见的记录类型和描述
正向解析区域文件
反向解析区域文件
五、案例分析:
1、部署主域名服务器
经典案例背景
(1)、安装软件
(2)、修改配置文件named.conf
(3)、创建区域数据文件
(4)、网络配置禁用防火墙selinux
(5)、测试验证主服务器是否正常
2、部署从域名服务器
(1)、安装软件
(2)、修改配置文件
(3)、测试验证
3、view视图+主从+密钥认证案例分析
案例背景
(1)、配置主服务器
(2)、修改配置文件named.conf
(3)、创建区域文件
(4)、测试验证
(5)、配置从服务器
(6)、修改从服务器上的配置文件
(7)、验证测试
(8)、最后来一个主从密钥认证
一、DNS简介
名称解析的方法在计算机系统中分为三种:host表、网络信息服务系统(NIS)以及域名服务系统DNS(Domain Name System),DNS是一种主机名和IP地址转换的机制,由三部分组成分别是域名空间、DNS服务器和解析器,它是分布式的数据库,网络服务和计算命名系统,域名被解析成IP地址,通过复制技术与缓存技术拥有良好的性能。DNS软件最知名的就是bind,能够实现DNS协议的各种功能,bind英文名为Berkeley Internet Name Domain,端口号为53和953端口
查看named端口号监听状态
[root@PAN-Server ~]# netstat -antup | grep named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 14298/named
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 14298/named
tcp 0 0 ::1:53 :::* LISTEN 14298/named
tcp 0 0 ::1:953 :::* LISTEN 14298/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 14298/named
udp 0 0 ::1:53 :::* 14298/named
[root@PAN-Server ~]#
二、DNS解析的方式
DNS解析的方式分为4种
本地解析:利用以前客户端查询的缓存进行解析
直接解析:使用DNS资源记录缓存或者其管辖区内的权威回答
递归解析:DNS服务器代表客户端向其他服务器查询,直到完全解析后给客户端
迭代解析:DNS服务器向客户端解析该域名的其他服务器(DNS),客户端在继续向这个服务器查询
三、bind 安装
[root@PAN-Server ~]# rpm -qa | grep bind
bind-utils-9.8.2-0.17.rc1.el6_4.6.x86_64
PackageKit-device-rebind-0.5.8-21.el6.x86_64
ypbind-1.20.4-30.el6.x86_64
rpcbind-0.2.0-11.el6.x86_64
samba-winbind-clients-3.6.9-164.el6.x86_64
bind-libs-9.8.2-0.17.rc1.el6_4.6.x86_64
samba-winbind-3.6.9-164.el6.x86_64
[root@PAN-Server ~]# yum install -y bind bind-chroot#yum 安装
解析:bind-chroot 软件包的主要功能是使BIND软件运行在chroot模式下,这样的话,BIND运行在相对路径的根目录下而不是真正的根目录路径,这是为了提高系统的安全性,即使对BIND攻击破坏也不会影响操作系统虚拟根路径为/var/named/chroot目录,如此一来/etc/name.conf 文件的绝对路径就为/var/named/chroot/etc/named.conf ,chroot的功能要开启named服务之后才能生效
1. [root@PAN-Server ~]#service named start
2. Generating /etc/rndc.key: [ OK ]
3. Starting named: [ OK ]
1. [root@PAN-Server ~]# mount |grep named #挂载路径如下所示
2. /etc/named on /var/named/chroot/etc/namedtype none (rw,bind)
3. /var/named on /var/named/chroot/var/namedtype none (rw,bind)
4. /etc/named.conf on /var/named/chroot/etc/named.conftype none (rw,bind)
5. /etc/named.rfc1912.zones on/var/named/chroot/etc/named.rfc1912.zones type none (rw,bind)
6. /etc/rndc.key on /var/named/chroot/etc/rndc.keytype none (rw,bind)
7. /usr/lib64/bind on /var/named/chroot/usr/lib64/bindtype none (rw,bind)
8. /etc/named.iscdlv.key on /var/named/chroot/etc/named.iscdlv.keytype none (rw,bind)
9. /etc/named.root.key on /var/named/chroot/etc/named.root.keytype none (rw,bind)
10.[root@PAN-Server ~]#
四、配置文件详细解析
1、主配置文件
named.conf配置文件由配置语句和注释组成,每条配置语句都会以“;”作为结束符号,多个语句组成一个语句块注释可以为/和/ 和//注释
下面介绍一下namad.conf 所支持的所有语句
Options 定义全局选项
Logging 定义日志信息
Acl 定义主机匹配列表用于访问控制
Controls 定义rndc工具与远程bind服务通信
Include 把其他文件的内容调入(可以做加密)
Key 定义加密密钥
Lwres 配置为轻量级解析器
Statistics-channels 定义与bind的统计信息的通信通道
Server 定义服务器属性
Trusted-keys 定义信任的DNSSEC密钥
Masters 定义主域名列表
View 定义视图
Zone 定义区域
语句解析:
(1)、options 全局配置
格式:
1. options {
2. listen-on port 53 { 127.0.0.1; }; //监听端口号和IP地址 IPV4地址
3. listen-on-v6 port 53 { ::1; }; //监听IPV6地址和端口号
4. pid-file “name.pid”; //进程文件
5. directory "/var/named"; #工作目录写绝对路径
6. allow-query { localhost; }; #允许为哪些客户机提供DNS服务,这里可以写定义的acl
7. blackhole { shudaipiaoling;}拒绝哪些主机查询请求
8. dump-file 运行rndcdumpdb 备份缓存资料后保存的文件路径与名称
9. statistics-file 运行rndcstats后,统计信息的保存路径与名称
10. allow-query-cache 指定哪些主机通过服务器查询非权威解析数据,如递归查询数据
11. recursion yes; //支持递归查询
12. forwarders //设定转发使用的IP ,所有对本服务器的查询转发给该IP
13. max-cache-size //设置缓存文件的最大容量
14.};
(2)、acl语句(定义一个可以访问的IP或者IP集合)
格式:
1. acl “shudaipiaoling” { //定义一个名为“shudaipiaoling”的acl语句
2. 192.168.15.10;
3. 192.168.20.10;
4. Localhost; //包括本地网络接口IP 和127.0.0.1
5. }
6. acl “shudaipiaoling2” { //可以定义多个acl语句
7. “shudaipiaoling”;// 把上面那个语句加进来
8. !192.168.100.1/24; //排除子网
9. }
10.其中内定的关键字有
11.“any” // 表示任何主机
12.“none” //没有主机
13.“localhost” //本地网络接口IP
14.“localnets” //本地子网IP
(3)、controls (定义本地域名服务器操作的控制通道,被rndc用来发送控制命令)
语法格式:
1. Controls{
2. inet 192.168.15.254 port 953 //在192.168.15.254接口的953端口监听
3. allow { 192.168.15.254; } ;//只接受192.168.15.254的连接 ,只能此IP使用rndc才能对named控制
4. key { “rndckey”; }; //使用密钥rndckey才能访问
5. }
(4)、key语句
格式:
1. Key “rndckey” { //定义一个密钥名称为rndckey
2. algorithm hamc-md5; //算法为hmac-md5
3. secret “ ***************************”;//密钥数据***************
4. }
(5)、view语句(一台主机上运行多个形式上独立的DNS服务器有用)
格式
1. view "localhost_resolver"{
2.
3. match-clients { localhost; };
4. recursion yes;
5.
6. # all views must contain the root hintszone:
7. zone "." IN {
8. type hint;
9. file "/var/named/named.ca";
10. };
11.
12.
13. include "/etc/named.rfc1912.zones";
14.};
(6)zone语句
格式:
1. zone "localhost"IN {
2. type master; //设定域类型包括以下几种类型
3. hint:当本地找不到解析可以查询根域名服务器
4. master:定义权威域名服务器
5. slave:定义辅助域名服务器
6. forward:定义转发域名服务器
7. file "named.localhost"; //定义域数据文件,文件保存在directory所定义的目录下
8. allow-update { none; };允许哪些主机动态更新域数据信息
9. allow-transfer { localhost; }; 哪些从服务器可以从主服务器下载数据
2、域数据文件
域数据文件默认存储在/var/named目录下由主配置文件中的Directory制定目录,zone语句中的file定义域数据文件的名称,域数据文件分为正向解析文件(域名到IP的解析)和反向解析文件(IP到域名的解析)。反向解析域时,需要将网络地址段反过来写,并以固定的.in-addr.arpa格式结尾
常见的记录类型和描述
SOA记录域权威记录说明此服务器为管理服务器
NS记录域名服务器记录
MX记录邮件记录,指定域内的邮件服务器需要指定优先级
A记录正向解析记录
CNAME记录别名记录添加别名
PTR记录反向解析记录
正向解析区域文件
1. $TTL 1D
2. @ IN SOA root.example.com. shudaipiaoling.163.com (
3. 0 ; serial
4. 1D ; refresh
5. 1H ; retry
6. 1W ; expire
7. 3H ) ; minimum
8. NS @
9. A 127.0.0.1
10. AAAA ::1
解析:
1. @代表zone所定义的域名称这里是SOA的域名
2. TTL值为其他域名服务器将数据放在缓存中的时间
3. IN 定义网络的地址类型,对于TCP/IP而言设置为IN(INERNET)
4. root.example.com.代表了主域名服务器的主机名以.结束
5. shudaipiaoling.163.com 代表了DNS邮件管理员的地址,用.代替@
6. serial:定义这个区域文件的版本号,为整数,每次更改加1,这样的话bind可以确定这个文件的更改时间
7. refresh:从服务器检查主服务器应等待的时间默认秒为单位
8. retry:重新尝试应等待的时间,发生在主服务器不能使用时
9. expire:主从无法通信,区域信息保存时间
10.minimum:上面第一行$TTL值没有设置时,默认最小值为3小时
11.***注意:如果数据文件中记录没有以“.”结尾,那么系统将自动加上域名城,如果某条记录名称为空或者制表符,那么BIND也会直接使用上一条记录的名称***
反向解析区域文件
1. 这里不再赘述了,跟正向解析区域文件类似,只是A记录变成了PTR记录,把IP地址解析成域名