DNS 域名服务

DNS服务器 

正向解析

根据主机名称(域名)查找其对应的ip地址

反向解析根据ip地址查找其对应的主机名称(域名)

反向解析在反垃圾邮件/安全防护等领域使用

Dns查询方式分为迭代查询与递归查询

其中Dns客户端与客户端首选的Dns服务器之间是递归查询 而客户机首选的Dns服务器与其他的Dns服务器之间是迭代查询

 DNS服务器的类型

1 主域名服务器

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

负责维护该区域内所有的域名 ip地址记录

2从域名服务器

也称为辅助域名服务器

其维护的域名 --> ip地址 记录取决于主域名服务器i

缓存域名服务器

向其他DNS服务器查询,获得域名-->ip地址记录

缓存查询结果,提高重复查询的速度

Bind 服务端程序

主要执行程序 /usr/sbin/names

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

默认端口 53

虚拟根环境 /var/named/chroot/

主配置文件 /etc/named/conf

区域数据文件 /var/named/..

详细过程

安装  yum -y install bind bind-chroot caching-nameserver

bind-chroot 用来改变根环境

caching-nameserver用来提供样本配置文件

 

 

listen-on port 53 { 192.168.10.1;    };设置监听地址和端口

directory var /named 地址文件的默认位置

allow-query { 192.168.10.1      }允许。。。客户机查询

允许那些客户机查询

其中yky.zone 定义了正向区域

type master 定义了区域类型

master  主区域

slave  从区域

file yky.zone  定义了区域数据文件

 在配置主文件之后,我们可以用named.checkconf对文件进行检查

 

注意到主配置文件的路径

我们建立区域配置文件

我们先编辑区域配置文件的模板文件

 

 

全局ttl置顶以及SOA记录

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

SOA(start of authority ,授权信息开始)

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

@ IN SOA 区域名.区域管理邮箱.(..

)

serial   更新序号

refresh  刷新时间

retry     重试间隔

expiry    失效时间

minimum  无效记录的生存周期

修改模板文件并重命名为主配置文件中描述的名字

重启dns服务

可以看到

成功解析

同样我们可以添加反向区域查找文件让DNS做反向解析

我们编辑antiyky这个文件

这是反向解析记录 可以注意到我们正想解析记录中的A记录变成了反向解析记录中PTR记录

同时在实际的生产环境中,可能会出现下列情况 我们需要对两百台主机做域名解析,他们被解析的域名往往具有一定的规律,但我们不方便将这两百条记录全部写上,因此,我们使用到了泛型解析格式为$GENERATE A-B  用GENERATE 产生 A到B的数列,如此大大减轻了配置的负担

可以看到,成功进行了解析

2 从域名服务器

在实际的生产环境中,为了保证服务器的高可用与负载均衡,我们需要进行主从DNS的配置

对于主DNS服务器,配置的时候我们需要使用transfer关键字

 

其中allow-transfer 指向从DNS服务器的IP

相比主DNS服务器。从DNS服务器不需要配置区域数据文件

type slave 声明自己是从Dns服务器

masters指明自己的主DNS服务器

不需要声明区域数据文件但是也需要声明从主Dns服务器拷贝过来的数据文件的存放路径,该存放文件需要与主Dns服务器的区域数据文件同名

重启后可以解析文件

当我更新了主DNS服务器的一条DNS记录

此时我们查看从Dns服务器

 从DnS服务器

数据未变,那么如何实现同步呢?

我们将主DnS服务器的序列号+1

 同时DNZ还可以配置子域授权与分离解析

很有可能会出现如下情况

比如说我们有这样的要求

父DNS服务器需要解析baidu.com该域

子DNS服务器需要解析tieba.baidu.com该域

事实上。我们需要达到的是这个效果

 

 

于是,我们在主DNS配置文件中又增加了chris.yky.com这个子域名,并将其管理员账号设置为who。chris.yky.com,同时我们指出who.yky.com这个域名所对应的ip这样一来便确定了解析该子域的Dns主机

当查询www.chris.yky.com的时候,父域会将该查询交给chris.yky.com授权的那台主机上,将在这台被交予授权的主机上

进行DNS解析,将得到的结果返还给父域的主机。所得到的是非权威记录

 进行测试

此时用nslookup解析

由于此时本机的的dns地址是192.168.0.1而www.chris.yky.com地址的解析记录位于子域dns服务器的区域配置文件中

因此得到的是非权威解析记录

既然我们可以通过子域授权使得可以向父域dns服务器查找而得到子域dns服务器的区域解析记录

那么我们也可以通过子域转发使得可以向子域dns服务器查找而得到父域dns服务器的区域解析记录

So   how to do it ?

在子域dns区域配置文件中添加相应的转发配置

一样的也是非权威解析记录

Split view分离解析

我们想通过判断用户来源地址,给出不同的解析结果如何做

view "视图1" {

  match-clients { 来源地址;};

  zone “yky.com” IN {

  type master;

  file "yky.zone.1";  

};

view "视图2" {

  match-clients { any; };

  zone “yky.com”IN{

  type master;

  file "yky.zone.2";

 

};

如上,其中match-client{ 来源地址;};

可以通过来源地址定义acl列表 如 acl "mylan"{

   192.168.1.0/24;

   127.0.0.0/24;  

  };

那么在定义acl之后来源地址就可以通过在acl中定义的匹配地址的那个变量代替如在本例中的mylan代替

 

 

 

}  

这样一来 地址为 192.168.0.1的客户机解析文件的时候使用的是yky.zone.1的这个文件

    而地址为 192.168.0.2的客户机解析文件的时候使用的是yky.zone.2的这个区域配置文件

 构建缓存DNS服务器

此为转发,如果是通过获取根区域数据文件来实现dns缓存服务器话,配置如下

其中named.ca可以通过 wget ftp://ftp.internic.org/domain/named.root来的到根服务器的解析记录

posted @ 2014-12-20 22:28  平何去何  阅读(535)  评论(0编辑  收藏  举报