DNS系统的作用

  • 正向解析:根据主机名称(域名)查找对应的IP地址

  • 反向解析:根据IP地址查找对应的主机域名


DNS系统的分布式数据结构

构建主、从DNS域名解析服务器


DNS系统的类型

缓存域名服务器

  • 也称为 高速缓存服务器

  • 通过向其他域名服务器查询获得域名->IP地址记录

  • 将域名查询结果缓存到本地,提高重复查询时的速度

主域名服务器

  • 特定DNS区域的官方服务器,具有唯一性

  • 负责维护该区域内所有域名->IP地址的映射记录

从域名服务器

  • 也称为 辅助域名服务器

  • 其维护的 域名->IP地址记录 来源于主域名服务器


BIND(Berkeley Internet Name Daemon)

伯克利Internet域名服务

官方站点:https://www.isc.org/

相关软件包

  • bind

  • bind-utils

  • bind-libs

  • bind-chroot

  • caching-nameserver


BIND服务器端程序

  • 主要执行程序:/usr/sbin/named

  • 服务脚本:/etc/init.d/named

  • 默认监听端口:53

  • 主配置文件:/var/named/chroot/etc/named.conf

  • 保存DNS解析记录的数据文件位于:/var/named/chroot/var/named/


主配置文件named.conf

全局配置部分

  • 设置DNS服务器的全局参数

  • 包括监听地址/端口、数据文件的默认位置等

  • 使用 options { …… }; 的配置段

options {
    listen-on port 53 { 173.16.16.1; };                #监听地址和端口
    directory   "/var/named";                          #区域数据文件的默认存放位置
    allow-query  { 192.168.1.0/24; 173.16.16.0/24; };  #允许使用本DNS服务的网段
};


区域配置部分

  • 设置本服务器提供域名解析的特定DNS区域

  • 包括域名、服务器角色、数据文件名等

  • 使用 zone “区域名” IN { …… }; 的配置段

zone "steven.com" IN {                                
    type master;                      #type:区域类型               
    file "steven.com.zone";            #file:区域数据文件               
    allow-transfer  { 173.16.16.2; };                
};
zone "16.16.173.in-addr.arpa" IN {                   
    type master;
    file "173.16.16.arpa";                           
};


区域数据配置文件

全局TTL配置项及SOA记录

  • $TTL(Time To Live,生存时间)记录

  • SOA(Start Of Authority,授权信息开始)记录

  • 分号“;”开始的部分表示注释信息

$TTL    86400                                      ;
@  IN  SOA  benet.com.  admin.benet.com.  (        ;
           #区域名称      管理邮箱地址
   2011030501                                  ;
   3H                                          ;
   15M                                         ;
   1W                                          ;
   1D                                          ;
)#从服务器更新参数


域名解析记录

  • NS域名服务器(Name Server)记录

  • MX邮件交换(Mail Exchange)记录

  • A地址(Address)记录,只用在正向解析区域中

  • CNAME别名(Canonical Name)记录

@          IN     NS         ns1.steven.com.
           IN     MX 10      mail.steven.com.
ns1        IN     A          58.119.74.203
www        IN     A          173.16.16.1
mail       IN     A          173.16.16.4
ftp        IN     CNAME      www


域名解析记录

  • PTR指针(Point)记录,只用在反向解析区域中

  • 记录的第一列指定IP地址中的主机地址部分即可

1       IN      PTR     www.steven.com.
4       IN      PTR     mail.steven.com.


区域数据配置文件的特殊应用

基于域名解析的负载均衡

  • 同一域名对应到多个IP地址

www          IN     A          173.16.16.173
www          IN     A          173.16.16.174
www          IN     A          173.16.16.175


泛域名解析

  • 找不到精确对应的A记录时,使用“*”进行匹配

*           IN     A          173.16.16.173


对配置文件进行语法检查

named-checkconf工具

格式:named-checkconf [主配置文件]

named-checkzone工具

格式:named-checkzone <域名> <区域数据文件>



实验环境

构建主、从DNS域名解析服务器


