阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

DNS Bind服务配置解析

232次阅读
没有评论

共计 7843 个字符,预计需要花费 20 分钟才能阅读完成。

DNS 域名解析服务 (Domain Name System) 是用于解析域名与 IP 地址对应关系的服务,功能上可以实现正向解析与反向解析:

一、DNS 服务器工作模式分类:

1、主服务器: 在特定区域内具有唯一性、负责维护该区域内的域名与 IP 地址对应关系。
2、从服务器: 从主服务器中获得域名与 IP 地址对应关系并维护,以防主服务器宕机等情况。
3、缓存服务器: 通过向其他域名解析服务器查询获得域名与 IP 地址对应关系,提高重复查询时的效率.

二、DNS 查询方式:

1、迭代查询:
2、递归查询:

三、解析方式分类

1、正向解析,既将 FQDN 解析为 IP.
2、反向解析,将 IP 解析为 FQDN.

四、Bind 配置文件的结构:

主程序/usr/sbin/named
主配置文件/etc/named.conf
区域配置文件/etc/named.rfc1912.zones
zone 文件的默认路径/var/named

/etc/named.conf :  Bind 的主配置文件,用于定义全局设置,DNS 的 zone 等相关配置。

1.options 部分:
 
options {//options 段用于定义全局设置
        listen-on port 53 {127.0.0.1;};               
        // 定义 bind 的监听 IP 地址(IPv4)
        listen-on-v6 port 53 {::1;};                   
        // 定义 bind 的监听 IP 地址(IPv6)
        directory      “/var/named”;                   
        //zone 文件的默认路径
        dump-file      “/var/named/data/cache_dump.db”; 
        //cache 的备份
        statistics-file “/var/named/data/named_stats.txt”;
        // 静态文件
        memstatistics-file “/var/named/data/named_mem_stats.txt”; 
        // 内存静态文件
        allow-query    {localhost;};                   
        // 允许谁向此 DNS 进行查询
        recursion yes|no;                                   
        // 允许递归查询
       
# 安全相关部分:
 
      dnssec-enable yes;                               
        dnssec-validation yes;
        dnssec-lookaside auto;
 
        /* Path to ISC DLV key */                       
        bindkeys-file “/etc/named.iscdlv.key”;
 
        managed-keys-directory “/var/named/dynamic”;
};
 
2. 日志系统部分:
logging {// 定义日志
        channel myfile {
        // 定义 channel 名称
                file “data/named.run”;
                // 以文件形式存储日志
                severity dynamic;
      // 存储日志的级别, 一共 7 个级别从高到低分别是:crit,error,warning,notice,info(前面 5 个属于 syslog);debug[level],dynamic(后两个属于 Bind8,9 独有的级别)
        }; 
 
        category statistics              {my_file;}; 
        // 定义 bind 系统中各子系统的日志    // 将日志发给那个 channel,可以发给多个 channel,一个 channel 只能接受一个 category。
         
};
 
3. 定义 zone
 
zone “.” IN {// 定义 Dns 的 zone,”.” 代表根区域
        type hint;                                        // 定义 zone 的类型, 根区域的类型就为 hint
        file “named.ca”;                                  // 指定 zone 文件,默认已经生成
       
};

