dns相关

Linux之DNS服务Bind

2016-03-07  本文已影响2205人  魏镇坪
什么是DNS及功能:

DNS(Domain name server),是将IP地址转换为域名地址。当在互联网访问外部服务器时,其主机都是以IP地址及端口标识(被称之为一个套接字文件),当主机A需要与主机B通信时,A必须知道其B的IP地址,但IP地址不能方便人们的记忆,故使用其计算机名进行标识。早期的互联网通信下,服务器的计算机名与其IP地址对应关系,被记录在了hosts文件中,这也正是早期的域名解析模型。但随着互联网的服务器增加,单依靠hosts的记录所有的计算机名映射,会导致查询速度非常慢、计算机名的变更更新速度慢。其DNS可以解决由hosts文件来解释域名映射的诸多问题。

IP与计算机名底层转换机制
客户端请求域名解析查询机制:
DNS服务端查询原理
正向解析的区域及资源记录组成分解(各对应的二级域) :

注意: 其反向区域也应为此类区域及资源记录组成格式。所有的区域定义在/etc/named.conf文件中。资源记录可以为系统中的任何一个文件来记录,但需要在区域文件中指明

DNS服务器的类型:
DNS的解析返回结果分类:
DNS服务器返回结果答案类别:
主从DNS服务器的数据复制选项

注意:以上选项时间单位都支持W,D,H,M,这参数定义在资源记录的文件中,位置为SOA的后面,以()包含,其括号前后都有空格

主从DNS之间的区域传送机制:
资源记录组成部分,简称rr:

资源记录的定义格式: name [ttl] IN RR_TYPE vlue

注意:

BIND服务

简介

BIND(berkeley internet name domain ),由berkeley大学开发,现由ISC组织维护,其是DNS协议的实现解决软件,服务端的运行进程为named

BIND程序包说明
BIND的工作端口
BIND的配置文件及工作目录
named.conf配置参数说明:
配置主从DNS服务器
注意:
1、前期为了不影响服务器之间的通信,建议关闭防火墙功能
2、需要在主NS服务器上,定义从NS的记录及NS所对应的A记录
3、在从NS定义区域类型时,需要定义为slave,并定义masters为主NS的地址
4、在Centos 7平台可以使用systemctl status named,查看其运行状态,如果有错误,可以查看日志
5、配置主从DNS服务器,需要保证服务器之间的时间一致,可以使用ntpdate命令同步时间。
定义二级域

ACL及视图的使用:

1、ACL的定义格式:
acl acl_name {
    ip;
};

#####示例:
acl innet {
    10.189.9.0/24;
    127.0.0.1/8;
    192.168.0.0/24;
};

options {
    directory "/var/named";
    allow-recursion { innet; };
};
2、视图的定义格式:
  view VIEW_NAME {

  };
