SMB - DNS Server 域名服务器配置与管理(二)

简介:

        DNS Server根据提供服务内容,可以分为Authoritative授权服务器和Recursive递归服务器两种。前者在本地保存了授权域名的Zone文件能够提供针对授权域的权威应答,服务器角色可以是Master或Slave Server;后者仅对客户端请求做递归查询并提供缓存服务,通常也称为CacheOnly Server。

        我们在 homelab.pub中构建的DNS Server将会同时配置为授权服务器和递归服务器,满足企业内部私有域名解析和外部域名缓存需求。但这种配置在生产环境中可能会因为缓存服务器向运营商DNS Server频繁发出DNS请求而触发服务侧的安全机制导致被暂时性列入RBL,影响内部用户正常访问,因此建议为本地DNS Server配置多个参考DNS Server,条件允许的话建议配置谷歌或DNSPOD等机构的DNS Server,可以避免此类问题且可以在一定程度上免受DNS污染影响。

       本文将介绍DNS服务关键术语,区域Zone和资源记录ResourceRecords(下文简称RR)。

0x1 Zone和RR

       Zone和Domain虽然都有“区域”的意思,但在IT语境中却是两个不同的术语。Domain是DNS层次化结构中的一个分支,而Zone是DNS结构中的一段连续的名称空间,即Zone是可以包含多个连续的Domain的,而不连续的Domain是无法构成Zone的。在Zone配置文件中通过资源记录RR描述这段连续的名称空间中授权和地址解析情况。Zone配置文件格式通过RFC1035定义,因此大多数DNS Server无论其架构和平台都能够相互兼容。

      Zone配置文件示例参考:

$ORIGIN homelab.pub.                    ;声明域名空间,必须以点号结尾
$TTL       86400                        ;RR生存周期,即可被缓存时间,全局
@          IN      SOA     master.homelab.pub.   xiaomage.homelab.pub.  ( ;SOA记录
                               2018061801       ;序列号  
                               21600            ;更新时间间隔,也可采用6H表示   
                               3600             ;更新失败重试时间间隔,也可采用1H表示
                               604800           ;失效时间,也可采用1W表示
                               86400            ;TTL生存周期,也可采用1D表示
)
;
           IN     NS           master.homelab.pub.   ;NS记录
           IN     NS           slave.homelab.pub.    ;NS记录
master     IN    A              192.168.2.250        ;A记录
slave      IN    A              192.168.2.251        ;A记录
     Zone配置文件中的每条记录(如SOA/NS/A/MX等)就称为RR资源记录。

0x2 RR资源记录类型

    根据IETF相关文档定义,RR可以有多种,本文仅介绍我们日常工作经常用到的几种类型。

    1、SOA记录,Start of Authority Record

          用途:用于委派授权,即表明当前DNS Server作为指定域的授权服务器。SOA是Zone文件的第一条RR,包含多个参数,默认时间单位为秒,也支持H/D/W等便捷表示法;

          示例:

$ORIGIN homelab.pub.                    ;声明域名空间,必须以点号结尾
$TTL       86400                        ;RR生存周期,即可被缓存时间,全局
@          IN      SOA     master.homelab.pub.   xiaomage.homelab.pub.  ( 
                               2018061801
                               21600         
                               3600            
                               604800
                               86400
)

         SOA记录内容说明:

         @                                      在Zone文件中“@”符号表示引用#ORIGIN命令,即homelab.pub

         IN                                     表示Internet

         SOA                                 记录类型

         master.homelab.pub.        授权DNS服务器主机名

         xiaomage.homelab.com.  管理员Email地址,因在Zone文件中“@”符号有其他用途,这里有件地址中用“.”代替

         2018061801                     数字格式序列号,用于配置版本控制,slave根据序列号判断master是否有更新

         21600                               salve向master请求更新的时间间隔(也可以采用6H表示)

         3600                                 salve向master请求更新失败后重试时间间隔,如果在过期时间之内master始终没有响应slave的更新请求,则slave在过期时间后不能再为homelab.pub域提供权威解析(也可以采用1H表示)

         604800                            过期时间(也可以采用1W表示)

         86400                              TTL生存周期,即RR可以呗其他服务器缓存的时间周期(也可以用1D表示)

     2、NS记录,Name Server Record

        用途:声明当前域使用的DNS服务器的FQDN;

        示例:

