3、dns服务搭建

时间:2022-02-11 19:28:00

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客户。

完整的名字解析过程如下图所示:

3、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架构设计:

3、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吧,这个过程是迭代查询;