前言

最近工作过程中需要设定邮件服务器,其中涉及到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了。
例子:给test@exmaple.com发邮件的话,
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记录相关推荐

  1. spf解释及如何添加spf记录

    到这里可以根据你的要求生成你的域名SPF 记录:http://old.openspf.org/wizard.html 然后在域名解析为根域名增加一个TXT记录,写入从上面获得的值,等待解析生效即可 前 ...

  2. 专业名词解释 - DNS,A记录,子域名,CNAME别名,PTR,MX,TXT,SRV 记录,TTL

    DNS DNS,Domain Name System或者Domain Name Service(域名系统或者域名服务).域名系统为Internet上的主机分配域名地址和IP地址.由于网络中的计算机都必 ...

  3. 微软dns能做cname吗_为什么域的根不能是CNAME以及有关DNS的其他花絮

    微软dns能做cname吗 This post will use the above question to explore DNS, dig, A records, CNAME records, a ...

  4. DNS中的SPF记录

    在垃圾邮件的伎俩中,伪造发件人地址,使其看起来象一个合法的地址,是常见的一种方法.特别是网络钓鱼的邮件,试图欺骗收件人透露信用卡号码.QQ密码.Paypal 密码等帐号资料.这些邮件的"发件 ...

  5. 什么是 DNS SPF 记录?

    SPF 记录是一种常用于电子邮件认证的 DNS TXT 记录.SPF 记录包括一个获授权从该域发送电子邮件的 IP 地址和域的列表. 发送方策略框架(SPF)记录是一种 DNS TXT 记录,其中列出 ...

  6. 在DNS服务器中添加MX,A记录

    一.添加MX记录 MX(Mail Exchanger,邮件交换)记录用以向用户指明可以为该域接收邮件的服务器.那么为什么要添加MX记录呢?首先用户来举一个例子.如用户准备发邮件给chhuian@mss ...

  7. windows server 2003 DNS 细谈系列之(二)记录类型、数据库

    windows server 2003 DNS 细谈系列之(二)记录类型.数据库<?xml:namespace prefix = o ns = "urn:schemas-microso ...

  8. 命令查看spf_什么是SPF、邮箱域名SPF记录查询方法

    新闻资讯 您的位置: 首页> 新闻资讯 什么是SPF.邮箱域名SPF记录查询方法 发布时间:2019-04-28 SPF(Sender Policy Framework) 是电子邮件系统中发送方 ...

  9. SPF 记录是什么以及它如何工作:SPF 记录全解释

    SPF 记录是由域名管理员发布在 DNS 中的 TXT 记录.SPF 记录指定一个 IP 地址的白名单,在该白名单中的 IP 地址被允许来代表该域名发送邮件.当邮件到达目标服务器的时候,服务器会在 D ...

最新文章

  1. EcoTalks预告 | Max Rietkerk:自然斑图与生态系统的恢复力
  2. 分布式唯一id:snowflake算法思考
  3. SIGGRAPH2018黑科技:开源语义软分割改进图像编辑
  4. win7怎么安装nodejs_怎么解决win7安装软件提示
  5. c语言调用linux脚本,C语言执行shellcode的五种方法
  6. 如何使用JavaScript控制台改进工作流程
  7. 根据select不同的选项实现相应input框添加项的显示
  8. Linux SSH远程链接 短时间内断开
  9. 尾调用优化 java_基于Java8函数式编程求一个List的全部子集|尾调用优化解决递归性能问题...
  10. linux包含绝对路径头文件,linux-kernel - 访问用户空间内存访问函数(如access_ok(),get_from_user())需要包含的头文件的确切路径。 - 堆栈内存溢出...
  11. 【codevs4228】小猫爬山(最优化剪枝)
  12. linux内核percpu变量声明,Linux内核对per-cpu变量的实现
  13. 在Vmplayer中自定义桥接网络(Bridged Network)的配置
  14. 笔记本计算机的连接无线网络,笔记本电脑连接无线网络受限解决方法
  15. Lumion 11学会像真正的专业人士一样渲染
  16. 测试手机ram速度软件,8GB RAM极限是什么?我们拿两款手机测试了一下
  17. 炒币疯狂的背后,如何解决区块链技术落地问题?
  18. RAMMAP(运行内存清理工具)自动释放内存,并利用pyqt5制作图形界面
  19. 显卡、显卡驱动、Nvcc、Cuda Driver、CudaToolkit 、Cudnn到底是什么?
  20. jieba库的安装与使用方法

热门文章

  1. 架构设计分布式数据结构与算法面试题
  2. 悬浮窗_华为手机悬浮窗设置在哪里
  3. 没有可用软件包 jenkins。_Jenkins分布式构建与并行构建
  4. java mongodb 关闭连接_如何在mongodb上使用java驱动程序保持连接池关闭?
  5. java excel类库,jExcelApi Java 操作 Excel 的类库
  6. java web scala_spring boot+scala编写web接口
  7. 云麦小米华为体脂秤怎么样_测评华为智能体脂秤,比小米智能体重秤贵30元到底差别在哪里?...
  8. C#中宏定义#define、预处理#if #else #endif的使用
  9. STM32 USB虚拟串口原理(上)
  10. 枚举命名规范_UE4 C++基础教程 - 编码规范