dns之bind9的安装及配置

1. dns服务bind9的安装

1
yum -y install bind

查看安装bind9之后生成的可用命令

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
[root@localhost ~]# rpm -ql bind | grep sbin
/usr/sbin/arpaname
/usr/sbin/ddns-confgen
/usr/sbin/dnssec-checkds
/usr/sbin/dnssec-coverage
/usr/sbin/dnssec-dsfromkey
/usr/sbin/dnssec-importkey
/usr/sbin/dnssec-keyfromlabel
/usr/sbin/dnssec-keygen
/usr/sbin/dnssec-keymgr
/usr/sbin/dnssec-revoke
/usr/sbin/dnssec-settime
/usr/sbin/dnssec-signzone
/usr/sbin/dnssec-verify
/usr/sbin/genrandom
/usr/sbin/isc-hmac-fixup
/usr/sbin/lwresd
/usr/sbin/named
/usr/sbin/named-checkconf
/usr/sbin/named-checkzone
/usr/sbin/named-compilezone
/usr/sbin/named-journalprint
/usr/sbin/nsec3hash
/usr/sbin/rndc
/usr/sbin/rndc-confgen

查看安装bind9之后生成的配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@localhost ~]# rpm -ql bind | grep etc
/etc/logrotate.d/named
/etc/named
/etc/named.conf # bind9服务启动时需要的配置文件,主要配置整个dns服务正常功能
/etc/named.iscdlv.key
/etc/named.rfc1912.zones # localhost的zone指令描述内容
/etc/named.root.key
/etc/rndc.conf
/etc/rndc.key
/etc/rwtab.d/named
/etc/sysconfig/named
/usr/share/doc/bind-9.9.4/sample/etc
/usr/share/doc/bind-9.9.4/sample/etc/named.conf
/usr/share/doc/bind-9.9.4/sample/etc/named.rfc1912.zones

安装bind9之后自带的区域数据文件(默认为/var/named目录)

1
2
[root@localhost etc]# ls /var/named/
data dynamic named.ca named.empty named.localhost named.loopback slaves

查看目前安装的bind9的具体版本号

1
2
[root@localhost named]# named -v
BIND 9.9.4-RedHat-9.9.4-73.el7_6 (Extended Support Version)

2. DNS配置

2.1 bind9的本身配置/etc/named.conf

示例内容如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# named.conf是named默认加载的配置文件,该配置文件中使用"#"或"/**/"或"//"作为注释符号,每个非注释语句都必须使用分号";"结束。
options {
directory "/var/named";
}; # 注意结尾的";"

# 自定义域
zone "test.com" IN { # zone指令后面需接域及类及中括号括起来的描述
type master; # 类的类型,有master, slave, hint, forward, stub五种
file "d_file.test.com"; # 指定该域对应的区域数据文件
};

## 每个配置文件都必须配置如下几个域:
## 1. 域"."
zone "." IN {
type hint; #hint表示该区域"."类型为hint。回顾dns解析流程,在客户端让dns服务器迭代查询时,迭代查询的第一步就是让dns服务器去找根域名服务器。但是dns服务器如何知道根域名服务器在哪里?这就是hint类型的作用,它提示dns服务器根据其区域数据文件named.ca中的内容去获取根域名地址,并将这些数据缓存起来,下次需要根域名地址时直接查找缓存即可。
file "named.ca";
};

## 2. 域"localhost"
# "localhost"域名(用于解析localhost为127.0.0.1)和127.0.0.1的方向查找区域。这两个没有定义在named.conf中,而是定义在/etc/named.rfc1912.zones中,然后在named.conf中使用include指令将其包含进来。
include "/etc/named.rfc1912.zones";

2.2 每个域的区域数据文件配置(zone文件)

2.2.1 /var/named/d_file.test.com示例内容如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
;区域数据文件:针对每一个zone指令指定的域,都需要有对应的域数据文件,区域数据文件中使用分号";"来注释。
$TTL 6h
; 以下均为资源定义行,定义域名下的所有资源
; SOA指定的域名对应的主机为dns服务器,(权威服务器,可能有多台dns服务器,他们都是master dns服务器)
test.com. IN SOA dnsserver.test.com dnsserver2.test.com(
1 ; serial num,该域区域文件版本号,用于主从dns服务器之间增量传输变更内容;
3h ; refresh time,主从dns服务器之间定时发送notify通知更新时间
1h ; retry time
1w ; expire time
1h ; negative time
)

test.com. IN NS dnsserver.test.com.

; 以下则列出域名和ip的对应关系,用A指令
dnsserver.test.com. IN A 10.0.0.99 # A记录及其他记录说明见下文2.2.2节
xkl.test.com. IN A 10.0.0.1
fq.test.com. IN A 10.0.0.2
yc.test.com. IN A 10.0.0.3
xkl1.test.com. IN CNAME xkl.test.com.

2.2.2 zone文件中各种记录的说明和描述:

  • A (Address)记录是用来指定主机名(或域名)对应的IP地址记录。

  • NS(Name Server)记录是域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析。

  • MX记录 MX(Mail Exchanger)记录是邮件交换记录,它指向一个邮件服务器,用于电子邮件系统发邮件时根据收信人的地址后缀来定位邮件服务器。

  • CNAME(Canonical Name )别名记录,允许您将多个名字映射到同一台计算机。通常用于同时提供WWW和MAIL服务的计算机。

  • TXT记录,一般指某个主机名或域名的说明。

  • PTR是pointer的简写,用于将一个IP地址映射到对应的域名,也可以看成是A记录的反向,IP地址的反向解析。 PTR主要用于邮件服务器,

  • AAAA记录是一个指向IPv6地址的记录。

  • SOA Start Of Authority,这种 record 放在 zone file 一开始的地方,每一个记录文件只能有一个 SOA,而且一定是档案中第一个“记录”,它描述这个 zone 负责的 name server,version number…等数据,以及当 slave server 要备份这个 zone 时的一些参数。

ACL配置

acl用来给客户端的所有vip进行分类,并暴露出“类名”供其他地方使用,配置acl的步骤如下:

  1. 在/etc/named/acl目录下添加对应文件,并在文件中添加相关的acl语句
1
2
acl telecomip{ tele_IP; };
acl netcomip{ net_IP; };
  1. 在named.conf中引入acl文件
1
2
3
4
5

include "/home/work/dns/etc/chongqing_acl" ;
include "/home/work/dns/etc/xian_acl" ;
……
include "/home/work/dns/etc/chengdu_acl" ;

view配置

view用来给满足acl条件的ip分配对应的zone解析服务器

  1. 来访者ip为10.0.0.20,假设满足acl文件的成都ip条件,
  2. 根据view调配到chengdu_view,则根据test.com_chengdu的zone文件进行解析
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
view "chongqing_view" {
        match-clients {chongqing_acl; };
        recursion no;
        zone "test.com" {
                type master;
                file "test.con_chengqing ";
        };
};
view "xian_view" {
        match-clients {xian_acl; };
        recursion no;
        zone "wangan.com" {
                type master;
                file "test.com_xian";
        };
};
view "chengdu_view" { #default node,默认节点
        match-clients {chengdu_acl; any; localhost; };
        recursion no;
        zone "wangan.com" {
                type master;
                file "test.com_chengdu";
        };
};
-------------本文结束感谢您的阅读-------------
0%