DNS的A、CNAME、MX、NS、TXT、SPF记录

前言

最近工作过程中需要设定邮件服务器,其中涉及到dns服务器的设定。
整理并且记录自己的理解。

种类

A、CNAME、MX、NS、TXT、SPF
下面挨个介绍一下。

A记录/AAAA记录

IPv4:

  • 示例:ns1.exmaple.com. IN A 198.51.100.2
  • 解释:【domain】 IN A 【IP地址】

IPv6:

  • 示例:ns1.exmaple.com. IN AAAA 8fe0::8f61:ac8:30cd:a16e
  • 解释:【domain】 IN AAAA 【IP地址】
    ※IN的意思是「Internet」,不是IN/OUT的「IN」。

干什么用呢?

我们在浏览器输入域名后,需要向DNS服务器请求,找到这个域名对应的服务器IP。上面示例就是这么一条记录。
虽然域名和IP都可以变更,但是相比来说域名变更更加简单和随意。所以当网站更换自己域名的时候,就需要修改这条记录。

CNAME

  • 示例:sub.example.com. IN CNAME hoge.example.com.
  • 解释:【別名】 IN CNAME 【原名】

干什么用呢?

给某一个domain起多个名字。
类似于,jd.com,jd360.com,jingdong.com虽然是不同名字的域名,但是可以指向同一个原名jd.com。可以让企业的对外展示更加灵活。
举例:
jd360.com IN CNAME jd.com
jingdong.com IN CNAME jd.com
jd.com IN A 123.123.123.123 (这条是A记录例子)

MX记录

  • MX记录(Mail Exchange):邮件路由记录
    在DNS上设定,用于将邮箱地址@符号后的域名指向邮件服务器。
  • 示例:example.com. IN MX 10 mail.example.com.
  • 解释:【domain】 IN MX 【优先度】 【邮件服务器】

干什么用呢?

当发信侧服务器给受信侧发邮件时,首先会要求DNS服务器解析受信侧邮箱地址中@后面部分的域名对应的MX记录(DNS的写法可以理解成example.com 的A记录下面,有一行上面示例的MX记录,当然邮箱服务器也有对应的A记录)。
这样,邮件就直接发到对应的MX记录的A记录里的IP了。
例子:给[email protected]发邮件的话,
DNS会返回给发信侧198.51.100.3这个IP

exmaple.com. IN A 198.51.100.2
example.com. IN MX 10 mail.example.com.
mail.example.com. IN A 198.51.100.3

※如果是普通用户通过【exmaple.com】浏览主页,那么DNS继续返回 198.51.100.2 。这个其实也需要DNS判断请求服务器是邮件服务器还是普通的访问。

NS记录

  • 指定域名解析服务器。
  • 示例:example.com. IN NS ns1.example.com.
  • 解释:【domain】 IN NS 【DNS服务器】

干什么用呢?

指定该域名由哪个DNS服务器来进行解析。

TXT记录

  • 示例:ns1.exmaple.com. IN TXT "联系电话:XXXX"
  • 解释:【domain】 IN TXT 【任意字符串】

干什么用呢?

一般指某个主机名或域名的说明,或者联系方式,或者标注提醒等等。

SPF记录

SPF记录是TXT记录的一个运用。后面的备注需要按照指定的格式才能有效。

  • 示例:exmaple.com. IN TXT "v=spf1 ip4:198.51.100.1 ~all"
  • 解释:【domain】 IN TXT 【送信侧邮件服务器确认规则】

干什么用呢?

从发信侧服务器设定到DNS上的这条记录中,读取信息,判断发信侧是否合法。
如果不符合规则,那么按照约定的规则处理掉。
跟MX记录正好相反。
MX:我是收件服务器,你找我时,请参考我设定到DNS服务器上的MX记录。
SPF:我是发信服务器,你接受邮件时,请参考我设定到DNS服务器上SPF规则。如果不是我发的信,你可以删掉或者接收。

SPF记录规则

  1. 格式:
    版本 空格 定义 空格 定义 (空格 定义的循环)
    跟着例子看的话,比较好理解。
    example.com. IN SPF "v=spf1 ip4:192.0.2.1 -all"

    • v=spf1 是版本。只出现一次。
    • ip4:192.0.2.1 第一个定义
    • -all 第二个定义
  2. 定义的格式。

    • 种类
      | all | ip4 | ip6 | a | mx | ptr | exists | include|
    • 前缀
      "+" Pass(通过)
      "-" Fail(拒绝)
      "~" Soft Fail(软拒绝)
      "?" Neutral(中立)
  3. 定义测试
    测试时,将从前往后依次测试每个定义。
    如果一个定义命中了要查询的 IP 地址,则由相应定义的前缀决定怎么处理。默认的前缀为+。
    如果测试完所有的 定义也没有命中,则结果为 Neutral。
    结果及处理方法一览

结果 说明 服务器处理办法
Pass 发件IP是合法的 接受来信
Fail 发件 IP 是非法的 退信
Soft Fail 发件 IP 非法,但是不采取强硬措施 接受来信,但是做标记
Neutral SPF 记录中没有关于发件 IP 是否合法的信息 接受来信
None 服务器没有设定 SPF 记录 接受来信
PermError 发生了严重错误(例如 SPF 记录语法错误) 没有规定
TempError 发生了临时错误(例如 DNS 查询失败) 接受或拒绝

后记

有一个问题,调查后更新。
设定好SPF的记录之后怎么快速测试呢?
总不能每次都等DNS更新完再测试吧?



作者:今後次
链接:https://www.jianshu.com/p/b483300378af
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你可能感兴趣的:(DNS的A、CNAME、MX、NS、TXT、SPF记录)