@          IN      NS     master.homelab.pub.
           IN      NS     slave.homepab.pub.
        说明:如果一条RR的第一个字段为空则使用上一条RR的第一个字段补齐;

     3、A记录,IPv4 Address Record 
        用途:将域名映射到IPv4地址

        示例:

www        IN      A       192.168.2.205
           IN      A       192.168.2.206
       说明:在正向解析域(即从域名解析IP地址),FQDN域名要以“.”点号表示名称结束,否则DNS Server会自动将$ORIGIN的值追加到域名后作为FQDN。示例中“www”没有使用“.”号结束,系统会自动将其补充为“www.homelab.pub.”,如果写为“www.”就错了。

      4、MX记录,Mail Exchange Record

         用途:声明当前域使用的邮件服务器的FQDN

         示例:

@          IN      MX      10      mail1.homelab.pub.
           IN      MX      20      mail2.homelab.pub.
         说明:同一域名可以设置多条同类型的RR以实现负载均摊,MX型RR中增加了优先级列来区分负载均摊的参考权重,权重值越大优先级越低。
       5、CNAME记录,Canonical Name Record

         用途:别名记录,将域名映射到另一个域名,但不能映射到另一个别名(防止环路冲突),其他指向FQDN的记录(NS、MX、PTR)不能指向CNAME记录;

         示例:

portal     IN      CNAME   www

         说明:这条RR中portal和www都没有以“.”点号结尾,因此系统会自动将其补充为“portal.homelab.pub.          IN           CNAME      www.homelab.pub.”。

       6、PTR记录,Pointer Resource Record

         用途:反向解析记录,用于反向解析域(即从IP地址解析域名),将IP地址映射到域名。

         示例:

250       IN      PTR     master.homelab.pub.
         说明:反向解析域Zone文件中IP地址部分仅需填写最后一组数字,以上示例表示“192.168.2.250是域名master.homelab.pub的IP地址”。
      7、TXT记录,Text Record

         用途:文本型记录,多用于垃圾邮件防范的SPF和DKIM,这两种RR不能视为anti-spam的能力,但可以作为整体方案的组成部分;

         示例:

homelab.pub.           IN   TXT    "v=spf1   mx   ptr -all"
mail1.homelab.pub.     IN   TXT    "v=spf1   mx   ptr   -all"
mail2.homelab.pub.     IN   TXT    "v=spf1   mx   ptr   -all"
homelab.pub.           IN   TXT    "v=spf1   ip4:192.168.2.200/24 ip4:192.168.2.201/24  -all"
         说明1:SPF Sender Policy Framework发送方策略框架,用以声明当前域有哪些合法邮件服务器。SPF记录可以配置到整个域和域内的每台MX RR,其中“v=spf1”表示版本1,目前只有版本1,“mx”表示本域对外发送邮件,“ptr”表示本域邮件服务器具有ptr记录,“ip4:192.168.2.200/24”表示本域邮件服务器IPv4地址,有多个邮件服务器则都要写全,“-all”表示拒绝其他地址。具体采用哪种写法要根据DNS Server支持情况来确认,国内的DNS服务商多采用最后一种方式。TXT记录在企业内部的DNS Server上几乎用不到,后续如果谈到MailServer再详细解释。

         说明2:DKIM DomainKeys Identified Mail 域名密钥识别邮件(标准),用以验证发送方服务器合法性。大体流程是MailServer创建了非对称密钥对,并将共钥信息添加到了DNS服务器的TXT记录中,发件方服务器在发送邮件时会在邮件头中加入基于私钥的签名信息,收件服务器在接收到邮件请求后会向DNS服务器请求发件服务器域名TXT记录中的公钥信息用以验证签名是否有效,若有效则进入邮件接收流程,否则则进入垃圾邮件处理流程。

         一句话简单理解SPF和DKIM:SPF声明了当前域合法的MailServer的IP地址,而收件方MailServer则可以通过DKIM对这些地址进行验证。

      8、SRV记录,Service Location Record

        用途:服务定位记录,用以标识指定服务器提供了哪些服务,常用于Windows活动目录中。

        示例:

