域名系统 DNS(domain name system)是因特网使用的命名系统,用于把便于人们记忆的机器名字(域名)转换成 ip 地址。
域名分级
域名服务器分类
根服务器
根域名服务器是最高层次的域名服务器,所有的根域名服务器都知道所有顶级域名服务器的域名和 ip。根域名服务器一版情况下不会把待查询的域名直接转换 IP,而是告诉本地域名服务器下一步应该找哪一个顶级域名服务器进行查询。
顶级域名服务器
顶级域名服务器管理在该顶级域名服务器注册的所有二级域名,但受到 DNS 查询就会有相应应答。(可能是给出最后的结果或下一步一应当找的域名服务器 ip)
权限域名服务器
可以理解为二级域名下负责一个区的域名服务器、如 abc.com 和 y.abc.com 应各设有一个权限域名服务器。
如果访问量较小,整个 abc.com 仅一个区。下面的 y.abc.com 和 a.abc.com 应该是公用的同一个权限域名服务器。
本地域名服务器
本地域名服务器并不属于域名服务器图中的层级结构,但对域名系统非常重要。但一台主机发出 DNS 请求时就是发给本地域名服务器。每一个因特网服务提供 ISP(电信联通移动),或一个大学都可以拥有一个本地域名服务器。这种服务器有时也被称为默认域名服务器。本地域名服务器一般离用户较近,一般不超过几个路由的距离。如果要查询的 IP 同属一个本地 ISP 时即可直接返回结果地址 ip。
DNS 记录类型
A 记录:地址记录(Address),返回域名指向的 IP 地址。
AAAA 记录: 返回域名指向的 IPv6 地址。
NS 记录:域名服务器记录(Name Server),返回保存下一级域名信息的服务器地址。该记录只能设置为域名,不能设置为 IP 地址。
CNAME 记录:规范名称记录(Canonical Name),返回另一个域名,相当于别名,即当前查询的域名是另一个域名的跳转。
域名解析过程
DNS 解析流程:主机与本地域名服务器递归查询,本地域名服务器迭代查询(一般情况)
递归模式
如果主机所询问的本地域名服务器不知道被查询的域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其它根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步查询。
迭代模式
当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地服务器:应当向哪一个域名服务器进行查询。然后让本地服务器进行后续的查询。顶级域名服务器在收到本地域名服务器的查询请求后,要么给出所要查询的 IP 地址,要么告诉本地服务器下一步应当向哪一个权限域名服务器进行查询。最后,知道了所要解析的 IP 地址,然后把这个结果返回给发起查询的主机。