二、DNS 中 zone 文件的放置 /var/named/*.zone(与 named.conf 中的 zone 对应的文件)

zone 文件的书写格式:

$TTL 1D                      // 用宏定义一个 TTL 默认值为 1 天, 下面数据直接引用此值.
@                            [TTL]    IN  SOA  主 DNS 服务器 FQDN 管理员邮箱  (
 
   
                                        0      ; 序列号
                                        1D      ; 更新间隔
                                        1H      ; 更新失败后重试间隔
                                        1W      ; 过期时长
                                        3H )    ; 否定记录保存时长
                                                                           
资源类型:A(IPv4), AAAA(IPv6):定义 FQDN 的 IP
          NS:定义 DNS 服务器的 FQDN
          SOA :  起始授权(每个 zone 首先要定义此值)
          MX:定义邮件记录,有优先级概念(0-99),值越小优先级越高。
          CNAME:  定义别名
          PTR:反向记录

单台 DNS 主服务器应用实验之正向解析:

查看 bind 版本:

[root@localhost ~]# rpm -q bind
bind-9.8.2-0.62.rc1.el6_9.4.x86_64
如果没有则安装:
#yum install -y bind bind-utils

实验环境

系统:CentOS release 6.8
软件:bind-9.8.2-0.62.rc1.el6_9.4.x86_64
服务器:IP 192.168.153.130;netmask 255.255.255.0;DNS 192.168.153.130;GW 192.168.153.2

我在 192.168.153.130 上面装的 dns 服务,resolv.conf 中 dns 的地址配置第一行为本机 ip 地址, 在后边配置文件中的 192.168.153.129 为我的 nginx 服务器地址,nginx 服务器的 dns 指向为 192.168.153.130,这个在 nginx 主机 nslookup 时就可已用 130 的 dns 做解析了.

1. 配置 DNS 服务器 name.conf

options {
        listen-on port 53 {127.0.0.1;
                  192.168.153.130;          // 为局域网其它机器提供 Named 服务,必须监听向本机 IP 发出的请求.
                                            }; 
        listen-on-v6 port 53 {::1;};                  // 如不使用 IPv6 地址,可以删除或注释掉
        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;};                              // 更改为 any 或者删除或注释掉, 表示可以接受查询的来源
        recursion yes;
 
        dnssec-enable yes;
        dnssec-validation yes;
 
        /* Path to ISC DLV key */
        bindkeys-file “/etc/named.iscdlv.key”;
 
        managed-keys-directory “/var/named/dynamic”;
 
};
 
logging {
        channel default_debug {
                file “data/named.run”;
                severity dynamic;
        };
};
 
zone “.” IN {
        type hint;
        file “named.ca”;
};
 
zone “linuxidc.com” IN{// 定义一个 zone,zone 的名字“linuxidc.com”
 type master;                                  // 类型为主服务器
 file “linuxidc.com.zone”;            // 自定义的域名到 IP 的正向解析配置
};
 
 
include “/etc/named.rfc1912.zones”;
include “/etc/named.root.key”;

2. 开始建立正向解析文件:
创建并编辑正向解析文件 linuxidc.com.zone(文件名要和 name.conf 文件中定义的 zone file 名一致)

#vim /var/named/linuxidc.com.zone
 
