centos7 使用bind搭建域名dns服务器

文章来源:

https://cshihong.github.io/2018/10/15/DNS%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%90%AD%E5%BB%BA%E4%B8%8E%E9%85%8D%E7%BD%AE/

 

Linux下DNS服务器配置实验

配置DNS正向解析:

在配置Bind服务时,主要用到以下三个配置文件:

  • 主配置文件(/etc/named.conf):用来定义bind服务程序的运行。

  • 区域配置文件(/etc/named.rfc1912.zones):用来保存域名和IP地址对应关系的所在位置。类似于图书的目录,对应着每个域和相应IP地址所在的具体位置,当需要查看或修改时,可根据这个位置找到相关文件。

  • 数据配置文件目录(/var/named):该目录用来保存域名和IP地址真实对应关系的数据配置文件。

第一步:修改主配置文件/etc/named.conf。将监听地址和运行查询的地址都改为 any,分别表示服务器上的所有IP地址均可提供DNS域名解析服务,以及允许所有人对本服务器发送DNS查询请求。

主配置文件

 

图:主配置文件要修改的地方

 

第二步:修改区域配置文件(/etc/named.rfc1912.zones)。用来保存域名和IP地址对应关系的所在位置。在这个文件中,定义了域名与IP地址解析规则保存的文件位置以及服务类型等内容,而没有包含具体的域名、IP地址对应关系等信息。服务类型有三种,分别为hint(根区域)、master(主区域)、slave(辅助区域),其中常用的master和slave指的就是主服务器和从服务器。

1
2
3
zone "example.com" IN {
type master;
file "example.com.zone";

DNS默认端口是53的TCP和UPD,UDP是供用户查询的,主从复制用TCP和UDP的53端口都用。

BIND的ACL:bind有四个内置的acl:

   none: 没有一个主机

   any: 任意主机

   localhost: 本机

   localnet: 本机的IP同掩码运算后得到的网络地址段

   注意:只能先定义,后使用;因此一般定义在配置文件中, 处于options的前面,当然也可自定义如下

   acl lan{

​   192.168.25.0/24

   } ;

访问控制:

  访问控制的指令: allow-query {}: 允许查询的主机;白名单

           allow-transfer {}:允许区域传送的主机;(白名单,一般用于主从)

           allow-recursion {}: 允许递归的主机,建议全局使用

           allow-update {}: 允许更新区域数据库中的内容

第三步:编辑数据配置文件。**从/var/named目录中复制一份正向解析的模板文件(named.localhost),然后把域名和IP地址的对应数据填写数据配置文件中并保存。在复制时记得加上-a参数,这可以保留原始文件的所有者、所属组、权限属性等信息,以便让bind服务程序顺利读取文件内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[root@localhost named]# cp -a named.localhost example.com
[root@localhost named]# vim example.com.zone
$TTL 1D
@ IN SOA @ example.com. (
#授权信息开始: #DNS区域的地址,在域地址后面还可以加管理员邮箱,不能加@,用.代替。
20181001 ; serial #更新序列号
1D ; refresh #更新时间
1H ; retry #重试时间
1W ; expire #失效时间
3H ) ; minimum #无效解析记录的缓存时间
NS ns.example.com. #DNS区域的地址
ns A 192.168.245.128 #地址记录
www A 192.168.245.128 #www站点记录
mail A 192.168.245.129 #地址记录
MX 10 mail.example.com. #邮箱交换记录
example.com. A 192.168.245.200
# 即使不写主机名,DNS也能解析到另外一个指定的地址
$GENERATE 1-245 server$ A 1.1.1.$
#如果服务器过多,对应主机名也很多,则可以这样写.例如:
#server1.example.com对应地址为:1.1.1.1
#server100.exmaple.com对应地址为:1.1.1.50
bbs CNAME www #别名记录
* A 192.168.245.128
#“*”代表所有,即便主机www写错,DNS也能正确解析出来。这就是泛域名解析

正向解析

 

图:正向解析文件配置

 

第四步:检查配置,重启服务和测试。

检查和重启服务:

1
2
3
4
5
6
7
8
9
10
11
[root@localhost ~]# named-checkconf   #检查主配置文件语法
[root@localhost ~]# named-checkzone eample.com /var/named/example.com.zone
#检查区域配置文件语法
/var/named/example.com.zone:13: ignoring out-of-zone data (example.com)
zone eample.com/IN: loaded serial 20181001
[root@localhost ~]# vi /etc/resolv.conf
#进入该配置文件,指定使用的域名解析服务器。
# Generated by NetworkManager
nameserver 192.168.245.128
search 192.168.245.128
[root@localhost ~]# systemctl restart named #重启服务

测试:

测试1

图;正向解析测试

正向解析测试

 

nslookup测试

 

配置DNS反向解析:

在DNS域名解析服务中,反向解析的作用是将用户提交的IP地址解析为对应的域名信息,它一般用于对某个IP地址上绑定的所有域名进行整体屏蔽,屏蔽由某些域名发送的垃圾邮件。它也可以针对某个IP地址进行反向解析,大致判断出有多少个网站运行在上面。当购买虚拟主机时,可以使用这一功能验证虚拟主机提供商是否有严重的超售问题。

第一步:配置区域文件。

反向解析是把IP地址解析成域名格式,因此在定义zone(区域)时应该要把IP地址反写,比如原来是192.168.10.0,反写后应该就是10.168.192,而且只需写出IP地址的网络位即可。

1
2
3
4
5
6
[root@localhost ~]# vim /etc/named.rfc1912.zones
#在中添加反向数据文件的记录
zone "245.168.192.in-addr.arpa" IN {
type master;
file "245.168.192.arpa";
};

第二步:编辑数据配置文件。

反向解析是把IP地址解析成域名格式,因此在定义zone(区域)时应该要把IP地址反写,比如原来是192.168.10.0,反写后应该就是10.168.192,而且只需写出IP地址的网络位即可。

1
2
3
4
[root@localhost ~]# cp -a /var/named/named.loopback /var/named/245.168.192.arpa 
[root@localhost ~]# vi /var/named/245.168.192.arpa
#编辑反正配置文件即可,和正向解析格式类似
#PTR为指针记录,仅用于反向解析中。

反向配置文件

 

图:反向配置文件

 

第三步:检查配置文件,重启服务,测试。

1
2
3
4
5
[root@localhost ~]# named-checkconf 
[root@localhost ~]# named-checkzone 245.168.192 /var/named/245.168.192.arpa
zone 245.168.192/IN: loaded serial 20181001
OK
[root@localhost ~]# systemctl restart named

测试2

posted @ 2020-03-08 15:43  黑剑石清  阅读(582)  评论(0编辑  收藏  举报