一、简介

DNS是计算机域名系统或域名解析服务器(Domain Name Server或Domain Name System) 的缩写,它是由解析器以及域名服务器组成的。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。DNS使用TCP与UDP端口号都是53,主要使用UDP,服务器之间备份使用TCP。

在IPV4中IP是由32位二进制数组成的,将这32位二进制数分成4组每组8个二进制数,将这8个二进制数转化成十进制数,就是我们看到的IP地址,其范围是在0~255之间。因为,8个二进制数转化为十进制数的最大范围就是0~255。已开始试行、将来必将代替IPv4的IPV6中,将以128位二进制数表示一个IP地址。

DNS最早于1983年由保罗·莫卡派乔斯(Paul Mockapetris)发明;原始的技术规范在882号因特网标准草案(RFC 882)中发布。1987年发布的第1034和1035号草案修正了DNS技术规范,并废除了之前的第882和883号草案。在此之后对因特网标准草案的修改基本上没有涉及到DNS技术规范部分的改动。

二、环境规划

环境ip地址
主DNS(主机名dns)192.168.1.200
辅DNS(主机名ns2)

192.168.1.210

www192.168.1.211
mail192.168.1.212
ftp192.168.1.213
子域testdns192.168.1.220
子域www192.168.1.221

   本文我们假设在互联网上申请到了一个域名为wangfeng7399.com,域名下面有www、ftp和mail服务器。由于公司发展需要,先在域名下分配了子域linux.wangfeng7399.com,子域下面现在只有www服务器

三、主副DNS搭建,并实现正向解析与反向解析

1)主DNS搭建

  DNS的配置文件分为主配置文件和区域配置文件,其中主配置文件在/etc/named.conf其中最少应该包含三段信息,分别为根、local和127.0.0.1的配置,区域配置文件存放在/var/name的路径下,每个文件用于指定一个区域。

  本文主要的配置文件是通过yum和rpm安装得到的配置文件,关于bind的源码安装将在后续推出,敬请关注

  在配置的过程中,可以使用bind的自带的配置文件,也可自己生成配置文件,本文主要讲解自己生成配置文件,先将bind自带的配置文件改名,然后自己生成配置

 1、正向解析搭建

主配置文件

wKiom1Md3AuQzlJsAAF62rD3BHA662.jpg

区域文件

 

wKioL1Md05LTUUvMAAFfSiI2RIw591.jpg

测试语法是否有错误

wKioL1Md1JPD0dYqAACJr9C8aFs113.jpg

启动服务

wKiom1Md1QPh79-fAAAsEukdvU0034.jpg

测试

wKioL1Md1TGxBLscAAJVBdzfmPQ637.jpg

 2、反向解析搭建

    在主匹配文件中添加如下代码

wKioL1Md3C-R3_o4AAA90Vx8weU347.jpg

    反向解析的区域配置文件

wKiom1Md3LXAbc67AADNVe3_6yg981.jpg

   测试,同样使用dig

wKiom1Md3RyBLvFGAAFXOBuSb8c480.jpg

   为确保配置文件的安全性,建议将所有的配置文件的属主改为root,属组改为named,权限改为640

2)辅DNS搭建

 1、正向解析同步,在主配置文件中添加如下参数

wKiom1Md37HiZEu4AACOgcdTbE8565.jpg

   并在主配置文件中添加

   

wKioL1Md4PnR9LrxAACIiBeW_cA729.jpg

   测试

wKioL1Md3_Oh0CMrAAJn1-RC2is965.jpg

  修改主DNS区域文件中的一条解析,将ftp解析到192.168.1.213上

wKioL1Md4TzRZEG8AADh9Mz8jQo438.jpg

查看辅DNS是否可以更新

wKiom1Md4efghGuWAAJOizxAatw694.jpg

 2、反向解析同步同正向解析相同,本处不在做实验

四、DNS子域划分(本处只讲解正向解析在主DNS的划分,从DNS与主DNS相同)

在主DNS中添加如下内容

wKiom1Md7u6hZzo0AAEW_oIbfo4078.jpg

在子域的主配置文件添加

   wKioL1Md7o-CL5XGAAHB7b7bwv4428.jpg

五、请求转发(本处之讲解正向解析的在主DNS的划分,从DNS与主DNS相同

我们的DNS在本地指定的DNS找不到解析后,会直接向跟发起请求,为了使根的负载变小,我们可以设置请求转发

1)转发非本机负责解析的所有区域

 需要在全局变量中定义

 wKiom1Md8mrjVmkiAABCOrEPN7Q887.jpg

测试

wKiom1Md8wvB7CNMAALXkTxx4tc282.jpg

2)解析某个特定的区域

wKioL1Md8ZKzlYZ4AACOn50Lz8o812.jpg

测试

wKioL1Md8wqCpYLgAAITdPKoZd4543.jpg

安全控制选项:

  allow-transfer{};通常都需要启用,从服务器

  allow-query{};此项仅用于服务器是缓存名称服务器时,只开放查询功能给本地客户端

  allow-recursion{可以使用网段};允许递归的白名单

  allow-update{ none; }:允许动态更新数据文件的主机白名单

六、acl访问控制列表

BINA支持使用访问控制列表,可以自己定义

如 acl ACL_NAME{

    option1;

    option2;

    ……

};

在使用的时候可以直接引用控制列表的名称即可

访问控制列表只有定义后才能使用,通常acl要定义在named.conf的最上方

 BIND有四个内置的acl

   any:任何主机

   none:无一主机

   local:本机

   localnet:本机所在的网络

未完,待续