DNS服务器——基本配置

一、概述

    DNS 全名 Domain Name System,即域名系统。DNS 服务的主要功能是完成 FQDN 和 IP 之间的转换。FQDN 即 Full Qulified Domain Name,译为完全合格域名。FQDN 又是由主机名称和它的域名(包括根域和顶级域)组成。

DNS服务器——基本配置_第1张图片

    DNS 的组织结构可以看作是树状结构,最上层叫做根域,用 . 表示。根域下面叫做顶级域(TLD,Top Level Domain)顶级域下面还可以分为多级。每一部 DNS 服务器仅能够查询到其下一层的主机地址,而下层的 DNS 服务器仅能够查询到根域名服务器。全球总共有 13 台根域名服务器,名称为 *.root-servers.net. 。其中,* 代表从 a 到 m 这 13 个字母。

    在每一台 DNS 服务器内部维护着一个数据库,对每一个域(Domain)都有一个区域(Zone)文件,记录这个域(Domain)内的主机 FQDN 与 IP 之间的对应关系。例如:yahoo 申请到 yahoo.com. 这个域名,那么在这个域内,它可以定义自己的主机名称与 IP 地址对应关系,如 www.yahoo.com. ftp.yahoo.com. 等等。它可以为这些子域建立共同的一部 DNS 服务器,假如是 ns.yahoo.com.,在这部服务器内,建立区域(Zone)文件用来描述 www.yahoo.com. 对应的 IP 地址,ftp.yahoo.com. 对应的 IP 地址等。

二、DNS 服务器类型

    主 DNS 服务器    :FQDN <--> IP 数据修改
    辅助 DNS 服务器 :请求与主 DNS 数据同步
    缓存 DNS 服务器 :缓存其他 DNS 服务器的内容,不解析域名
    转发 DNS 服务器 :转发其他 DNS 服务器的内容

三、区域(Zone)类型

    主区域:master
        主 DNS 服务器的区域文件
    从区域:slave
        辅助 DNS 服务器的区域文件
    提示区域:hint
        提示根域名服务器位置
    转发区域:forward
        直接解析请求而不用到根服务器查询

四、区域文件格式和内容

    区域文件中,每一条记录称作一个资源记录(RR,Resource Record)。资源记录(RR)又分为不同的资源记录类型(RRT,Resource Record Type)不同 RRT 的 RR 格式如下:

    SOA(Start Of Authority)
        每个区域文件的第一条 RR,格式:ZoneName    TTL    IN    SOA    FQDN    ADMIN_MAILBOX    (
                                                                serial number
                                                                refresh
                                                                retry
                                                                expire
                                                                nagative answer TTL
                                                            )

        ZoneName:区域名称
        TTL:生存时间
        IN:表明是 Internet 记录
        SOA:表明是 SOA 记录
        FQDN:主 DNS 服务器的 FQDN
        ADMIN_MAILBOX:管理员邮箱,其中 @ 要用 . 来代替
            serial number:序列号,用于主从 DNS 同步
            refresh:刷新时间,辅助 DNS 与 主 DNS 同步数据的时间间隔
            retry:重试时间,同步未成功时进行重试的时间间隔
            expire:过期时间,超过这个时间,辅助 DNS 则认为主 DNS 宕机
            negative answer TTL:请求答案未找到的缓存时间
        注:时间单位有 M(分) H(小时) D(天) W(周) 默认单位是秒

    NS(Name Server)
        区域文件的第二条件 RR,格式:ZoneName    TTL    IN    NS    FQDN
        NS 实现 Name Zone 到 FQDN 的转换。
        必需配合 A 记录出现。

    A(Address)
        格式:FQDN    TTL    IN    A    IPv4
        A 实现 FQDN 到 IP 地址的转换。

    MX(Mail eXchanger)
        格式:ZoneName    TTL    IN    MX    PRI    FQDN
        PRI:优先级,从 0 - 99,数字越低,优先级越高
        必需配合 A 记录出现。

    AAAA
        FQDN 到 IPv6 的转换。

    PTR(PoinTeR)
        实现反解,即 IP 地址到 FQDN 的转换。

    CNAME(Canonical NAME)
        设定别名,格式:FQDN    TTL    IN    CNAME    FQDN
        为同一个服务设定多个域名。

