第十周

总结

本章内容
名字解析
DNS服务
实现主从服务器
实现子域
实现view
编译安装
压力测试
DNS排错
当我们上网的时候输入www.baidu.com时主机并不认识这个名字需要DNS名字解析(FQDN)成ip地址再由IP地址转换成MAC地址才能通讯
FQDN
www.magedu.com
www 主机名,或者别名
magedu.com 域名(domain)
[root@CENTOS7 ansible]# cat /etc/hosts   分散式的名字解析(分散式的解决方案)
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
分散式的解决方案
分散式的名字解析需要在每个主机上都维护这个hosts文件,一但其中一个ip发生改变那么所有主机的hosts文件都需要更改
集中式的解决方案
NIS 服务就是集中式的
终上所述:大型的网络需要的解决方案是既要集中一部分,又要分散一部分分布式管理(DNS)
DNS服务
DNS:Domain Name Service 应用层协议
C/S,53/udp, 53/tcp
BIND:Bekerley Internat Name Domain(提供DNS的软件bind)
ISC (www.isc.org)
本地名称解析配置文件:hosts
/etc/hosts
%WINDIR%/system32/drivers/etc/hosts     %WINDIR%代表windows的变量名
122.10.117.2 www.magedu.com
93.46.8.89 www.google.com
DNS域名
根域
一级域名:Top Level Domain: tld
com, edu, mil, gov, net, org, int,arpa
三类:组织域、国家域(.cn, .ca, .hk, .tw)、反向域
二级域名
三级域名
最多127级域名
ICANN(The Internet Corporation for Assigned Names and Numbers)
互联网名称与数字地址分配机构,负责在全球范围内对互联网通用顶级域名
(gTLD)以及国家和地区顶级域名(ccTLD)系统的管理、以及根服务器系统
的管理
DNS域名
根域 . 点就是根域
一级域名:Top Level Domain: tld
com, edu, mil, gov, net, org, int,arpa
三类:组织域、国家域(.cn, .ca, .hk, .tw)、反向域
二级域名
三级域名
最多127级域名
ICANN(The Internet Corporation for Assigned Names and Numbers)
互联网名称与数字地址分配机构,负责在全球范围内对互联网通用顶级域名
(gTLD)以及国家和地区顶级域名(ccTLD)系统的管理、以及根服务器系统
的管理
根域中存放着一级域的DNS服务器的地址
一级域中存放着二级域DNS 服务器的ip地址
依次类推,当DNS服务器中存放着要访问的网站的ip地址时那么这个服务器就是权威的DNS服务器。
当客户机想访问www.magedu.com时,客户机去询问小区DNS服务器,小区DNS服务器不知道就会去问根,根知道.comDNS服务器的ip,小区DNS服务器再去问。comDNS服务器。。comDNS服务器知道magedu.comDNS服务器的ip地址,然后小区DNS服务器再去询问magedu.comDNS服务器。最终找到www.magedu.com的ip地址。进而可以访问网站。一但找到这个网站的ip地址那么客户机和小区DNS服务器都会缓存这个地址,下次访问时会直接获取无需在去问根(在缓存有效期以内默认是一天)
如果这是小区中有客户机想访问www.bj.magedu.com那么还需执行上述过程知道找到www.bj.magedu.com这台DNS服务器为止。
如果小区中有人访问过www.bj.magedu.com但是没人访问过www.magedu.com这是如果想访问www.magedu.com。还是需要去询问根。
互联网上有13组根的服务器(10台在美国1台在日本1台在荷兰1台在瑞典)DNS的根控制权在美国
数据报文的大小决定了只能有13个根。
ipv6地址的根服务器有25组中国目前有1主3从
DNS解析
DNS查询类型:
递归查询    dns服务器 负责到底的查询就是递归查询(类似上图小区NDS服务器)
迭代查询     不负责到底的查询就是迭代查询(列如上图的根DNS和.comDNS服务器)
名称服务器:域内负责解析本域内的名称的主机
根服务器:13组服务器
解析类型:
FQDN –> IP
IP –> FQDN   (邮件的传输应用了反向DNS解析)
注意:正反向解析是两个不同的名称空间,是两棵不同的解析树
DNS服务器类型
 DNS服务器的类型:
主DNS服务器
从DNS服务器
缓存DNS服务器(转发器)
 主DNS服务器:管理和维护所负责解析的域内解析库的服务器
 从DNS服务器:从主服务器或从服务器“复制”(区域传输)解析库副本
序列号:解析库版本号,主服务器解析库变化时,其序列递增  刷新时间间隔:
从服务器从主服务器请求同步解析的时间间隔
重试时间间隔:从服务器请求同步失败时,再次尝试时间间隔
过期时长:从服务器联系不到主服务器时,多久后停止服务
 “通知”机制:主服务器解析库发生变化时,会主动通知从服务器
区域传输
区域传输:
完全传输:传送整个解析库
增量传输:传递解析库变化的那部分内容
Domain: Fully Qualified Domain Name
正向:FQDN –> IP
反向: IP –> FQDN
负责本地域名的正向和反向解析库
正向区域
反向区域
搭建一个主DNS解析器
1.装包
[root@www81 ~]# yum install bind
[root@www81 ~]# rpm -ql bind
/etc/named.conf        主配置文件
/var/named          区域数据库存放在这
/var/log/named.log  日志存放地点
/usr/sbin/named        主程序
/usr/lib/systemd/system/named.service     DNS服务器的服务名
[root@www81 ~]# rpm -q –scripts bind      查看bind包是否跑了脚本
preinstall scriptlet (using /bin/sh):
if [ “$1” -eq 1 ]; then
  /usr/sbin/groupadd -g 25 -f -r named >/dev/null 2>&1 || :;
  /usr/sbin/useradd  -u 25 -r -N -M -g named -s /sbin/nologin -d /var/named -c Named named >/dev/null 2>&1 || :;
fi;
备份配置文件
[root@www81 etc]# cp /etc/named.conf{,.bak} -a
[root@www81 etc]# systemctl start named
[root@www81 etc]#)
   Loaded: loaded (/usr/lib/systemd/system/named.service; disabled; vendor preset: disabled)
   Active: active (running) since Fri 2018-06-01 01:32:13 CST; 6 systemctl status named
