域名解析
域名注册完成后首先需要做域名解析,域名解析就是把域名指向网站所在服务器的IP,让人们通过注册的域名可以访问到网站。IP地址是网络上标识服务器的数字地址,为了方便记忆,使用域名来代替IP地址。域名解析就是域名到IP地址的转换过程,域名的解析工作由DNS服务器完成。DNS服务器会把域名解析到一个IP地址,然后在此IP地址的主机上将一个子目录与域名绑定。
域名查询
我们知道,浏览器在请求一个域名资源的时候,域名会到各个地方寻找该域名对应的数字形式的IP地址,其中有递归式,迭代式查询方法。简单来讲,递归式就类似于树状的结构一层一层往根节点上找,有点深度优先搜索的味道,而迭代式就类似于广度优先搜索的感觉,本地DNS若没找到该域名的映射,则会挨个去问与之相联的其他DNS服务器。
解析记录
域名解析时会添加解析记录,这些记录有:
- A记录
- AAAA记录
- CNAME记录
- MX记录
- NS记录
- TXT记录
- SRV记录
- URL转发
各项解析记录说明
A记录: 将域名指向一个IPv4地址(例如:100.100.100.100),需要增加A记录
CNAME记录: 如果将域名指向一个域名,,需要增加CNAME记录。这个域名一般是主机服务商提供的一个域名
如:namecheap的advance DNS中把买的域名123.cn使用CNAME record 记录@到456.github.io, 实现与被指向域名相同的访问效果,即访问123.cn就相当于直接访问456.github.io的效果,github需要在这个页面文件中加入CNAME文件,里面写入域名)
MX记录: 建立电子邮箱服务,将指向邮件服务器地址,需要设置MX记录。建立邮箱时,一般会根据邮箱服务商提供的MX记录填写此记录
NS记录: 域名解析服务器记录,如果要将子域名指定某个域名服务器来解析,需要设置NS记录
TXT记录: 可任意填写,可为空。一般做一些验证记录时会使用此项,如:做SPF(反垃圾邮件)记录
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.A.cn显性转发到www.B.com后,访问www.A.cn时,地址栏显示的地址为:www.B.com。
隐性URL转发记录: 将域名指向一个http(s)协议地址,访问域名时,自动跳转至目标地址,隐性转发会隐藏真实的目标地址。例如:将www.A.cn隐性转发到www.B.com后,访问www.A.cn时,地址栏显示的地址仍然是:www.A.cn,实际上访问流量被转发到了www.B.cn
DNS解析中一些问题
- A记录与CNAME记录
A记录是把一个域名解析到一个IP地址,而CNAME记录是把域名解析到另外一个域名,而这个域名最终会指向一个A记录,在功能实现上A记录与CNAME记录没有区别。
CNAME记录在做IP地址变更时要比A记录方便。CNAME记录允许将多个名字映射到同一台计算机,当有多个域名需要指向同一服务器IP,此时可以将一个域名做A记录指向服务器IP,然后将其他的域名做别名(即:CNAME)到A记录的域名上。当服务器IP地址变更时,只需要更改A记录的那个域名到新IP上,其它做别名的域名会自动更改到新的IP地址上,而不必对每个域名做更改。
-
A记录与AAAA记录
二者都是指向一个IP地址,但对应的IP版本不同。A记录指向IPv4地址,AAAA记录指向IPv6地址。AAAA记录是A记录的升级版本。 -
IPv4与IPv6
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值
TTL-生存时间(Time To Live),表示解析记录在DNS服务器中的缓存时间,TTL的时间长度单位是秒,一般为3600秒。比如:在访问w4xiaoyao.top时,如果在DNS服务器的缓存中没有该记录,就会向某个NS服务器发出请求,获得该记录后,该记录会在DNS服务器上保存TTL的时间长度,在TTL有效期内访问w4xiaoyao.top,DNS服务器会直接缓存中返回刚才的记录。