$TTL 1D
@      IN SOA  master.linuxidc.com. email.com. (
                                        0      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
                IN  NS  master           
master  IN  A    192.168.153.130                           
www    IN  A    192.168.153.129
nginx  IN  A    192.168.153.129
bbs    IN  A    192.168.153.129

3. 配置完成后, 检查配置文件的正确性:

[root@localhost ~]# /usr/sbin/named-checkconf -z
zone linuxidc.com/IN: loaded serial 0
zone 153.168.192.in-addr.arpa/IN: loaded serial 2010110901
zone localhost.localdomain/IN: loaded serial 0
zone localhost/IN: loaded serial 0
zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0
zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
zone 0.in-addr.arpa/IN: loaded serial 0

4. 重启服务:

[root@localhost ~]# /sbin/service named restart
Stopping named: .[OK]
Starting named: [OK]

5.nslookup 解析测试:

[root@localhost ~]# nslookup
> master.linuxidc.com
Server:        192.168.153.130                //dns 地址
Address:        192.168.153.130#53
 
Name:  master.linuxidc.com                                    // 域名服务器主机名
Address: 192.168.153.130
> www.linuxidc.com         
Server:        192.168.153.130
Address:        192.168.153.130#53
 
Name:  www.linuxidc.com
Address: 192.168.153.129                                //www 域名对应的 A 记录地址
> nginx.linuxidc.com
Server:        192.168.153.130
Address:        192.168.153.130#53
 
Name:  nginx.linuxidc.com
Address: 192.168.153.129
> bbs.linuxidc.com
Server:        192.168.153.130
Address:        192.168.153.130#53
 
Name:  bbs.linuxidc.com
Address: 192.168.153.129

单台 DNS 主服务器应用实验之反向解析:

1. 配置主区域数据文件(/etc/named.conf), 追加反向解析如下内容:

zone “153.168.192.in-addr.arpa” IN{
 type master;
 file “192.168.153.arpa.zone”;
 allow-update {none;};
};

2. 配置解析数据文件.

[root@localhost ~]# cd /var/named/
[root@localhost named]# vim 192.168.153.arpa.zone
 
$TTL 1D
@ IN SOA 153.168.192.in-addr.arpa. linuxidc.com. (
        2010110901
        28800
        14400
        3600000
        86400
)
 
@      IN  NS  master.linuxidc.com.
130    IN  PTR master.linuxidc.com    192.168.153.130  -> master
129    IN  PTR www.linuxidc.com.    ; 192.168.153.129 -> www
129    IN  PTR nginx.linuxidc.com.  ; 192.168.153.129 -> nginx
129    IN  PTR img.linuxidc.com.    ; 192.168.153.129 -> img

3. 语法检查:

[root@localhost ~]# /usr/sbin/named-checkconf -z

4. 重启服务:

[root@localhost ~]# /etc/init.d/named restart
Stopping named: [OK]
Starting named: [OK]

5. 反向解析验证:

[root@localhost ~]# nslookup
> 192.168.153.129
Server:        192.168.153.130
Address:        192.168.153.130#53
 
129.153.168.192.in-addr.arpa    name = www.linuxidc.com.
129.153.168.192.in-addr.arpa    name = nginx.linuxidc.com.
129.153.168.192.in-addr.arpa    name = img.linuxidc.com.
>
> 192.168.153.130
Server:        192.168.153.130
Address:        192.168.153.130#53
 
130.153.168.192.in-addr.arpa    name = master.linuxidc.com.153.168.192.in-addr.arpa.

DNS CNAME 记录

CNAME 记录,即别名记录,我们通过设置别名记录,可以将多个名称指向同一台主机,CNAME 记录的前提是必须要有一条 A 记录,A 记录是创建 CNAME 记录的前提.

这样可以在 ip 变动的情况下,我们不用一个一个的去更改主机名到主机的 A 记录映射,只需要改动别名到主机的一条 A 记录就可以全部搞定, 达到事倍功半的效果.

未使用别名 (CNAME) 的正向解析区域配置文件:

[root@localhost named]# vim linuxidc.com.zone
$TTL 1D
@      IN SOA  master.linuxidc.com. email.com. (
                                        0      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        IN  NS  master
master  IN  A  192.168.153.130
www    IN  A  192.168.153.129
nginx  IN  A  192.168.153.129
bbs    IN  A  192.168.153.129
img    IN  A  192.168.153.129

使用别名后的区域配置文件.

[root@localhost named]# vim linuxidc.com.zone
$TTL 1D
@      IN SOA  master.linuxidc.com. email.com. (
                                        0      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        IN  NS  master
master  IN  A  192.168.153.130
proxy  IN  A  192.168.153.129
www    IN  CNAME      proxy
nginx  IN  CNAME      proxy
bbs    IN  CNAME          proxy
img    IN  CNAME          proxy

检查并重启服务,nslookup 测试验证:

[root@localhost ~]# nslookup
> img.linuxidc.com
Server:        192.168.153.130
Address:        192.168.153.130#53
 
img.linuxidc.com  canonical name = proxy.linuxidc.com.          // 别名
Name:  proxy.linuxidc.com
Address: 192.168.153.129
> www.linuxidc.com
Server:        192.168.153.130
Address:        192.168.153.130#53
 
www.linuxidc.com  canonical name = proxy.linuxidc.com.
Name:  proxy.linuxidc.com
Address: 192.168.153.129

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计7843字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中