1 简写
看简写的形式: 最简单的是
概念: zone语句的第二个字段用来指定域名,该域名是该区域数据文件中所有数据的来源(origin)
www.cui. IN A 192.168.7.234
简写方式是 www IN A 192.168.7.234
其实:www就是表示cui.这个域下的主机
其简写的来源依据是:
zone "cui" in {
typemaster;
file"db.cui";
};
在RR中,所有不以 “.” 结尾的名的,如www 会自动附加上配置文件中中zone后面那个 字段的来源 “cui” 所以结合起来也就是 www.cui.
同理
234.7.168.192.in-addr.arpa. IN PTR www.cui.
简写:
234 IN PTR www.cui.
2 @符号的表示法
如果一个域名和来源相同的话,那么改名称就可以被表示为”@“ 最常见在区域数据文件中的SOA记录中
可以写成为
@ IN SOA bind1.cui. bind1.cui. ( 1h 3h 1h 1w 2h)
【安全性的 控制 查询 传输】
1 allow-query 允许查询的地址
默认 是只允许localhost
allow-query { localhost; };
结果: 非本地来的查询 将不会应答
一般改成: 允许来自所有的query,或者有acl控制特定的网络
allow-query { any };
2 allow-transter {any ;};
作用: 控制区域传送的(master 和slave
允许那些主机接收服务的区域传送
3 recursion yes; 允许递归查询
4 allow-recursion { any;} 默认的,指定允许哪些主机通过本服务器进行递归查询
5 allow-query-cache { any ;};
查找缓存
6 网络监听接口 一般设置为
作用: 服务器回应查询的端口号和接口(即IP地址)
listen-on port 53 { youIP; };
如果: 设为 listen-on port 53 { any ;}; 则所有端口都将监听起来
应用: 如不想在IPv6 的接口上监听
listen-on-v6 port 53 { none; };
【rndc 维护dns命令】
1 管理dns 可以通过发送一些linux上的信号进行
如:
1
|
kill
-HUP `
cat
/var/run/named
.pid`
|
rndc提供更多的手段通过信道(channel)用信号去管理
== 重载:
如:
1
|
rndc reload
|
重新加载server配置文件和zone区域文件
等于
/etc/init.d/named reload = kill kill -HUP `cat /var/run/named.pid`
注意: 还一个重载指定的区域 rndc reload zone
如: rndc reload zone
== 重启服务
rndc restart == /etc/init.d/named restart
== 状态
rndc status == /etc/init.d/named status
== stop/start
rndc stop == /etc/init.d/named stop == kill TERM `cat /var/run/named.pid`
== 清空缓存
rndc flush
注意: 区别重载和重启的区别:
最直观的是,重启进程pid会改变,重载不会改变
重载只是重新读取配置文件而已,没有把程序杀死在重启开启
2 rndc 可以控制的前提:
/etc/rndc.key
可以手动生成
rndc-confgen -r /dev/urandom -a
注: named.conf 中可以通过options 中的 controls 选项指定控制,默认不需要
3 rndc 监听端口是 953
4 修改了primary中的区域文件信息之后一定要记得 把序列号加+1
5 报错:
9 15:32:50 cui2 named[10634]: none:0: open: /etc/rndc.key: permission denied
解决办法:
chmod +r /etc/rndc.key
【解析器的那些文件和作用】
1 解析器就是 dns的客户端程序
如:
telnet shop-web01.beta 会去调用dns解析器 解析这个shop-web01.beta域名
ftp
ping
ssh
scp
等等程序都调用了dns解析器程序
2 涉及的文件
nsswitch.conf
/etc/resolve.conf
/etc/hosts
hostname
3 现象
为什么 ping dpindex-web01 解析器会将这个会自动解析dpindex-web01.beta
4 解释nsswitch.conf文件说明
一般用途: 其中一个行默认
hosts: files dns
其意思是 解析器解析域名的时候先查找/etc/hosts 下,在查找dns名称服务器
5 解释hostname和本地域的作用
hostname 如果是一个 主机名.域的形式如: shop-web01.beta
那么 点号后面的(beta) 就代表本地域
有了本地域在输入的时候,解析器就会自动补充如:
ping dpindex-web01
解析器会读成 dpindex-web01.beta 自动加上了本地域
作用,如tab一样可以减少输入
注:
如果 hostname主机名种没有 “.” 那么会将域变成root
关于要不要加上本地域 和 主机名中存在多个 ”.“ 的情况,解析器都是很智能能都都会处理好!
6 解释 /etc/resolve.conf 文件中的各个指令
domain
search
nameserver
options
domain 也是指定本地域,如果resolve.conf 中存在,这个指令
如 domain beta 那么会覆盖hostname计算出来的本地域
search指令 和domain 类似
只是 支持多个域
nameserver 指定使用的名称服务器
如:
nameserver 1.1.1.1
nameserver 2.2.2.2
nameserver 3.3.3.3
可以使用多个,当第一个故障时使用第二个
只有当 第一个查询超时时或者网络错误的时候,才会使用第二个!
注意,不是说第一个查询不到结果(正常的返回),这样是不会使用第二个名称服务器的
如
options 指令设置 一些debug 或者超时 重试等的
如:
options attempts:4 timeout:2 ndots:2
注:
一些特点和不同的版本是有区别的,以上在8版本之后都是支持的
其他一些关于太详细的用的不多的,请自行参考bind and dns 这本权威的书
【解析命令】
1 nslookup 在主要在windows下使用,linux下简单可以使用
nslookup 域名
nslookup IP 反向解析
解析出来的信息刨析:
参考
http://doc.okbase.net/1382972/archive/110141.html
重点关注:
flags 标志,如果出现就表示有标志,如果不出现就未设置标志:
qr query,查询标志,代表是查询操作
rd recursion desired, 代表希望进行递归(recursive)查询操作
ra recursive available 在返回中设置,代表查询的服务器支持递归(recursive)查询操作。
aa Authoritative Answer 权威回复,如果查询结果由管理域名的域名服务器而不是缓存服务器提供的,则称为权威回复。
AUTHORITY 权威域名服务器记录数,5代表该域名有5个权威域名服务器,可供域名解析用。对应下面AUTHORITY SECTION
ADDITIONAL 格外记录数,6代表有6项格外记录。对应下面 ADDITIONAL SECTION。
2 dig 命令
dig 域名
默认使用 本地dns(/etc/resolve.conf) 下配置的,去解析
默认解析A记录
选项或者参数
dig @dnsserver 域名
指定以你指定的名称服务器去解析这个域名
如:
dig @localhost .beta
dig -t type类型 域名
作用:指定记录类型
如:
dig -t MX dianping.com
dig -x IP
作用: 进行反解析,一般在内网工作起作用
如:
dig -x 192.168.213.86
dig +trace 域名
作用: 强制从root开始迭代查找结果
如:
dig +trace
【forward 】
自己转发不了的,转发给指定的名称服务器去解析
常用配置是,对某个区域自己解析不了的进行forward配置!
如:
对于 beta和nh这个区域,本地localhost 名称服务器是无法解析的,所以需要进行针对这个区域进行转发
type forward;
forward { 192.168.211.116; };
注: 当然也可以进行 全局进行都转发,这台名称服务器完完全全只作为转发服务器进行的!
其工作过程: 默认是 转发优先(相对 迭代 root而言)
其过程是: 本地解析域名,如果本地没有或者缓存没有,那么就像转发服务器发起查询,如果经过短暂周期没有收到应答响应,那么久会进行正常的操作,开始进行迭代查询!
是否加上forward-only; 只是有那么一点区别和 转发优先 ,只是速度上的一点区别而已!
鉴于版本不一样,我的bind版本 9.8
tail -f /var/log/messages
默认配置文件下,只配置 forward 一个区域的话,可能解析不了,会报错
validating @0x7f4f680616c0: beta SOA: got insecure response; parent indicates it should be secure
解决方案:
dnssec-enable no;
dnssec-validation no;
将yes都统统变成no