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. 中指定,管理员邮件地址是[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

 

 

你可能感兴趣的:(dns,bind)