需求描述

  • 主域名服务器地址:ns1.benet.com(173.16.16.5)

  • 从域名服务器地址:ns2.benet.com(173.16.16.6)

  • 为benet.com、accp.com区域提供正、反向解析记录

实现思路

  • 设置主、从服务器的主机名、IP地址、地址映射等

  • 构建ns1主域名服务器

  • 构建ns2从域名服务器

  • 在客户机测试主、从域名服务器


下面是RHEL 6.3 DNS服务器的配置截图

修改主机名

构建主、从DNS域名解析服务器

构建主、从DNS域名解析服务器


修改DNS解析的服务器地址

构建主、从DNS域名解析服务器

构建主、从DNS域名解析服务器


修改hosts主机映射

构建主、从DNS域名解析服务器

构建主、从DNS域名解析服务器


修改网络接口地址,然后重启系统

构建主、从DNS域名解析服务器

构建主、从DNS域名解析服务器


挂载RHEL6.3的系统光盘,安装BIND软件,安装bind和bind-chroot

构建主、从DNS域名解析服务器


把/etc目录下的named开头的文件复制到/var/named/chroot/etc/目录下

构建主、从DNS域名解析服务器


把/var/named/目录下除了chroot目录外的所有文件复制到/var/named/chroot/var/named/目录下

构建主、从DNS域名解析服务器


由于安装了bind-chroot软件包,所以是编辑/var/named/chroot/etc/named.conf文件,添加正区域和反区域,allow-transfer指定允许下载区域配置文件的地址

构建主、从DNS域名解析服务器

构建主、从DNS域名解析服务器


编辑benet.com的正向区域

构建主、从DNS域名解析服务器构建主、从DNS域名解析服务器


编辑accp.com的正向区域

构建主、从DNS域名解析服务器

构建主、从DNS域名解析服务器


编辑benet.com的反向区域

构建主、从DNS域名解析服务器

构建主、从DNS域名解析服务器


把主配置文件的所属组改为named

构建主、从DNS域名解析服务器


把区域配置文件的所属组改为named

构建主、从DNS域名解析服务器


检查区域文件是否正确

构建主、从DNS域名解析服务器


下面是RHEL 5.0 从DNS服务器的配置截图

修改主机名

构建主、从DNS域名解析服务器

构建主、从DNS域名解析服务器


修改DNS解析的服务器地址

构建主、从DNS域名解析服务器

构建主、从DNS域名解析服务器


修改hosts主机映射

构建主、从DNS域名解析服务器

构建主、从DNS域名解析服务器


修改主机网络接口IP地址,然后重启系统

构建主、从DNS域名解析服务器

构建主、从DNS域名解析服务器


挂载RHEL5.0的系统光盘,安装BIND软件,安装bind和bind-chroot

构建主、从DNS域名解析服务器


由于安装了bind-chroot软件包,所以是编辑/var/named/chroot/etc/named.conf文件,添加正区域和反区域.masters指定主DNS服务器的地址

构建主、从DNS域名解析服务器

构建主、从DNS域名解析服务器


把主配置文件的所属组改为named

构建主、从DNS域名解析服务器


两台服务器都开启named服务,查看是否正在监听53端口

构建主、从DNS域名解析服务器

构建主、从DNS域名解析服务器


从DNS服务器自动从主DNS服务器下载区域配置文件

构建主、从DNS域名解析服务器


下面用WIN 7客户机验证一下

修改默认的DNS服务器地址,把DNS指向主DNS服务器

构建主、从DNS域名解析服务器


验证正向解析

构建主、从DNS域名解析服务器


验证反向解析

构建主、从DNS域名解析服务器


验证ACCP域

构建主、从DNS域名解析服务器


把DNS指向从DNS服务器

构建主、从DNS域名解析服务器


正向解析,反向解析都没问题.

构建主、从DNS域名解析服务器

构建主、从DNS域名解析服务器

构建主、从DNS域名解析服务器


总结基本配置步骤:

  1. 确认本机网络地址、主机映射、默认DNS服务器地址

  2. 建立主配置文件named.conf

  3. 建立正、反向区域数据文件

  4. 启动named服务,或重载配置

  5. 验证主、从域名服务器