DNS详解以及Bind使用(二)---Bind安装、配置及使用

Bind

概念

Bind (berkeley internet name domain ) 由ISC 进行维护,还维护了dhcpd

Bind是DNS协议的一种实现,是一个DNS Server程序,其守护进程名 为 named

安装

sudo yum install -y bind

安装明细

主配置文件:

/etc/named.conf 可以包含其他配置文件,比如
/etc/named.iscdlv.key
/etc/named.rfc1912.zones
/etc/named.root.key

解析库文件:
/var/named/目录下:
一般以 ZONE_NAME.zone命名

其实就是将当前DNS 负责解析的所有域以及解析结果保存在一个个配置文件中,其中named.ca 是指向 . 域名服务器,当本地解析不到时进行递归查询

注意,一个DNS服务器可以服务多个域,包括正向反向

必须要有根区域解析文件,一般叫做named.ca,告诉 DNS服务器 根节点服务器在哪

还应该有两个区域解析库文件,一个叫做localhost(避免其他主机名也叫localhost,解析到别的IP去,保证localhost必须解析到127.0.0.1),还有127.0.0.1 的 反向解析。如下图:

在这里插入图片描述
named.localhost 是一个正向解析库文件
named.loopback 是一个反向解析库文件
以上两个文件不是bind开发者提供,而是RPM包制作者提供
named.ca 里面保存了13组 . 域名服务器的NS记录A记录

