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
进行查询,但是不一定能查到,因为有正向解析不一定有反向解析