阅读更多
bind 是域名服务器的事实标准。centos 7下安装:
yum install -y bind
systemctl enable named
bind 还有两个组件
bind-chroot :改变bind 的运行根目录,提高安全性
bind-utils :提供了几个工具 dig,nsloopg,host,nsupdate,nsupdate
配置
默认下,bind 的入口配置是 /etc/named.conf
该文件下包含以下配置
options :{} 指明named运行目录,安全
logging: {} 日志
zone: {} 域名配置
基本配置
#/etc/named.conf
options {
directory "var/named";
recursion yes;
};
zone "my.com" {
type master;
file "my.com.zone";
};
zone "cname.com" {
type master;
file "cname.com.zone";
};
zone 中的域名信息由 file 字段指定,file 存放在options中的directory下,比如 my.com.zone文件如下
$TTL 7200
my.com. IN SOA my.com. mailuser.my.com. (1111 1H 20M 1W 1D)
my.com. IN NS dns1.my.com.
dns1.my.com. IN A 192.168.137.77
www.my.com. IN A 2.8.2.2
以上配置,首先指定 域名有效时间是 7200秒
再指定 SOA(权威站点) 是my.com. 中指定,管理员邮件地址是[email protected],由于@字符在bind配置文件中的特殊含义,所以写成 mailuser.my.com. (1111 1H 20M 1W 1D) 的表达 的是:序列号是1111, 更新周期 1小时,失败重试时间是20分钟,有效期是1周,最短有效期是1天
然后指定 my.com. 的 NS 记录是在 dns1.my.com. ,dns1.my.com.的A记录是 192.168.137.77
最后指定 www.my.com 的 A记录是 2.8.2.2
CNAME配置
比如www.cname.com的CNAME是www.my.com.,在 cname.com.zone 中:
$TTL 8200
@ IN SOA cname.com. ccc.cname.com (1200 1H 20M 1W 1D)
@ IN NS dns1.cname.com.
dns1 IN A 192.168.137.77
www IN CNAME www.my.com.
@符的含义
上面 cname.com.zone 文件中出现在@符。 @符的含义是 :当前站点。在上述配置中就是指 cname.com
子域查询
如果 my.com.下有个三级域名 third.my.com.,还有四级域名 fourth.third.my.com ,但存放四级域名信息在另外一台DNS服务器,则可以通过子域名查询。子域查询要求 options 下的 recursion 打开。
$TTL 7200
my.com. IN SOA my.com. mailuser.my.com. (1111 1H 20M 1W 1D)
my.com. IN NS dns1.my.com.
dns1.my.com. IN A 192.168.137.77
www.my.com. IN A 2.8.2.2
thir.my.com IN NS dns3.third
dns3.thrid IN A 192.168.137.23
FORWARD查询
forward 查询一般是指,将本机的请求转发到另一台DNS机器上
zone "other.com" {
type forward;
forward {192.168.2.33l};
}
反向解析配置
反向解析是根据 IP 地址查询域名,一般是邮件服务器在收到邮件后,根据源IP去查询源域名信息。比如现有一台机器 192.168.4.50 的域名是 mail.my.com
zone "4.168.192.in-addr.arpa" {
type master;
file "192.168.4.zone";
}
在 192.168.4.zone 文件中
@TTL 3600
@ IN SOA 4.168.192.in-addr.arpa mailuser.my.com (3001 1H 20M 1W 1D)
@ IN NS dns1.my.com
在 my.com.zone文件中,也提供邮件域名的A地址,同时加入MA记录
$TTL 7200
my.com. IN SOA my.com. mailuser.my.com. (1111 1H 20M 1W 1D)
my.com. IN NS dns1.my.com.
dns1.my.com. IN A 192.168.137.77
www.my.com. IN A 2.8.2.2
@ IN MX 10 mail
mail.my.com IN A 192.168.4.55
主从配置
#主服务器
zone "lb.com" {
type master;
notify yes;
also-notify {192.168.137.55;};
allow-transfer {192.168.137.55;};
file "lb.com.zone"
}
#从服务器
zone "lb.com" {
type slave;
file "lb.com.zone";
master-ip {xxx.xxx.xxx.xxx;};
}
主服务器的zone 配置文件如果改动了,一定要改动 SOA 的序列号,因为从机是根据序列号进行增量更新
#file lb.com.zone 改之前
$TTL 7200
lb.com IN SOA lb.com. mailuser.lb.com (1111 1H 10M 1W 1D)
#改之后
lb.com IN SOA lb.com. mailuser.lb.com (1112 IH 1M 1W 1D)
另外,为了保证安全,在主机上,要注意加上传输的限止,也就是
allow-transfer {192.168.137.55;};
除了指定IP,还可以通过 加密签名 进行限制。
智能DNS
所谓智能DNS就是根据访客的地区提供不同的A记录。让用户找到最近的服务器。需要新增两个配置:
1 ACL 表示这个区域下的一批IP段,
2. view ,每个view 中指定对应的ACL,以及相应的zone配置
#ACL 文件
acl alcname {
102.56.8.0/24;
.....
}
#/etc/named.conf
options {
directory "var/named";
recursion yes;
};
include "/var/named/chineunicom.acl"
include "/var/named/chinemobile.acl"
view "chineunicom"{
recursion no;
client-match {chineunicom;}
zone "my.com" {
type master;
file "my.com.zone";
};
zone "cname.com" {
type master;
file "cname.com.zone";
};
}
view "chinemobile"{
...
}
客户端工具
客户端工具有 host,nslookup,dig,都可以进行正向反向查询。dig 工具最强大
#正向查询
dig www.my.com
#反向查询
dig -x 192.168.4.55
#指定DNS服务器
dig @8.8.8.8 www.csdn.com