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.

浙公网安备 33010602011771号