DNS服务器所提供的服务是完成将主机名和转换为IP地址的工作。为什么需要将主机名转换为IP地址的工作呢?这是因为,当网络上的一台客户机访问某一服务器上的资源时,用户在浏览器地址栏中输入的是人类便于识记的主机名和域名。而网络上的计算机之间实现连接却是通过每台计算机在网络中拥有的惟一的IP地址来完成的,这样就需要在用户容易记忆的地址和计算机能够识别的地址之间有一个解析,DNS服务器便充当了地址解析的重要角色。
域名严格意义上的称呼为FQDN(Full Qualified Domain Name)。域名按分类形式大概分为组织域,国家域名,顶级域,二级域等,如下: 组织域:.com, .net, .org, .gov, .edu, .mil 国家域:.iq, .tw, .hk, .jp, .cn 举个例子:163.com就是一个顶级域名,而www.163.com却不是顶级域名,他是在163.com 这个域里的一叫做www的主机。 一级域之后还有二级域,三级域,只要我买了一个顶级域,并且我搭建了自己BIND服务器(或者其他软件搭建的)注册到互联网中,那么我就可以随意在前面多加几个域了(当然长度是有限制的。 ####IP与域名转换的机制: IP---->域名;依靠调用`getipbyhostname`库来实现; IP---->域名;依靠调用`gethostnamebyip`库来实现; #####DNS解析的大概流程##### 
以用户访问“http://www.niefei.com为例; 1)首先用户客户端先去查询自己本机的host文件,如果host文件记载了该域名的IP地址,直接读取host地址; 2)如果host记录里不存在,那么去查询指定DNS服务器缓存,如果缓存存在,结果返回,如果不存在,去查找本地的DNS服务器; 3)先去查找本地DN服务器,看是否是自己服务器指定权威服务器,如果有结果,那么就返回;如果权威服务器没有结果,那么就去查找本地DNS服务器的缓存,获取非权威结果,有结果就返回; 4)如果没有结果,就要先去查找跟服务器,即.,跟服务器查找了没有结果,但是会告诉本地DNS服务器,虽然我不知道,但是我知道com.顶级域可能会知道; 5)本地DNS服务器就com.顶级域去查找,com.查找后发现,告诉本地DNS服务器发现,本地并无记录,但是niefei.com.应该会知道; 6)本地DNS服务器去到com.域之后,发现有niefei.com,于是获得结果,这时候就要现在本地DNS服务器缓存存取一份,方便再次查询的时候获取; 7)同时在本非缓存也存取一份,方便本地再次查询的时候获取。 这个过程中,客户端去跟本地查询的过程称之为递归查询;本地服务器获取最终域名IP的过程为迭代查询。 其中 FQDN->IP 反向解析 IP-->FQDN 正向解析 常见的DNS服务器类型: 1 2 3 4 5 6 7 8 9 10 | 缓存DNS服务器: 做DNS本地数据缓存
转发服务器 : 对DNS查询请求做转发
主DNS : 维护所负责解析的域数据库的那台服务器;读写操作均可进行;
辅助DNS:从主DNS服务器那里或其它的从DNS服务器那里“复制”一份解析库;但只能进行读操作;
辅助dns服务器会定期按照设置时间去探测主dns上的数据,依据以下5种属性信息设置
seral number:版本号,定义版本号,主服务器数据库内容发生变化时,其版本号递增;
refresh: 刷新时间,从服务器每多久到主服务器检查序列号更新状况;
retry: 重试时间,从服务器从主服务器请求同步解析库失败时,再次发起尝试请求的时间间隔
expire :从服务器始终联系不到主服务器时,多久之后放弃从主服务器同步数据;停止提供服务
nagative answer ttl 否定答案的缓存时长
|
一般情况下,主服务器”通知“从服务器随时更新数据; DOMAIN 域:逻辑概念;理论上一个域里面有多个区域,而区域里面有定义了下一级的域。 ZONE 区域:物理概念;区域是真正存在的数据文件,定义了数据文件。 ###那么我们看一下区域的数据库文件: 主要是资源记录,Resource Record, 简称rr;其中记录的类型有:A, AAAA, PTR, SOA, NS, CNAME, MX; 
SOA:Start Of Authority,起始授权记录; 一个区域解析库有且只能有一个SOA记录,而且必须放在第一条;SOA记录表明了DNS服务器之间的关系。SOA记录表明了谁是这个区域的所有者。一个DNS服务器安装后,需要创建一个区域,以后这个区域的查询解析,都是通过DNS服务器来完成的。现在来说一下所有者,我这里所说的所有者,就是谁对这个区域有修改权利。常见的DNS服务器只能创建一个标准区域,然后可以创建很多个辅助区域。标准区域是可以读写修改的。而辅助区域只能通过标准区域复制来完成,不能在辅助区域中进行修改。而创建标准区域的DNS就会有SOA记录,或者准确说SOA记录中的主机地址一定是这个标准区域的服务器IP地址。 NS:Name Service,域名服务记录;一个区域解析库可以有多个NS记录;其中一个为主的;即是在DNS服务器之间,表明谁对某个区域有解释权,即权威DNS。我们来说明NS记录的作用。比如你先在DNSPOD申请了一个域名ABC.COM。一般情况是DNSPOD的域名服务器替你来解析如www.niefei.com这样的主机记录。如果你想自己架设一个DNS服务器,让这台服务器从今往后替代DNSPOD的DNS服务器解析,那么你就需要在你的DNS上设置NS记录,然后将DNSPOD域名管理系统中的NS记录改成你的DNSIP。这样以后就是你自己的DNS服务器负责提供解析了。 A记录: Address, 地址记录,FQDN --> IPv4; AAAA:地址记录, FQDN --> IPv6; CNAME:Canonical Name,别名记录; PTR:Pointer,IP --> FQDN MX:Mail eXchanger,邮件交换器; 定义一个资源记录的格式为: name [TTL] INRR_TYPE value ###以SOA为例,解释资源记录的格式: name: 当前区域的名字;例如”niefei.com.”,或者“2.3.4.in-addr.arpa.”; value:有多部分组成 1)当前区域的区域名称(也可以使用主DNS服务器名称); 2)当前区域管理员的邮箱地址;但地址中不能使用@符号,一般使用点号来替代; 3)(主从服务协调属性的定义以及否定答案的TTL) 举例: niefei.com. 3600 IN SOA niefei.com. admin.niefei.com. (
2016010901 ; serial 2H ; refresh
15M ; retry
1W ; expire
1D ; negative answer ttl ) #####NS举例: name: 当前区域的区域名称 value:当前区域的某DNS服务器的名字,例如ns.magedu.com.; 注意:一个区域可以有多个ns记录; 举例: niefei.com. 3600 IN NS ns1.niefei.com
niefei.com 3600 IN NS ns2.niefei.com
######MX举例: name: 当前区域的区域名称 value:当前区域某邮件交换器的主机名; 注意:MX记录可以有多个;但每个记录的value之前应该有一个数字表示其优先级; 如:
niefei.com. IN MX 10 mx1.niefei.com niefei.com. IN MX 20 mx2.niefei.com
#### A记录: name:某FQDN,例如www.magedu.com. value:某IPv4地址; 例如: www.niefei.com.IN A1.1.1.1 www.niefei.com. IN A 2.2.2.2
bbs.niefei.com IN A 3.3.3.3
####AAAA记录: name:FQDN value: IPv6 ##PTR name:IP地址,有特定格式,IP反过来写,而且加特定后缀;例如1.2.3.4的记录应该写为4.3.2.1.in-addr.arpa.; value:FQND 举例:
4.3.2.1.in-addr.arpa. IN PTR www.niefei.com. ###CNAME name:FQDN格式的别名; value:FQDN格式的正式名字; 例如: fly.niefei.com. IN CNAME bbs.niefei.com 总概: 1)TTL可以从全局继承; 2)@表示当前区域的名称; 3)相邻的两条记录其name相同时,后面的可省略; 4)对于正向区域来说,各MX,NS等类型的记录的value为FQDN,此FQDN应该有一个A记录; ######### 提供域名解析服务的服务器就被称为DNS服务器,在centos系统上一般是通过Bind来实现,服务启动之后默认的进程端都为53端口。如图所示:
1 2 3 4 5 6 7 8 9 | [root@wangxin ~] # netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID /Program name
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 3191 /named
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3008 /sshd
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 3191 /named
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2177 /master
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 3057 /sshd : root@pts
tcp6 0 0 ::1:53 :::* LISTEN 3191 /named
|
####bind解析###
主配置文件:/etc/named.conf,此文件可使用include包含其他文件,如下图所示 1 2 3 4 5 6 7 8 9 10 11 12 | options {
listen-on port 53 { 127.0.0.1; };
listen-on-v6 port 53 { ::1; };
directory "/var/named" ;
dump- file "/var/named/data/cache_dump.db" ;
statistics- file "/var/named/data/named_stats.txt" ;
memstatistics- file "/var/named/data/named_mem_stats.txt" ;
allow-query { 172.16.0.0 /16 ; };
.....
include "/etc/named.rfc1912.zones" ;
include "/etc/named.root.key" ;
|
listen-on port:named监听的端口号、IP地址,监听能与外部主机通信的地址; directory:区域数据库文件的默认存放位置 dump-file:域名缓存数据库文件位置
statisstics:状态统计文件位置
zone 定义那些由本机负责解析的区域,或转发的区域。默认定义了根区域,根数据库文件在/var/named/named.ca,这个文件定义了全世界根文件服务器 memstatistics-file:服务器输出的内存使用统计文件位置 allow-query:允许DNS查询的客户端地址,如允许172.16.0.0网段,设置为“172.16.0.0/16”
recursion:设置是否允许递归查询 forwarders:设置转发服务器的IP地址,用来列出要用来作为转发器的服务器的IP地址,使用转发器可绕过从根服务器开始按正常流程检索的正常过程。 logging:定义bind服务的日志 channel(通道):日志输出方式,如syslog、文本文件、标准错误输出或/dev/null, default_debug:只有当服务器的debug级别非0时,才产生输出。这里默认保存在/var/named/data目录下 file(文件):输出到文本文件 severity(严重性):消息的严重性等级 severity按照服务器当前的debug级别记录日志 include:指定的辅助文件选项:在/etc/named.conf文件中最下面使用include包含了两个文件。其中,/etc/named.rfc1912.zones文件为辅助区域文件;/etc/named.root.key文件用来签名和验证DNS资源记录的公共密钥文件 注意:每个配置语句必须以分号结尾; 同时:关闭仅允许本地查询: //allow-query { localhost; }; ####辅助区域文件:named.rfc1912.zones named.rfc1912.zones文件保存在/etc/目录下,DNS服务的正、反向区域地址数据库文件在该文件中配置。这两个文件由一系列语句构成,每条语句以分号结束,语句内各关键字或数据之间用空白(空格、Tab键或换行)分割,并用大括号进行分组。每个语句以一个关键字开始,常用的语句如下:
acl:定义访问控制表; key:定义验证信息; server:指定每个服务器所特有的选项; options:设置DNS服务器的全局配置选项和默认值; directory:指定存放区文件的位置; zone:定义区; masters:定义一个主DNS服务器列表。 ####解析库文件
在/var/named/目录下,一般名字为:ZONE_NAME.zone 综上所述:
(1) 一台DNS服务器可同时为多个区域提供解析; (2) 必须要有根区域解析库文件: named.ca; (3) 还应该有两个区域解析库文件:localhost和127.0.0.1的正反向解析库; 正向:named.localhost 反向:named.loopback ###DNS服务的管理方式: rndc:remote name domain contoller,端口为953/tcp,但默认监听于127.0.0.1地址,因此仅允许本地使用; bind程序安装完成之后,默认即可做缓存名称服务器使用;如果没有专门负责解析的区域,直接即可启动服务; 启动方法: CentOS 6: service named start CentOS 7: systemctl start named.service 检查配置文件语法错误:named-checkconf [/etc/named.conf] #####测试DNS工具 dig, host, nslookup等 dig命令: dig [-t RR_TYPE] name [@SERVER] [query options] 用于测试dns系统,因此其不会查询hosts文件; 查询选项: +[no]trace:跟踪解析过程; +[no]recurse:进行递归解析; 反向测试:dig -x IP 模拟完全区域传送:dig -t axfr DOMAIN [@server] host命令: host [-t RR_TYPE] name SERVER_IP nslookup命令: nslookup [-options] [name] [server] #####配置一个DNS的正向区域 以niefei.com域为例; 1)定义区域
在主配置文件中或主配置文件的辅助文件中实现;
比如我们编辑/etc/named.rfc1912.zones 1 2 3 4 | zone "niefei.com" IN {
type master;
file "niefei.com.zone" ;
};
|
zone :定义区域名称 type:定义格式,有hint,master,slave,forward四种格式;此处定定义为主; file:设置正向区域配置的数据文件,此处为相对路径,即在/var/named下,可写成绝对路径;
注意:区域名字即为域名; 2)建立区域数据文件(主要记录为A或AAAA记录) 在/var/named目录下建立区域数据文件; 文件为:/var/named/niefei.com.zone 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | $TTL 3600
$ORIGIN niefei.com.
@ IN SOA ns1.niefei.com. admin.niefei.com. ( // 设置SOA标记、域名、域管理邮箱
2017011001 // 更新序列号,用于标记地址数据库的变化
1H // 刷新时间,从域名服务器更新该地址数据库文件的间隔时间
10M // 重试延时,从域名服务器更新地址数据库失败以后,等待多长时间再次尝试
3D // 失效时间,超过该时间仍无法更新地址数据库,则不再尝试
1D ) // 设置无效地址解析记录(该数据库中不存在的地址)的默认缓存时间
IN NS ns1
IN MX 10 mx1
IN MX 20 mx2
ns1 IN A 172.16.249.70
mx1 IN A 172.16.249.70
mx2 IN A 172.16.41.71
www IN A 172.16.249.70
web IN CNAME www
bbs IN A 172.16.249.70
bbs IN A 172.16.41.71
|
$TTL:设置有效地址解析记录的默认缓存时间; $ORIGIN:表示该zone文件用来描述的域(domain)名称,说明下面的记录源出何处; MX邮件交换(Mail Exchange)记录,用于设置当前域的邮件服务器域名地址; A地址(Address)记录,用于记录正向域名解析; CNAME别名(Canoical Name)记录; 其中,NS、MX记录行首的@符号可以省略(默认继承SOA记录行首的@信息),但是必须保留一个空格或者制表位; 注意如果ns用全名称,com后面要有. 如果不是全名称,后面一定不能有. 配置完成之后,要进行权限即属组修改:
# chgrp named /var/named/niefei.com.zone # chmod o= /var/named/niefei.com.zone ###检查语法错误: # named-checkzone niefei.com.zone /var/named/niefei.com.zone # named-checkconf ###(3) 让服务器重载配置文件和区域数据文件 # rndc reload 或 # systemctl reload named.service ##测试验证使用dig命令 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | [root@wangxin named] # dig -t A www.niefei.com @172.16.249.70
; <<>> DiG 9.9.4-RedHat-9.9.4-18.el7 <<>> -t A www.niefei.com @172.16.249.70
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id : 31905
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.niefei.com. IN A
;; ANSWER SECTION:
www.niefei.com. 3600 IN A 172.16.249.70
;; AUTHORITY SECTION:
niefei.com. 3600 IN NS ns1.niefei.com.
;; ADDITIONAL SECTION:
ns1.niefei.com. 3600 IN A 172.16.249.70
;; Query time : 0 msec
;; SERVER: 172.16.249.70 #53(172.16.249.70)
;; WHEN: 一 1月 11 10:52:37 CST 2016
;; MSG SIZE rcvd: 93
|
###查看NS 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | [root@wangxin named] # dig -t NS niefei.com @172.16.249.70
; <<>> DiG 9.9.4-RedHat-9.9.4-18.el7 <<>> -t NS niefei.com @172.16.249.70
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id : 47721
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;niefei.com. IN NS
;; ANSWER SECTION:
niefei.com. 3600 IN NS ns1.niefei.com.
;; ADDITIONAL SECTION:
ns1.niefei.com. 3600 IN A 172.16.249.70
;; Query time : 0 msec
;; SERVER: 172.16.249.70 #53(172.16.249.70)
;; WHEN: 一 1月 11 10:54:57 CST 2016
;; MSG SIZE rcvd: 73
|
####配置一个解析反向区域(主要记录为PTR) (1) 定义区域 在主配置文件中或主配置文件辅助配置文件中实现; 示例,区域名称为41.16.172.in-addr.arpa; 1 2 3 4 | zone "41.16.172.in-addr.arpa" IN {
type master;
file "172.16.41.zone" ;
};
|
############## 区域数据文件172.16.41.zone 1 2 3 4 5 6 7 8 9 10 11 12 13 | $TTL 3600
$ORIGIN 41.16.172. in -addr.arpa.
@ IN SOA ns1.niefei.com. admin.niefie.com. (
2017011003
1H
10M
3D
12H )
IN NS ns1.niefei.com.
3 IN PTR ns1.niefei.com.
3 IN PTR bbs.niefei.com.
71 IN PTR bbs.niefei.com.
3 IN PTR www.niefei.com.
|
###权限及属组修改: # chgrp named /var/named/172.16.41.zone # chmod o= /var/named/172.16.41.zone # 检查语法错误: # named-checkzone 41.16.172.in-addr.arpa /var/named/172.16.41.zone # named-checkconf 3) 让服务器重载配置文件和区域数据文件 # rndc reload 或 # systemctl reload named.service ################################## 辅助DNS服务器配置: 注意:从服务器是区域级别的概念; 配置一个从区域: 在从服务器上: (1) 定义区域 定义一个从区域; zone "ZONE_NAME" IN { type slave; file "slaves/ZONE_NAME.zone"; //文件不需要建立,会自动从master同步过来,此文件有写权限 masters { MASTER_IP; }; //指定主IP }; 配置文件语法检查:named-checkconf ###### 1 2 3 4 5 | zone "niefei.com" IN {
type slave;
file "slaves/niefei.com.zone" ;
masters { 172.16.41.3; };
};
|
(2) 重载配置 #rndc reload; #systemctl reload named.service ######## 在主服务器上 (1) 确保区域数据文件中为每个从服务配置NS记录,并且在正向区域文件需要每个从服务器的NS记录的主机名配置一个A记录,且此A后面的地址为真正的从服务器的IP地址; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | $TTL 3600
$ORIGIN niefei.com.
@ IN SOA ns1.niefei.com. admin.niefei.com. (
2017011003
1H
10M
3D
1D )
IN NS ns1
IN NS ns2 // 注意添加此记录
IN MX 10 mx1
IN MX 20 mx2
ns1 IN A 172.16.41.3
ns2 IN A 172.16.41.8 // 此记录后面注意添加A记录
mx1 IN A 172.16.41.3
mx2 IN A 172.16.41.3
www IN A 172.16.41.3
web IN CNAME www
bbs IN A 172.16.41.3
bbs IN A 172.16.41.71
|
#####验证#### 从服务器上查看状态: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | [root@wangxin named] # systemctl status named.service
named.service - Berkeley Internet Name Domain (DNS)
Loaded: loaded ( /usr/lib/systemd/system/named .service; disabled)
Active: active (running) since 一 2016-01-11 17:39:15 CST; 9min ago
Process: 5673 ExecStart= /usr/sbin/named -u named $OPTIONS (code=exited, status=0 /SUCCESS )
Process: 5671 ExecStartPre= /usr/sbin/named-checkconf -z /etc/named .conf (code=exited, status=0 /SUCCESS )
Main PID: 5675 (named)
CGroup: /system .slice /named .service
└─5675 /usr/sbin/named -u named
1月 11 17:48:36 wangxin named[5675]: automatic empty zone: 8.B.D.0.1.0.0.2.IP6.ARPA
1月 11 17:48:36 wangxin named[5675]: reloading configuration succeeded
1月 11 17:48:36 wangxin named[5675]: reloading zones succeeded
1月 11 17:48:36 wangxin named[5675]: all zones loaded
1月 11 17:48:36 wangxin named[5675]: running
1月 11 17:48:36 wangxin named[5675]: zone niefei.com /IN : Transfer started.
1月 11 17:48:36 wangxin named[5675]: transfer of 'niefei.com/IN' from 172.16.41.3 #53: connected using 172.16.41.8#43346
1月 11 17:48:36 wangxin named[5675]: zone niefei.com /IN : transferred serial 2017011003
1月 11 17:48:36 wangxin named[5675]: transfer of 'niefei.com/IN' from 172.16.41.3 #53: Transfer completed: 1 messages, 14 records, 320 bytes, 0.002 secs (160000 bytes/sec)
1月 11 17:48:36 wangxin named[5675]: zone niefei.com /IN : sending notifies (serial 2017011003)
|
####去到/var/named/slaves,可以看到同步过来的数据库配置文件 1 2 3 4 5 | [root@wangxin slaves] # pwd
/var/named/slaves
[root@wangxin slaves] # ll
总用量 4
-rw-r--r--. 1 named named 564 1月 11 17:48 niefei.com.zone
|
####使用dig验证辅助DNS服务器是否能解析www.niefei.com域名 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | [root@wangxin slaves] # dig -t A www.niefei.com @172.16.41.8
; <<>> DiG 9.9.4-RedHat-9.9.4-18.el7 <<>> -t A www.niefei.com @172.16.41.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id : 19933
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.niefei.com. IN A
;; ANSWER SECTION:
www.niefei.com. 3600 IN A 172.16.41.3
;; AUTHORITY SECTION:
niefei.com. 3600 IN NS ns1.niefei.com.
niefei.com. 3600 IN NS ns2.niefei.com.
;; ADDITIONAL SECTION:
ns1.niefei.com. 3600 IN A 172.16.41.3
ns2.niefei.com. 3600 IN A 172.16.41.8
;; Query time : 0 msec
;; SERVER: 172.16.41.8 #53(172.16.41.8)
;; WHEN: 一 1月 11 17:55:08 CST 2016
;; MSG SIZE rcvd: 127
|
由此可见,解析成功。 ####主DNS新增域名解析 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | $TTL 3600
$ORIGIN niefei.com.
@ IN SOA ns1.niefei.com. admin.niefei.com. (
2017011004 // 序列号注意增加
1H
10M
3D
1D )
IN NS ns1
IN NS ns2
IN MX 10 mx1
IN MX 20 mx2
ns1 IN A 172.16.41.3
ns2 IN A 172.16.41.8
mx1 IN A 172.16.41.3
mx2 IN A 172.16.41.3
www IN A 172.16.41.3
web IN CNAME www
bbs IN A 172.16.41.3
bbs IN A 172.16.41.71
pop3 IN A 172.16.41.72 // 新增解析
|
####主DNS新增域名解析后,reload的结果 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | [root@wangxin named] # rndc reload
server reload successful
[root@wangxin named] # systemctl status named.service
named.service - Berkeley Internet Name Domain (DNS)
Loaded: loaded ( /usr/lib/systemd/system/named .service; disabled)
Active: active (running) since 一 2016-01-11 17:01:12 CST; 58min ago
Process: 10629 ExecStop= /bin/sh -c /usr/sbin/rndc stop > /dev/null 2>&1 || /bin/kill -TERM $MAINPID (code=exited, status=0 /SUCCESS )
Process: 10775 ExecReload= /bin/sh -c /usr/sbin/rndc reload > /dev/null 2>&1 || /bin/kill -HUP $MAINPID (code=exited, status=0 /SUCCESS )
Process: 10640 ExecStart= /usr/sbin/named -u named $OPTIONS (code=exited, status=0 /SUCCESS )
Process: 10639 ExecStartPre= /usr/sbin/named-checkconf -z /etc/named .conf (code=exited, status=0 /SUCCESS )
Main PID: 10643 (named)
CGroup: /system .slice /named .service
└─10643 /usr/sbin/named -u named
1月 11 17:59:33 wangxin named[10643]: automatic empty zone: B.E.F.IP6.ARPA
1月 11 17:59:33 wangxin named[10643]: automatic empty zone: 8.B.D.0.1.0.0.2.IP6.ARPA
1月 11 17:59:33 wangxin named[10643]: reloading configuration succeeded
1月 11 17:59:33 wangxin named[10643]: reloading zones succeeded
1月 11 17:59:33 wangxin named[10643]: zone niefei.com /IN : loaded serial 2017011004
1月 11 17:59:33 wangxin named[10643]: zone niefei.com /IN : sending notifies (serial 2017011004) // 主发送通知
1月 11 17:59:33 wangxin named[10643]: all zones loaded
1月 11 17:59:33 wangxin named[10643]: running
1月 11 17:59:33 wangxin named[10643]: client 172.16.41.8 #50455 (niefei.com): transfer of 'niefei.com/IN': AXFR-style IXFR started
1月 11 17:59:33 wangxin named[10643]: client 172.16.41.8 #50455 (niefei.com): transfer of 'niefei.com/IN': AXFR-style IXFR ended
|
从服务器收到通知,如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | [root@wangxin slaves] # systemctl status named.service
named.service - Berkeley Internet Name Domain (DNS)
Loaded: loaded ( /usr/lib/systemd/system/named .service; disabled)
Active: active (running) since 一 2016-01-11 17:39:15 CST; 22min ago
Process: 5673 ExecStart= /usr/sbin/named -u named $OPTIONS (code=exited, status=0 /SUCCESS )
Process: 5671 ExecStartPre= /usr/sbin/named-checkconf -z /etc/named .conf (code=exited, status=0 /SUCCESS )
Main PID: 5675 (named)
CGroup: /system .slice /named .service
└─5675 /usr/sbin/named -u named
1月 11 17:48:36 wangxin named[5675]: transfer of 'niefei.com/IN' from 172.16.41.3 #53: connected using 172.16.41.8#43346
1月 11 17:48:36 wangxin named[5675]: zone niefei.com /IN : transferred serial 2017011003
1月 11 17:48:36 wangxin named[5675]: transfer of 'niefei.com/IN' from 172.16.41.3 #53: Transfer completed: 1 messages, 14 records, 320 bytes, 0.002 secs (160000 bytes/sec)
1月 11 17:48:36 wangxin named[5675]: zone niefei.com /IN : sending notifies (serial 2017011003)
1月 11 17:59:33 wangxin named[5675]: client 172.16.41.3 #27879: received notify for zone 'niefei.com' //此处收到通知
1月 11 17:59:33 wangxin named[5675]: zone niefei.com /IN : Transfer started.
1月 11 17:59:33 wangxin named[5675]: transfer of 'niefei.com/IN' from 172.16.41.3 #53: connected using 172.16.41.8#50455
1月 11 17:59:33 wangxin named[5675]: zone niefei.com /IN : transferred serial 2017011004
1月 11 17:59:33 wangxin named[5675]: transfer of 'niefei.com/IN' from 172.16.41.3 #53: Transfer completed: 1 messages, 15 records, 341 bytes, 0.002 secs (170500 bytes/sec)
1月 11 17:59:33 wangxin named[5675]: zone niefei.com /IN : sending notifies (serial 2017011004)
|
#####测试辅助DNS是否同步新增的pop3域名 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | [root@wangxin slaves] # dig -t A pop3.niefei.com @172.16.41.8
; <<>> DiG 9.9.4-RedHat-9.9.4-18.el7 <<>> -t A pop3.niefei.com @172.16.41.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id : 20855
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;pop3.niefei.com. IN A
;; ANSWER SECTION:
pop3.niefei.com. 3600 IN A 172.16.41.72
;; AUTHORITY SECTION:
niefei.com. 3600 IN NS ns1.niefei.com.
niefei.com. 3600 IN NS ns2.niefei.com.
;; ADDITIONAL SECTION:
ns1.niefei.com. 3600 IN A 172.16.41.3
ns2.niefei.com. 3600 IN A 172.16.41.8
;; Query time : 1 msec
;; SERVER: 172.16.41.8 #53(172.16.41.8)
;; WHEN: 一 1月 11 18:03:16 CST 2016
;; MSG SIZE rcvd: 128
|
##########反向解析的辅助DNS
从服务器配置一个从区域: zone "41.16.172.in-addr.arpa" IN { type slave; file "slaves/172.16.41.zone"; masters { 172.16.41.3; }; }; 主服务增加一个NS记录 $TTL 3600 $ORIGIN 41.16.172.in-addr.arpa. @ IN SOA ns1.niefei.com. admin.niefie.com. ( 2017011005 1H 10M 3D 12H ) IN NS ns1.niefei.com. IN NS ns2.niefei.com. 8 IN PTR ns2.niefei.com. 3 IN PTR ns1.niefei.com. 3 IN PTR bbs.niefei.com. 71 IN PTR bbs.niefei.com. 3 IN PTR www.niefei.com. 然后配置文件重置,反向主DNS会通知反向从DNS获取数据。 验证辅助DNS配置结果 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | [root@wangxin slaves] # dig -x 172.16.41.3 @172.16.41.8
; <<>> DiG 9.9.4-RedHat-9.9.4-18.el7 <<>> -x 172.16.41.3 @172.16.41.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id : 29758
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;3.41.16.172. in -addr.arpa. IN PTR
;; ANSWER SECTION:
3.41.16.172. in -addr.arpa. 3600 IN PTR www.niefei.com.
3.41.16.172. in -addr.arpa. 3600 IN PTR bbs.niefei.com.
3.41.16.172. in -addr.arpa. 3600 IN PTR ns1.niefei.com.
;; AUTHORITY SECTION:
41.16.172. in -addr.arpa. 3600 IN NS ns1.niefei.com.
41.16.172. in -addr.arpa. 3600 IN NS ns2.niefei.com.
;; ADDITIONAL SECTION:
ns1.niefei.com. 3600 IN A 172.16.41.3
ns2.niefei.com. 3600 IN A 172.16.41.8
;; Query time : 0 msec
;; SERVER: 172.16.41.8 #53(172.16.41.8)
;; WHEN: 一 1月 11 18:13:36 CST 2016
;; MSG SIZE rcvd: 181
|
可以解析,数据同步成功。 #### 注意:时间要同步; ######子域授权#### 正向解析区域授权子域的方法: ops.niefei.com. IN NS ns1.ops.magedu.com. ops.niefei.com. IN NS ns2.ops.magedu.com. ns1.ops.niefei.com. IN A IP.AD.DR.ESS ns2.ops.niefei.com. IN A IP.AD.DR.ESS 方法: 1)在主域数据库文件授权; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | $TTL 3600
$ORIGIN niefei.com.
@ IN SOA ns1.niefei.com. admin.niefei.com. (
2016011007 ;serial
1H ;refresh
30M ;retry
1W ;expire
1D ) ;negative answer ttl
IN NS ns1
IN NS ns2
IN MX 10 mail
ns1 IN A 172.16.41.3
ns2 IN A 172.16.41.8
mail IN A 172.16.41.71
www IN A 172.16.41.3
web IN CNAME www
ops IN NS ns1.ops #定义二级域为ops.niefei.com
ns1.ops IN A 172.16.41.10 #并定义二级域的NS服务器地址
|
2)子域新装bind并配置 1 2 3 4 5 6 7 | listen-on port 53 { 172.16.41.10; }; #定义监听端口及IP地址
directory "/var/named" ; #工作目录
allow-query { 172.16.41.0 /16 ; }; #允许此网段进行查询请求
allow-recursion { 172.16.0.0 /16 ; }; #允许指定网段的主机进行递归查询
dnssec- enable no; #关闭dnssec功能选项
dnssec-validation no; #关闭dnssec功能选项
dnssec-lookaside no; #关闭dnssec功能选项
|
3)子域创建配置区域文件;
1 2 3 4 | zone "ops.niefei.com" IN { #定义域名称为ops.niefei.com.
type master; #服务器类型为主NS
file "ops.niefei.com.zone" ; #资源配置文件位置
};
|
4)创建子域数据文件; 1 2 3 4 5 6 7 8 9 10 | $TTL 3600
$ORIGIN cw.weizhenping.me.
@ IN SOA ns1.ops.niefei.com. admin.ops.niefei.com. (
201701001
1D
30M
1D
1D )
IN NS ns1
ns1 IN A 172.16.41.10
|
5)验证是否成功 1 | 在主域的主NS服务器中,使用 dig -t A www.ops.niefei.com ,如果能解析到,说明配置OK。
|
#########定义转发#### 注意:被转发的服务器必须允许为当前服务做递归; 分为两种: (1) 区域转发:仅转发对某特定区域的解析请求;
zone "ZONE_NAME" IN { type forward; forward {first|only}; forwarders { SERVER_IP; }; }; first:首先转发;转发器不响应时,自行去迭代查询; only:只转发;转发不成功就只有等待 (2) 全局转发:针对凡本地没有通过zone定义的区域查询请求,通通转给某转发器; 定义主配置文件: options { ... ... forward {only|first}; forwarders { SERVER_IP; }; .. ... }; ########ACL及视图的使用: acl:访问控制列表;把一个或多个地址归并一个命名的集合,随后通过此名称即可对此集全内的所有主机实现统一调用; 格式: acl acl_name { ip; net/prelen; }; 示例: 1 2 3 4 5 6 7 8 9 | acl mynet {
10.189.9.0 /24 ;
127.0.0.1 /8 ;
172.16.0.0 /16 ;
};
options {
directory "/var/named" ;
allow-recursion { mynet; };
};
|
############### bind有四个内置的acl: none:没有一个主机; any:任意主机; local:本机; localnet:本机所在的IP所属的网络; ############ 访问控制指令:
allow-query {}; 允许查询的主机;白名单; allow-transfer {}; 允许向哪些主机做区域传送;默认为向所有主机;应该配置仅允许从服务器; allow-recursion {}; 允许哪此主机向当前DNS服务器发起递归查询请求; allow-update {}; DDNS,允许进程动态更新区域数据库文件中内容; 定义某些权限允许的主机时,需要去主配置文件/etc/named.conf里定义,同时加在options之前;
例如: acl slaves { 172.16.41.8;
172.16.41.10;
}; ######## bind view:视图: 格式:
view VIEW_NAME { zone zone zone } 针对来源地址的不同的,解析方式的不同 举例: view internal { match-clients { 172.16.0.0/8; }; //针对内网 zone "magedu.com" IN { type master; file "magedu.com/internal"; }; }; view external { match-clients { any; }; zone "magecdu.com" IN { type master; file magedu.com/external"; }; }; ######ACL及视图的配合使用,可实现智能DNS的实现: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | root@localhost named] # cat /etc/named.conf
acl telecom {
10.189.9.0 /24 ;
};
#此ACL定义了电信IP的列表
acl unicom {
10.189.8.0 /24 ;
};
#此ACL定义了联通IP的列表
options {
directory "/var/named" ;
allow-recursion { localnet; }; #定义了允许递归请求的主机为NS所在网络的所有主机
allow-query { any; };
};
view telecom {
match-clients { telecom; };
zone "mageedua.com" IN {
type master;
file "telecom.mageedua.com.zone" ;
};
};
view unicom {
match-clients { unicom; };
zone "mageedua.com" IN {
type master;
file "unicom.mageedua.com.zone" ;
};
};
#在named.conf配置文件中,配置view功能,并在视图区域定义match-clients 参数,让match-clients引用acl列表,acl可以为电信IP列表,或者联通IP列表。最后在view视图中定义需要智能DNS的区域。一般情况,可以将区域划分三类: 1、内网视图 2、电信视图 3、联通视图
[root@localhost named] # cat telecom.mageedua.com.zone
$TTL 86400
@ IN SOA ns1.mageedua.com. admin.mageedua.com. (
2015061101
1D
1H
7D
1D )
IN NS ns1
IN MX 10 mail
ns1 IN A 10.189.9.110
mail IN A 10.189.9.111
www IN A 10.189.9.112 #电信www服务器为112的地址
[root@localhost named] # cat unicom.mageedua.com.zone
$TTL 86400
@ IN SOA ns1.mageedua.com. admin.mageedua.com. (
2015061101
1D
1H
7D
1D )
IN NS ns1
IN MX 10 mail
ns1 IN A 10.189.9.110
mail IN A 10.189.9.111
www IN A 10.189.9.113 #联通www服务器为113的地址
[root@localhost slaves] # dig -t A www.mageedua.com @10.189.9.110 #电信用户查询结果
; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7_0.1 <<>> -t A www.mageedua.com @10.189.9.110
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id : 58349
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.mageedua.com. IN A
;; ANSWER SECTION:
www.mageedua.com. 86400 IN A 10.189.9.112
;; AUTHORITY SECTION:
mageedua.com. 86400 IN NS ns1.mageedua.com.
;; ADDITIONAL SECTION:
ns1.mageedua.com. 86400 IN A 10.189.9.110
;; Query time : 1 msec
;; SERVER: 10.189.9.110 #53(10.189.9.110)
;; WHEN: 四 6月 11 10:26:21 CST 2015
;; MSG SIZE rcvd: 95
|
|