当前位置 博文首页 > ZywOo:Bind DNS服务——基础知识

    ZywOo:Bind DNS服务——基础知识

    作者:ZywOo 时间:2021-06-15 18:25

    Linux基础——Bind DNS服务 Part0

    DNS简介

    域名系统(英语:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。
    在域名系统的层次结构中,各种域名都隶属于域名系统根域的下级。域名的第一级是顶级域,它包括通用顶级域,例如.com、.net和.org;以及国家和地区顶级域,例如.us、.cn和.tk。顶级域名下一层是二级域名,一级一级地往下。
    FQDN意为完全合格域名(Fully Qualified Domain Name),它指定了所有的域名级别,包括顶级域与根域。它不含歧义,只有一种解释方式。根域没有命名,所以一般为空,但在有的情况下它会表示成一个. 例如 www.google.com. (FQDN)。

    DNS查询过程

    DNS查询过程分为两种,递归查询与迭代查询。现实中一般合用递归与迭代查询。

    递归查询

    查询过程如下:

    迭代查询

    查询过程如下

    实际应用

    DNS记录

    DNS记录包含了:

    • SOA记录
    • NS记录
    • A记录
    • AAAA记录
    • MX记录
    • SRV记录
    • PTR记录
    • CNAME记录
    • TXT记录

    SOA记录

    SOA记录通常在集群中进行配置,它配置了区域传送相关的数值,它包含了区域负责人的电子邮件地址和主要DNS服务器的名称,每个区域都有SOA记录。
    它的结构如下图:

    $TTL 86400
    @   IN  SOA     ns.icann.org. noc.dns.icann.org. (
            2020080302  ;Serial
            7200        ;Refresh
            3600        ;Retry
            1209600     ;Expire
            3600        ;Negative response caching TTL
    )
    

    Serial为该区域的序列号,用于在从服务器获取主服务器SOA记录时区别区域数据的新旧,从而决定启用区域传送。
    Refresh为从服务器查询主服务器SOA记录来检测服务器更改的间隔秒数。
    Retry为如果主服务器没有响应,从服务器重新向主服务器请求SOA记录的秒数,必须小于Refresh。
    Expire为如果主服务器没有响应,从服务器停止响应该区域请求的秒数,该值必须大于Refresh与Retry的总和。
    TTL为缓存的生存时间。

    NS记录

    它指示那个DNS服务器对该域具有权威性(即哪个DNS服务器包含了实际的DNS记录)。以让客户端进行访问。
    NS记录不能指向CNAME记录。

    A记录

    将域名映射到IP地址的记录。

    AAAA记录

    将域名映射到IPV6地址的记录。

    MX记录

    指定邮件服务器负责接收该区域的电子邮件,它包含有优先级,优先级值越低则越优先。相同优先级则是负载均衡。

    SRV记录

    用于指定服务的位置,部分网络协议需要网络支持SRV。
    SRV记录一般为如下形式:

    _service._proto.name. TTL class SRV priority weight port target.
    
    • service:服务的名称。
    • proto:服务所需要的传输协议。一般为TCP或UDP。
    • name:记录有效的域名,以点结尾。
    • TTL:DNS缓存生存时间。
    • class:DNS类型字段(一般为IN)。
    • priority:主机优先级,值越低越优先。
    • weight:相同优先级的相对权重,值越高越有可能被选中。
    • port:需要在该服务器上找到服务器的TCP或UDP端口
    • target:提供服务的机器的FQDN,以点结尾。

    PTR记录

    用于将IP地址映射到域名,IPV4的反向解析使用特殊域in-addr.arpa并需要将所在域的IP以正向解析相反的形式添加上去。
    例如我需要查询8.8.4.4的域名,则查找4.4.8.8.in-addr.arpa这个域。

    CNAME记录

    指定了一个域名作为另一个域名的别名,CNAME记录只能指向域名,不能指向IP地址。

    TXT记录

    用于将文本与主机相关联。在查询该记录是可以显示指定文本。

    区域类型

    Bind软件中包含的常用区域类型有:

    • Master
    • Hint
    • Slave
    • Forward
    • Stub

    Master(主要区域)

    表示服务器拥有该区域数据的主副本,能改为其提供权威答案

    Slave(辅助区域)

    该区域为主区域的复制品,Masters列表包含了一个或多个IP地址,从服务器则会向Masters列表中发出区域传送的申请。

    Stub(存根区域)

    存根区域像一个辅助区域,但它只保存NS记录。

    Forward(转发区域)

    这个区域将会将所有查询转发到其他服务器。如果需要全局转发,则还是需要在全局设置中配置全局转发器。

    Hint(根区域)

    Bind9中包含了根服务器的列表,当服务器启动时将自动查找根服务器并获得最新的根服务器列表。

    bk