rndc 控制nameserver的远程工具,默认与Bind 安装在同一个主机,监听在127.0.0.1:953,因此仅允许本地使用。可以开启远程模式,让远程也可以通过rndc控制。
bind程序安装完毕之后,默认即可作为缓存 DNS 服务器使用;可以让其他客户机将dns 指向此服务器,可以完成到互联网找 . 域名服务器 并进行结果缓存等。 如果没有专门负责解析的域,则可以直接启动服务(单纯作为缓存DNS使用

配置

主配置文件格式

1、全局配置段:
​ options{…}
2、日志配置段
​ logging {…}
3、区域配置段:
​ zone {…} 定义那些本机负责解析的区域或者转发的区域

1、修改/etc/named.conf,修改监听地址,注意,最后必须用 ; 结尾,并且前后没有空格, 花括号前后有空格
在这里插入图片描述
也可以将Ip地址改为any,即相当于监听在0.0.0.0
并修改 allow-query 为any,默认为localhost,即只允许本机进行使用。

2、关闭dnssec-enable
在这里插入图片描述
3、检查语法 ,使用 named-checkconf 命令完成配置文件语法检查
name-checkconf /path/to/conf 如果不给出具体的配置路径,就是默认/etc/named.conf
named-checkzone ZONE_NAME ZONE_FILE 检查区域数据库文件语法错误
4、启动bind
systemctl start named

dig命令

dig [-t RR_TYPE] name(要查询的名字,查询A记录时,name就是fqdn) @Server [query options]

dig主要是用于测试dns,不会查询/etc/hosts文件

查询选项:

​ +[no]trace :跟踪或者不跟踪解析过程

+[no]recurse: 递归方式进行解析

注意:反向解析 使用 dig -x <IP> @server 进行查询,但是不一定能查到,因为有正向解析不一定有反向解析

host命令

host [-t RR_TYPE] name dns_addr

nslookup 命令

命令模式:
​ nslookup [-options] [name] [dns_server]
交互模式:
在这里插入图片描述

rndc 命令

rndc status 查看当前dns服务的状态
rndc stats 查看相关数据
rndc reload 重载配置文件,无需重启服务

配置解析区域:

  1. 定义区域

    1. 在主配置文件或者其他的配置文件被主配置文件include进去

    2. zone “ZONE_NAME” IN {

      type {master|slave|hint|forward} //通常是master服务

      file “ZONE_NAME.zone” //使用相对路径代表这个数据文件在/var/named下,也可以使用绝对路径,从而可以将数据文件放到别处

      };

  2. 建立区域数据文件

    1. 在/var/named 目录下建立区域数据文件
  3. 重载配置文件和区域数据文件

配置实例

正向解析域

# 编辑 /etc/named.rfc1912.zones 在最后加入一个域说明
zone "sugon.com." IN {
        type master;
        file "sugon.com.zone";
};

[root@lct-k8s-3 named]# cat named.localhost 
$TTL 1D     #全局宏定义,默认TTL
@       IN SOA  @ rname.invalid. (		#@ 代表当前zone, TTL全局集成
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
        AAAA    ::1

#建立区域数据库文件
[root@lct-k8s-3 named]# cat /var/named/sugon.com.zone
$TTL 3600
@       IN      SOA     sugon.com.      173895042.qq.com. (
                20191109
                1H
                10M
                3D
                1D )
        IN      NS      ns1.sugon.com.
ns1.sugon.com.  IN      A       10.6.6.196
lct-k8s-3       IN      A       10.6.6.196
k8s-lct-3       IN      CNAME   lct-k8s-3
lct-k8s-1       IN      A       10.6.6.194

#语法检查
named-checkconf

#检查区域
[root@lct-k8s-3 named]# named-checkzone sugon.com. /var/named/sugon.com.zone 
zone sugon.com/IN: loaded serial 20191109
OK

#重载配置文件
[root@lct-k8s-3 named]# rndc status
version: BIND 9.11.4-P2-RedHat-9.11.4-9.P2.el7 (Extended Support Version) <id:7107deb>
running on lct-k8s-3: Linux x86_64 5.0.5-1.el7.elrepo.x86_64 #1 SMP Wed Mar 27 13:30:25 EDT 2019
boot time: Sat, 09 Nov 2019 07:31:50 GMT
last configured: Sat, 09 Nov 2019 07:31:50 GMT
configuration file: /etc/named.conf
CPUs found: 4
worker threads: 4
UDP listeners per interface: 3
number of zones: 103 (97 automatic)
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/900/1000
tcp clients: 2/150
server is up and running
#之前是103个zone

[root@lct-k8s-3 named]# rndc reload
server reload successful
#reload后变为104个zone
[root@lct-k8s-3 named]# rndc status
version: BIND 9.11.4-P2-RedHat-9.11.4-9.P2.el7 (Extended Support Version) <id:7107deb>
running on lct-k8s-3: Linux x86_64 5.0.5-1.el7.elrepo.x86_64 #1 SMP Wed Mar 27 13:30:25 EDT 2019
boot time: Sat, 09 Nov 2019 07:31:50 GMT
last configured: Sat, 09 Nov 2019 08:29:34 GMT
configuration file: /etc/named.conf
CPUs found: 4
worker threads: 4
UDP listeners per interface: 3
number of zones: 104 (97 automatic)
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/900/1000
tcp clients: 2/150
server is up and running


#查看解析结果,可以看到我们配置的别名和A记录都已经正确回复
[root@lct-k8s-1 ~]# nslookup
> server 10.6.6.196  
Default server: 10.6.6.196
Address: 10.6.6.196#53
> set q=a
> k8s-lct-3.sugon.com
Server:         10.6.6.196
Address:        10.6.6.196#53

k8s-lct-3.sugon.com     canonical name = lct-k8s-3.sugon.com.
Name:   lct-k8s-3.sugon.com
Address: 10.6.6.196

# 查看NS也已经正确
[root@lct-k8s-1 ~]# dig -t NS sugon.com. @10.6.6.196

; <<>> DiG 9.9.4-RedHat-9.9.4-73.el7_6 <<>> -t NS sugon.com. @10.6.6.196
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12789
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;sugon.com.                     IN      NS

;; ANSWER SECTION:
sugon.com.              3600    IN      NS      ns1.sugon.com.

;; ADDITIONAL SECTION:
ns1.sugon.com.          3600    IN      A       10.6.6.196

;; Query time: 0 msec
;; SERVER: 10.6.6.196#53(10.6.6.196)
;; WHEN: Sat Nov 09 16:34:10 CST 2019
;; MSG SIZE  rcvd: 72

#为了安全,需要将配置文件进行权限修改
chown :named /var/named/sugon.com.zone
chmod 640 sugon.com.zone 

反向解析域

  1. 定义区域
    1. #注意反向区域的配置,使用网段反写
  2. 定义区域解析库文件
    1. 主要用于定义PTR记录
  3. 重载配置文件
# 编辑/etc/named.rfc1912.zones
zone "6.10.in-addr.arpa" IN {    #10.6网段下所有的解析
        type master;
        file "6.10.zone";
};
# 编辑反向解析数据库文件
[root@lct-k8s-3 named]# cat /var/named/6.10.zone     
$TTL 3600
@       IN      SOA     ns1.sugon.com.  173895042.qq.com. (
                20191109
                1H
                10M
                3D
                12H  )
@       IN      NS      ns1.sugon.com.
196.6   IN      PTR     lct-k8s-3.sugon.com.
194.6   IN      PTR     lct-k8s-1.sugon.com.

[root@lct-k8s-3 named]# chmod 640 6.10.zone 
[root@lct-k8s-3 named]# chown :named 6.10.zone 


[root@lct-k8s-3 named]# named-checkconf 
[root@lct-k8s-3 named]# named-checkzone 6.10.in-addr.arpa /var/named/6.10.zone
zone 6.10.in-addr.arpa/IN: loaded serial 20191109
OK

[root@lct-k8s-3 named]# rndc reload
server reload successful

#zone计数又多一个
[root@lct-k8s-3 named]# rndc status
version: BIND 9.11.4-P2-RedHat-9.11.4-9.P2.el7 (Extended Support Version) <id:7107deb>
running on lct-k8s-3: Linux x86_64 5.0.5-1.el7.elrepo.x86_64 #1 SMP Wed Mar 27 13:30:25 EDT 2019
boot time: Sat, 09 Nov 2019 07:31:50 GMT
last configured: Sat, 09 Nov 2019 09:00:00 GMT
configuration file: /etc/named.conf
CPUs found: 4
worker threads: 4
UDP listeners per interface: 3
number of zones: 105 (97 automatic)
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/900/1000
tcp clients: 2/150
server is up and running

在这里插入图片描述

发布了8 篇原创文章 · 获赞 4 · 访问量 2076

猜你喜欢

转载自blog.csdn.net/weixin_40864891/article/details/103636597