DNS 的原理就是一层层从根域名递归查询,其中让我觉得有疑问的就是 CNAME 。
反复使用命令查询七牛的官网,我知道他们一定会使用 CDN,CDN 也是 CNAME 使用最多的场景。
可以看到路径是这样子的 qiniu.com. => mid-lvs-public.qiniu.com. => jjh-lvs-public.qiniu.com. =>给了一个 A 记录 180.97.147.243 。
最终我们的请求肯定也都是发到 A 记录上,也就是将 qiniu.com 交到 180.97.147.243 ,这个 IP 对应的服务接受到请求才开始往客户端吐数据。
CNAME 提供一个窍门将解析 A 记录的权利交到下一个域名上,具体下一个域名对应的 ip 可能以后会变,但是对于上一个域名所对应的域名不会变,这个点很像 JAVA 中的一个接口,接口的实现可能会变,但是接口名和方法名提前就确定好了。
最近工作过程中需要设定邮件服务器,其中涉及到dns服务器的设定。整理并且记录自己的理解。
A、CNAME、MX、NS、TXT、SPF
下面挨个介绍一下。
我们在浏览器输入域名后,需要向DNS服务器请求,找到这个域名对应的服务器IP。上面示例就是这么一条记录。
虽然域名和IP都可以变更,但是相比来说域名变更更加简单和随意。所以当网站更换自己域名的时候,就需要修改这条记录。
给某一个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记录例子)
当发信侧服务器给受信侧发邮件时,首先会要求DNS服务器解析受信侧邮箱地址中@后面部分的域名对应的MX记录(DNS的写法可以理解成 example.com 的A记录下面,有一行上面示例的MX记录,当然邮箱服务器也有对应的A记录)。
这样,邮件就直接发到对应的MX记录的A记录里的IP了。
例子:给 test@exmaple.com 发邮件的话,
DNS会返回给发信侧198.51.100.3这个IP
※如果是普通用户通过【exmaple.com】浏览主页,那么DNS继续返回 198.51.100.2 。这个其实也需要DNS判断请求服务器是邮件服务器还是普通的访问。
指定该域名由哪个DNS服务器来进行解析。
一般指某个主机名或域名的说明,或者联系方式,或者标注提醒等等。
SPF记录是TXT记录的一个运用。后面的备注需要按照指定的格式才能有效。
从发信侧服务器设定到DNS上的这条记录中,读取信息,判断发信侧是否合法。
如果不符合规则,那么按照约定的规则处理掉。
跟MX记录正好相反。
MX:我是收件服务器,你找我时,请参考我设定到DNS服务器上的MX记录。
SPF:我是发信服务器,你接受邮件时,请参考我设定到DNS服务器上SPF规则。如果不是我发的信,你可以删掉或者接收。
有一个问题,调查后更新。
设定好SPF的记录之后怎么快速测试呢?
总不能每次都等DNS更新完再测试吧?
20210914更新:
SPF测试方法很多,google一下的话可以找到很多网站。
我常用的是 https://mxtoolbox.com/spf.aspx
转自: https://itbilu.com/other/relate/EyxzdVl3.html#contrast
域名注册完成后首先需要做域名解析,域名解析就是把域名指向网站所在服务器的IP,让人们通过注册的域名可以访问到网站。IP地址是网络上标识服务器的数字地址,为了方便记忆,使用域名来代替IP地址。域名解析就是域名到IP地址的转换过程,域名的解析工作由DNS服务器完成。DNS服务器会把域名解析到一个IP地址,然后在此IP地址的主机上将一个子目录与域名绑定。域名解析时会添加解析记录,这些记录有: A记录 、 AAAA记录 、 CNAME记录 、 MX记录 、 NS记录 、 TXT记录 、 SRV记录 、 URL转发 。
A记录 : 将域名指向一个IPv4地址(例如:100.100.100.100),需要增加A记录
CNAME记录 : 如果将域名指向一个域名,实现与被指向域名相同的访问效果,需要增加CNAME记录。这个域名一般是主机服务商提供的一个域名
MX记录 : 建立电子邮箱服务,将指向邮件服务器地址,需要设置MX记录。建立邮箱时,一般会根据邮箱服务商提供的MX记录填写此记录
NS记录 : 域名解析服务器记录,如果要将子域名指定某个域名服务器来解析,需要设置NS记录
TXT记录 : 可任意填写,可为空。一般做一些验证记录时会使用此项,如:做SPF(反垃圾邮件)记录。 Let's Encrypt 也会使用TXT记录来验证域名。
AAAA记录 : 将主机名(或域名)指向一个IPv6地址(例如:ff03:0:0:0:0:0:0:c1),需要添加AAAA记录
SRV记录 : 添加服务记录服务器服务记录时会添加此项,SRV记录了哪台计算机提供了哪个服务。格式为:服务的名字.协议的类型(例如:_example-server._tcp)。
SOA记录 : SOA叫做起始授权机构记录,NS用于标识多台域名解析服务器,SOA记录用于在众多NS记录中那一台是主服务器
PTR记录 : PTR记录是A记录的逆向记录,又称做IP反查记录或指针记录,负责将IP反向解析为域名
显性URL转发记录 : 将域名指向一个 http(s) 协议地址,访问域名时,自动跳转至目标地址。例如:将 www.liuht.cn 显性转发到 www.itbilu.com 后,访问 www.liuht.cn 时,地址栏显示的地址为: www.itbilu.com 。
隐性UR转发记录L : 将域名指向一个 http(s) 协议地址,访问域名时,自动跳转至目标地址,隐性转发会隐藏真实的目标地址。例如:将 www.liuht.cn 显性转发到 www.itbilu.com 后,访问 www.liuht.cn 时,地址栏显示的地址仍然是: www.liuht.cn 。
A记录 是把一个域名解析到一个IP地址,而 CNAME记录 是把域名解析到另外一个域名,而这个域名最终会指向一个A记录,在功能实现在上 A记录 与 CNAME记录 没有区别。
CNAME记录 在做IP地址变更时要比 A记录 方便。 CNAME记录 允许将多个名字映射到同一台计算机,当有多个域名需要指向同一服务器IP,此时可以将一个域名做A记录指向服务器IP,然后将其他的域名做别名(即:CNAME)到A记录的域名上。当服务器IP地址变更时,只需要更改A记录的那个域名到新IP上,其它做别名的域名会自动更改到新的IP地址上,而不必对每个域名做更改。
二者都是指向一个IP地址,但对应的IP版本不同。 A记录 指向 IPv4 地址, AAAA记录 指向 IPv6 地址。 AAAA记录 是 A记录 的升级版本。
IPv4 ,是互联网协议(Internet Protocol,IP)的第四版,也是第一个被广泛使用的版本,是构成现今互联网技术的基础协议。 IPv4 的下一个版本就是 IPv6 ,在将来将取代目前被广泛使用的 IPv4 。
IPv4 中规定IP地址长度为32位(按TCP/IP参考模型划分) ,即有2^32-1个地址。 IPv6 的提出最早是为了解决,随着互联网的迅速发展 IPv4 地址空间将被耗尽的问题。为了扩大地址空间, IPv6 将IP地址的长度由32位增加到了128位。在 IPv6 的设计过程中除了一劳永逸地解决了地址短缺问题以外,还解决了 IPv4 中的其它问题,如:端到端IP连接、服务质量(QoS)、安全性、多播、移动性、即插即用等。
TTL -生存时间(Time To Live),表示解析记录在DNS服务器中的缓存时间, TTL 的时间长度单位是秒,一般为3600秒。比如:在访问 www.itbilu.com 时,如果在DNS服务器的缓存中没有该记录,就会向某个NS服务器发出请求,获得该记录后,该记录会在DNS服务器上保存 TTL 的时间长度,在 TTL 有效期内访问 www.itbilu.com ,DNS服务器会直接缓存中返回刚才的记录。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)