3.1、dns服务简介:
1、DNS(Domain Name System)域名系统。
目前提供网络服务的应用使用唯一的32位的IP地址来标识,但是由于数字比较复杂、难以记忆,因此产生了域名系统(DNS),
通过域名系统,可以使用易于理解和形象的字符串名称来标识网络应用(如www.baidu.com、www.taobao.com)。访问互联
网应用可以使用域名,也可以通过IP地址直接访问该应用,在使用域名访问网络应用时,DNS负责将域名解析为IP地址。
2.、主机名和域名的区别:
主机名是内网的名字;域名是外网的名字。
主机名和域名其实是两个完全可以不同的名字,但是有很多软件(如邮件系统postfix)会默认认为它们一致。
全世界共有有13台DNS根域服务器。
3、*域名:
.com .org .edu .gov .net .mil .info
商业 组织 教育 * 通讯 军事 信息
4、DNS服务器特点:
分布式的数据库;
解决了数据不一致,避免了名字冲突;
有缓存机制,提高了性能和可靠性;
5、域名解析过程:
为了将一个名字解析成一个IP地址,用户应用程序调用一个称为解析器的库程序,将名字作为参数传递给它,形成DNS用户;
然后DNS用户发送查询请求给本地域名服务器,服务器首先在其管辖区域内查找名字,名字找到后,把对应的IP地址返回给DNS客户。
完整的名字解析过程如下图所示:
6、dns域名命名规范:
(1)26个英文字母;
(2)“0,1,2,3,4,5,6,7,8,9”十个数字;
(3)“-”(英文中的连词号);
(4)最多63字节长度;
7、dns软件bind介绍:
BIND全称是(Berkeley Internet Name Domain),是美国加利福尼亚大学伯克利分校开发的一个域名服务软件包,
Linux使用这个软件包来提供域名服务,该软件实现了DNS协议。BIND的服务端软件是被称作named的守护进程。
8、DNS进行域名解析的过程:
首先,客户端发出DNS请求翻译IP地址或主机名。DNS服务器在收到客户机的请求后:
(1)检查DNS服务器的缓存,若查到请求的地址或名字,即向客户机发出应答信息;
(2)若没有查到,则在自身配置中查找,若查到请求的地址或名字,即向客户机发出应答信息;
(3)若没有查到,则将请求发给根域DNS服务器,并依序从根域查找*域,由*查找二级域,二级域查找三级,直至找到要解析的地址或
名字,即向客户机所在网络的DNS服务器发出应答信息,DNS服务器收到应答后现在缓存中存储,然后,将解析结果发给客户机;
(4)若没有找到,则返回错误信息;
9、DNS的分类:
(1)主DNS服务器:就是一台存储着原始资料的DNS服务器;
(2)从DNS服务器:使用自动更新方式从主DNS服务器同步数据的DNS服务器。也成辅助DNS服务器;
(3)缓存服务器:不负责本地解析,采用递归方式转发客户机查询请求,并返回结果给客户机的DNS服务器。同时缓存查询回来的结果,也叫递归服务器;
(4)转发器(常用):这台DNS发现非本机负责的查询请求时,不再向根域发起请求,而是直接转发给指定的一台或者多台服务器。自身并不缓存查询结果;
10、dns中记录的类型:
(1)SOA(记录开始):
可以理解为一段为自己dns做备注说明的文本,一般与ns一致;
SOA记录设置一些数据版本和更新以及过期时间的信息;
(2)NS:
域的授权名称服务器;
NS记录表示域名服务器记录搜索,用来指定该域名由哪个DNS服务器来进行解析;
(3)MX:
域的邮件交换器,要跟着一个优先级值,越小越高;
(4)A:
IPV4主机地址;
(5)AAAA:
IPV6主机地址;
(6)PTR:
解析IP的指针,反向记录;
(7)CNAME:
权威(正式)名称,定义别名记录;
11、dns解析常用的命令:
DIG、NSLOOKUP、HOST;
12、dns环境准备:
(1)dns级别和ip地址配置:
服务器的主机名 |
dns级别 |
ip地址 |
master-node1 |
主dns |
172.16.1.90 |
slave-node1 |
从dns |
172.16.1.91 |
(2)硬件设备:
Cpu:12c以上配置
内存:16G
网络:千兆
(3)系统设置:
1)关闭防火墙:
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service
2)关闭selinux:
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
grep "SELINUX=disabled" /etc/selinux/config
setenforce 0
getenforce
3)调整ulimit限制:
echo -e '* soft nproc 65536\n* hard nproc 65536\n* soft nofile 65536\n* hard nofile 65536\n' >>/etc/security/limits.conf
3.2、主dns搭建:
1、安装dns相关的软件:
yum install bind-utils bind bind-devel bind-chroot
rpm -qa bind*
bind-utils-9.9.4-73.el7_6.x86_64
bind-license-9.9.4-73.el7_6.noarch
bind-9.9.4-73.el7_6.x86_64
bind-devel-9.9.4-73.el7_6.x86_64
bind-libs-lite-9.9.4-73.el7_6.x86_64
bind-libs-9.9.4-73.el7_6.x86_64
bind-chroot-9.9.4-73.el7_6.x86_64
2、配置dns主配置文件:
cp -a /etc/named.conf{,.bak}
vim /etc/named.conf
options {
version "1.1.1";
#版本;
masterfile-format text;
#zone文件的格式;
listen-on port 53 { any; };
#监听的ip地址和端口号;
directory "/var/named/chroot/etc/";
#dns的安全控制根;
#pid-file "/var/named/chroot/var/run/named/named.pid";
pid-file "/run/named/named.pid";
allow-query { any; };
#可以访问dns的ip地址;
Dump-file "/var/named/chroot/var/log/binddump.db";
Statistics-file "/var/named/chroot/var/log/named_stats";
#记录dns统计的文件;
zone-statistics yes;
#打开dns统计记录的功能;
memstatistics-file "log/mem_stats";
empty-zones-enable no;
#不允许配置的dns域为空;
forwarders { 114.114.114.114;8.8.8.8; };
#dns向上查找的dns地址;
};
key "rndc-key" {
algorithm hmac-md5;
secret "Eqw4hClGExUWeDkKBX/pBg==";
};
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
logging {
channel warning {
file "/var/named/chroot/var/log/dns_warning" versions 10 size 10m;
severity warning;
print-category yes;
print-severity yes;
print-time yes;
};
channel general_dns {
file "/var/named/chroot/var/log/dns_log" versions 10 size 100m;
severity info;
print-category yes;
print-severity yes;
print-time yes;
};
category default {
warning;
};
category queries {
general_dns;
};
};
include "/var/named/chroot/etc/view.conf";
3、配置rndc:
rndc可以在不停止DNS服务器工作的情况进行数据的更新,使修改后的配置文件生效;
(1)添加/etc/rndc.key文件:
vim /etc/rndc.key
key "rndc-key" {
algorithm hmac-md5;
secret "Eqw4hClGExUWeDkKBX/pBg==";
};
(2)添加/etc/rndc.conf文件:
vim /etc/rndc.conf
key "rndc-key" {
algorithm hmac-md5;
secret "Eqw4hClGExUWeDkKBX/pBg==";
};
options {
default-key "rndc-key";
default-server 127.0.0.1;
default-port 953;
};
4、配置dns主配置文件中include包含的文件:
主要定义dns正向|反向域名解析的域文件;
vim /var/named/chroot/etc/view.conf
view "View" {
zone "lc-dns.com" {
type master;
file "lc-dns.com.zone";
allow-transfer {
172.16.1.91;
};
notify yes;
also-notify {
172.16.1.91;
};
};
zone "16.172.in-addr.arpa" {
type master;
file "16.172.zone";
allow-transfer {
172.16.1.91;
};
notify yes;
also-notify {
172.16.1.91;
};
};
};
5、配置dns正向域名解析的域文件:
(1)配置文件:
vim /var/named/chroot/etc/lc-dns.com.zone
$ORIGIN .
$TTL 3600 ; 1 hour
lc-dns.com IN SOA dns.lc-dns.com. dns1.lc-dns.com. (
2000 ; serial
900 ; refresh (15 minutes)
600 ; retry (10 minutes)
86400 ; expire (1 day)
3600 ; minimum (1 hour)
)
NS dns.lc-dns.com.
$ORIGIN lc-dns.com.
dns A 172.16.1.90
lc1 A 172.16.1.92
lc2 CNAME lc1
mx MX 5 172.16.1.93
(2)参数说明:
0)$TTL 3600 ; 1 hour:
表示一条域名解析记录在DNS服务器上缓存时间;
1)Serial:
只是一个序号,但这个序号可被用来作为 slave 与 master 更新的依据。 举例来说, master 序号为 100 但 slave 序号
为 90 时,当在master端执行 rndc reload 命令时 master端的 zone file 中的数据就会被传送到 slave 来更新了。由于这个序
号代表新旧资料,通常我们建议利用日期来设定,举例来说,2006/10/20 第一次更新,所以用 2006102001 作为序号代表;
2)Refresh:除了根据 Serial 来判断新旧之外,我们可以利用这个 refresh(更新) 命令 slave 多久进行一次主动更新;
3)Retry:如果到了 Refresh 的时间,但是 slave 却无法连接到 master 时, 那么在多久之后,slave 会再次的主动尝试与主机连线;
4)Expire:如果 slave 一直无法与 master 连接上,那么经过多久的时间之后 slave 不要再连接 master 了,也就是说,此时
我们假设 master DNS 可能遇到重大问题而无法上线,则等待系统管理员处理完毕后, 需要重新到 slave DNS 重新启动 bind,恢复slave的主动更新;
5)Minimun:这个就有点象是 TTL;
(3)注意:做cnam时A记录必须要存在;
6、配置dns反向域名解析的域文件:
vim /var/named/chroot/etc/16.172.zone
$ORIGIN .
$TTL 3600 ; 1 hour
16.172.in-addr.arpa IN SOA dns.lc-dns.com. dns1.lc-dns.com. (
2000 ; serial
900 ; refresh (15 minutes)
600 ; retry (10 minutes)
86400 ; expire (1 day)
3600 ; minimum (1 hour)
)
NS dns.lc-dns.com.
$ORIGIN 16.172.in-addr.arpa.
90.1 PTR dns.lc-dns.com.
92.1 PTR lc1.lc-dns.com.
92.1 PTR lc2.lc-dns.com.
93.1 PTR mx.lc-dns.com.
7、修改目录权限:
chown -R named.named /var/named/
8、检查配置文件:
(1)检查dns的主配置文件:
named-checkconf /etc/named.conf
(2)检查dns的zone文件:
1)检查正向解析文件:
named-checkzone lc-dns.com /var/named/chroot/etc/lc-dns.com.zone
/var/named/chroot/etc/lc-dns.com.zone:15: warning: '172.16.1.93': MX is an address
zone lc-dns.com/IN: mx.lc-dns.com/MX '172.16.1.93.lc-dns.com' has no address records (A or AAAA)
zone lc-dns.com/IN: loaded serial 2022
OK
2)检查反向解析文件:
named-checkzone 16.172.in-addr.arpa /var/named/chroot/etc/16.172.zone
zone 16.172.in-addr.arpa/IN: loaded serial 2000
OK
9、启动dns并加入到开机自启动中:
systemctl start named.service
systemctl enable named.service
3.3、从dns搭建:
1、安装dns相关的软件:
yum install bind-utils bind bind-devel bind-chroot
rpm -qa bind*
bind-utils-9.9.4-73.el7_6.x86_64
bind-license-9.9.4-73.el7_6.noarch
bind-9.9.4-73.el7_6.x86_64
bind-devel-9.9.4-73.el7_6.x86_64
bind-libs-lite-9.9.4-73.el7_6.x86_64
bind-libs-9.9.4-73.el7_6.x86_64
bind-chroot-9.9.4-73.el7_6.x86_64
2、配置主配置文件:
cp -a /etc/named.conf{,.bak}
vim /etc/named.conf
options {
version "1.1.1";
#版本;
masterfile-format text;
#zone文件的格式;
listen-on port 53 { any; };
#监听的ip地址和端口号;
directory "/var/named/chroot/etc/";
#dns的安全控制根;
#pid-file "/var/named/chroot/var/run/named/named.pid";
pid-file "/run/named/named.pid";
allow-query { any; };
#可以访问dns的ip地址;
Dump-file "/var/named/chroot/var/log/binddump.db";
Statistics-file "/var/named/chroot/var/log/named_stats";
#记录dns统计的文件;
zone-statistics yes;
#打开dns统计记录的功能;
memstatistics-file "log/mem_stats";
empty-zones-enable no;
#不允许配置的dns域为空;
forwarders { 114.114.114.114;8.8.8.8; };
#dns向上查找的dns地址;
};
key "rndc-key" {
algorithm hmac-md5;
secret "Eqw4hClGExUWeDkKBX/pBg==";
};
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
logging {
channel warning {
file "/var/named/chroot/var/log/dns_warning" versions 10 size 10m;
severity warning;
print-category yes;
print-severity yes;
print-time yes;
};
channel general_dns {
file "/var/named/chroot/var/log/dns_log" versions 10 size 100m;
severity info;
print-category yes;
print-severity yes;
print-time yes;
};
category default {
warning;
};
category queries {
general_dns;
};
};
include "/var/named/chroot/etc/view.conf";
3、配置rndc:
(1)添加/etc/rndc.key文件:
vim /etc/rndc.key
key "rndc-key" {
algorithm hmac-md5;
secret "Eqw4hClGExUWeDkKBX/pBg==";
};
(2)添加/etc/rndc.conf文件:
vim /etc/rndc.conf
key "rndc-key" {
algorithm hmac-md5;
secret "Eqw4hClGExUWeDkKBX/pBg==";
};
options {
default-key "rndc-key";
default-server 127.0.0.1;
default-port 953;
};
4、配置dns主配置文件中include包含的文件:
主要定义dns正向|反向域名解析的域文件;
vim /var/named/chroot/etc/view.conf
view "SlaveView" {
zone "lc-dns.com" {
type slave;
masters { 172.16.1.90; };
file "slave.lc-dns.com.zone";
};
zone "16.172.in-addr.arpa" {
type slave;
masters { 172.16.1.90; };
file "slave.16.172.zone";
};
};
5、修改目录权限:
chown -R named.named /var/named/
6、检查配置文件:
(1)检查dns的主配置文件:
named-checkconf /etc/named.conf
7、启动dns并加入到开机自启动中:
systemctl start named.service
systemctl enable named.service
8、查看从的zone文件:
(1)从 dns 启动后会自动从主 dns 服务器拷贝数据,生成正向slave.16.172.zone域名解
析和反向slave.lc-dns.com.zone域名解析文件;
(2)ls /var/named/chroot/etc/slave.*
/var/named/chroot/etc/slave.16.172.zone /var/named/chroot/etc/slave.lc-dns.com.zone
3.4、dns测试:
1、正向域名解析测试:
(1)nslookup和host解析:
nslookup|host lc1.lc-dns.com 172.16.1.90|91
Server: 172.16.1.90|91
Address: 172.16.1.90|91#53
Name: lc1.lc-dns.com
Address: 172.16.1.92
(2)dig解析(dig命令智能用于正向域名解析):
dig @172.16.1.90 lc1.lc-dns.com
; <<>> DiG 9.9.4-RedHat-9.9.4-73.el7_6 <<>> @172.16.1.90|91 lc1.lc-dns.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49975
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;lc1.lc-dns.com. IN A
;; ANSWER SECTION:
lc1.lc-dns.com. 3600 IN A 172.16.1.92
;; AUTHORITY SECTION:
lc-dns.com. 3600 IN NS dns.lc-dns.com.
;; ADDITIONAL SECTION:
dns.lc-dns.com. 3600 IN A 172.16.1.90
;; Query time: 1 msec
;; SERVER: 172.16.1.90|91#53(172.16.1.90|91)
;; WHEN: 日 4月 21 21:50:42 CST 2019
;; MSG SIZE rcvd: 93
2、反向域名解析测试:
(1)nslookup和host解析:
nslookup|host 172.16.1.92 172.16.1.90|91
Server: 172.16.1.90|91
Address: 172.16.1.90|91#53
92.1.16.172.in-addr.arpa name = lc1.lc-dns.com.
92.1.16.172.in-addr.arpa name = lc2.lc-dns.com.
3、别名解析:
(1)正向解析:
nslookup|host lc2.lc-dns.com 172.16.1.90|91
dig @172.16.1.90|91 lc2.lc-dns.com
(2)反向解析:
nslookup|host 172.16.1.92 172.16.1.90|91
4、邮件服务解析测试:
mx服务只能使用host命令进行解析;
(1)正向域名解析测试:
host mx.lc-dns.com 172.16.1.90|91
Using domain server:
Name: 172.16.1.90|91
Address: 172.16.1.90|91#53
Aliases:
mx.lc-dns.com mail is handled by 5 172.16.1.93.lc-dns.com.
(2)反向域名解析测试:
host 172.16.1.93 172.16.1.90|91
Using domain server:
Name: 172.16.1.90|91
Address: 172.16.1.90|91#53
Aliases:
93.1.16.172.in-addr.arpa domain name pointer mx.lc-dns.com.
3.5、dns补充:
1、dns压力测试:
(1)安装dns压力测试软件:
mkdir /tools
cd /tools/
wget https://ftp.isc.org/isc/bind/9.7.3/bind-9.7.3.tar.gz
tar -xzf bind-9.7.3.tar.gz
cd bind-9.7.3/contrib/queryperf/
./configure
make
(2)进行压力测试:
1)编写查询测试文件:
vim /tmp/querytest.txt
dns.lc-dns.com A
lc1.lc-dns.com A
lc2.lc-dns.com CNAME
mx.lc-dns.com MX
2)测试:
/tools/bind-9.7.3/contrib/queryperf/queryperf -d /tmp/querytest.txt -s 172.16.1.90
DNS Query Performance Testing Tool
Version: $Id: queryperf.c,v 1.12 2007-09-05 07:36:04 marka Exp $
[Status] Processing input data
[Status] Sending queries (beginning with 172.16.1.90)
[Status] Testing complete
Statistics:
Parse input file: once
Ended due to: reaching end of file
Queries sent: 4 queries
Queries completed: 4 queries
Queries lost: 0 queries
Queries delayed(?): 0 queries
RTT max: 0.008393 sec
RTT min: 0.008365 sec
RTT average: 0.008378 sec
RTT std deviation: 0.000028 sec
RTT out of range: 0 queries
Percentage completed: 100.00%
Percentage lost: 0.00%
Started at: Mon Apr 22 00:39:06 2019
Finished at: Mon Apr 22 00:39:06 2019
Ran for: 0.008442 seconds
Queries per second: 473.821369 qps #每秒查询的次数,即每秒dns解析量;
(3)补充:
1)dns查询总量统计;
rndc stats
WARNING: key file (/etc/rndc.key) exists, but using default configuration file (/etc/rndc.conf)
cat /var/named/chroot/var/log/named_stats
+++ Statistics Dump +++ (1555857949)
++ Incoming Requests ++
57 QUERY #总共接收请求的次数,重启服务后清零;
++ Incoming Queries ++
13 A
38 SOA
3 PTR
1 MX
1 AAAA
1 IXFR
......
2、用dns做简单的负载均衡:
单个域名对应多个ip,可以做主从、正反向解析;
缺点没有健康检查,有点是部署简单;
(1)正向域名解析文件配置如下:
cat /var/named/chroot/etc/lc-dns.com.zone
$ORIGIN .
$TTL 3600 ; 1 hour
lc-dns.com IN SOA dns.lc-dns.com. dns1.lc-dns.com. (
2022 ; serial
900 ; refresh (15 minutes)
600 ; retry (10 minutes)
86400 ; expire (1 day)
3600 ; minimum (1 hour)
)
NS dns.lc-dns.com.
$ORIGIN lc-dns.com.
dns A 172.16.1.90
lc1 A 172.16.1.92
lc2 CNAME lc1
mx MX 5 172.16.1.93
db A 172.16.1.1
db A 172.16.1.2
db A 172.16.1.3
(2)反向域名解析文件配置如下:
cat /var/named/chroot/etc/16.172.zone
$ORIGIN .
$TTL 3600 ; 1 hour
16.172.in-addr.arpa IN SOA dns.lc-dns.com. dns1.lc-dns.com. (
2022 ; serial
900 ; refresh (15 minutes)
600 ; retry (10 minutes)
86400 ; expire (1 day)
3600 ; minimum (1 hour)
)
NS dns.lc-dns.com.
$ORIGIN 16.172.in-addr.arpa.
90.1 PTR dns.lc-dns.com.
92.1 PTR lc1.lc-dns.com.
92.1 PTR lc2.lc-dns.com.
93.1 PTR mx.lc-dns.com.
1.1 PTR db.lc-dns.com.
2.1 PTR db.lc-dns.com.
3.1 PTR db.lc-dns.com.
(3)正向域名解析测试:
for((i=1;i<=3;i++));do nslookup db.lc-dns.com 172.16.1.90|91;done
Server: 172.16.1.90|91
Address: 172.16.1.90|91#53
Name: db.lc-dns.com
Address: 172.16.1.2
Name: db.lc-dns.com
Address: 172.16.1.1
Name: db.lc-dns.com
Address: 172.16.1.3
Server: 172.16.1.90|91
Address: 172.16.1.90|91#53
Name: db.lc-dns.com
Address: 172.16.1.1
Name: db.lc-dns.com
Address: 172.16.1.2
Name: db.lc-dns.com
Address: 172.16.1.3
Server: 172.16.1.90|91
Address: 172.16.1.90|91#53
Name: db.lc-dns.com
Address: 172.16.1.3
Name: db.lc-dns.com
Address: 172.16.1.1
Name: db.lc-dns.com
Address: 172.16.1.2
#由上面的结果可知,解析域名时,IP地址轮换,以实现dns负载均衡的目的;
(4)反向域名解析测试:
nslookup 172.16.1.1|2|3 172.16.1.90|91
Server: 172.16.1.90|91
Address: 172.16.1.90#53
3|2|1.1.16.172.in-addr.arpa name = db.lc-dns.com.
#每次反向解析的域名都一样;
3、智能dns:
单个域名对应多个ip,不能配置主从(导致数据不一致),可以做正反向解析;
(1)智能dns介绍:
智能DNS解析是针对电信和网通互联互通不畅的问题推出的一种DNS解决方案;
具体实现是把同样的域名记录分别设置指向网通和电信IP,当网通的客户访问时,智能DNS会自动判断访问
者来路,并返回网通服务器的IP地址,电信的客户访问时会自动返回电信的IP地址;这样就可以避免网通的客户
去访问电信的网络,以及电信的客户去访问网通的网络,很好的解决了客户跨网访问不畅的问题,当然亦可加入
多IP,由智能DNS自动“选路”;相同的线路的IP地址可以做负载均衡、宕机检测等功能;
(2)配置 master dns 节点:
前提条件,已经配置好了 /etc/named.conf 和 rndc.conf、rndc.key 配置文件;
1)编辑 vim /etc/named.conf,在include上面添加如下内容:
acl group1 {
172.16.1.90;
};
acl group2 {
172.16.1.91;
};
#配置客户端ip组;
2)编辑 vim /var/named/chroot/etc/view.conf为:
view "Group1" {
match-clients { group1; };
zone "lc-dns.com" {
type master;
file "group1.lc-dns.com.zone";
};
};
view "Group2" {
match-clients { group2; };
zone "lc-dns.com" {
type master;
file "group2.lc-dns.com.zone";
};
};
3)vim /var/named/chroot/etc/group1.lc-dns.com.zone,group1域文件:
$ORIGIN .
$TTL 3600 ; 1 hour
lc-dns.com IN SOA dns.lc-dns.com. dns1.lc-dns.com. (
2000 ; serial
900 ; refresh (15 minutes)
600 ; retry (10 minutes)
86400 ; expire (1 day)
3600 ; minimum (1 hour)
)
NS dns.lc-dns.com.
$ORIGIN lc-dns.com.
dns A 172.16.1.90
test A 172.16.1.200
4)vim /var/named/chroot/etc/group2.lc-dns.com.zone,group2域文件:
$ORIGIN .
$TTL 3600 ; 1 hour
lc-dns.com IN SOA dns.lc-dns.com. dns1.lc-dns.com. (
2000 ; serial
900 ; refresh (15 minutes)
600 ; retry (10 minutes)
86400 ; expire (1 day)
3600 ; minimum (1 hour)
)
NS dns.lc-dns.com.
$ORIGIN lc-dns.com.
dns A 172.16.1.90
test A 172.16.1.201
5)修改权限:
chown -R named.named /var/named/
6)检查配置:
A、检查主配置文件:
named-checkconf /etc/named.conf
B、检查正向解析文件:
named-checkzone lc-dns.com /var/named/chroot/etc/group1.lc-dns.com.zone
named-checkzone lc-dns.com /var/named/chroot/etc/group2.lc-dns.com.zone
zone lc-dns.com/IN: loaded serial 2000
OK
7)启动dns:
systemctl start named
(3)测试智能dns:
1)在172.16.1.90主机上进行测试:
nslookup test.lc-dns.com 172.16.1.90
Server: 172.16.1.90
Address: 172.16.1.90#53
Name: test.lc-dns.com
Address: 172.16.1.200
2)在172.16.1.91主机上进行测试:
nslookup test.lc-dns.com 172.16.1.90
Server: 172.16.1.90
Address: 172.16.1.90#53
Name: test.lc-dns.com
Address: 172.16.1.201
3.6、总结:
1、通常域名和ip的对应关系为一对一或者是多对一;
2、也可以使用一对多,通常用于dns负载(可以主从和正反向解析)和智能dns(不能主从,导致数据不一致;可以正反向解析);
3、手动主从同步的方法:
(1)不管在主或从 dns 上执行 rndc reload 命令,只要从 dns zone 文件的 serial 值小于主 dns serial 的值
就可以复制主 dns zone 文件上的数据;
(2)/var/named/chroot/etc/view.conf中的配置,一个 view{} 就是代表一个域名,中间包括正向和反向解析的域文件,主从 dns 就是根据
正向解析域名(lc-dns.com)和反向解析域名(16.172.in-addr.arpa)来判断的;要尽量保持不同的view的名称的正反解析文件的不同,不然后导致解析错乱;
(3)在主dns修改zone文件后需要将serial+1,或者在从dns将zone文件的serial-1也可;
(4)优雅的重启dns,此命令必须在服务dns服务启动的情况下才能够使用;
rndc reload
WARNING: key file (/etc/rndc.key) exists, but using default configuration file (/etc/rndc.conf)
server reload successful
4、远程cop命令:
(1)保留原始权限:
rsync -av /etc/named.conf root@172.16.1.91:/etc/
(2)权限更改为
scp -P22 /etc/named.conf root@172.16.1.91:/etc/
5、同步方法:
(1)同步类型:
实时,定时;
同步(两者一致)和异步(两者不一致);
增量、差异;
(2)这里使用的同步类型:
定时——异步——差异
6、dns架构设计:
7、dns的面试题:
(1)DNS中递归查询与迭代查询的区别:
1)递归查询:
一般客户机和服务器之间属递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向
另外的DNS服务器发出查询请求,得到结果后转交给客户机;
2)迭代查询(反复查询):
一般DNS服务器之间属迭代查询,如:若DNS2不能响应DNS1的请求,则它会将DNS3的IP给DNS2,以便其再向DNS3发出请求;
3)举例说明:
A、用户发起域名请求到dnsA,这时dnsA有这个记录,将结果返回给用户,这个过程是递归查询;
B、用户发起域名请求到dnsA,这时dnsA没有这个记录,他去向dnsB问有没有这个记录,以此类推,直到把结果返回给用户,这个过程是递归查询;
C、用户发起域名请求到dnsA,这时dnsA没有这个记录,他告诉用户,我没有这个记录,你去问dnsB吧,这个过程是迭代查询;