created_at | updated_at | slug | tags | |
---|---|---|---|---|
2019-12-01 04:04:35 -0800 |
2021-02-16 15:24:00 -0800 |
dns-system-introduction |
|
DNS,全称Domain Namespace System,即域名系统。是互联网一项核心服务,将域名映射为IP地址(或其他类型记录),使得用户能够通过域名方便地访问特定的网站,而不必记住复杂而晦涩的IP地址。 如此重要功能,各大云服务商一般都有提供域名申请和域名解析服务。域名申请服务提供获得全网唯一域名的方式,如zouguodong.top、baidu.com等;域名解析服务则能够提供域名到指定服务的映射,最常见的就是映射到IP。
域名具有全网唯一性。而由于互联网用户数量众多,想要拥有自己域名的个人或企业数不胜数,因此域名采用状结构命名法。任何连接在因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名(domain name)。这里,“域”(domain)是名字空间中一个可被管理的划分。从语法上讲,每一个域名都是有标号(label)序列组成,而各标号之间用点(小数点)隔开。域名可以划分为各个子域,子域还可以继续划分为子域的子域,这样就形成了顶级域、主域名、子域名等。图示如下
各级域名举例如下
- 顶级域名(一级域名):.com
- 主域名(二级域名):google.com
- 子域名(三级域名):api.google.com
一个完整的域名,本应该由子域名+主域名+顶级域名+根域名组成,如:api.google.com.,早先的域名解析系统就是这样,如果不输入最后一个点,是无法正确解析的。这当然是很傻的做法,因此在如今的DNS服务器已经能够自动补全根域的点了,现在反而是输入了最后的点会无法解析。
我们通常是购买主域名,一个主域名下理论上可以创建无限多个子域名,例如内网穿透服务提供商NATAPP自身拥有一个主域名如nat100.top,但是可以提供用户购买子域名。
一个比较好的类比是买房子,购买域名相当于买一块地皮,创建子域名好比划分这块地,而服务搭建可类比建房子。
域名注册的价格比较便宜,但由于其唯一性,你想要的域名在你之前很可能已经被人注册了,此时就要委托购买,价格就天差地别了,数万到数百万不等,上亿也有可能,据称VacationRentals.com收购价为3500万美元,国内最贵360.com收购价则为1700万美元。也正是如此高昂的价格,使得域名抢注称为一个热点。
抛开热门域名,对于普通用户,想要注册一个冷门域名,价格还是比较亲和的,几十块就能搞定一年,没错,域名是有使用期限限制的,注册时可选年限,比如以我的名字命名的域名价格一年和十年比较如下。
根据 《互联网信息服务管理办法》 以及 《非经营性互联网信息服务备案管理办法》 ,国家对非经营性互联网信息服务实行备案制度,对经营性互联网信息服务实行许可制度。未取得许可或者未履行备案手续的,不得从事互联网信息服务。即所有对中国大陆提供服务的网站都必须先进行ICP备案,才可开通服务。
若未备案,域名服务商将会拒绝解析,并提示你去备案啦。
上面介绍了域名相关知识,但域名最终还是要解析到具体的服务上才有价值。如下说明域名解析如何运作
域名呈树状结构,解析方式也是如此,针对不同层级上的域名,有不同的DNS服务器
-
本地域名服务器:DNS Resolver或Local DNS。响应来自客户端的请求,并最终跟踪直到获取到解析结果的DNS服务器,是客户端直接访问的服务。如本机自动分配的DNS、运营商ISP分配的DNS、谷歌/114公共DNS等。例如我们手动设置电脑网络为手动配置时的DNS服务器,即为本地域名服务器的地址,可以手动设置114.114.114.114等公共DNS服务器地址。也可以选择自动DHCP的方式,自动分配DNS服务器地址。理解这点很重要,因为这是我们直接访问的DNS服务器,而下面三种则是我们不会直接访问的服务器。
-
根DNS服务器:Root nameserver。本地域名服务器在本地找不到解析结果时,会首先向它查询,它会返回顶级域名服务器的地址
-
顶级域名服务器:Tld nameserver。负责管理该顶级域名下的二级域名,返回二级域名所在的权威域名服务器地址
-
权威域名服务器:authoritative nameserver。负责维护该区域内的域名和IP地址的之间的对应关系,能够返回最终的解析结果。阿里云DNS解析服务、amazon的Route 53 name都属于该类服务器。
用户使用域名访问某个资源的完整过程如下图
- 用户在浏览器中输入域名,回车
- 请求来到本地域名服务器
- 本地域名服务器首先向根服务器请求得到顶级域名服务器地址
- 本地域名服务器根据上一步地址向顶级域名该服务器请求得到权威域名服务器地址
- 本地域名服务器根据上一步地址向权威域名服务器请求得到最终解析的结果,这是IP地址
- 本地域名服务器将IP返回给浏览器
- 浏览器根据IP访问到目标服务
- 得到访问结果
上面的举例解析结果是IP地址,但这只是众多类型中的一种,RFC规范允许总共几十种记录类型,这里介绍几种常使用的
- A:IP4地址
- AAAA:IP6地址
- CNAME:一个主机名字的别名(域名),域名服务器会再次尝试解析该别名
- PTR:指标记录,引导一个规范名称。类似CNAME,不同的是DNS不会尝试解析该名称,而是直接返回。
- NS:返回一个域名服务器记录
- MX:邮件记录,引导域名到该域名的邮件传输代理列表
- SRV:服务定位器,即返回提供特定服务的服务器
- TXT:返回文字记录
- CAA:权威认证授权,DNS认证机构授权,限制主机可接受的CA
-
TTL
Time To Live,即域名解析结果在本地域名服务器中保留的时间。超时会重新执行一遍完整的解析流程
-
ICANN
Internet Corporation for Assigned Names and Numbers,网际网络名称与数字地址分配机构,位于美国加利福尼亚的非盈利社团,创建于1998年9月18日,存在目的是专门管理域名和IP地址的分配等网络相关任务。需要说明的是该机构受到美国政府及法律的管理。
-
WHOIS
域名资料库查询。可以通过该资料库找到一个域名的注册信息。对于大多数根域名服务器,基本的WHOIS库由ICANN管理,而WHOIS的具体细节则由该域的授权机构管理。如中国互联网信息中心(China Internet Network Information Center)负责.cn的WHOIS资料维护。