zoukankan      html  css  js  c++  java
  • 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来的到根服务器的解析记录

  • 相关阅读:
    接口
    多态
    static的用法
    Person类中多个构造方法和测试
    曹操外卖实现功能
    曹操外卖数据表设计
    java中 try catch finally和return联合使用时,代码执行顺序的小细节
    GenerationType四中类型
    spring boot
    VMware修改为静态ip
  • 原文地址:https://www.cnblogs.com/clearlove/p/4175975.html
Copyright © 2011-2022 走看看