自定义正解域

自定义区域配置文件

自定义区域的配置范例如下:

1
2
3
4
5
zone "host.com" IN {
type master;
file "host.com.zone";
allow-update { 10.4.7.11;10.4.7.12; };
};

这里自定义了一个host.com的主机域,可以放在/etc/named.rfc1912.zones文件中,也可以放置在自定义的文件中,在/etc/named.conf里include进来

主机域

  • 主机域和业务域无关,且建议分开
  • 主机域其实是一个假域,也就是说,主机域其实是不能解析到互联网上的,它只对局域网(内网)提供服务

自定义区域数据库文件

  • 一般而言是文本文件,且只包含资源记录宏定义注释
  • 需在自定义区域配置文件中指定存放路径,可以绝对路径或相对路径(相对于/var/named目录)
  • 注意文件的属性(属主、属组及权限)

配置范例

1
2
3
4
5
6
7
8
9
10
11
12
13
$ORIGIN .
$TTL 600 ; 10 minutes
host.com IN SOA ns1.host.com. dnsadmin.host.com. (
2018121601 ; serial
10800 ; refresh (3 hours)
900 ; retry (15 minutes)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
NS ns1.host.com.
$ORIGIN host.com.
$TTL 60 ; 1 minute
ns1 A 10.4.7.11

资源记录(Resource Record)

资源记录格式

1
name [ttl(缓存时间)] IN 资源记录类型(RRtype)  Value

常用资源记录类型(RR-type)

SOA记录

SOA: 起始授权,只能有一条

  • name:只能是区域名称,通常可以简写为@,例如:od.com.
  • value:有n个数值,最主要的是主DNS服务器的FQDN,点不可省略

注意:SOA必须是区域数据库文件第一条记录

例子:

1
2
3
4
5
6
7
@ 600 IN SOA  dns.host.com. 管理员邮箱(dnsadmin.host.com.)(
序列号(serial number) ;注释内容,十进制数据,不能超过10位,通常使用日期时间戳,例如2018121601
刷新时间(refresh time) ;即每隔多久到主服务器检查一次
重试时间(retry time) ;应该小于refresh time
过期时间(expire time);当辅助DNS服务器无法联系上主DNS服务器时,辅助DNS服务器可以在多长时间内认为其缓存是有效的,并供用户查询。
netgative answer ttl ;非权威应答的ttl,缓存DNS服务器可以缓存记录多长时间

NS记录

NS:可以有多条,每一个NS记录,必须对应一个A记录

  • name:区域名称,通常可以简写为@
  • value:DNS服务器的FQDN(可以使用相对名称)

    例子:

    1
    @ 600 IN NS ns1

A记录

A:只能定义在正向区域数据库文件中(ipv4->FQDN)

  • name:FQDN(可以使用相对名称)
  • value:IP

    例子:

    1
    2
    www  600(单位s) IN A 10.4.7.11
    www 600(单位s) IN A 10.4.7.12

 可以做轮询

MX记录

MX:邮件交换记录,可以有多个(用的不多)

  • name:区域名称,用于标识smtp服务器
  • value:包含优先级和FQDN
  • 优先级:0-99,数字越小,级别越高,

    例子:

    1
    2
    @ 600 IN MX 10 mail
    @ 600 IN MX 20 smtp

CNAME记录

CNAME:canonical name,别名(FQDN->FQDN)

  • name :FQDN
  • value :FQDN

    例子:

    1
    eshop IN CNAME www

宏定义

  • $ORIGIN .
  • $TTL 60

注释

区域数据库文件中使用;(分号)来进行注释

实战正解主机域配置

在/etc/named.rfc1912.zones文件内最下,添加以下内容

1
2
3
4
5
zone "host.com" IN {
type master;
file "host.com.zone";
allow-update { 10.4.7.11;10.4.7.12; };
};

在/var/named下创建host.com.zone文件,写入以下内容

/var/named/host.com.zone
1
2
3
4
5
6
7
8
9
10
11
12
13
$TTL 600	; 10 minutes
@ IN SOA dns.host.com. 87527941.qq.com. (
2018121601 ; serial
10800 ; refresh (3 hours)
900 ; retry (15 minutes)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
NS dns.host.com.
$ORIGIN host.com.
$TTL 60 ; 1 minute
HDSS7-11 A 10.4.7.11
dns A 10.4.7.11

三种配置方式:

  • 用宏定义$ORIGIN . 下面用host.com
  • 不用宏定义,下面用@
  • 不用宏定义,下面用host.com.

检查配置并生效

检查自定义区域配置

1
2
3
#named-checkzone host.com. /var/named/host.com.zone
zone host.com/IN: loaded serial 2018121601
OK

检查主配置文件

1
#named-checkconf

重启named服务

1
#systemctl restart named

检查该正解域是否生效

配置主机名

1
2
# hostnamectl set-hostname hdss7-11.host.com
# logout

开启第二台虚机,配置好DNS后验证解析

维护正解域(增、删、改、查)

增加一条资源记录

/var/named/host.com.zone
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$TTL 600	; 10 minutes
@ IN SOA dns.host.com. 87527941.qq.com. (
2018121602 ; serial
10800 ; refresh (3 hours)
900 ; retry (15 minutes)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
NS dns.host.com.
$ORIGIN host.com.
$TTL 60 ; 1 minute
HDSS7-11 A 10.4.7.11
HDSS7-12 A 10.4.7.12
dns A 10.4.7.11

增加一个HDSS7-12.host.com的A记录解析,并验证

修改一条资源记录

10.4.7.12这台主机增加一个辅助ip

1
# ip addr add 10.4.7.13/24 dev eth0

修改DNS服务器上的区域数据库文件

/var/named/host.com.zone
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$TTL 600	; 10 minutes
@ IN SOA dns.host.com. 87527941.qq.com. (
2018121603 ; serial
10800 ; refresh (3 hours)
900 ; retry (15 minutes)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
NS dns.host.com.
$ORIGIN host.com.
$TTL 60 ; 1 minute
HDSS7-11 A 10.4.7.11
HDSS7-12 A 10.4.7.13
dns A 10.4.7.11

修改HDSS7-12.host.com的A记录解析,指向新增的辅助ip10.4.7.13
检查:

1
2
3
4
5
6
7
8
9
ping HDSS7-12.host.com
ING hdss7-12.host.com (10.4.7.13) 56(84) bytes of data.
64 bytes from 10.4.7.13 (10.4.7.13): icmp_seq=1 ttl=64 time=0.318 ms
64 bytes from 10.4.7.13 (10.4.7.13): icmp_seq=2 ttl=64 time=0.206 ms
64 bytes from 10.4.7.13 (10.4.7.13): icmp_seq=3 ttl=64 time=0.391 ms
^C
--- hdss7-12.host.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 0.206/0.305/0.391/0.076 ms

删除一条资源记录

/var/named/host.com.zone
1
2
3
4
5
6
7
8
9
10
11
12
13
$TTL 600	; 10 minutes
@ IN SOA ns1.host.com. dnsadmin.host.com. (
2018121604 ; serial
10800 ; refresh (3 hours)
900 ; retry (15 minutes)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
NS ns1.host.com.
$ORIGIN host.com.
$TTL 60 ; 1 minute
ns1 A 10.4.7.11
HDSS7-11 A 10.4.7.11

删除HDSS7-12.host.com的A记录解析,并验证

查询记录

实验文档3:自定义反解域


欢迎加入王导的VIP学习qq群:==>932194668<==


添加反解域的自定义区域配置

/etc/named.rfc1912.zones
1
2
3
4
5
zone "7.4.10.in-addr.arpa" IN {
type master;
file "7.4.10.in-addr.arpa.zone";
allow-update { 10.4.7.11;10.4.7.12; };
};

添加反解域的区域数据库文件

/var/named/7.4.10.in-addr.arpa.zone
1
2
3
4
5
6
7
8
9
10
11
12
13
$TTL 600	; 10 minutes
@ IN SOA dns.host.com. dnsadmin.host.com. (
2018121603 ; serial
10800 ; refresh (3 hours)
900 ; retry (15 minutes)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
NS ns1.host.com.
$ORIGIN 7.4.10.in-addr.arpa.
$TTL 60 ; 1 minute
11 PTR HDSS7-11.host.com.
12 PTR HDSS7-12.host.com.

注意:一个IP只能对应唯一的FQDN反解PTR记录,且应该与正解A记录对应

检查反解域的配置

1
2
3
[root@hdss7-11 ~]# named-checkzone 7.4.10.in-addr.arpa /var/named/7.4.10.in-addr.arpa.zone
zone 7.4.10.in-addr.arpa/IN: loaded serial 2018121603
OK

重启BIND9服务

1
[root@hdss7-11 ~]# systemctl restart named.service

检查解析是否生效

  • 方法1:

    1
    2
    [root@hdss7-11 ~]# dig -t PTR 11.7.4.10.in-addr.arpa. @10.4.7.11 +short
    HDSS7-11.host.com.
  • 方法2:

    1
    2
    [root@hdss7-11 ~]# dig -x 10.4.7.11 @10.4.7.11 +short
    HDSS7-11.host.com.

增删改

增加一条反解记录

/var/named/7.4.10.in-addr.arpa.zone
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$TTL 600	; 10 minutes
@ IN SOA dns.host.com. dnsadmin.host.com. (
2018121604 ; serial
10800 ; refresh (3 hours)
900 ; retry (15 minutes)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
NS ns1.host.com.
$ORIGIN 7.4.10.in-addr.arpa.
$TTL 60 ; 1 minute
11 PTR HDSS7-11.host.com.
12 PTR HDSS7-12.host.com.
13 PTR HDSS7-13.host.com.

删除一条反解记录

/var/named/7.4.10.in-addr.arpa.zone
1
2
3
4
5
6
7
8
9
10
11
12
13
$TTL 600	; 10 minutes
@ IN SOA dns.host.com. dnsadmin.host.com. (
2018121605 ; serial
10800 ; refresh (3 hours)
900 ; retry (15 minutes)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
NS ns1.host.com.
$ORIGIN 7.4.10.in-addr.arpa.
$TTL 60 ; 1 minute
11 PTR HDSS7-11.host.com.
12 PTR HDSS7-12.host.com.

修改一条反解记录

/var/named/7.4.10.in-addr.arpa.zone
1
2
3
4
5
6
7
8
9
10
11
12
13
$TTL 600	; 10 minutes
@ IN SOA dns.host.com. dnsadmin.host.com. (
2018121606 ; serial
10800 ; refresh (3 hours)
900 ; retry (15 minutes)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
NS ns1.host.com.
$ORIGIN 7.4.10.in-addr.arpa.
$TTL 60 ; 1 minute
11 PTR HDSS7-11.host.com.
12 PTR HDSS7-13.host.com.

实验文档4:DNS主辅同步


欢迎加入王导的VIP学习qq群:==>932194668<==


DNS主辅同步架构

IP主机名功能
10.4.7.11 HDSS7-11.host.com DNS主
10.4.7.12 HDSS7-12.host.com DNS辅
注意:所有资源记录的增、删、改的操作,均在主DNS上进行,辅助DNS仅提供查询功能    

辅助DNS主机上安装部署BIND9

安装BIND9软件

1
2
3
4
5
6
7

#yum install bind
=============================================================================================================================================================
Package Arch Version Repository Size
=============================================================================================================================================================
Installing:
bind x86_64 32:9.9.4-73.el7_6 updates 1.8 M

注意:辅助DNS的BIND9软件版本应小于等于主DNS的BIND9软件版本

修改辅助DNS主配置文件

修改主配置文件,并加入masterfile-format text;

/etc/named.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
options {
listen-on port 53 { 10.4.7.12; };
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 { any; };
masterfile-format text;
/*
- 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 no;
dnssec-validation no;

/* 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";

修改主DNS主配置文件

加入以下配置

/etc/named.conf
1
2
allow-transfer { 10.4.7.12; };
also-notify { 10.4.7.12; };

检查配置并重启主DNS

1
2
# named-checkconf
# systemctl restart named

检查完全区域数据传送

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@hdss7-12 ~]# dig -t axfr host.com @10.4.7.11

; <<>> DiG 9.9.4-RedHat-9.9.4-73.el7_6 <<>> -t axfr host.com @10.4.7.11
;; global options: +cmd
host.com. 600 IN SOA dns.host.com. dnsadmin.host.com. 2018121601 10800 900 604800 86400
host.com. 600 IN NS ns1.host.com.
HDSS7-11.host.com. 60 IN A 10.4.7.11
HDSS7-12.host.com. 60 IN A 10.4.7.12
ns1.host.com. 60 IN A 10.4.7.11
host.com. 600 IN SOA dns.host.com. dnsadmin.host.com. 2018121601 10800 900 604800 86400
;; Query time: 0 msec
;; SERVER: 10.4.7.11#53(10.4.7.11)
;; WHEN: Sun Dec 16 14:16:01 CST 2018
;; XFR size: 6 records (messages 1, bytes 220)

辅助DNS上创建自定义正解区域配置

/etc/named.rfc1912.zones
1
2
3
4
5
zone "host.com" IN {
type slave;
masters { 10.4.7.11; };
file "slaves/host.com.zone";
};

检查配置并启动辅助DNS

1
2
# named-checkconf
# systemctl start named

检查同步过来的区域数据库文件

/var/named/slaves/host.com.zone
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@hdss7-12 slaves]# ll
-rw-r--r-- 1 named named 392 Feb 10 21:08 host.com.zone
[root@hdss7-12 slaves]# cat host.com.zone
$ORIGIN .
$TTL 600 ; 10 minutes
host.com IN SOA dns.host.com. dnsadmin.host.com. (
2018121601 ; serial
10800 ; refresh (3 hours)
900 ; retry (15 minutes)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
NS ns1.host.com.
$ORIGIN host.com.
$TTL 60 ; 1 minute
HDSS7-11 A 10.4.7.11
HDSS7-12 A 10.4.7.12
ns1 A 10.4.7.11

检查解析是否正确

使用主DNS查询一个A记录

1
2
# dig -t A HDSS7-11.host.com @10.4.7.11 +short
10.4.7.11

使用辅助DNS查询一个A记录

1
2
# dig -t A HDSS7-11.host.com @10.4.7.12 +short
10.4.7.11

辅助DNS上创建自定义反解区域配置

增加、删除、修改记录,并验证同步

注意:一定要手动修改主DNS上SOA记录里的serial值!

增加记录

删除记录

修改记录

再增加一个od.com的业务域,并验证主辅同步(复习)

主DNS上增加自定义区域

主DNS上增加自定义区域数据库文件

主DNS上增加自定义区域资源记录

检查配置并重启主DNS服务

辅助DNS上增加自定义区域

检查完全区域数据传送

检查配置并重启辅助DNS服务

验证主辅同步

分别使用主DNS和辅助DNS查询新业务域的A记录

在主DNS上新增一条A记录,并验证主辅同步

在主DNS上修改一条A记录,并验证主辅同步

在主DNS上删除一条A记录,并验证主辅同步

客户端配置DNS解析高可用

在客户端主机(以Linux主机为例,Windows和Mac操作系统略)配置主、辅DNS

/etc/resolv.conf
1
2
3
4
5
#cat /etc/resolv.conf 
# Generated by NetworkManager
search host.com od.com
nameserver 10.4.7.11
nameserver 10.4.7.12

这样客户端高可用就配置好了,任意一个DNS服务器宕机也不会影响正常解析

原文地址:https://blog.stanley.wang

原文地址:https://www.cnblogs.com/lanbojini/p/14304341.html