ACL及视图的配合使用,可实现智能DNS的实现:
root@localhost named]# cat /etc/named.conf
    acl telecom {
        10.189.9.0/24;    
    }; 
                #此ACL定义了电信IP的列表
    acl unicom {
        10.189.8.0/24;
    };
                #此ACL定义了联通IP的列表
    options {
        directory "/var/named";
        allow-recursion {   localnet; };   #定义了允许递归请求的主机为NS所在网络的所有主机
        allow-query { any; };
    };

    view  telecom {
        match-clients { telecom; };
        zone "mageedua.com" IN {
            type master;
            file "telecom.mageedua.com.zone";
        };
    };

    view unicom {
        match-clients { unicom; };
        zone "mageedua.com" IN {
            type master;
            file "unicom.mageedua.com.zone";
        };
    };
     #在named.conf配置文件中,配置view功能,并在视图区域定义match-clients 参数,让match-clients引用acl列表,acl可以为电信IP列表,或者联通IP列表。最后在view视图中定义需要智能DNS的区域。一般情况,可以将区域划分三类: 1、内网视图  2、电信视图 3、联通视图
     [root@localhost named]# cat telecom.mageedua.com.zone
    $TTL 86400
    @   IN  SOA ns1.mageedua.com.   admin.mageedua.com. (
            2015061101
            1D
            1H
            7D
            1D )
        IN  NS  ns1
        IN  MX  10    mail
    ns1 IN  A   10.189.9.110
    mail    IN  A   10.189.9.111
    www IN  A   10.189.9.112   #电信www服务器为112的地址
    [root@localhost named]# cat unicom.mageedua.com.zone
    $TTL 86400
    @   IN  SOA ns1.mageedua.com.   admin.mageedua.com. (
            2015061101
            1D
            1H
            7D
            1D )
        IN  NS  ns1
        IN  MX  10    mail
    ns1 IN  A   10.189.9.110
    mail    IN  A   10.189.9.111
    www IN  A   10.189.9.113  #联通www服务器为113的地址
    [root@localhost slaves]# dig -t A www.mageedua.com @10.189.9.110   #电信用户查询结果

    ; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7_0.1 <<>> -t A www.mageedua.com @10.189.9.110
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58349
    ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
    ;; WARNING: recursion requested but not available

    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4096
    ;; QUESTION SECTION:
    ;www.mageedua.com.      IN  A

    ;; ANSWER SECTION:
    www.mageedua.com.   86400   IN  A   10.189.9.112

    ;; AUTHORITY SECTION:
    mageedua.com.       86400   IN  NS  ns1.mageedua.com.

    ;; ADDITIONAL SECTION:
    ns1.mageedua.com.   86400   IN  A   10.189.9.110

    ;; Query time: 1 msec
    ;; SERVER: 10.189.9.110#53(10.189.9.110)
    ;; WHEN: 四 6月 11 10:26:21 CST 2015
    ;; MSG SIZE  rcvd: 95
named的内置ACL:

rndc工具

其是named内置提供的远程管理dns的工具,要以实现DNS的监控,启动或停止等操作。其默认工作在953端口。

rndc的配置
    [root@Centos6 named]# rndc-confgen  >> /etc/rndc.conf   #使用rndc-confgen生成key文件
    [root@Centos6 named]# vim /etc/rndc.conf #默认在安装bind服务时,会产生/etc/rndc.key,需删除
    # Start of rndc.conf
    key "rndc-key" {
            algorithm hmac-md5;
            secret "vAv9U7k+jaHYI0gwdru1dA==";
    };

    options {
            default-key "rndc-key";
            default-server 127.0.0.1;
            default-port 953;
    };
    # End of rndc.conf

    # Use with the following in named.conf, adjusting the allow list as needed:
    # key "rndc-key" {
    #       algorithm hmac-md5;
    #       secret "vAv9U7k+jaHYI0gwdru1dA==";
    # };
    #
    # controls {
    #       inet 127.0.0.1 port 953   #如果需要外部主机远程监控,需要将127的地址更改为外部IP
    #               allow { 127.0.0.1; } keys { "rndc-key"; };   #允许控制的主机IP地址 
    # };
    # End of named.conf
    #将添加注释的行添加到/etc/named.conf文件中,并去掉注释
    [root@Centos6 named]# cat /etc/named.conf
    key "rndc-key" {
       algorithm hmac-md5;
       secret "vAv9U7k+jaHYI0gwdru1dA==";
    };
    controls {
       inet 10.189.9.202 port 953
           allow { 10.189.9.202; } keys { "rndc-key"; };
    };
    [root@Centos6 named]# rndc -c /etc/rndc.conf flush
    [root@Centos6 named]# rndc -c /etc/rndc.conf notify "mageedua.com"
    zone notify queued
    [root@Centos6 named]# rndc -c /etc/rndc.conf stop
    [root@Centos6 named]# rndc -c /etc/rndc.conf status
    #rndc命令,可以使用rndc -h查看相关选项
rndc的指令选项:

DNS测试工具:

dig 命令
host 命令
nslookup
国内著名的智能DNS提供商:
上一篇 下一篇

猜你喜欢

热点阅读