● named.service – Berkeley Internet Name Domain (DNSs ago
[root@www81 etc]# ps aux | grep named
named     17945  0.0  1.0 242568 16116 ?        Ssl  01:32   0:00 /usr/sbin/named -u named -c /etc/named.conf
[root@www81 etc]# systemctl is-enabled named
disabled
[root@www81 etc]# systemctl enable named
Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.
[root@www81 etc]# systemctl is-enabled named
enabled
[root@www81 ~]# vim /etc/named.conf    c语言风格
// named.conf                                                //注释
 /* Path to ISC DLV key */                               /*……*/ 注释
[root@www81 ~]# vim /etc/named.conf    c语言风格
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
// See the BIND Administrator’s Reference Manual (ARM) for details about the
// configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html
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     { localhost; };
        /*
         – If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
         – If you are building a RECURSIVE (caching) DNS server, you need to enable
           recursion.
         – If your recursive DNS server has a public IP address, you MUST enable access
           control to limit queries to your legitimate users. Failing to do so will
           cause your server to become part of large scale DNS amplification
           attacks. Implementing BCP38 within your network would greatly
           reduce such attack surface
        */
        recursion yes;
        dnssec-enable yes;
        dnssec-validation yes;
        /* Path to ISC DLV key */
        bindkeys-file “/etc/named.iscdlv.key”;
        managed-keys-directory “/var/named/dynamic”;
        pid-file “/run/named/named.pid”;
        session-keyfile “/run/named/session.key”;
};
logging {   日志
        channel default_debug {
                file “data/named.run”;
                severity dynamic;
        };
};
zone “.” IN { 区域         一般定义域不在这写
        type hint;
        file “named.ca”;
};
include “/etc/named.rfc1912.zones”;   一般定义域在这写
include “/etc/named.root.key”;
[root@www81 ~]# vim /etc/named.rfc1912.zones
zone “magedu.com” IN {          ” “中间是域名
        type mastre;                        类型   主DNS服务器
        file “magedu.com.zone”;      名字和ip的对应关系要放到一个数据库文件中,这是文件的名字是                    什么,这个文件的名字可以随意取但是为了规范所以叫magedu.com.zone
};
[root@www81 ~]# cd /var/named
[root@www81 named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
[root@www81 named]# cp named.localhost  magedu.com.zone
这就是区域数据库文件
[root@www81 named]# vim magedu.com.zone
$TTL 1D  通用时间
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
        AAAA    ::1
资源记录
 区域解析库:由众多RR组成:
资源记录:Resource Record, RR
记录类型:A, AAAA, PTR, SOA, NS, CNAME, MX
 SOA:Start Of Authority,起始授权记录;一个区域解析库有且仅能有一个SOA记录,记录的内容。1.这个域中谁是主谁是从。2.记录谁是这个域的管理员,写这个域管理员的邮箱。(主的机制不用定义)主从服务器的同步机制,主服务器同步机制是,一但自己发生变化就讲数据推送给从服务器。从服务器是根据时间来向主服务器拉取数据来同步(默认一天)。3.其中记录的是拉的触发条件的时间间隔。一但拉取失败则重试,4.记录重试时间间隔,如果长期无法同步,那么则过期,5.记录过期时间间隔(一但过期那么从服务器失效)查不到的记录缓存在小区服务器,(否定查询结果)6.记录查不到的缓存的缓存时间
必须位于解析库的第一条记录,
 A:internet Address,作用,FQDN –> IP ipv4 正向解析
 AAAA: FQDN –> IPv6       ipv6正向解析
 PTR: PoinTeR,IP –> FQDN    反向解释
 NS: Name Server,专用于标明当前区域的DNS服务器   主从DNS服务器都要记录
 CNAME:Canonical Name,别名记录    大多数的网站都是别名
 MX: Mail eXchanger,邮件交换器
[root@www81 named]# dig www.taobao.com
www.taobao.com. 121 IN CNAME www.taobao.com.danuoyi.tbcache.com.(www.taobao.com是这个的别名)
www.taobao.com.danuoyi.tbcache.com. 121 IN A 27.221.30.92
www.taobao.com.danuoyi.tbcache.com. 121 IN A 27.221.30.19
[root@www81 named]# dig www.magedu.com
www.magedu.com. 600 IN A 101.200.188.230
资源记录
资源记录定义的格式:
语法:name [TTL] IN rr_type value
注意:
(1) TTL可从全局继承       生命期(时间为单位,缓存时长)
(2) @可用于引用当前区域的名字
(3) 同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询
方式响应
(4) 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值
进行定义;此仅表示通过多个不同的名字可以找到同一个主机
$TTL 1D  通用时间(这里是一天) 默认是秒为单位
@代表域名(magedu.com.)这里必须写成magedu.com.
 SOA   类型
@       IN SOA master.magedu.com    表示master就是主DNS服务器(aster可以换成别的名字,最重要的是要和下面的名字对应m)
master     A    192.168.30.101
@       IN SOA master.magedu.com.  502186965.qq.com.(管理员的邮箱地址)这里无法写502186965@qq.com.因为@在这个文件中有特殊含义因此将@换成.
@       IN SOA  @ rname.invalid. (
                                        0       ; serial    数据库的版本号(主DNS服务器推数据到从数据库的触发条件)修改完文件需要手动更改版本号(加一)
                                        1D      ; refresh   从服务器拉取数据的时间,拉取时也是看版本号是否小于,小于则拉取。
                                        1H      ; retry           拉去失败重试时间
                                        1W      ; expire      一直拉取失败,一周后失效
                                        3H )    ; minimum   否定查询结果的缓存时间
        NS      master(master.magedu.com.)
        A       127.0.0.1
        AAAA    ::1
master     A    192.168.30.101
www         A     192.168.30.102
从新加载配置文件
[root@www81 named]# systemctl reload named
[root@www81 named]# rndc reload
 主配置文件语法检查:
named-checkconf
 解析库文件语法检查:
named-checkzone “magedu.com” /var/named/magedu.com.zone
 rndc status|reload ;service named reload
[root@www81 named]# named-checkzone “magedu.com” /var/named/magedu.com.zone
zone magedu.com/IN: loaded serial 0
OK
[root@www81 named]# systemctl status named     错误原因是属性问题
Jun 01 04:31:18 www81.magedu.com named[21117]: zone magedu.com/IN: loading from master file magedu.com.zone failed: permiss…denied
Jun 01 04:31:18 www81.magedu.com named[21117]: zone magedu.com/IN: not loaded due to errors.
[root@www81 named]# ll
total 20
drwxrwx— 2 named named   23 Jun  1 01:32 data
drwxrwx— 2 named named   31 Jun  1 04:31 dynamic
-rw-r—– 1 root  root   217 Jun  1 04:15 magedu.com.zone
-rw-r—– 1 root  named 2281 May 22  2017 named.ca
[root@www81 named]# chgrp named magedu.com.zone
[root@www81 named]# ll
total 20
drwxrwx— 2 named named   23 Jun  1 01:32 data
drwxrwx— 2 named named   31 Jun  1 04:31 dynamic
-rw-r—– 1 root  named  217 Jun  1 04:15 magedu.com.zone
[root@www81 named]# host www.magedu.com 127.0.0.1
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases:
www.magedu.com has address 192.168.30.102
本地循环可以连接但是在别的主机上无法host www.magedu.com 192.168.30.101 很有可定能是端口号被绑定了本地循环地址导致的。
打开主配置文件
[root@www81 named]# vim /etc/named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
// See the BIND Administrator’s Reference Manual (ARM) for details about the
// configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html
options
        listen-on port 53 { 127.0.0.1; };       修改这行  listen-on port 53 { localhost; };
[root@www81 named]# rndc reload
server reload successful
Host www.magedu.com.magedu.com not found: 5(REFUSED)
[root@www82 ~]# host www.magedu.com 192.168.30.101
Using domain server:
Name: 192.168.30.101
Address: 192.168.30.101#53
Aliases:
Host www.magedu.com.magedu.com not found: 5(REFUSED)    还是不行原因是
Jun  1 04:51:09 www81 named[21178]: client 192.168.30.102#49235 (www.magedu.com): query ‘www.magedu.com/A/IN’ denied (访问被拒绝)
[root@www81 named]# vim /etc/named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
// See the BIND Administrator’s Reference Manual (ARM) for details about the
// configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html
options {
        listen-on port 53 { localhost; };
        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     { localhost; };      localhost只能本机访问,
         修改成 allow-query     { localhost;any;};
[root@www81 named]# rndc reload
server reload successful
成功了
[root@www82 ~]# host www.magedu.com 192.168.30.101
Using domain server:
Name: 192.168.30.101
Address: 192.168.30.101#53
Aliases:
www.magedu.com has address 192.168.30.102
在网站上访问这个地址需要在网卡中添加DNS
DNS1=192.168.30.101
disepel 可以直接禁用epel源
配置主DNS服务器:
注意:先关闭防火墙和禁用selinux
yum install bind
systemctl start named
systemctl enable named
vim /etc/named.conf
options {
listen-on port 53 { localhost; };       可以修改成这样,也可以直接注销(//)   绑定ip和端口号
allow-query     { localhost;any; };   允许谁访问
[root@www81 ~]# vim /etc/named.rfc1912.zones
zone “magedu.com” IN {
        type master;
        file “magedu.com.zone”;
};
[root@www81 ~]# vim /var/named/magedu.com.zone
$TTL 1D
@       IN SOA  master.magedu.com.  502186965.qq.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      master
master   A      192.168.30.101
webserve      A      192.168.30.102       实现了均衡负载
webserve     A      192.168.30.103
www          CNAME   webserve
[root@www82 ~]# cat /var/www/html/index.html
welcome to magedu
[root@node3 ~]# cat /var/www/html/index.html
rilegou
在windows中可以用ipconfig/displaydns  来查看缓存过的信息
在windows中可以用ipconfig/flushdns 来清除缓存
[root@CENTOS7 ~]# dig www.magedu.com
; <<>> DiG 9.9.4-RedHat-9.9.4-50.el7 <<>> www.magedu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17435
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.magedu.com. IN A
;; ANSWER SECTION:
www.magedu.com. (别名) 86400 IN CNAME webserve.magedu.com.
webserve.magedu.com. 86400 IN A 192.168.30.102
webserve.magedu.com. 86400 IN A 192.168.30.103
;; AUTHORITY SECTION:
magedu.com. 86400 IN NS master.magedu.com.
;; ADDITIONAL SECTION:
master.magedu.com. 86400 IN A 192.168.30.101
;; Query time: 0 msec
;; SERVER: 192.168.30.101#53(192.168.30.101)
;; WHEN: Sat Jun 02 04:47:15 CST 2018
;; MSG SIZE  rcvd: 135
当主机只有
[root@CENTOS7 ~]# cat /etc/resolv.conf
nameserver 192.168.30.101
如果dig www.baidu.com  也是可以查询的,因为DNS 192.168.30.101服务器知道根在哪,回去根上查找并返回查找结果。
每一个DNS服务器在搭建好的时候,就自动拥有了缓存(转发)DNS的功能,并且知道根在哪,为什么知道呢?主配置文件中自动定义了根的存在
[root@www81 ~]# cat /etc/named.conf
zone “.” IN {
type hint;
file “named.ca”;
};
根文件的存放点(这就是互联网上的13个根服务器)
[root@www81 ~]# cat /var/named/named.ca
; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.2 <<>> +bufsize=1200 +norec @a.root-servers.net
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17380
;; flags: qr aa; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 27
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1472
;; QUESTION SECTION:
;. IN NS
;; ANSWER SECTION:
. 518400 IN NS a.root-servers.net.
. 518400 IN NS b.root-servers.net.
. 518400 IN NS c.root-servers.net.
. 518400 IN NS d.root-servers.net.
. 518400 IN NS e.root-servers.net.
. 518400 IN NS f.root-servers.net.
. 518400 IN NS g.root-servers.net.
. 518400 IN NS h.root-servers.net.
. 518400 IN NS i.root-servers.net.
. 518400 IN NS j.root-servers.net.
. 518400 IN NS k.root-servers.net.
. 518400 IN NS l.root-servers.net.
. 518400 IN NS m.root-servers.net.
;; ADDITIONAL SECTION:
a.root-servers.net. 3600000 IN A 198.41.0.4
a.root-servers.net. 3600000 IN AAAA 2001:503:ba3e::2:30
b.root-servers.net. 3600000 IN A 192.228.79.201
b.root-servers.net. 3600000 IN AAAA 2001:500:84::b
c.root-servers.net. 3600000 IN A 192.33.4.12
c.root-servers.net. 3600000 IN AAAA 2001:500:2::c
d.root-servers.net. 3600000 IN A 199.7.91.13
d.root-servers.net. 3600000 IN AAAA 2001:500:2d::d
e.root-servers.net. 3600000 IN A 192.203.230.10
e.root-servers.net. 3600000 IN AAAA 2001:500:a8::e
f.root-servers.net. 3600000 IN A 192.5.5.241
f.root-servers.net. 3600000 IN AAAA 2001:500:2f::f
g.root-servers.net. 3600000 IN A 192.112.36.4
g.root-servers.net. 3600000 IN AAAA 2001:500:12::d0d
h.root-servers.net. 3600000 IN A 198.97.190.53
h.root-servers.net. 3600000 IN AAAA 2001:500:1::53
i.root-servers.net. 3600000 IN A 192.36.148.17
i.root-servers.net. 3600000 IN AAAA 2001:7fe::53
j.root-servers.net. 3600000 IN A 192.58.128.30
j.root-servers.net. 3600000 IN AAAA 2001:503:c27::2:30
k.root-servers.net. 3600000 IN A 193.0.14.129
k.root-servers.net. 3600000 IN AAAA 2001:7fd::1
l.root-servers.net. 3600000 IN A 199.7.83.42
l.root-servers.net. 3600000 IN AAAA 2001:500:9f::42
m.root-servers.net. 3600000 IN A 202.12.27.33
m.root-servers.net. 3600000 IN AAAA 2001:dc3::35
;; Query time: 18 msec
;; SERVER: 198.41.0.4#53(198.41.0.4)
;; WHEN: Po kvě 22 10:14:44 CEST 2017
;; MSG SIZE  rcvd: 811
因为www.baidu.com不是DNS服务上的是DNS服务器通过根找到的所以DNS服务器不是权威性的结果因此在这一行少了一个关键字就是aa
[root@CENTOS7 ~]# dig www.baidu.com
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 5, ADDITIONAL: 6
[root@CENTOS7 ~]# dig www.magedu.com
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 1, ADDITIONAL: 2
[root@CENTOS7 ~]# host www.magedu.com
www.magedu.com is an alias for webserve.magedu.com.
webserve.magedu.com has address 192.168.30.103
webserve.magedu.com has address 192.168.30.102
[root@CENTOS7 ~]# host www.magedu.com 114.114.114.114    指定通过哪个DNS服务器查询
[root@CENTOS7 ~]# dig www.magedu.com @114.114.114.114  指定通过哪个DNS服务器查询
[root@www81 ~]# vim /var/named/magedu.com.zone
$TTL 1D
@       IN SOA  master.magedu.com.  502186965.qq.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      master
master   A      192.168.30.101
webserve      A      192.168.30.102
webserve     A      192.168.30.103
www          CNAME   webserve
@(马哥域的邮件服务器)           MX(类型(邮件服务器))        10(优先级) mailsrv1(邮件服务器名称)
@           MX        20 mailsrv2当mailsrv1down机了才会使用mailsrv2
mailsrv1     A      192.168.30.100
mailsrv2     A      172.20.100.100
查询马哥域的邮件服务器是什么
[root@CENTOS7 ~]# dig -t mx magedu.com
; <<>> DiG 9.9.4-RedHat-9.9.4-50.el7 <<>> -t mx magedu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15216
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 4
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;magedu.com. IN MX
;; ANSWER SECTION:
magedu.com. 86400 IN MX 20 mailsrv2.magedu.com.
magedu.com. 86400 IN MX 10 mailsrv1.magedu.com.
;; AUTHORITY SECTION:
magedu.com. 86400 IN NS master.magedu.com.
;; ADDITIONAL SECTION:
mailsrv1.magedu.com. 86400 IN A 192.168.30.100
mailsrv2.magedu.com. 86400 IN A 172.20.100.100
master.magedu.com. 86400 IN A 192.168.30.101
;; Query time: 0 msec
;; SERVER: 192.168.30.101#53(192.168.30.101)
;; WHEN: Sat Jun 02 05:19:10 CST 2018
;; MSG SIZE  rcvd: 158
dig -t mx  sohu.com @114.114.114.114   查看搜狐邮件的服务器
资源记录
资源记录定义的格式:
语法:name [TTL] IN rr_type value
注意:
(1) TTL可从全局继承
(2) @可用于引用当前区域的名字
(3) 同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询
方式响应
(4) 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值
进行定义;此仅表示通过多个不同的名字可以找到同一个主机
SOA记录
 name: 当前区域的名字,例如“magedu.com.”
 value: 有多部分组成
 (1) 当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字;
 (2) 当前区域管理员的邮箱地址;但地址中不能使用@符号,一般用.替换,例如
linuxedu.magedu.com
 (3) 主从服务区域传输相关定义以及否定的答案的统一的TTL
 例如:
magedu.com. 86400 IN SOA ns.magedu.com. nsadmin.magedu.com.
(
2015042201 ;序列号
2H ;刷新时间
10M  ;重试时间
1W  ;过期时间
1D  ;否定答案的TTL值
)
NS记录
name: 当前区域的名字
value: 当前区域的某DNS服务器的名字,例如ns.magedu.com.
注意:一个区域可以有多个NS记录
例如:
magedu.com.  IN  NS ns1.magedu.com.
magedu.com.  IN  NS ns2.magedu.com.
注意:
(1) 相邻的两个资源记录的name相同时,后续的可省略  (2) 对NS记录
而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录
MX记录
name: 当前区域的名字
value: 当前区域的某邮件服务器(smtp服务器)的主机名
一个区域内,MX记录可有多个;但每个记录的value之前应该有一个数字(0-
99),表示此服务器的优先级;数字越小优先级越高
例如:
magedu.com.  IN MX 10 mx1.magedu.com.
IN MX 20 mx2.magedu.com.
注意:
(1) 对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有
一个A记录
A记录
name: 某主机的FQDN,例如www.magedu.com.
value: 主机名对应主机的IP地址
例如:
www.magedu.com.  IN A 1.1.1.1
www.magedu.com.  IN A  2.2.2.2
mx1.magedu.com. IN A 3.3.3.3
mx2.magedu.com. IN A  4.4.4.4
$GENERATE 1-254 HOST$ A 1.2.3.$
*.magedu.com. IN A 5.5.5.5
magedu.com.  IN A  6.6.6.6
避免用户写错名称时给错误答案,可通过泛域名解析进行解析至某特定地址
其它记录
AAAA:
name: FQDN
value: IPv6
PTR:
name: IP,有特定格式,把IP地址反过来写,1.2.3.4,要写作4.3.2.1;而
有特定后缀:in-addr.arpa.,所以完整写法为:4.3.2.1.in-addr.arpa.
value: FQDN
例如:
4.3.2.1.in-addr.arpa. IN PTR www.magedu.com.
如1.2.3为网络地址,可简写成:
4 IN PTR www.magedu.com.
注意:网络地址及后缀可省略;主机地址依然需要反着写
别名记录
CNAME:
name: 别名的FQDN
value: 真正名字的FQDN
例如:
www.magedu.com. IN CNAME websrv.magedu.com.
子域
 子域授权:每个域的名称服务器,都是通过其上级名称服务器在解析库进行授权
 类似根域授权tld:
.com. IN NS ns1.com.
.com. IN NS  ns2.com.
ns1.com. IN A 2.2.2.1
ns2.com. IN A 2.2.2.2
 magedu.com. 在.com的名称服务器上,解析库中添加资源记录
magedu.com. IN NS ns1.magedu.com.
magedu.com. IN NS ns2.magedu.com.
magedu.com. IN NS ns3.magedu.com.
ns1.magedu.com. IN A 3.3.3.1
ns2.magedu.com. IN A 3.3.3.2
ns3.magedu.com. IN A 3.3.3.3
 glue record:粘合记录,父域授权子域的记录
互联网域名
域名注册:
代理商:万网, 新网, godaddy
注册完成以后,想自己用专用服务来解析
管理后台:把NS记录指向的服务器名称,和A记录指向的服务器地址
[root@www81 ~]# vim /var/named/magedu.com.zone
$TTL 1D
@       IN SOA  master.magedu.com.  502186965.qq.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      master
master   A      192.168.30.101
webserve      A      192.168.30.102
webserve     A      192.168.30.103
www          CNAME   webserve
@           MX        10 mailsrv1
@           MX        20 mailsrv2
mailsrv1     A      192.168.30.100
mailsrv2     A      172.20.100.100
@            A      192.168.30.102       添加这条记录可以访问网站时不写www
$GENERATE 1-100 websev $  A  192.168.30.$
*               A      192.168.30.102        泛域名匹配,都不匹配的由*匹配,*.magedu.com都能匹配
表示 sebsev1.magedu.com 对应的地址是192.168.30.1
表示 sebsev2.magedu.com 对应的地址是192.168.30.2
………..
 表示 sebsev100.magedu.com 对应的地址是192.168.30.100
nameserver 192.168.30.101
[root@CENTOS7 ~]# ping magedu.com
PING magedu.com (192.168.30.102) 56(84) bytes of data.
64 bytes from 192.168.30.102 (192.168.30.102): icmp_seq=1 ttl=64 time=0.671 ms
[root@CENTOS7 ~]# ping 234.magedu.com
PING 234.magedu.com (192.168.30.102) 56(84) bytes of data.
64 bytes from 192.168.30.102 (192.168.30.102): icmp_seq=1 ttl=64 time=0.376 ms
64 bytes from 192.168.30.102 (192.168.30.102): icmp_seq=2 ttl=64 time=0.312 ms
[root@CENTOS7 ~]# host websev1.magedu.com
websev1.magedu.com has address 192.168.30.1
[root@CENTOS7 ~]# host websev2.magedu.com
websev2.magedu.com has address 192.168.30.2
[root@CENTOS7 ~]# host websev3.magedu.com
websev3.magedu.com has address 192.168.30.3
反向解析的的流程是这样的假设解析192.168.30.0(代表一个网段)
根域→arpa→in-addr→192→168→30→
vim /etc/named.rfc1912.zones
zone “30.168.192.in-addr.arpa” IN {
        type master;
        file “192.168.30.zone”;
};
反向解析应该与正向解析向对应
[root@www81 ~]# vim /var/named/192.168.30.zone
$TTL 1D
@ IN SOA master.magedu.com. admin.magedu.com. ( 1 1D 1H 3D 3H )
        NS master
master    A   192.168.30.101
200     PTR   websrv.magedu.com.
201      PTR   appsrv.wangge.com.
202     PTR   mailsrv.magedu.com.
101     PTR    server1.magedu.com.
[root@CENTOS7 ~]# dig -x 192.168.30.200
;; QUESTION SECTION:
;200.30.168.192.in-addr.arpa. IN PTR
;; ANSWER SECTION:
200.30.168.192.in-addr.arpa. 86400 IN PTR websrv.magedu.com.
[root@CENTOS7 ~]# dig -x 192.168.30.201
;; QUESTION SECTION:
;201.30.168.192.in-addr.arpa. IN PTR
;; ANSWER SECTION:
201.30.168.192.in-addr.arpa. 86400 IN PTR appsrv.wangge.com.
[root@CENTOS7 ~]# dig -t ptr 200.30.168.192.in-addr.arpa
;; QUESTION SECTION:
;200.30.168.192.in-addr.arpa. IN PTR
;; ANSWER SECTION:
200.30.168.192.in-addr.arpa. 86400 IN PTR websrv.magedu.com.
当增加反向解析 101     PTR    server1.magedu.com.  在windows中可以查看
如果反向解析的地址跨网段,那么久需要建立多个反向解析。
查看magedu.com域中有几个DNS服务器
[root@CENTOS7 ~]# dig -t ns magedu.com
;; QUESTION SECTION:
;magedu.com. IN NS
;; ANSWER SECTION:
magedu.com. 86400 IN NS master.magedu.com.
查询根有几个DNS服务器
[root@www81 ~]# dig -t ns . @a.root-servers.net
反向区域
反向区域:
区域名称:网络地址反写.in-addr.arpa.
172.16.100. –> 100.16.172.in-addr.arpa.
(1) 定义区域
zone “ZONE_NAME” IN {
type {master|slave|forward};
file “网络地址.zone”
};
(2) 定义区域解析库文件
注意:不需要MX,以PTR记录为主
反向区域示例
$TTL 86400
$ORIGIN 100.16.172.in-addr.arpa.
@  IN  SOA  ns1.magedu.com. admin.magedu.com. (
2015042201
1H
5M
7D
1D )
IN  NS  ns1.magedu.com.
IN  NS  ns2.magedu.com.
11  IN  PTR  ns1.magedu.com.
11  IN  PTR  www.magedu.com.
12  IN  PTR  mx1.magedu.com.
12  IN  PTR  www.magedu.com.
13  IN  PTR  mx2.magedu.com.
允许动态更新
 指定的zone语句块中:Allow-update {any;};
 chmod 770 /var/named
 setsebool -P named_write_master_zones on
 nsupdate
• >server 127.0.0.1
• >zone magedu.com
• >update add ftp.magedu.com 88888 IN A 8.8.8.8
• >send
• >update delete www.magedu.com A
• >send
 测试:dig ftp.magedu.com @127.0.0.1
ll /var/named/magedu.com.zone.jnl
cat /var/named/magedu.com.zone
没有修改/etc/named.rfc1912.zones 前无法动态更新magedu.com.zone文件
[root@CENTOS7 ~]# nsupdate
> server 192.68.30.^[[D^[[D^[[D
couldn’t get address for ‘192.68.’: not found
[root@CENTOS7 ~]# nsupdate
> server 192.168.30.101
> zone magedu.com
> update add frt.magedu.com 888888 IN A 8.8.8.8
> send
update failed: REFUSED
named账号对magedu.con.zone没有写权限造成的
[root@CENTOS7 ~]# nsupdate
> server 192.168.30.101
> zone magedu.com
> update add frt.magedu.com 888888 IN A 8.8.8.8
> send
update failed: SERVFAIL
[root@www81 named]# chmod 660 magedu.com.zone
是因为对目录没有写权限造成的
[root@CENTOS7 ~]# nsupdate
> server 192.168.30.101
> zone magedu.com
> update add frt.magedu.com 888888 IN A 8.8.8.8
> send
update failed: SERVFAIL
[root@www81 named]# chmod 770 /var/named
[root@www81 named]# ll -d /var/named
drwxrwx— 5 root named 173 Jun  2 19:02 /var/named
[root@CENTOS7 ~]# nsupdate
> server 192.168.30.101
> zone magedu.com
> update add ftp.magedu.com 888888 IN A 8.8.8.8
> send
>
[root@CENTOS7 ~]# dig ftp.magedu.com
;; QUESTION SECTION:
;ftp.magedu.com. IN A
;; ANSWER SECTION:
ftp.magedu.com. 888888 IN A 8.8.8.8
[root@www81 named]# cd /var/named
[root@www81 named]# ll
total 28
-rw-r–r– 1 root  root   247 Jun  2 19:02 192.168.30.zone
drwxrwx— 2 named named   23 Jun  1 01:32 data
drwxrwx— 2 named named   31 Jun  2 17:10 dynamic
-rw-rw—- 1 root  named  536 Jun  2 18:33 magedu.com.zone
-rw-r–r– 1 named named  724 Jun  2 19:46 magedu.com.zone.jnl   生成了这样一个文件和上面的文件共同作用,过段时间才会将修改正在写入maegdu.com.zone中
删除某条记录
[root@CENTOS7 ~]# nsupdate
> server 192.168.30.101
> zone magedu.com
> update delete mailsrv1.magedu.com 86400 IN A 192.168.30.100
> send
> quit
[root@CENTOS7 ~]# dig mailsrv1.magedu.com
查看动态添加或删除时自动生成的文件magedu.com.zone.jnl
[root@www81 named]# named-journalprint magedu.com.zone.jnl
del magedu.com. 86400 IN SOA master.magedu.com. 502186965.qq.com. 0 86400 3600 604800 10800
add magedu.com. 86400 IN SOA master.magedu.com. 502186965.qq.com. 1 86400 3600 604800 10800
add ftp.magedu.com. 888888 IN A 8.8.8.8
del magedu.com. 86400 IN SOA master.magedu.com. 502186965.qq.com. 1 86400 3600 604800 10800
del mailsrv1.magedu.com. 86400 IN A 192.168.30.100
add magedu.com. 86400 IN SOA master.magedu.com. 502186965.qq.com. 2 86400 3600 604800 10800
从服务器
 1、应该为一台独立的名称服务器
 2、主服务器的区域解析库文件中必须有一条NS记录指向从服务器
 3、从服务器只需要定义区域,而无须提供解析库文件;解析库文件应该放置于
/var/named/slaves/目录中
 4、主服务器得允许从服务器作区域传送
 5、主从服务器时间应该同步,可通过ntp进行;
 6、bind程序的版本应该保持一致;否则,应该从高,主低
定义从区域的方法:
zone “ZONE_NAME” IN {
type slave;
masters { MASTER_IP; };
file “slaves/ZONE_NAME.zone”;
};
taobao.com有4个dns服务器
[root@www82 ~]# dig -t ns taobao.com @114.114.114.114
;; QUESTION SECTION:
;taobao.com. IN NS
;; ANSWER SECTION:
taobao.com. 31 IN NS ns4.taobao.com.
taobao.com. 31 IN NS ns6.taobao.com.
taobao.com. 31 IN NS ns5.taobao.com.
taobao.com. 31 IN NS ns7.taobao.com.
[root@www82 ~]# dig -t ns magedu.com @114.114.114.114
;; QUESTION SECTION:
;magedu.com. IN NS
;; ANSWER SECTION:
magedu.com. 71014 IN NS dns10.hichina.com.
magedu.com. 71014 IN NS dns9.hichina.com.
从服务器的搭建
[root@www82 ~]# yum install bind
[root@www82 ~]# vim /etc/named.conf
options {
//      listen-on port 53 { 127.0.0.1; };   注释掉这两行
//      allow-query     { localhost; };
创建从服务器的数据库
将来从主服务器拉过来的文件放在这个目录下,因为/var/named没有写权限。
[root@www82 ~]# ll /var/named/slaves/ -d
drwxrwx— 2 named named 6 Aug  4  2017 /var/named/slaves/
[root@www82 ~]# vim /etc/named.rfc1912.zones
zone “magedu.com” IN {
        type slave;
        file “slaves/magedu.com.zone.slave”;(这个文件的名字可以和主服务器的不一样,但是内容会同步成一样的。)
};
启动报错,由于配置文件中没有写谁 是主那么不知道从哪里复制文件
[root@www82 ~]# systemctl start named
Job for named.service failed because the control process exited with error code. See “systemctl status named.service” and “journalctl -xe” for details.
[root@www82 ~]# systemctl status named
● named.service – Berkeley Internet Name Domain (DNS)
   Loaded: loaded (/usr/lib/systemd/system/named.service; disabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Sat 2018-06-02 21:19:38 CST; 6s ago
  Process: 4296 ExecStartPre=/bin/bash -c if [ ! “$DISABLE_ZONE_CHECKING” == “yes” ]; then /usr/sbin/named-checkconf -z “$NAMEDCONF”; else echo “Checking of zone files is disabled”; fi (code=exited, status=1/FAILURE)
Jun 02 21:19:38 www82.magedu.com systemd[1]: Starting Berkeley Internet Name Domain (DNS)…
Jun 02 21:19:38 www82.magedu.com bash[4296]: /etc/named.rfc1912.zones:18: zone ‘magedu.com’: missing ‘masters’ entry
Jun 02 21:19:38 www82.magedu.com systemd[1]: named.service: control process exited, code=exited status=1
Jun 02 21:19:38 www82.magedu.com systemd[1]: Failed to start Berkeley Internet Name Domain (DNS).
[root@www82 ~]# vim /etc/named.rfc1912.zones
zone “magedu.com” IN {
        type slave;
        masters { 192.168.30.101; };
        file “slaves/magedu.com.zone.slave”;
};
已经成功复制主DNS服务器的magedu.com.zone文件
[root@www82 ~]# ll /var/named/slaves/
total 8
-rw-r–r– 1 named named 5266 Jun  2 21:22 magedu.com.zone.slave
可以查看基本信息
[root@www82 ~]# named-compilezone -f raw -o -zone magedu.com /var/named/slaves/magedu.com.zone.slave
zone magedu.com/IN: loaded serial 2
dump zone to -zone…done
OK
主服务器更新了内容但是从服务器没有更新是
因为主服务器不知道从服务器是谁
添加NS记录
[root@www81 named]# vim magedu.com.zone
$TTL 86400      ; 1 day
@               IN SOA  master.magedu.com. 502186965.qq.com. (
                                3          ; serial
                                86400      ; refresh (1 day)
                                3600       ; retry (1 hour)
                                604800     ; expire (1 week)
                                10800      ; minimum (3 hours)
                                )
                        NS      master.magedu.com.
                        NS      master1.magedu.com.
master1                 A       192.168.30.102
master                  A       192.168.30.101
从服务器已经发生改变
[root@www82 ~]# ll /var/named/slaves/magedu.com.zone.slave
-rw-r–r– 1 named named 431 Jun  2 13:58 /var/named/slaves/magedu.com.zone.slave
从服务器确实已经更新
[root@CENTOS7 ~]# dig dbsrv.magedu.com @192.168.30.102
;; QUESTION SECTION:
;dbsrv.magedu.com. IN A
;; ANSWER SECTION:
dbsrv.magedu.com. 86400 IN A 192.168.30.102
建立magedu.comDNS服务器的从服务器的从服务器
[root@node3 ~]# yum install bind
[root@node3 ~]# vim /etc/named.rfc1912.zones
zone “magedu.com” IN {
        type slave;
        masters { 192.168.30.102 ;};
        file “slaves/magedu.com.zone.slave.slave”;
};
[root@node3 ~]# vim /etc/named.conf
options {
//      listen-on port 53 { 127.0.0.1; };
//      allow-query     { localhost; };
[root@node3 ~]# ll /var/named/slaves/
total 4
-rw-r–r– 1 named named 431 Jun  2 22:10 magedu.com.zone.slave.slave
用centos6做从服务器时其magedu.com.zone.slave是明文的
[root@centos ~]# cat /var/named/slaves/magedu.com.zone.slave
$ORIGIN .
$TTL 86400 ; 1 day
magedu.com IN SOA master.magedu.com. 502186965.qq.com. (
3          ; serial
86400      ; refresh (1 day)
3600       ; retry (1 hour)
604800     ; expire (1 week)
10800      ; minimum (3 hours)
)
NSmaster.magedu.com.
NSmaster1.magedu.com.
$ORIGIN magedu.com.
dbsrv A 192.168.30.102
master A 192.168.30.101
master1 A 192.168.30.102
webserve A 192.168.30.102
www CNAME webserve
在centos6上可以直接抓取主DNS的配置文件内容
[root@CENTOS7 ~]# dig -t axfr magedu.com @192.168.30.101
; <<>> DiG 9.9.4-RedHat-9.9.4-50.el7 <<>> -t axfr magedu.com @192.168.30.101
;; global options: +cmd
magedu.com. 86400 IN SOA master.magedu.com. 502186965.qq.com. 6 86400 3600 604800 10800
magedu.com. 86400 IN NS master.magedu.com.
magedu.com. 86400 IN NS master1.magedu.com.
magedu.com. 86400 IN NS master2.magedu.com.
dbsrv.magedu.com. 86400 IN A 192.168.30.102
ddsrv.magedu.com. 86400 IN A 1.1.1.1
master.magedu.com. 86400 IN A 192.168.30.101
master1.magedu.com. 86400 IN A 192.168.30.102
master2.magedu.com. 86400 IN A 192.168.30.103
webserve.magedu.com. 86400 IN A 192.168.30.102
www.magedu.com. 86400 IN CNAME webserve.magedu.com.
magedu.com. 86400 IN SOA master.magedu.com. 502186965.qq.com. 6 86400 3600 604800 10800
;; Query time: 1 msec
;; SERVER: 192.168.30.101#53(192.168.30.101)
;; WHEN: Sat Jun 02 23:05:59 CST 2018
;; XFR size: 12 records (messages 1, bytes 313)
这样太不安全因此要设置安全策略
[root@www81 named]# vim /etc/named.conf
options {
allow-transfer  { 192.168.30.102;192.168.30.103; };
已经不能抓取
[root@CENTOS7 ~]# dig -t axfr magedu.com @192.168.30.101
; <<>> DiG 9.9.4-RedHat-9.9.4-50.el7 <<>> -t axfr magedu.com @192.168.30.101
;; global options: +cmd
; Transfer failed.
[root@centos ~]# dig -t axfr magedu.com @192.168.30.101
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6 <<>> -t axfr magedu.com @192.168.30.101
;; global options: +cmd
; Transfer failed.
虽然主的服务器已经不让查询了但是从服务器上仍然可以查询,所以在从服务器上也要修改/etc/named.conf
[root@www82 slaves]# vim /etc/named.conf
options {
 allow-transfer { none; };
[root@node3 ~]# vim /etc/named.conf
options {
 allow-transfer  { none; };
[root@CENTOS7 ~]# dig -t axfr magedu.com @192.168.30.102
; <<>> DiG 9.9.4-RedHat-9.9.4-50.el7 <<>> -t axfr magedu.com @192.168.30.102
;; global options: +cmd
; Transfer failed.
[root@CENTOS7 ~]# dig -t axfr magedu.com @192.168.30.103
; <<>> DiG 9.9.4-RedHat-9.9.4-50.el7 <<>> -t axfr magedu.com @192.168.30.103
;; global options: +cmd
; Transfer failed.
在/etc/named.conf中修改是全局的如果想只影响一个域那么可以在/etc/named.rfc1912.zones
相应的域中添加allow-transfer  { none; };。
如果主机网断了,那么从机器会自动替代主机器用于客户的查询,但是用户需要在网卡中配置从服务器的dns地址
如果主机不是断网了而是magedu.com这个域没了
[root@www81 ~]# vim /etc/named.rfc1912.zones
#zone “magedu.com” IN {
#       type master;
#       file “magedu.com.zone”;
//      allow-update { 192.168.30.156; };
#};
清除缓存的命令是rndc flush
如果主服务器可以上网,那么就会去根上查询如果不能上网则从从服务器上进行查询
[root@centos network-scripts]# ping www.magedu.com
PING www.magedu.com (101.200.188.230) 56(84) bytes of data.
64 bytes from 101.200.188.230: icmp_seq=1 ttl=53 time=104 ms
64 bytes from 101.200.188.230: icmp_seq=2 ttl=53 time=100 ms
64 bytes from 101.200.188.230: icmp_seq=3 ttl=53 time=72.2 ms
拒绝从udp53端口的访问
[root@www81 ~]# iptables -A INPUT -p udp –dport 53 -j REJECT
已经不好用
[root@CENTOS7 ~]# dig www.magedu.com @192.168.30.101 不可使用
但是如果只关闭tcp的53端扣用户可以查询
[root@www81 ~]# iptables -F
[root@www81 ~]# iptables -A INPUT -p tcp –dport 53 -j REJECT
[root@CENTOS7 ~]# dig www.magedu.com @192.168.30.101   可以使用
主服务器和从服务器的同步同时依赖tcp和udp窗口
rndc命令
 rndc:
rndc –> rndc (953/tcp)
rndc COMMAND
 COMMAND:
reload: 重载主配置文件和区域解析库文件
reload zonename: 重载区域解析库文件
retransfer zonename: 手动启动区域传送,而不管序列号是否增加
notify zonename: 重新对区域传送发通知
reconfig: 重载主配置文件
querylog: 开启或关闭查询日志文件/var/log/message
trace: 递增debug一个级别
trace LEVEL: 指定使用的级别
notrace:将调试级别设置为 0
flush:清空DNS服务器的所有缓存记录
子域
 子域授权:分布式数据库
 正向解析区域子域方法
 定义一个子区域:
ops.magedu.com. IN NS ns1.ops.magedu.com.
ops.magedu.com. IN NS  ns2.ops.magedu.com.
ns1.ops.magedu.com. IN A 1.1.1.1
ns2.ops.magedu.com. IN A 1.1.1.2
fin.magedu.com. IN NS ns1.fin.magedu.com.
fin.magedu.com. IN NS ns2.fin.magedu.com.
ns1.fin.magedu.com. IN A 3.1.1.1
ns2.fin.magedu.com. IN A 3.1.1.2
 注意:关闭dnssec功能:
dnssec-enable no;
dnssec-validation no;
添加子域
第一种方法
添加www.bj.magedu.com和www.zz.magedu.com俩个子域
[root@www81 ~]# vim /var/named/magedu.com.zone 直接在magedu.com域中添加
www.bj                  A       5.5.5.5
www.zz                  A       6.6.6.6
[root@CENTOS7 ~]# dig www.bj.magedu.com
;; QUESTION SECTION:
;www.bj.magedu.com. IN A
;; ANSWER SECTION:
www.bj.magedu.com. 86400 IN A 5.5.5.5
第二种方法
[root@www81 ~]# vim /etc/named.rfc1912.zones
zone “bj.magedu.com” IN {
        type master;
        file “bj.magedu.com.zone”;
//      allow-update { 192.168.30.156; };
};
};
zone “zz.magedu.com” IN {
        type master;
        file “zz.magedu.com.zone”;
//      allow-update { 192.168.30.156; };
};
第三种方法
[root@www81 named]# vim /var/named/magedu.com.zone
bj                      NS      master2.magedu.com.
master2                 A       192.168.30.102
[root@www82 ~]# cat /etc/named.rfc1912.zones
zone “bj.magedu.com” IN {
type master;
file “bj.magedu.com.zone”;
};
[root@www82 ~]# cat /var/named/bj.magedu.com.zone
$TTL 86400 ; 1 day
@ IN SOA master.bj.magedu.com. 502186965.qq.com. (
7          ; serial
86400      ; refresh (1 day)
3600       ; retry (1 hour)
604800     ; expire (1 week)
10800      ; minimum (3 hours)
)
NSmaster.bj.magedu.com.
master A 192.168.30.102
www        A 192.168.30.103
[root@www81 named]# vim /etc/named.conf
 dnssec-enable no;
        dnssec-validation no;
启动named的log文件
[root@www81 named]# rndc status
version: 9.9.4-RedHat-9.9.4-50.el7 <id:8f9657aa>
CPUs found: 2
worker threads: 2
UDP listeners per interface: 2
number of zones: 103
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running
[root@www81 named]# rndc querylog
[root@CENTOS7 ~]# ping www.bj.magedu.com
PING www.bj.magedu.com (192.168.30.103) 56(84) bytes of data.
64 bytes from 192.168.30.103 (192.168.30.103): icmp_seq=1 ttl=64 time=0.282 ms
转发服务器
 注意:被转发的服务器需要能够为请求者做递归,否则转发请求不予进行
 (1) 全局转发: 对非本机所负责解析区域的请求,全转发给指定的服务器
Options {
forward first|only;
forwarders { ip;};
};
 (2) 特定区域转发:仅转发对特定的区域的请求,比全局转发优先级高
zone “ZONE_NAME” IN {
type forward;
forward first|only;
forwarders { ip;};
};
 注意:关闭dnssec功能:
dnssec-enable no;
dnssec-validation no;
[root@CENTOS7 ~]# nmcli connection show     显示网卡是否绑定配置文件
NAME                UUID                                  TYPE            DEVICE
System ens33        c96bc909-188e-ec64-3a96-6a90982b08ad  802-3-ethernet  ens33
virbr0              a79dd861-fa13-4792-9316-10ec82a174cd  bridge          virbr0
Wired connection 1  78896759-b2c5-353e-a47e-732fa3da7bc4  802-3-ethernet  —
添加网卡的命令
[root@CENTOS7 ~]# nmcli connection add con-name eth1 ifname eth1 type ethernet
当我ping www.taobao.com的时候dns服务器会自动去找根然后将找到的结果发送给我
如果不想DNS服务器去根上查找可以
[root@www81 named]# vim /etc/named.conf
 recursion no;
在局域网中使用的DNS服务器应该关掉 recursion no;
全局转发功能的实现
[root@www82 named]# vim /etc/named.rfc1912.zones
zone “wange.com” IN {
        type master;
        file “wange.com.zone”;
};
[root@www82 named]# vim wange.com.zone
$TTL 86400      ; 1 day
@               IN SOA  master.wange.com. 502186965.qq.com. (
                                7          ; serial
                                86400      ; refresh (1 day)
                                3600       ; retry (1 hour)
                                604800     ; expire (1 week)
                                10800      ; minimum (3 hours)
                                )
                        NS      master.wange.com.
master                  A       192.168.30.102
www                     A       192.168.30.103
[root@www81 named]# vim /etc/named.conf
 forward only;
        forwarders { 192.168.30.102; };
recursion yes;
        dnssec-enable no;
        dnssec-validation no;
特定区域转发:
[root@www81 named]# vim /etc/named.rfc1912.zones
zone “wange.com” IN {
        type forward;
        forward only;
        forwarders { 192.168.30.102; };
};
递归:如果服务器有递归,那么客户端发来的请求服务器会去查找(找根或者指定的转发服务器,如果不递归,那么只要服务器没有就返回找不到)默认都有转发功能,转发到跟
智能DNS
bind中ACL
 bind中基础的安全相关的配置:
acl: 把一个或多个地址归并为一个集合,并通过一个统一的名称调用
 格式:
acl acl_name {
ip;
net/prelen;
……
};
 示例:
acl mynet {
172.16.0.0/16;
10.10.10.10;
};
就近访问,实现不同地区查看的web页面不同等
区域代理服务器就是CDN服务。cdn服务就是内容转发网络
bind中ACL
bind有四个内置的acl:
none: 没有一个主机
any: 任意主机
localhost: 本机
localnet: 本机的IP同掩码运算后得到的网络地址(本网段)
注意:只能先定义,后使用;因此一般定义在配置文件中,处于options的前面
访问控制
访问控制的指令:
allow-query {}: 允许查询的主机;白名单
allow-transfer {}:允许区域传送的主机;白名单
allow-recursion {}: 允许递归的主机,建议全局使用
allow-update {}: 允许更新区域数据库中的内容
智能DNS的实现
定义ACL
[root@www81 named]# vim /etc/named.conf
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
// See the BIND Administrator’s Reference Manual (ARM) for details about the
// configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html
acl beijing {
        192.169.30.0/24;
};
acl shanghai {
        192.168.3.0/24;
};
acl other {
        any;
};
定义acl时顺序是很重要的如果在192.168.30.0/24下面在定义一行192.168.0.0/16那么92.168.3.0/24将没有作用(顺序查找)
acl定义好了以后要定义相应的数据库文件
[root@www81 named]# cat magedu.com.zone magedu.com.zone.bj magedu.com.zone.sh | grep websev
websev                  A       192.168.30.1
www                     CNAME   websev
websev                  A       192.168.30.2
www                     CNAME   websev
websev                  A       192.168.30.3
www                     CNAME   websev
将acl和数据库对应关系用view实现
bind view
CDN: Content Delivery Network内容分发网络
服务商:蓝汛,网宿,帝联等
智能DNS:
dnspod
dns.la
view:视图:实现智能DNS:
一个bind服务器可定义多个view,每个view中可定义一个或多个zone
每个view用来匹配一组客户端
多个view内可能需要对同一个区域进行解析,但使用不同的区域解析库文件
bind view
注意:
(1) 一旦启用了view,所有的zone都只能定义在view中
(2) 仅在允许递归请求的客户端所在view中定义根区域
(3) 客户端请求到达时,是自上而下检查每个view所服务的客户端列表
格式:
view VIEW_NAME {
match-clients { testacl; };
zone “magedu.com” {
type master;
file “magedu.com.zone”;  };
include “/etc/named.rfc1912.zones”;
};
一但使用view那么所有的区域信息必须放到view中,否则失效
因此要将/etc/named.conf文件中的zone定义挪到/etc/named.rfc1912.zones 中
[root@www81 named]# ll /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bj /etc/named.rfc1912.zones.sh
-rw-r—– 1 root named 1057 Jun  3 12:27 /etc/named.rfc1912.zones
-rw-r—– 1 root named 1060 Jun  3 12:30 /etc/named.rfc1912.zones.bj
-rw-r—– 1 root named 1060 Jun  3 12:29 /etc/named.rfc1912.zones.sh
[root@www81 named]# cat /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bj /etc/named.rfc1912.zones.sh | grep magedu.com.zone
file “magedu.com.zone”;
file “magedu.com.zone.bj”;
file “magedu.com.zone.sh”;
[root@www81 named]# vim /etc/named.conf
view  beijing {
        match-clients { beijing; };
        include “/etc/named.rfc1912.zones.bj”;
};
view shanghai {
        match-clients { shanghai; };
        zone “magedu.com” {
                type master;
                file “magedu.com.zone.sh”;
        };
};
view other {
        match-clients { other; };
        include “/etc/named.rfc1912.zones”;
};
测试命令dig
 dig [-t type] name [@SERVER] [query options]
dig只用于测试dns系统,不会查询hosts文件进行解析
 查询选项:
+[no]trace:跟踪解析过程 : dig +trace magedu.com
+[no]recurse:进行递归解析
测试反向解析:
dig -x IP = dig –t ptr reverseip.in-addr.arpa
模拟区域传送:
dig -t axfr ZONE_NAME @SERVER
dig -t axfr magedu.com @10.10.10.11
dig –t axfr 100.1.10.in-addr.arpa @172.16.1.1
dig -t NS . @114.114.114.114
dig -t NS . @a.root-servers.net
测试命令
host [-t type] name [SERVER]
host –t NS magedu.com 172.16.0.1
host –t soa magedu.com
host –t mx magedu.com
host –t axfr magedu.com
host 1.2.3.4
nslookup命令: nslookup [-option] [name | -] [server]
• 交互式模式:
nslookup>
server IP: 指明使用哪个DNS server进行查询
set q=RR_TYPE: 指明查询的资源记录类型
NAME: 要查询的名称
rndc命令
 rndc:
rndc –> rndc (953/tcp)
rndc COMMAND
 COMMAND:
reload: 重载主配置文件和区域解析库文件
reload zonename: 重载区域解析库文件
retransfer zonename: 手动启动区域传送,而不管序列号是否增加
notify zonename: 重新对区域传送发通知
reconfig: 重载主配置文件
querylog: 开启或关闭查询日志文件/var/log/message
trace: 递增debug一个级别
trace LEVEL: 指定使用的级别
notrace:将调试级别设置为 0
flush:清空DNS服务器的所有缓存记录
因为编译安装不会创建named账户,所以在安装编译前手动创建named账户
编译安装完成后发现没有配置文件因此需要手动创建
dig -t ns . @a。root-servers.net > /var/named/named.cd
vim named.conf
potions {
directory “/var/named”
};
zone “magedu.com” {
type master;
file “magedu.com.zone”;
};
zone “。” {
type hint
file “named.ca”;
};
useradd -r -d /var/named -u 25 -s /sbin/nologin named -m
编译安装bind
 下载bind:
isc.org:
bind-9.10
bind-9.11
bind-10
 编译安装bind
tar xvf bind-9.11.0a3.tar.gz
cd bind-9.11.0a3/
groupadd -r -g 53 named
useradd -r -u 53 -g 53 named
./configure –prefix=/usr/local/bind9
–sysconfdir=/etc/named/ –without-openssl
–disable-ipv6 –disable-chroot –enable-threads
make
make install
编译安装bind
 环境变量:
• vim /etc/profile.d/named.sh
export PATH=/usr/local/bind9/bin:
/usr/local/bind9/sbin/:$PATH
 库和头文件
• vim /etc/ld.so.conf.d/named.conf
/usr/local/bind9/lib
• ldconfig –v
• ls -sv /usr/local/bind9/include /usr/include/named
 man帮助
• vim /etc/man.config | /etc/man_db.conf
MANPATH /usr/local/bind9/share/man
• man named.conf
编译安装bind
 vim /etc/named/named.conf
options {
directory “/var/named/”
};
zone “.” IN {
type hint;
file “named.ca”;
};
zone “localhost” IN {
type master;
file “named.localhost”;
allow-update {none;};
};
zone “1.0.0.127.in-addr.arpa” IN {
type master;
file “named.loopback”;
allow-update {none;};
};
编译安装bind
 区域数据库
• mkdir /var/named
• named-checkconf
• dig +norec @a.root-servers.net > /var/named/named.ca
• vim /var/named/named.localhost
$TTL 1d
@ IN SOA localhost. admin.localhost. (
2016061801
1h
5m
7d
1d)
IN NS localhost.
localhost. IN A 127.0.0.1
编译安装bind
vim /var/named/named.loopback
$TTL 1d
@ IN SOA localhost. admin.localhost. (
2016061801
1h
5m
7d
1d)
NS @
A 127.0.0.1
PTR localhost.
编译安装bind
 设置权限
• chmod 640 /var/named/*
• chmod 640 /etc/named/named.conf
• chgrp -R named /var/named/
• chgrp named /etc/named/named.conf
 启动服务和测试
• man named
• named -u named -f -g -d 3 前端级别3方式运行
• named -u named 后台运行
• killall named
• ss -tuln
• tail /var/log/message
• named -u named
编译安装bind
支持rndc
• rndc reload 观察错误提示
• rndc-confgen -r /dev/urandom > /etc/named/rndc.conf 生成key
• tail /etc/named/rndc.conf >> /etc/named/named.conf
• killall -SIGHUP named
• rndc status
压力测试
/root/bind-xxx/contrib/scripts
编译压力测试工具
• cd /root/bind-xxx/contrib/queryperf
• ./configure
• make
• cp queryperf /usr/local/bind9/bin
• queryperf -h
压力测试
 压力测试
• vim test.txt
www.magedu.com A
magedu.com NS
magedu.com MX
pop3.magedu.com A
web.magedu.com A
• queryperf -d test.txt -s 127.0.0.1
cat >> /root/dnstest.txt < /root/dnstest.txt
sed -i ‘10000,$d’ /root/dnstest.txt
 打开日志功能
• rndc querylog
• rndc status
• queryperf -d test.txt -s 127.0.0.1
• wc -l /var/log/message
52
#dig A example.com
• ; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7 <<>> A example.com
• ;; global options: +cmd
• ;; Got answer:
• ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30523
• …
• SERVFAIL:The nameserver encountered a problem while processing the query.
• 可使用dig +trace排错,可能是网络和防火墙导致
NXDOMAIN:The queried name does not exist in the zone.
• 可能是CNAME对应的A记录不存在导致
REFUSED:The nameserver refused the client’s DNS request due to
policy restrictions.
• 可能是DNS策略导致
DNS排错
53
NOERROR不代表没有问题,也可以是过时的记录
查看是否为权威记录,flags:aa标记判断
被删除的记录仍能返回结果,可能是因为*记录存在
如:*.example.com. IN A 172.25.254.254
注意“.”的使用
避免CNAME指向CNAME记录,可能产生回环
test.example.com. IN CNAME lab.example.com.
lab.example.com. IN CNAME test.example.com.
正确配置PTR记录,许多服务依赖PTR,如sshd,MTA
正确配置轮询round-robin记录
搭建一个简单的DNS拓扑
模拟DNS网络访问正向解析
模拟网络访问解析
搭建局域网DNS解析,具体实现功能如下图
注:该测试只有正向解析
项目流程图
1. 项目前准备关闭防火墙和SELINUX,配置网络
    ①开启8台机器
    ②关闭防火墙及selinux
                iptables -vnL                   #查看防火墙状态
                systemctl stop firewall         #关闭防火墙
                getenforce                  #查看SELinux状态
                setenforce 0                    #禁用SELinux
    ③示例配置网络后面依此类推,不再演示
                vim > /etc/sysconfig/network-scripts <<EOF
                        DEVICE=ens37
                        ONBOOT=yes
                        BOOTPROTO=static
                        IPADDR=172.20.29.201
                        PREFIX=16
                        DNS1=114.114.114.114
                        DNS2=1.1.1.1
                        GATEWAY=172.20.0.1
                EOF
    上述基本环境搭建完成
2. 配置web网站信息
    ① 安装httpd包
                配置172.20.29.201机器
                yum clean all                       #清除yum缓存
                yum install httpd -y                    #安装httpd服务包
                cat > /var/www/html/index.html <<EOF    #添加一个页面显示作为查看测试结果
                    welcome magedu.com web1
                EOF
                systemctl start httpd               #开启httpd服务
                systemctl enable httpd              #开机自动启动httpd服务
    ② 打开网页查看web1能否访问
                curl 172.20.29.201
    ① 安装httpd包
                配置172.20.29.202机器
                yum clean all                       #清除yum缓存
                yum install httpd -y                    #安装httpd服务包
                cat > /var/www/html/index.html <EOF #添加一个页面显示作为查看测试结果
                    welcome magedu.com web2
                EOF
                systemctl start httpd               #开启httpd服务
                systemctl enable httpd              #开机自动启动httpd服务
    ② 打开网页查看web2能否访问
                curl 172.20.29.201
        到此,web网站基本搭建成功
3. 配置DNS主服务器
    ①安装bind包
                配置172.20.29.203机器为DNS主服务器
                yum clean all                   #清除yum缓存
                yum install bind -y             #安装bind包
    ②修改DNS主配置文件
                vim /etc/named.conf         #修改主配置文件
                    options {
                                    listen-on port 53 { localhost; };       #修改监听地址为本机所有地址
                     #修改为默认所有人通过域名访问,解析库文件对应的单条A记录
                                    allow-query     { any; };
                     #指定204IP才能查询解析本机所有的A记录
                                    allow-transfer  {172.20.29.204;};
                    }
        vim /etc/named.rfc1912.zone         #修改主配置文件
                zone “magedu.com” IN {          #添加magedu.com域
                                type master;                #定于域类型为主域
                                file “magedu.com.zone”;     #定义magedu.com域的解析库文件
                };
    ③添加解析库文件
                cat > /var/named/magedu.com.zone <<EOF
                $TTL 1D                     #定义服务器响应时间
                #定义主域名,邮件服务器域名,(版本号 拉取数据时间,拉取数据失败重试时间,备用DNS服务器缓存数据有效期,错误缓存存放时间)
                @ IN SOA dns1.magedu.com. admin.magedu.com. ( 1 1D 2H 3D 1H )
                                 NS  dns1       #定义DNS1服务器名称
                                 NS  dns2       #定义DNS2服务器名称
                dns1 A  172.20.29.203   #解析DNS1为主服务器地址
                dns2 A  172.20.29.204   #解析DNS2为从服务器地址
                websrv A        172.20.29.201   #解析2个web服务器实现负载均衡
                websrv A        172.20.29.202
                www CNAME websrv        #定义别名
                EOF
    ④修改解析库文件权限
                    chgrp named magedu.com.zone     #修改属组为named
                    chmod 640 magedu.com.zone       #修改权限为640
                修改完成后如下:
                    -rw-r—– 1 root  named  201 Jun  1 21:16 magedu.com.zone
    ⑤开启,调试服务
                systemctl start named               #开启DNS服务
                systemctl enable named              #开机自动启动DNS服务
                systemctl status named              #查看DNS服务状态是否有错误
4. 配置DNS从服务器
    ①安装bind包
                配置172.20.29.204机器为DNS从服务器
                yum clean all                   #清除yum缓存
                yum install bind -y             #安装bind包
    ②修改DNS主配置文件
                vim /etc/named.conf         #修改主配置文件
                options {
                                listen-on port 53 { localhost; };       #修改监听地址为本机所有地址
                 #修改为默认所有人通过域名访问,解析库文件对应的单条A记录
                                allow-query     { any; };
                #不允许任何端口解析本机所有的A记录
                                allow-transfer  {none;};
                }
    vim /etc/named.rfc1912.zone         #修改主配置文件
                zone “magedu.com” IN {          #添加magedu.com域
                                type slave;             #类型定义为从域
                                masters { 172.20.29.203;};  #指定主域IP地址
                                file “slaves/magedu.com.zone.slave”;    #定义magedu.com域的解析库文件
                };
    ③开启,调试服务
                systemctl start named               #开启DNS服务
                systemctl enable named              #开机自动启动DNS服务
                systemctl status named              #查看DNS服务状态是否有错误
    ④查看从DNS服务器是否从主DNS服务器拉取解析库文件
                ls -l /var/named/slaves/
    同步完成后如下:
                -rw-r–r– 1 named named 377 Jun  1 21:37 magedu.com.zone.slave
5. 配置COM服务器
    ①安装bind包
                配置172.20.29.205机器为com服务器
                yum clean all                   #清除yum缓存
                yum install bind -y             #安装bind包
    ②修改DNS主配置文件
                vim /etc/named.conf         #修改主配置文件
                options {
                                listen-on port 53 { localhost; };       #修改监听地址为本机所有地址
                 #修改为默认所有人通过域名访问,解析库文件对应的单条A记录
                                allow-query     { any; };
                }
                dnssec-enable no;   #关闭安全协议功能
                dnssec-validation no;
                vim /etc/named.rfc1912.zone         #修改主配置文件
                    zone “com” IN {                 #添加com域
                                    type master;                    #定义类型为主域
                                    file “com.zone”;                #定义com.com域的解析库文件
                    };
    ③添加解析库文件
                cat > /var/named/com.zone <<EOF
                            $TTL 1D                     #定义服务器响应时间
                            #定义主域名,邮件服务器域名,(版本号 拉取数据时间,拉取数据失败重试时间,备用DNS服务器缓存数据有效期,错误缓存存放时间)
                            @ IN SOA dns.com. admin.com. ( 1 1D 2H 3D 1H )
                             NS  dns1            #定义DNS1服务器名称
                            magedu   NS  dns2               #定义DNS2服务器名称
                            magedu   NS  dns3               #定义DNS3务器名称
                            dns1 A  172.20.29.205           #解析DHS1为本机地址
                            dns2 A  172.20.29.203           #解析DHS2为主DNS服务器
                            dns3 A  172.20.29.204           #解析DHS3为从DNS服务器
                            EOF
    ④修改解析库文件权限
                chgrp named com.zone        #修改属组为named
                chmod 640 com.zone      #修改权限为640
                修改完成后如下:
                    -rw-r—– 1 root  named  167 Jun  1 22:02 com.zone
⑤开启调试服务
systemctl start named #开启DNS服务
systemctl enable named #开机自动启动DNS服务
systemctl status named #查看DNS服务状态是否有错误
6. 配置根域
    ①安装bind包
                配置172.20.29.206机器为根服务器
                yum clean all                   #清除yum缓存
                yum install bind -y             #安装bind包
    ②修改DNS主配置文件
                vim /etc/named.conf         #修改主配置文件
                options {
                                listen-on port 53 { localhost; };       #修改监听地址为本机所有地址
                 #修改为默认所有人通过域名访问,解析库文件对应的单条A记录
                                allow-query     { any; };
                }
                dnssec-enable no;   #关闭安全协议功能
                dnssec-validation no;
删除/etc/named.conf里定义的根记录,定义本机为根
                #zone “.” IN {
                #       type hint;
                #       file “named.ca”;
                #};
        vim /etc/named.rfc1912.zone         #修改主配置文件
                zone “.” IN {                       #添加根域
                                type master;                    #定义根域为主服务器
                                file “root.zone”;               #定义com.com域的解析库文件
                };
    ③添加解析库文件
                cat > /var/named/root.zone <<EOF
                $TTL 1D                     #定义服务器响应时间
                #定义主域名,邮件服务器域名,(版本号 拉取数据时间,拉取数据失败重试时间,备用DNS服务器缓存数据有效期,错误缓存存放时间)
                @ IN SOA dns1. admin. ( 1 1D 2H 3D 1H )
                                        NS  dns1                #定义DNS1服务器名称
                com     NS  dns2                #定义DNS2服务器名称
                dns1 A  172.20.29.206           #解析DHS2为根域服务器
                dns2 A  172.20.29.205           #解析DHS2为com服务器
                EOF
    ④修改解析库文件权限
                chgrp named root.zone       #修改属组为named
                chmod 640 root.zone     #修改权限为640
                修改完成后如下:
                    -rw-r—– 1 root  named  167 Jun  1 22:02 com.zone
    ⑤开启,调试服务
                systemctl start named               #开启DNS服务
                systemctl enable named              #开机自动启动DNS服务
                systemctl status named              #查看DNS服务状态是否有错误
7. 配置电信服务器
    ①安装bind包
                配置172.20.29.207机器为转发服务器
                yum clean all                   #清除yum缓存
                yum install bind -y             #安装bind包
    ②修改DNS主配置文件
                vim /etc/named.conf         #修改主配置文件
                options {
                                listen-on port 53 { localhost; };       #修改监听地址为本机所有地址
                 #修改为默认所有人通过域名访问,解析库文件对应的单条A记录
                                allow-query     { any; };
                }
                dnssec-enable no;
                dnssec-validation no;
③修改根域为206
    vim etc/named/name.ca
④开启,调试服务
                systemctl start named               #开启DNS服务
                systemctl enable named              #开机自动启动DNS服务
                systemctl status named              #查看DNS服务状态是否有错误
8. 用户访问电信服务器查看结果
    ①修改DNS指向电信服务器
                cat > /etc/resolv.conf <<EOF

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/100189

发表评论

登录后才能评论

This site uses Akismet to reduce spam. Learn how your comment data is processed.

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班