标签:include view实现 服务器 mail 查询 反向 val named sbin
DNS:Domain Name Service 域名解析服务,工作在应用层,是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS监听在TCP和UDP端口53。
FQDN:全称域名,如 www.example.com
www
是主机名example.com
是域名实现名称到IP解析的有三种方式:
权威的DNS服务器:记录主机名到IP的DNS服务器叫做权威的DNS服务器
主从DNS服务器:主服务器记录发生变化,会同步到从服务器,(主从复制),实现容错机制
DNS的查询类型:
DNS的解析类型:正反向解析是两个不同的名称空间,是两棵不同的解析树
正向解析:FQDN --> IP
反向解析:IP ---> FQDN 如邮件服务器需要用到反向解析技术
DNS服务器的类型:
.com
等后缀的域,代理DNS服务器会拿到.com
域的DNS服务器IP.com.
域的DNS服务器,如果还是没有找到主机,则再往它的下一级找,直到找到具体的主机,把IP返回给客户端,同时代理DNS服务器也会缓存一份到本地一次完整的查询请求经过的流程:Client -->hosts文件 -->DNS Service Local Cache --> DNS Server (recursion) --> Server Cache --> iteration(迭代) --> 根--> 顶级域名DNS-->二级域名DNS…
ICANN(The Internet Corporation for Assigned Names and Numbers)互联网名称与数字地址分配机构,负责在全球范围内对互联网通用顶级域名(gTLD)以及国家和地区顶级域名(ccTLD)系统的管理、以及根服务器系统的管理
dig:只用于测试dns系统,不会查询hosts文件进行解析
host
rndc
named-checkconf:检查配置文件的语法
named-checkzone "dongfei.com" /var/named/dongfei.com.zone :查询区域数据库文件的语法
DNS的实现:bind(Bekerley Internat Name Domain ) ,由 ISC (www.isc.org) 维护,本章所有配置实例的bind版本为 :bind-9.9.4-61.el7.x86_64
软件包名:bind
服务名:named
提供的服务:DNS域名解析
主配置文件:/etc/named.conf
options { #全局选项
listen-on port 53 { 127.0.0.1; }; //默认监听本机的53号端口,如果没有其他需求则注释掉
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; }; //授权为指定的主机解析,默认只为本机解析,需要注释掉
recursion yes|no; //递归查询,默认开启
dnssec-enable yes; //sec功能,与安全加密传输相关的选项,如果要做转发,需要关闭此选项
dnssec-validation yes; //同上一条,需要关闭
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
allow-transfer { none; }:允许区域传送的主机;白名单,默认开启,建议关闭
};
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";
DNS解析数据库文件存放位置:/var/named/
区域定义:/etc/named.rfc1912.zones
zone "test.com" IN { //internation 记录
type {master|slave|hint|forward}; //类型,主服务器
file "test.com.zone"; //区域数据库文件
};
区域文件模板:/etc/named.rfc1912.zones
# cat /var/named/named.localhost
$TTL 1D #默认的TTL值
@ IN SOA @ rname.invalid. ( #SOA记录
0 ; serial #序列号
1D ; refresh #主从复制的时间间隔
1H ; retry #如果主从复制失败重试时间
1W ; expire #失效时间
3H ) ; minimum #否定答案的TTL值
NS @ #名字服务器记录
A 127.0.0.1 #正向解析记录
AAAA ::1 #IPv6的正向解析记录
资源记录:Resource Record 简称 RR
? 语法格式:name [TTL] IN rr_type value
www.example.com.
,注意:最后的 "." 一定要加,如果不加则会把你的域名当成区域名字,再在后边加上你的默认域名。 “@”:表示当前域名的名字TTL:例如$TTL 1D
的意思是默认的TTL值为1天
TTL(Time- To-Live),简单的说它表示一条域名解析记录在DNS服务器上缓存时间.当各地的DNS服务器接受到解析请求时,就会向域名指定的DNS服务器发出解析请求从而获得解析记录;在获得这个记录之后,记录会在DNS服务器中保存一段时间,这段时间内如果再接到这个域名的解析请求,DNS服务器将不再向DNS服务器发出请求,而是直接返回刚才获得的记录;而这个记录在DNS服务器上保留的时间,就是TTL值。
同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询方式响应
同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值进行定义;此仅表示通过多个不同的名字可以找到同一个主机
主机名(简称只写主机名,如www) A ip地址
@ A 192.168.0.12 //不需要输入www,直接输入域名则可访问此网站
* A 192.168.0.12 //泛域名解析,只要请求的是这个域,但是没有匹配的主机,则应答此条记录
$GENERATE 1-254 websvr$ A 192.168.0.$ //循环,表示websvr1 A 192.168.0.1 到 websvr254 A 192.168.0.254的254条记录
12 PTR websrv.dongfei.com.
14 PTR web2srv.dongfei.com.
100 PTR mailsrv.dongfei.com.
NS dns //表示192.168.0.1这台主机是这个域的dns服务器
dns A 192.168.0.1
websrv A 192.168.0.10
websrv A 192.168.0.11
websrv A 192.168.0.12
www CNAME websrv //访问www.xxxx.com的时候则代表访问192.168.0.10-12,DNS会做轮调应答,实现负载均衡的功能
@ MX 10 mailsrv1
@ MX 20 mailsrv2
mailsrv1 A 192.168.0.100
mailsrv2 A 192.168.0.200
SOA记录的格式:域名称 IN SOA 主DNS主机名 域管理员邮箱 (序列号 主从同步的时间间隔 同步失败的尝试时间间隔 联系不上主DNS多长时间后失效 域名无法找到,在多长时间内不会再去查询)
@ IN SOA dns1.dongfei.com. admin.dongfei.com. ( 1 1D 1H 1W 3H )
? 1)安装bind
# yum install bind
# systemctl start named
? 2)修改主配置文件,将下边俩条注释掉
# vim /etc/named.conf
// listen-on port 53 { 127.0.0.1; }; //监听本机的所有地址
// allow-query { localhost; }; //允许给所有客户端解析
? 3)修改区域数据文件
# vim /etc/named.rfc1912.zones
zone "dongfei.com" IN { //internation 记录
type master; //类型,主服务器
file "dongfei.com.zone"; //区域数据库文件,指向/var/named/dongfei.com.zone
};
? 4)新建区域解析数据库文件,/var/named/dongfei.com.zone
# vim /var/named/dongfei.com.zone
$TTL 1D //代表全局的TTL值
@ IN SOA dns1.dongfei.com. admin.dongfei.com. ( 1 1D 1H 1W 3H ) //SOA记录,按格式写
NS dns1 //NS记录,域中有几个DNS服务器都要写出来
dns1 A 192.168.0.7 //NDS服务器的A记录,0.7是本机的IP
www A 192.168.0.6 //一条正向解析记录,这里的0.6是web服务器
# chgrp named /var/named/dongfei.com.zone //切记,修改文件的权限和所属组,保证named进程有此文件的可读属性
# chmod 640 /var/named/dongfei.com.zone
# ll /var/named/dongfei.com.zone
-rw-r-----. 1 root named 120 Jun 1 19:39 /var/named/dongfei.com.zone
? 5)测试
# named-checkconf //检查主配置文件
# named-checkzone "dongfei.com" /var/named/dongfei.com.zone //检查
# rndc reload //重载配置文件
# dig www.dongfei.com @192.168.0.7 //在客户端上使用dig命令测试,如果返回有以下值则说明成功
;; ANSWER SECTION:
www.dongfei.com. 86400 IN A 192.168.0.6
? 1)在/etc/name.rfc1912.zone中加入
zone "0.168.192.in-addr.arpa" IN { //地址需要反着写,与正向解析不同,是另一颗树
type master;
file "192.168.0.zone";
};
? 2)创建区域数据文件
# vim /var/named/192.168.0.zone
$TTL 1D
@ IN SOA dns.dongfei.com. admin.dongfei.com. ( 1 1D 1H 1W 3H )
NS dns.dongfei.com.
dns.dongfei.com A 192.168.0.7
100 PTR mail.dongfei.com.
# chgrp named /var/named/192.168.0.zone
# chmod 640 /var/named/192.168.0.zone
# rndc reload
? 3)重载配置文件,测试
# vim /etc/resolv.conf
nameserver 192.168.0.7 //在客户端将DNS服务器指向我们配置的DNS服务器
# dig -x 192.168.0.100 //测试,如果出现以下信息则表示成功
;; ANSWER SECTION:
100.0.168.192.in-addr.arpa. 86400 IN PTR mail.dongfei.com.
? 1)打开允许指定主机更新数据库
zone "dongfei.com" IN {
type master;
file "dongfei.com.zone";
allow-update { 192.168.0.6; }; //允许192.168.0.6远程更新数据库
};
? 2)放开数据库文件夹和文件的权限
# chmod 770 /var/named/
# ll -d /var/named/
drwxrwx---. 5 root named 173 Jun 1 20:55 /var/named/
# rndc reload
? 3)在客户端测试,上传一条更新记录
# nsupdate
> server 192.168.0.7
> zone dongfei.com
> update add ftp.dongfei.com 86400 IN A 192.168.0.101
> send
> quit
# dig ftp.dongfei.com @192.168.0.7 // 出现以下信息表示成功
;; ANSWER SECTION:
ftp.dongfei.com. 86400 IN A 192.168.0.101
这时我们再回来看DNS服务器的/var/named/文件夹下出现了一个
dongfei.com.zone.jnl
的文件,这个文件是更新数据库的日志文件,它不会立即同步到区域数据中库文件中,而是会先存放到日志文件中,过一会儿再向数据库文件中同步。
# named-journalprint /var/named/dongfei.com.zone.jnl
查看日志文件
DNS服务一般需要一台主,俩台从,如果主DNS服务器出现故障后可以向从DNS服务器请求解析;客户端需要将主DNS设置为主DNS服务器,将从DNS服务器设置为备DNS服务器
192.168.0.7 为主DNS服务器
192.168.0.11 为从DNS服务器
192.168.0.6 为客户端
? 1)主服务器配置
# vim /etc/named.conf
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
allow-transfer { 192.168.0.11; }; //只允许从DNS服务器同步区域数据库
# vim /etc/named.rfc1912.zones
zone "dongfei.com" IN {
type master;
file "dongfei.com.zone";
};
# vim /var/named/dongfei.com.zone
$TTL 86400 ; 1 day
@ IN SOA dns1.dongfei.com. admin.dongfei.com. (
2 ; serial
86400 ; refresh (1 day)
3600 ; retry (1 hour)
604800 ; expire (1 week)
10800 ; minimum (3 hours)
)
NS dns1
NS dns2 //将从DNS服务器的NS记录添加到此
dns1 A 192.168.0.7
dns2 A 192.168.0.11 //将从DNS服务器的A记录添加到此
ftp A 192.168.0.101
www A 192.168.0.6
@ MX 10 mail
mail A 192.168.0.100
? 2)配置从DNS服务器
# vim /etc/named.conf
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
allow-transfer { none; }; //为了数据安全,不允许任何主机从从DNS服务器上拉取区域数据
# vim /etc/named.rfc1912.zones
zone "dongfei.com" IN {
type slave; //类型为从服务器
masters { 192.168.0.7; }; //主DNS服务器的IP
file "slaves/dongfei.com.zone.slave"; //数据库文件保存到 /var/named/slaves/ 文件夹下,名字叫dongfei.com.zone.slave
};
# systemctl restart named //重启服务
# ls /var/named/slaves/ //可以看到数据库文件则证明已经同步成功
dongfei.com.zone.slave
? 3)在客户端测试
# vim /etc/resolv.conf //修改DNS配置文件
; generated by /sbin/dhclient-script
nameserver 192.168.0.7
nameserver 192.168.0.11
# dig www.dongfei.com
;; ANSWER SECTION:
www.dongfei.com. 86400 IN A 192.168.0.6
;; SERVER: 192.168.0.7#53(192.168.0.7)
主服务器可以正常解析,接下来我们将主机模拟故障,比如把网络断掉
# dig www.dongfei.com //再次在客户端测试,发现现在已经是从服务响应我们的解析请求了
;; ANSWER SECTION:
www.dongfei.com. 86400 IN A 192.168.0.6
;; SERVER: 192.168.0.11#53(192.168.0.11) //192.168.0.11是从服务器地址
dig -t axfr magedu.com @192.168.0.7 手动抓取区域记录
在互联网中我们的单个DNS服务无法去存储所有主机的域名到IP的记录,比如根域,它只是将来至查询.com
的请求委派给.com
域的DNS服务器,来自.org
的查询交给.org
域的DNS服务器。具体怎么实现配置,那我们来一起研究吧
环境:
? 父:192.168.0.7,dongfei.com
? 子:192.168.0.11,bj.dongfei.com
? 1)配置父域
# vim /etc/named.conf
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
dnssec-enable no;
dnssec-validation no;
# vim /etc/named.rfc1912.zones
zone "dongfei.com" IN {
type master;
file "dongfei.com.zone";
};
# vim /var/named/dongfei.com.zone
$TTL 86400 ; 1 day
@ IN SOA dns1.dongfei.com. admin.dongfei.com. (
2 ; serial
86400 ; refresh (1 day)
3600 ; retry (1 hour)
604800 ; expire (1 week)
10800 ; minimum (3 hours)
)
NS dns1
bj NS dns2.dongfei.com. //将bj域的请求委派给dns2来处理
dns1 A 192.168.0.7
dns2 A 192.168.0.11
# chgrp named /var/named/dongfei.com.zone
# chmod 640 /var/named/dongfei.com.zone
# rndc reload
? 2)配置子域
# vim /etc/named.conf
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
# vim /etc/named.rfc1912.zones
zone "bj.dongfei.com" IN {
type master;
file "bj.dongfei.com.zone";
};
# vim /var/named/bj.dongfei.com.zone
$TTL 1D
@ IN SOA dns1.bj.dongfei.com. admin.bj.dongfei.com. ( 1 1D 1H 1W 3H )
NS dns1
dns1 A 192.168.0.11
www A 192.168.0.6
# chgrp named /var/named/bj.dongfei.com.zone
# chmod 640 /var/named/bj.dongfei.com.zone
# rndc reload
? 3)在客户端测试
# dig www.bj.dongfei.com @192.168.0.7
;; ANSWER SECTION:
www.bj.dongfei.com. 86385 IN A 192.168.0.6
注意:被转发的服务器需要能够为请求者做递归,否则转发请求不予进行;关闭dnssec功能(dnssec-enable no; dnssec-validation no; )
转发器类型:
192.168.0.11 为转发DNS服务器
192.168.0.7 为目标DNS服务器
? 1)配置转发DNS服务器
# vim /etc/named.conf
options {
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
recursion yes; //开启递归查询
dnssec-enable no;
dnssec-validation no;
forward only; //only模式
forwarders { 192.168.0.7; }; //目标DNS服务器IP
};
# rndc reload //重载配置文件
? 2)配置目标DNS服务器
# vim /etc/named.conf
// listen-on port 53 { 127.0.0.1; };
// allow-transfer { 192.168.0.11; };
recursion no; //关闭递归查询
dnssec-enable no;
dnssec-validation no;
# vim /etc/named.rfc1912.zones
zone "dongfei.com" IN {
type master;
file "dongfei.com.zone";
};
# vim /var/named/dongfei.com.zone
$TTL 86400 ; 1 day
@ IN SOA dns1.dongfei.com. admin.dongfei.com. (
2 ; serial
86400 ; refresh (1 day)
3600 ; retry (1 hour)
604800 ; expire (1 week)
10800 ; minimum (3 hours)
)
NS dns1
dns1 A 192.168.0.7
webs A 192.168.0.6
webs A 192.168.0.5
www CNAME webs
@ MX 10 mail
mail A 192.168.0.100
ftp A 192.168.0.101
# rndc reload
? 3)在客户端测试
# dig www.dongfei.com @192.168.0.11
;; ANSWER SECTION:
www.dongfei.com. 86369 IN CNAME webs.dongfei.com.
webs.dongfei.com. 86369 IN A 192.168.0.6
webs.dongfei.com. 86369 IN A 192.168.0.5
;; SERVER: 192.168.0.11#53(192.168.0.11) //真正的域名解析信息在192.168.0.7上,这里由0.11代为去查询
如果对单个域进行转发则把配置写到区域配置文件中即可
# vim /etc/named.rfc1912.zones zone "dongfei.com" { type forward; forward only; forwarders { 192.168.0.7; }; };
在互联网上各个地区的网络站点分布到各个地区,这时就需要按地区为当地地区的客户解析到当地的站点服务器,比如在北京和在上海打开同一个网站显示的信息是不同的;这就需要用到智能DNS解析的技术。
电商站点或者视频站点,这些站点需要快速响应客户的请求,不可能将服务器搭建到一个地区,而是需要分布到各个省市,在每个地方有缓存服务器,这就是CDN: Content Delivery Network内容分发网络的工作,一般由单独的CDN公司搭建机房服务于各大电商视频等站点。
接下来,我们一起研究一下如何实现智能DNS解析吧
acl: 把一个或多个地址归并为一个集合,并通过一个统一的名称调用;只能先定义,后使用,因此一般定义在配置文件中,处于options的前面
格式:
acl acl_name {
ip;
net/prelen;
……
};
bind有四个内置的acl:
? none: 没有一个主机
? any: 任意主机
? localhost: 本机
? localnet: 本机的IP同掩码运算后得到的网络地址
访问控制的指令:
view:视图:实现智能DNS
注意:
(1) 一旦启用了view,所有的zone都只能定义在view中
(2) 仅在允许递归请求的客户端所在view中定义根区域
(3) 客户端请求到达时,是自上而下检查每个view所服务的客户端列表
在一台主机上有俩张网卡,配置俩个网段来模拟来自不同地区的客户
? 192.168.0.7/24
? 172.20.111.236/16
? 1)添加ACL和视图
# vim /etc/named.conf
acl bjnet { //注意,acl要写在options前边,而且要注意acl的匹配顺序关系,至上而下
192.168.0.0/24;
};
acl shnet {
172.20.0.0/16;
};
acl othernet {
any;
};
options {
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
};
view bjview {
match-clients {bjnet;};
include "/etc/named.rfc1912.zones.beijing";
};
view shview {
match-clients {shnet;};
include "/etc/named.rfc1912.zones.shanghai";
};
view otherview {
match-clients {othernet;};
include "/etc/named.rfc1912.zones";
};
include "/etc/named.root.key";
注意:要将默认配置文件中的根区域配置放到/etc/named.rfc1912.zones文件中
? 2)创建各地区区域配置文件
# vim /etc/named.rfc1912.zones.beijing
zone "dongfei.com" {
type master;
file "dongfei.com.zones.beijing";
};
# vim /etc/named.rfc1912.zones.shanghai
zone "dongfei.com" {
type master;
file "dongfei.com.zones.shanghai";
};
? 3)配置解析数据库文件
# vim /var/named/dongfei.com.zones.beijing
$TTL 1D
@ IN SOA dns1.dongfei.com. admin.dongfei.com. ( 1 1D 1H 1W 3H )
NS dns1
dns1 A 192.168.0.7
www A 192.168.0.1
# vim /var/named/dongfei.com.zones.shanghai
$TTL 1D
@ IN SOA dns1.dongfei.com. admin.dongfei.com. ( 1 1D 1H 1W 3H )
NS dns1
dns1 A 172.20.111.236
www A 172.20.111.1
? 4)在客户端测试
# dig www.dongfei.com @192.168.0.7
;; ANSWER SECTION:
www.dongfei.com. 86400 IN A 192.168.0.1
;; SERVER: 192.168.0.7#53(192.168.0.7)
# dig www.dongfei.com @172.20.111.236
;; ANSWER SECTION:
www.dongfei.com. 86400 IN A 172.20.111.1
;; SERVER: 172.20.111.236#53(172.20.111.236)
从上边的测试结果,从不同IP段查询同一个域名得到的结果却不一样,从而可以实现按地区来智能解析
? 1)192.168.0.1 : web
# echo -e web1.dongfei.com\n\<h1\>hello web1\</h1\> > /var/www/html/index.html
# service httpd start
# curl 192.168.0.1
# web1.dongfei.comn<h1>hello web1</h1>
? 2)192.168.0.2 : web2
# echo -e web2.dongfei.com\n\<h2\>hello web1\</h1\> > /var/www/html/index.html
# service httpd start
# curl 192.168.0.2
web2.dongfei.comn<h2>hello web2</h1>
? 3)192.168.0.3 :dns1,配置dongfei.com域的主DNS服务器
# vim /etc/named.conf
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; }; //注释掉
allow-transfer { 192.168.0.4; }; //只允许192.168.0.4的主机,也就是从DNS来拉取区域解析数据库
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
# vim /etc/named.rfc1912.zones
zone "dongfei.com" IN {
type master;
file "dongfei.com.zone";
};
# vim /var/named/dongfei.com.zone
$TTL 1D
@ IN SOA dns1.dongfei.com. admin.dongfei.com. ( 1 1D 1H 1W 3H )
NS dns1
NS dns2
dns1 A 192.168.0.3
dns2 A 192.168.0.4
webs A 192.168.0.1
webs A 192.168.0.2
www CNAME webs
# chgrp named /var/named/dongfei.com.zone
# chmod 640 /var/named/dongfei.com.zone
# named-checkconf
# named-checkzone "dongfei.com" /var/named/dongfei.com.zone
# service named start
# dig www.dongfei.com @192.168.0.3
;; ANSWER SECTION:
www.dongfei.com. 86400 IN CNAME webs.dongfei.com.
webs.dongfei.com. 86400 IN A 192.168.0.1
webs.dongfei.com. 86400 IN A 192.168.0.2
? 4)192.168.0.4 :dns2,配置dongfei.com域的从DNS服务器
# vim /etc/named.conf
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; }; //注释掉
allow-transfer { none; }; //不对任何主机做区域传送
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
# vim /etc/named.rfc1912.zones
zone "dongfei.com" {
type slave; //类型为从服务器
masters { 192.168.0.3; }; //指向谁是我的主服务器
file "slaves/dongfei.com.zone.slave"; //解析数据库存放位置
};
# named-checkconf
# service named start
# ls -l /var/named/slaves/ //查看一下有没有数据库文件,有则说明同步成功
-rw-r--r--. 1 named named 417 May 19 22:09 dongfei.com.zone.slave
? 5)192.168.0.5 :com. 配置子域委派
# vim /etc/named.conf
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; };
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
# vim /etc/named.rfc1912.zones
zone "com" IN {
type master;
file "com.zone";
};
# vim /var/named/com.zone
@ IN SOA dns1.com. admin.com. ( 1 1D 1H 1W 3H )
NS dns1
dongfei NS dns2.com. //子域委派给192.168.0.3和192.168.0.4
dns1 A 192.168.0.5
dns2 A 192.168.0.3
dns2 A 192.168.0.4
# chgrp named /var/named/com.zone
# chmod 640 /var/named/com.zone
# named-checkconf
# service named start
# dig www.dongfei.com @192.168.0.5
www.dongfei.com. 86387 IN CNAME webs.dongfei.com.
webs.dongfei.com. 86387 IN A 192.168.0.1
webs.dongfei.com. 86387 IN A 192.168.0.2
;; AUTHORITY SECTION:
dongfei.com. 86400 IN NS dns2.com.
;; ADDITIONAL SECTION:
dns2.com. 86400 IN A 192.168.0.4
dns2.com. 86400 IN A 192.168.0.3
;; SERVER: 192.168.0.5#53(192.168.0.5)
? 6)192.168.0.6 :根域配置
# vim /etc/named.conf
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; };
recursion yes;
dnssec-enable no;
dnssec-validation no;
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
# vim /etc/named.rfc1912.zones
zone "." {
type master;
file "root.zone";
};
# vim /var/named/root.zone
$TTL 1D
@ IN SOA dns1. admin. ( 1 1D 2H 3D 1H )
NS dns1
com NS dns2
dns1 A 192.168.0.6
dns2 A 192.168.0.5
# chgrp named /var/named/root.zone
# chmod 640 /var/named/root.zone
# service named start
# dig www.dongfei.com @127.0.0.1
;; ANSWER SECTION:
www.dongfei.com. 86177 IN CNAME webs.dongfei.com.
webs.dongfei.com. 86177 IN A 192.168.0.1
webs.dongfei.com. 86177 IN A 192.168.0.2
? 7)192.168.0.7 :缓存DNS服务器配置
# vim /etc/named.conf
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; };
recursion yes;
dnssec-enable no;
dnssec-validation no;
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
zone "." IN {
type hint;
file "named.ca";
};
# vim /var/named/named.ca
. 3600000 NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 192.168.0.6 //将根服务器指向我们自己搭建的根DNS服务器
# service named start
? 8)192.168.0.8 :在客户端测试
# vim /etc/resolv.conf
nameserver 192.168.0.7 //将自己的DNS服务器指向缓存服务器
# dig www.dongfei.com //出现以下信息则说明成功
;; ANSWER SECTION:
www.dongfei.com. 86319 IN CNAME webs.dongfei.com.
webs.dongfei.com. 86319 IN A 192.168.0.1
webs.dongfei.com. 86319 IN A 192.168.0.2
;; SERVER: 192.168.0.7#53(192.168.0.7)
? 到此为止,我们可以访问以下www.dongfei.com,看看是否可以正常解析
[root@client ~]# curl www.dongfei.com
web2.dongfei.comn<h2>hello web2</h1>
[root@client ~]# curl www.dongfei.com
web1.dongfei.comn<h1>hello web1</h1>
[root@client ~]# curl www.dongfei.com
web2.dongfei.comn<h2>hello web2</h1>
[root@client ~]# curl www.dongfei.com
web1.dongfei.comn<h1>hello web1</h1>
? 从测试结果看来,不仅可以正常解析,还实现了DNS负载均衡的功能。
学习 ^_^ date 2018.06.02 16.37
标签:include view实现 服务器 mail 查询 反向 val named sbin
原文地址:https://www.cnblogs.com/L-dongf/p/9118111.html