centos 7 安装 bind
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. 中指定,管理员邮件地址是mailuser@my.com,由于@字符在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
上一篇: Spring AOP(注解开发)