您的位置:首页 > 其它

DNS 域名服务

2014-12-20 22:28 267 查看
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来的到根服务器的解析记录
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: