DNS服务之BIND

bind服务:

实现dns服务器的程序

程序包:

bind、bind-libs(库文件)、bind-utils(dns测试工具)、bind-chroot(dns访问限制,安全限制)


dns解析工具:

dig:

dig [-t type] ip [+] [@server]	#dns实时查询、搜索。可用来判断问题故障诊断。不会查host文件
	-p 端口 		指定端口
	-t 类型			指定类型,A/AAAA/NS/MX/CNAME 。默认A(可省略)。axfr测试全量同步,但互联网模式中很危险。ixfr增量同步
	-x ip地址		反向解析
	-b ip 			查询源地址
	+[no]trace		跟踪解析过程
	+[no]recurse	进行递归解析
例:
#测试全量同步
dig -t axfr huangji.com @192.168.65.7	

#加@指定用哪个主机解析,不加则用自己设置的dns。再列出解析过程
dig -t A www.huangji.com @192.168.65.7 +trace		

host:

host [选项] 域名 [dns服务器]
	 -t 		指定类型,A/AAAA/NS/MX/CNAME/PTR

nslookup:

一般使用交互式模式更多 ,支持非交互式

非交互式:

nslookup 域名

交互式:

server ip	#指定使用的dns主机
set q=A/AAAA/NS/MX/CNAME	#指定查询的资源记录类型
www.baidu.com		#要查询的域名
set q=NS		#每一次查询都要先指定类型
www.hao123.com

配置文件:

主配置:

  • /etc/named.conf

请求注解文档(辅助主配置文件):

  • /etc/named.rfc1912.zones

解析库文件:

  • /var/named/zone_name.zone
  • 一台物理机可为多个区域解析
    必须要有跟根区域文件,也就是named.ca
    应该有两个实现localhost和本地回环地址解析库

远程域名管理密钥:

  • /etc/rndc.key rndc,远程管理工具,默认与bind装在同一主机,通过127.0.0.1控制本地,提供辅助功能

配置文件解读:

named.conf

配置文件里面,全部用 “;”结尾,与c语言格式一样
配置段

  • 全局配置: options {}
  • 日志子系统:logging {}
  • 区域定义:本机能为哪些zone解析,就定义为zone
zone "" IN {}
			
options {
  listen-on port 53 { any ; };	//ipv4监听地址 、端口。监听全部时改为: any  。只做缓存服务器时,只用改监听地址,再重启
  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";
  recursing-file  "/var/named/data/named.recursing";
  secroots-file   "/var/named/data/named.secroots";
  allow-query     { any; };	//内置访问控制列表,默认只允许本机localhost。所有为any
  recursion yes;	//允许递归查询

/*
//dsnsec安全机制,用来对每条解析加数字验证,影响性能、配置麻烦,一般关闭,改为 no
  dnssec-enable yes;
  dnssec-validation yes;
  bindkeys-file "/etc/named.iscdlv.key";
  managed-keys-directory "/var/named/dynamic";
  pid-file "/run/named/named.pid";
  session-keyfile "/run/named/session.key";
*/

logging {
    channel 通道名 {                // 定义通道
        file log_file [versions number | unlimited] [size sizespec]; | syslog optional_facility; | null; | stderr;      // 定义输出方式,
		file		//file指令,输出到纯文本文件
			log_file	//指定一个文件名
			version		//指定允许同时存在多少个版本的该文件,比如指定 3 个版本(version 3),就会保存 query.log、query.log0、query.log1 和query.log2。
			size		//指定文件大小的上限,如果只设定了size 而没有设定 version,当文件达到指定的文件大小上限时,服务器停止写入该文件。如果设定了version,服务器会进行循环,如把 log_file 变成 log_file.log1,log_file.log1 变成 log_file.log2 等,然后建立一个新log_file.log 进行写入
		syslog optional_facility	//输出到syslog,其中optional_facility是syslog的设备名,通常为以下几个:
			daemon
			local0~local7
		null		//输出到空设备
		stderr		//输出到标准错误输出,默认为屏幕
        severity log_severity;           // 定义消息严重性
			critical
			error
			warning
			notice
			info
			debug
			dynamic		//系统当前的日志级别
        [print-time boolean;]            // 是否在消息中添加时间前缀,仅用于 file 日志
        [print-severity boolean;]        // 是否在消息中添加消息严重性前缀
        [print-category boolean;]        // 是否在消息中添加消息类别名前缀
   };
   category 类别名 {              // 定义类别,
        通道名;	//写入前面的定义的通道名
        ......
   };
};

zone "localhost" IN {		//定义解析区域名
  type master;	//定义类型为主dns。master/slave(备)/hint(根域,提示域)/forward(转发域)
  file "named.localhost";	//区域解析库文件名称,一般是相对路径
  allow-transfer { 192.168.65.12; }	//只允许谁来同步解析库。默认全部人,但有风险。ip/none(谁也不允许)
};		

zone "192.168.in-addr.arpa" IN {		//定义反向
  type master;
  file "192.168.zone";
};

category字段说明:

类别 说明
client 处理客户端请求。
config 配置文件分析和处理。
database 同BIND内部数据库相关的消息,用来存储区数据和缓存记录。
default 匹配所有未明确指定通道的类别。
dnssec 处理 DNSSEC 签名的响应。
general 包括所有未明确分类的 BIND 消息。
lame-servers 发现错误授权,即残缺服务器。
network 网络操作。
notify 区更新通知消息。
queries 查询日志
resolver 名字解析,包括对来自解析器的递归查询信息。
security 批准/非批准的请求。
update 动态更新事件。
xfer-in 从远程名字服务器到本地名字服务器的区传送。
xfer-out 从本地名字服务器到远程名字服务器的区传送。

huangji.com.zone

写一个正向域名解析库文件,在/var/named/ 下,用于解析:huangji.com. 域名
写完解析库后,可检查语法错误:

  • named-checkzone "huangji.com" /var/named/huangji.com.zone

写完解析库还要记得改文件权限,不然bind服务不能正确读取文件:

  • chonw :named huangji.com.zone && chmod 640 huangji.com.zone
$TTL 1D		#缓存存活时间,默认秒。越短缓存时间越短,同步次数越多,更新越快
$ORIGIN	huangji.com.	#定义区域名字,资源记录没有写全的地方,默认补全这个。我使用这个时,有点问题,各位可酌情配置
@  IN  SOA  ns1.huangji.com.  admin.huangji.com. (
	2021070922	;每次主dns的内容修改后,序列号要作修改,可通知备dns来同步
	1H
	5M
	7D
	1D )

	NS		ns1
	NS		ns2
	MX 10	mx1
	MX 10	mx2
ns1	A		192.168.1.11
ns2	A		192.168.1.12
mx1	A 		192.168.1.13
www	A		192.168.1.11
ftp 	CNAME		www

*	CNAME		www或某ip	;意为当别人输错域名时,自动识别并解析到www或ip,也就是泛域名解析
huangji.com. 	A 	192.168.65.10
*.huangji.com.	A 	192.168.65.10		;不支持CNAME

192.168.zone

写一个反向解析库文件,对应主配置文件中定义的

注意:

  • 反向解析中不用写A、MX记录
$TTL 1D
$ORIGIN 168.192.in-addr.arpa
@  IN  SOA  dns1.huangji.com.  amdin.huangji.com. (
	2021071017
	1H
	5M
	7D
	1D )

	NS	dns.huangji.com.
11.65	PTR	dns1.huangji.com.
12.65	PTR	dns2.huangji.com.
11.65	PTR	www.huangji.com.
posted @ 2022-01-29 11:30  suyanhj  阅读(301)  评论(0)    收藏  举报