域名相关知识点
1. 域名
域名(domain name),由一串用点分隔的名字组成的internet上某一台计算机或计算机组的名称,该名称可以称为一个标号序列,如www.example.com,标号序列限长255个字符;将标号序列以 . 进行切割,得到的各部分(www, example, com)都称之为一个标号,每个标号限长63个字符。
域名,用于在数据传输时对计算机的定位标识,每个域名都对应着一个ip地址,是该ip地址的映射,解决了直接使用ip不便记忆的问题。
2.域名系统
域名系统,即DNS(domain name system,DNS也表示为domain name server即下方的域名服务器),负责在机器之间数据传输过程中,将机器的域名,解析成对应的ip地址。
3. 根域
www.example.com,完整的写法应该是www.example.com.,最后的那个 . 通常被省略,而这个 . 就是根域
4. 顶级域
根域之下,紧接着就是顶级域(TLDS:top-level demains),也叫一级域(FLDS:first-level domains)
顶级域 | 说明 |
---|---|
com. | 供商业机构使用,但无限制最常用 |
net. | 原供网络服务供应商使用,现无限制 |
org. | 原供不属于其他通用顶级域类别的组织使用,现无限制 |
edu., gov., mil. | 供美国教育机构/美国政府机关/美国军事机构。因历史遗留问题一般只在美 |
aero. | 供航空运输业使用 |
biz. | 供商业使用 |
coop. | 供联合会(cooperatives)使用 |
info. | 供信息性网站使用,但无限制 |
museum. | 供博物馆使用 |
name. | 供家庭及个人使用 |
pro. | 供部分专业使用 |
asia. | 供亚洲社区使用 |
tel. | 供连接电话网络与因特网的服务使用 |
post. | 供邮政服务使用 |
mail. | 供邮件网站使用 |
cn., de., eu., jp., hk., tw., uk., us. | 国家型顶级域 |
5. 域名分级
如有:www.example.com,其中example.com是顶级域名,www.example.com则是二级域名;com是顶级域,example为二级域,www为三级域。
域 | 域名 | 域名称 | 域名名称 | 扩展 |
---|---|---|---|
com | - | 顶级域 | ||
example | example.com | 二级域 | 顶级域名 | 只有顶级域名需要备案 |
www | www.example.com | 三級域 | 二级域名 |
6. 子域名
子域名(subdomain),如有:mail.abc.example.com 和 calendar.abc.example.com,二者都是abc.example.com的子域名,都是example.com的二级子域名
域名 | 子域名 | 二级子域名 |
---|---|---|
example.com | abc.example.com | mail.abc.example.com、 calendar.abc.example.com |
abc.example.com | mail.abc.example.com、 calendar.abc.example.com |
7. 域名服务器
7.1 域名服务器的分类
域名服务器分为:根域名服务器、顶级域名服务器、权限域名服务器、本地域名服务器,级别从前往后递减,且上一级域名服务器拥有着下一级域名服务器的IP地址,如在根域名服务器中可以查看到,com.对应的顶级域名服务器地址共有13个[可在icann官网进行查询]。
域名服务器 | 说明 |
---|---|
根域名服务器 | 最高层次的域名服务器,本地域名服务器解析不了的域名首先发送给根域名服务器进行解析 |
顶级域名服务器 | 负责管理在该顶级域名服务器下注册的二级域名 |
权限域名服务器 | 负责一个区的域名解析工作[一个域名服务器所负责的范围,或者说有管理权限的范围,就称为区] |
本地域名服务器 | 当一个主机发出DNS查询请求时,这个查询请求首先发给本地域名服务器 |
PS: ICANN (Internet Corporation for Assigned Names and Numbers),是一个的组织,总部在美国加州,是全世界域名的最高管理机构
7.2 hosts文件和本地运营商
在电脑中的hosts文件,和域名服务器中的本地域名服务器,二者不是同一个事物,hosts文件是本地文件,本地域名服务器是远程DNS解析服务器。
对于域名的解析,本地hosts文件的优先级高于本地域名服务器。
本地域名服务器,一般是指电脑上网时IPv4或者IPv6中设置的那个DNS,有可能是手工指定的也可能是DHCP自动分配的。
如果电脑直连运营商网络,默认设置情况下本地服务器地址就是DHCP分配到的运营商的服务器地址。
如果电脑和运营商之间还加了无线或者有线路由,那极有可能路由器本身还内置了一个DNS转发器,作用是将发往他所有的DNS请求转发到上层DNS,此时由于路由器本身也接管了下挂电脑的DHCP服务,所以它分配给下面电脑的DNS地址就是它自身,所以能看到电脑的DNS分配到的可能是192.168.1.1。实际上就是路由器自身,而路由器的DNS转发器将请求转发到上层ISP的DNS。所以这里本地域名服务器就是该本地运营商(因为最终都是转发到运营商)
8. 域名解析
8.1 记录方式
在域名解析过程中,对于域名和ip的映射有着多种记录方式,在进行域名解析时,访问对应的记录,就能获取相应的结果。
如访问A记录,就能解析获得域名对应的ip地址;访问PTR记录,就能反向解析获得ip对应的域名。
8.1.1 A记录
-
记录内容
A记录,即Address记录,记录的是域名以及对应的IP地址。
KEY:域名
VALUE:IP地址[只能是IP,不能是域名] -
记录查询
通过查询A记录,即可解析获得域名对应的IP地址,DNS解析过程中主要就是通过查询A记录的方式获得IP地址。 -
编写记录
可以使用泛域名记录方式,即将该域名下的所有的子域名都指向到一个IP,比如给博客建了二级域名,可以使用*.blog.ezloo.com来指向一个IP,这样的话,不管是访问a.blog.ezloo.com还是b.blog.ezloo.com都能到同一个IP。一个域名如果对应多条A记录,即一个域名对应了多个IP,那么在查询该记录时,将返回多个IP。
8.1.2 AAAA记录
和A记录的区别在于,AAAA记录指向的是一个128位的IPV6地址。
8.1.3 CNAME
- 记录内容
记录的是域名别名和域名的映射,可以是多个别名映射到一个域名
KEY:域名别名
VALUE:域名[不能为IP,也不能有http://等前缀] - 记录查询
DNS解析过程中,如果遇到CNAME记录,则会以别名映射的域名进行重新查询 - 记录优先级
A记录优先于CNAME记录,如果一个域名同时存在A记录和CNAME记录,则CNAME记录不生效。
8.1.4 MX记录
即邮件交换记录,Mail Exchanger,指的是收件人的电子邮件地址的域名部分,即@后面的部分,比如someone@example.com这个电子邮件地址,example.com会进行MX记录的查询。
- 记录内容
MX记录中的信息包括完整域名和优先级,其中域名必须能够映射到一个或者多个DNS中类型为A或者AAAA的地址记录, 且根据RFC2181,原则上禁止指向CNAME记录。
KEY:收件地址中@后面的部分
VALUE:收件地址中@后面的部分指向的目标域名 - 记录查询
当发送邮件时,Mail 服务器先对域名进行解析,查找 mx 记录。先找权重数最小的服务器,如果能连通,就发送到该服务器上去;如果无法连通 ,那就将邮件发送到权重次小的mail服务器上。
8.1.5 NS记录
- 记录内容
NS(name server)记录,记录的是该域名由哪个DNS服务器来进行解析。
KEY:域名
VALUE:DNS服务器[可以使用域名,也可以使用IP]
8.1.6 PTR记录
- 记录内容
PTR(Pointer Record)记录,是电子邮件系统中的邮件交换记录的一种,个人理解可以和上述的MX记录相照应,即对MX的VALUE中的域名对应,通过反向解析得到对应的IP地址
KEY:域名
VALUE:IP地址
8.1.7 TXT记录
- 记录内容
TXT 记录,记录的是一些附加说明信息 - 记录作用
txt记录的内容按照一定的格式编写,最常用的是spf格式,spf用于登记某个域名拥有的用来外发邮件的 所有ip地址。
mx记录的作用是给寄信者指明某个域名的邮件服务器有哪些,spf格式的txt记录的作用跟mx记录相反,它向收信者表明,哪些邮件服务器 是经过某个域名认可会发送邮件的。spf的作用主要是反垃圾邮件,主要针对那些发信人伪造域名的垃圾邮件。
此外,TXT记录还可以用来防止邮件服务器被当作垃圾邮件,这是TXT最重要的一个作用。
8.1.8 其他记录
除了上述的记录之外,还有其他记录,如SOA记录,SRV记录等。
8.2 域名解析过程
- 原始机器发起请求,如访问www.example.com
- 浏览器对DNS解析结果有做缓存,所以如果是浏览器访问,首先会查询缓存,缓存命中则直接取出使用
- 如果浏览器缓存未命中,则访问机器的hosts文件,如果命中则取出使用
- 如果hosts文件没有对应的映射,则将域名发送至LDNS,即本地域名解析服务器
- LDNS检查缓存,缓存未命中,则开始以迭代的方式向各级域发送请求以获取ip地址
- LDNS首先向根域名服务器发送请求
- 根域名服务器检查缓存,未命中则返回对应的顶级域名服务器地址
- LDNS请求该顶级域名服务器
- 顶级域名服务器检查缓存,未命中则返回对应的权限域名服务器地址
- LDNS请求该权限域名服务器
- 权限域名服务器检查缓存,未命中则查找对应的记录,在这里就能确定最终的解析结果(无论是否能找到对应的IP地址),并将最终的解析结果返回
- LDNS将解析结果继续返回给原始机器,原始机器请求该IP地址,解析结束
8.3 TTL
time to live,表示解析记录在DNS服务器或浏览器中的缓存时间。