安装
yum install bind
yum install bind-utils
配置
修改/etc/named.conf
-
options {
listen-on port 53 { ANY; }; // 默认监听l? 在bind9上,注释掉这一行,也监听any。 不能写成0.0.0.0
allow-query { ANY; }; // 允许查询
allow-transfer { none; }; // 禁止区域传输
zone "example.com" IN { // 追加区域。可参考/usr/share/doc/bind-*/sample/var/named/
type master;
file "named.example.com";
allow-update { none; }; // 可以考虑允许
};
//zone "80.168.192.in-addr.arpa" IN {
// type master;
// file "named.80.168.192.in-addr.arpa";
// allow-update { none; };
//};
/var/named/named.example.com
-
$TTL 3H
-
@ IN SOA @ admin.example.com. (
-
1 ; serial // 更新区数据后要增加serial
-
1D ; refresh
-
1H ; retry
-
1W ; expire
-
3H ) ; minimum
-
MX 100 mail
-
NS dns
-
mail A 192.168.80.101
-
dns A 192.168.80.101
-
host101 CNAME dns
-
host128 A 192.168.80.128
注意/var/named的权限,应该给named用户写权限。
启动停止 控制
首先配置rndc key,否则初次启动named时会卡在“Generating /etc/rndc.key:”。
rndc-confgen -a -k myrndckey -r /dev/urandom
默认为输出到stdout。-a选项可以直接生成rndc.conf并更新named.conf。
/etc/named.conf
-
controls {
-
inet 127.0.0.1 port 953
-
allow { 127.0.0.1; } keys { "rndc-key"; };
-
};
-
include "/etc/rndc.key";
/etc/rndc.conf
-
key "rndc-key" {
-
algorithm hmac-md5;
-
secret "FuZuP6WGv8cIlZ0TwlPsfg==";
-
};
-
-
options {
-
default-key "rndc-key";
-
default-server 127.0.0.1;
-
default-port 953;
-
};
/etc/rndc.key
-
key "rndc-key" {
-
algorithm hmac-md5;
-
secret "FuZuP6WGv8cIlZ0TwlPsfg==";
-
};
需要给named用户读权限
/etc/init.d/named {start|stop|status|restart|try-restart|reload|force-reload}
rndc { status | stop | reload | dump | ... }
linux客户机配置dns解析器
在/etc/reslov.conf中设置nameserver。
此文件可能会自动生成和更新,真正的配置在ifcfg-eth0中。
DNS1=192.168.80.101
另外,/etc/nssiwtch.conf中规定了名字查询方法的顺序。默认为/etc/hosts->dns
hosts: files dns
高级主题
地址匹配列表和ACL
DNS 动态更新nsupdate
-
# cat NSUPDate_script.txt
-
server 127.0.0.1
-
prereq yxdomain test.example.com
-
update delete test.example.com A
-
update add test.example.com 300 A 192.168.80.120
-
send
-
# nsupdate NSUPDate_script.txt
DNS 安全扩展(DNSSEC)
常用命令
nslookup
nslookup 一次仅与一个名字服务器会话。这是nslookup 与解析器(resolver)在行为表现方式上的最大区别。
dig
whois
h2n 用Perl写的一个主机表/etc/hosts到主文件的转换器。
补充一些概念
名字到地址的查找有时称为正向映射(forward mapping),
而地址到名字的查找称为反向映射(reverse mapping)(in-addr.arpa区)。
DNS查找不区分大小写
注释 区数据文件注释是以分号开头的,到行尾处结束。
bind配置文件可以使用三种风格的注释:C 语言风格、C ++风格和shell风格
SOA 记录 指示该区的权威
每个db.DOMAIN 和db.ADDR 文件都要有SOA 记录。
每个区数据文件中允许有一个也只允许有一个SOA 记录。
正向映射 example.com. IN SOA maindns.example.com. admin.example.com.
反向映射 249.249.192.in-addr.arpa. IN SOA maindns.example.com. admin.example.com.
IN 表示Internet。
NS 记录 列出该区的一个名字服务器
正向映射 example.com. IN NS maindns.example.com.
example.com. IN NS dns2.example.com.
反向映射 1.249.249.192.in-addr.arpa. IN NS maindns.example.com.
MX 记录 邮件交换器(mail exchanger)
为了避免邮件路由循环,在MX记录中除了邮件交换器的域名之外,另外还有一个
参数:优先级值。优先级值是一个无符号的16 位整数(在0 和65535 之间),用来
指示邮件交换器的优先级。
如果向优先级最高的邮件交换器发送失败,邮件收发器会试着向优先级低一点的邮
件交换器(它们的优先级值要大一点)发送。
oreilly.com. IN MX 0 ora.oreilly.com.
oreilly.com. IN MX 10 ruby.oreilly.com.
(与其他不同的是,IN前面不是主机名。
与SOA,NS连写时可以省略IN前面的域名)
A记录 名字到地址的映射
maindns.example.com. IN A 192.249.249.1
A 代表地址(address)
PTR记录 地址到名字的映射
1.249.249.192.in-addr.arpa. IN PTR maindns.example.com.
CNAME 规范名字(相对于别名而言)
CNAME(canonical name,规范名)
缩写
zone 语句(BIND 8 和9)的第二个字段指定了一个域名。
这个域名对最常使用的缩写来说是关键。
这个域名是区数据文件中所有数据的起点(origin)。
这个起点会被附加到所有区数据文件中不以“.”结尾的名字后面。
maindns.example.com. IN A 192.249.249.1
1.249.249.192.in-addr.arpa. IN PTR maindns.example.com.
缩写 maindns IN A 192.249.249.1
1 IN PTR maindns.example.com.
如果一个域名和起点相同,那么这个名字就可以写成“@”
@ IN SOA terminator.movie.edu. al.robocop.movie.edu.
如果一个资源记录名(从第一列开始)是一个空格或者制表符,那么就沿用上一个记录的名字。
wormhole IN A 192.249.249.1
IN A 192.253.253.1
阅读(1303) | 评论(0) | 转发(0) |