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

3、dns服务搭建的更多相关文章

  1. centos DNS服务搭建 DNS原理 使用bind搭建DNS服务器 配置DNS转发 配置主从 安装dig工具 DHCP dhclient 各种域名解析记录 mydns DNS动态更新 第三十节课

    centos  DNS服务搭建  DNS原理  使用bind搭建DNS服务器 配置DNS转发 配置主从  安装dig工具  DHCP  dhclient  各种域名解析记录  mydns DNS动态更 ...

  2. DNS服务——搭建企业内网DNS服务器的作用

    前言 DNS服务——服务端 和 客户端 配置 介绍了如何在DNS安装DNS服务,更改一下配置文件就可以依据根提示解析全球域名.既然使用互联网上的DNS服务器就可以解析全球域名,为何还要自掏腰包搭建DN ...

  3. DNS服务搭建(正反向解析)

    版权声明:本文为博主原创文章,支持原创,转载请附上原文出处链接和本声明. 本文地址链接:https://www.cnblogs.com/wannengachao/p/11954625.html 1.安 ...

  4. dns服务搭建

    DNS 是域名系统 (Domain Name System) 的缩写,它是由解析器和域名服务器组成的. 域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器 ...

  5. DNS服务——域名解析委派

    域名解析委派 域名解析委派和DNS域名解析递归查询很像,举个例子解释域名解析委派 ①假设在.net域名下有台计算机想要访问www.cac.com. ②.net这台DNS服务器不知道www.cac.co ...

  6. DNS服务——正向查找区 和 逆向查找区

    前言 正向查找区,就是我们最熟知的DNS.即根据域名解析成IP 逆向查找区,即根据IP解析成域名. 他们之间的关系很像ARP和RARP 正向查找区 /etc/named.rfc1912.zones用于 ...

  7. 如何搭建DNS服务

    继NTP时间服务器后,继续搭建DNS服务,鉴于昨晚撰写时间超过预期,这次改变策略,先把自己需要用到的部分写出来(主要是基于RAC的搭建,只涉及正向和反向DNS解析),后面再添加必要的说明和阐述. 试验 ...

  8. 如何搭建DNS服务(转)

    继NTP时间服务器后,继续搭建DNS服务,鉴于昨晚撰写时间超过预期,这次改变策略,先把自己需要用到的部分写出来(主要是基于RAC的搭建,只涉及正向和反向DNS解析),后面再添加必要的说明和阐述. 试验 ...

  9. 在k8s中搭建可解析hostname的DNS服务

    2016-01-25更新 上篇文章总结k8s中搭建hbase时,遇到Pod中hostname的DNS解析问题,本篇将通过修改kube2sky源码来解决这个问题. 1 前言 kube2sky在Githu ...

随机推荐

  1. 删除rpc01

    vim /opt/ltp/runtest/stress.part3 修改/opt/ltp/runtest/stress.part3 删除rpc01: 142 systemctl status gdm ...

  2. Msf--永恒之蓝 ms17_010

    |>>>中华人民共和国网络安全法<<<|警告:请勿用于非法用途,后果自负! 简介 一.概述 永恒之蓝是指2017年4月14日晚,黑客团体Shadow Brokers ...

  3. Docker Swarm(一)集群部署

    一.机器环境 机器规划 172.16.0.89 swarm的manager节点 manager-node 172.16.0.90 swarm的node节点 node1 机器版本(均是:CentOS L ...

  4. 最适合新手的Redis Cluster搭建过程

    好记性不如烂笔头,记录分片高可用Redis Cluster的搭建过程 Redis集群演进过程 Redis单节点 主从复制: 复制主要实现了数据的多机备份,以及对于读操作的负载均衡和简单的故障恢复. 故 ...

  5. Docker学习(6) 获取和推送镜像

    查找镜像 拉取镜像 推送镜像 总结

  6. 自动驾驶QNX,Linux,Autosar概述

    自动驾驶QNX,Linux,Autosar概述 QNX是一个分布式.嵌入式.可规模扩展的实时操作系统.遵循POSIX.1 (程序接口)和POSIX.2 (Shell和工具).部分遵循POSIX.1b( ...

  7. Python分析离散心率信号(下)

    Python分析离散心率信号(下) 如何使用动态阈值,信号过滤和离群值检测来改善峰值检测. 一些理论和背景 到目前为止,一直在研究如何分析心率信号并从中提取最广泛使用的时域和频域度量.但是,使用的信号 ...

  8. Netty 框架学习 —— ByteBuf

    概述 网络数据的基本单位总是字节,Java NIO 提供了 ByteBuffer 作为它的字节容器,但这个类的使用过于复杂.Netty 的 ByteBuf 具有卓越的功能性和灵活性,可以作为 Byte ...

  9. 【SQLite】教程03-SQLite语法

    注释: sqlite>.help -- 这是一个简单的注释 SQLite ANALYZE 语句: 收集有关表和索引的统计信息,并将收集的信息存储在数据库的内部表中 ANALYZE; or ANA ...

  10. CLR里的MethodTable,MethodDescChunk,MethodDesc,FixUpPreCode都是什么意思

    一:看下面一些概念 1MethodTable MethodTable可以说在CLR里面无处不在,这个东西主要是作为对象的数据类型存在,主要包含了EEClass 模块地址,类型名称,模块路径等. 2.E ...