五、一个简单的 DNS 配置过程

    目前使用的最多的 DNS 服务器软件是 BIND(Berkeleyz Internet Name Domain)。BIND 是由美国加州大学伯克利分校研发的,现在这个软件由 ISC 组织进行维护,可以在官网上下载到这个软件的最新版本。http://www.isc.org/

    安装完成后有一下几个重要的文件和目录
        /etc/named.conf:BIND主配置文件,定义全局属性和区域
        /var/named/:区域数据文件存放目录
            /var/named/named.ca:互联网根域名服务器的地址
            /var/named/named.localhost:本地主机名的正向(FQDN---->IP)解析
            /var/named/named.loopback:本地主机名的反向(IP---->FQDN)解析
        注:named.ca 文件可以通过 dig 命令生成:dig -t NS . @a.root-servers.net. > /var/named/named.ca

    创建 /etc/named.conf 文件
        这里,我仅演示配置一个简单的 DNS 服务器的过程,所以我们先手动创建一个配置文件          

#备份配置文件
mv /etc/named.conf /etc/named.conf.bak

#创建自己的配置文件
touch /etc/named.conf

#修改权限
chown root:named /etc/named.conf
chmod 640 /etc/named.conf

        这里假设我申请到一个域名叫做 jerry.com. ,而且我有一个网段 10.16.0.0/24,那么我这样分配:

            DNS服务器:10.16.0.1                    //ns.jerry.com.
            www服务器:10.16.0.2 10.16.0.3    //www.jerry.com.
            f t p服务器:10.16.0.4                    //ftp.jerry.com.
            邮件服务器:10.16.0.5                    //mail.jerry.com.

        编辑 /etc/named.conf 文件

#全局配置
options {
        directory "/var/named";
};

#定义区域
#file 文件的位置是相对于 directory 目录的
#根域名服务器
zone "." IN {
        type hint;
        file "named.ca";
};
#本地主机名正解
zone "localhost" IN {
        type master;
        file "named.localhost";
};
#本地主机名反解
zone "0.0.127.in-addr.arpa" IN {
        type master;
        file "named.loopback";
};
#jerrycom. 域名服务器正解
zone "jerry.com" IN {
        type master;
        filen "jerry.com.zone";
};
#jerry.com. 域名服务器反解
zone "0.16.10.in-addr.arpa" IN {
        type master;
        file "10.16.0.zone";
};

        注:DNS 区域的正解析和反解析要对应,注意反解析的写法:以倒着写的网段开头,然后跟上统一的后缀 .in-addr.arpa

    创建区域数据文件
        named.ca、named.localhost、named.loopback 文件是 BIND 自动生成的,这里我只创建 jerry.com.zone 和 10.16.0.zone 文件

        创建 /var/named/jerry.com.zone 文件

jerry.com.    600    IN    SOA    ns.jerry.com.    admin.jerry.com.    (
                2014031301
                1H
                5M
                2D
                6H
                )
jerry.com.    600    IN    NS    ns.jerry.com.
jerry.com.    600    IN    MX    10    mail.jerry.com.
ns.jerry.com.    600    IN   A    10.16.0.1
www.jerry.com.    600    IN    A    10.16.0.2
www.jerry.com.    600    IN    A    10.16.0.3
ftp.jerry.com.    600    IN    A    10.16.0.4
mail.jerry.com.    600    IN    A    10.16.0.5

        创建 /var/named/10.16.0.zone 文件

0.16.10.in-addr.arpa.    600    IN    SOA    ns.jerry.com.    admin.jerry.com.    (
                2014.01301
                1H
                5M
                2D
                6H
                )
0.16.10.in-addr.arpa.    600    IN    NS    ns.jerry.com.
1.0.16.10.in-addr.arpa.    600    IN    PTR    ns.jerry.com.
2.0.16.10.in-addr.arpa.    600    IN    PTR    www.jerry.com.
3.0.16.10.in-addr.arpa.    600    IN    PTR    www.jerry.com.
4.0.16.10.in-addr.arpa.    600    IN    PTR    ftp.jerry.com.
5.0.16.10.in-addr.arpa.    600    IN    PTR    mail.jerry.com.

        修改区域文件属性

chwon root:named /var/named/jerry.com.zone /var/named/10.16.0.zone
chmod 640 /var/named/jerry.com.zone /var/named/10.16.0.zone

    创建完成,可以通过以下命令来验证文件的正确性

named-checkconf
named-checkzone "jerry.com" jerry.com.zone
named-checkzone "0.16.10.in-addr.arpa" 10.16.0.zone

    重启 DNS 服务

service named restart


你可能感兴趣的:(linux,bind,dns,域名,FQDN)