_http._tcp.homelab.pub. IN   SRV   0   5   8081   www.homelab.pub.

        说明:SRV记录字段构成:srvce.prot.name.       IN     SRV    pri     weight      port    target

                    srvce:服务类型,以下横行开头,如:_http表示WEB服务,_ftp表示FTP服务,_ldap表示LDAP服务等;

                    prot:协议类型,以下横行开头,如:_tcp表示TCP协议,_udp表示UDP协议;

                    name:本域域名;

                    SRV:记录类型;

                    pri:优先级,同MX记录中优先级功能相同,数值越小优先级越高;

                    weight:权重,用于在具有相同优先级的多条SRV记录之间实现负载均摊,数值越大被负载的几率越高;

                    port:服务端口,此处可以填写自定义端口,比如运行于8081端口的WEB服务;

                    target目标服务器,提供该服务的服务器FQDN。

        

相关实践学习
基于函数计算快速搭建Hexo博客系统
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
相关文章
|
22天前
|
缓存 网络协议 安全
【计算巢】DNS 解析过程详解:域名如何转换为 IP 地址
【5月更文挑战第31天】DNS(域名系统)将人类可读的域名转换为IP地址,涉及本地DNS缓存、层次化DNS服务器系统,包括根DNS、顶级域名DNS和权威DNS。当查询域名时,通过DNS服务器间的交互找到对应IP并返回给浏览器。Python示例展示了DNS查询过程。尽管DNS面临安全挑战,如欺骗和缓存中毒,采取安全措施可确保其稳定性和安全性。它是互联网的重要基础,连接域名与IP,支持便捷的网络访问。
|
5天前
|
域名解析 缓存 网络协议
DNS域名原理介绍
DNS域名原理介绍
16 4
|
5天前
|
消息中间件 监控 安全
深入解析Linux命令ipcmk:IPC对象管理新视角
`ipcmk`非标准Linux命令,假设的IPC对象创建工具,用于演示如何管理消息队列、信号量和共享内存。虽无此命令,但理解其概念有助于掌握IPC管理。例如,创建命名消息队列`my_mq`,最大1000消息,可模拟使用`ipcmk -t mq -n my_mq -q 1000`。实际操作中,应根据需求选择合适IPC机制,设置安全权限,监控使用并及时清理。
|
5天前
|
域名解析 弹性计算 网络协议
云服务器 ECS产品使用问题之遇到添加域名解析无法解析到 harbor.rockwang.ltd 的问题,该怎么解决
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
11天前
|
消息中间件 Serverless Go
Serverless 应用引擎操作报错合集之通过自定义域名配置jwt认证,始终报错:"Code": "JWTTokenIsInvalid",是什么导致的
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
11天前
|
运维 网络协议 JavaScript
Serverless 应用引擎产品使用合集之绑定自定义域名是否要确定解析设置
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
11天前
|
存储 运维 Serverless
Serverless 应用引擎产品使用合集之为SD函数配置域名并添加路径/sd后无法正常访问,如何配置自定义域名
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
17天前
|
域名解析 Docker 容器
使用docker+ddns 实现动态域名解析
使用docker+ddns 实现动态域名解析
|
1天前
|
JavaScript Java 数据库连接
【Spring Boot】掌握Spring Boot:深入解析配置文件的使用与管理
【Spring Boot】掌握Spring Boot:深入解析配置文件的使用与管理
5 0
|
4天前
|
域名解析 监控 安全
根域名服务器的安全性
根域名服务器的安全性

相关产品

  • 云解析DNS
  • 推荐镜像

    更多