网络协议---DNS

一、dns域名名称解析

 结构:域名是一个具有层次结构的名称,从右到左依次为顶级域名(TLD)、二级域名、三级域名等。

域名命名规则:

  • 域名只能由字母(A - Z,a - z)、数字(0 - 9)和连字符(-)组成,且连字符不能作为域名的开头或结尾。例如,“abc - 123.com” 是合法的域名,而 “-abc.com” 和 “abc.com-” 是不合法的。
  • 域名长度有一定限制,虽然不同的顶级域名注册机构可能会有细微差异,但总体上域名的总长度(包括所有级别域名和分隔点)一般不超过 253 个字符。这是为了确保域名系统能够有效地处理和存储域名信息。

例如,在 “www.example.com” 这个域名中,“com” 是顶级域名,表示这是一个商业性质的域名;“example” 是二级域名,通常由域名所有者注册并使用;“www” 是三级域名,一般用于指定特定的服务,如网站服务。

另,对www进一步解释:“www” 通常是服务器上的一个子域名。它可以被配置为指向服务器上特定的目录或者虚拟主机。这意味着网站管理员可以将与网页相关的文件(如 HTML、CSS、JavaScript 文件等)放置在服务器上 “www” 对应的目录下,这样当用户通过 “www.example.com” 访问时,服务器就知道要从这个特定的目录中获取文件并返回给用户。

 

  • 顶级域名又分为通用顶级域名(gTLD)、国家及地区顶级域名(ccTLD)和新顶级域名(nTLD)。
    • 通用顶级域名:如 “.com”(用于商业公司)、“.org”(用于非营利组织)、“.net”(用于网络相关服务)、“.edu”(用于教育机构)等。这些域名在全球范围内被广泛使用,没有特定的地域限制。例如,“google.com” 是商业公司谷歌的域名,“mozilla.org” 是非营利组织 Mozilla 基金会的域名。
    • 国家及地区顶级域名:每个国家或地区都有自己的代码作为顶级域名,如 “.cn” 代表中国、“.uk” 代表英国、“.de” 代表德国、“.us“代表美国等。这种域名主要用于与特定国家或地区相关的网站,有助于表明网站的地域关联性。例如,“taobao.cn” 是中国的淘宝网站域名。
    • 新顶级域名:随着互联网的发展,出现了许多新的顶级域名,如 “.app”(用于移动应用相关网站)、“.blog”(用于博客网站)、“.shop”(用于购物相关网站)等。这些新顶级域名为用户提供了更多的选择,可以根据网站的性质更精准地选择域名,使域名更具针对性。

 

二、dns服务器类型

1、根 DNS 服务器

最高层级服务器,保存着顶级域名(如.com、.org、.net 等)服务器的 IP 地址信息。当用户在浏览器中输入一个网址时,DNS 查询首先会访问根 DNS 服务器,以获取能够解析该域名所属顶级域名的服务器信息。

全球共有13个IPV4根服务器,中国有多个ipv4根服务器镜像,IPV6根服务器全球共有25个,中国有4台,包括 1 台主根服务器和 3 台辅根服务器

工作方式:当本地 DNS 服务器(由互联网服务提供商提供给用户的 DNS 服务器)无法从缓存中获取域名对应的 IP 地址时,它会首先向根 DNS 服务器发起查询。

2、顶级域名服务器

顶级域名服务器负责管理和维护特定顶级域名下的域名信息。比如,.com 顶级域名服务器管理所有以.com 结尾的域名相关信息。它们存储了所属顶级域名下二级域名注册商的 DNS 服务器信息,就像是图书馆中各个主要分类(顶级域名)下的子目录,知道每个二级域名所属的更详细的位置(二级域名注册商的 DNS 服务器)。

中国有.cn的顶级域名服务器(包括.com.cn),没有com的顶级域名

工作方式:在根 DNS 服务器返回顶级域名服务器的 IP 地址后,本地 DNS 服务器会向顶级域名服务器查询。顶级域名服务器根据请求域名中的二级域名部分,返回该域名对应的权威 DNS 服务器(Authoritative DNS Server)的 IP 地址。

3、权威 DNS 服务器

权威 DNS 服务器是对特定域名具有最终解析权的服务器。它由域名所有者或其托管服务提供商维护,存储着域名对应的实际 IP 地址以及其他 DNS 记录(如 MX 记录用于邮件交换,CNAME 记录用于别名等)。这就好比是图书馆中具体书籍所在的书架,包含了域名最准确的信息。

中国的权威dns服务器类型:1、CNNIC(中国互联网络信息中心),维护着.cn 顶级域名的权威 DNS 服务器,负责管理和解析所有以.cn 结尾的域名相关信息;2、运营商提供的权威 DNS 服务器,电信四川:

  • 202.98.96.68
  • 61.139.2.69

工作方式:本地 DNS 服务器在收到顶级域名服务器返回的权威 DNS 服务器的 IP 地址后,会向权威 DNS 服务器查询。权威 DNS 服务器根据域名查找对应的 IP 地址(或其他相关的 DNS 记录)并返回给本地 DNS 服务器。本地 DNS 服务器将这个信息缓存起来,以便后续相同域名的查询,同时把 IP 地址返回给发出请求的客户端(如用户的计算机),使得客户端能够与目标服务器建立连接。

4、本地 DNS 服务器

本地 DNS 服务器是用户接入互联网的入口 DNS 服务器,通常由互联网服务提供商(ISP)提供。它的主要作用是接收用户的 DNS 查询请求,并尝试从自己的缓存中获取域名对应的 IP 地址

天翼云成都3的本地dns服务器IP地址为:100.125.108.51。成都4资源池内网dns服务器ip地址为:100.95.0.1

 

工作方式:用户在浏览器或其他网络应用中输入域名后,计算机会首先向本地 DNS 服务器发送查询请求。本地 DNS 服务器先检查自己的缓存,若有匹配记录则直接返回 IP 地址;若没有,则开始递归查询,即代替用户依次向根 DNS 服务器、顶级域名服务器、权威 DNS 服务器查询,最后将获取到的 IP 地址返回给用户,并缓存该记录以备后续查询。

三、DNS记录类型

DNS 记录是存储在 DNS 服务器上的一组文本指令,用于将域名与各种网络资源相关联,是域名系统(DNS)中的核心数据,它就像是互联网的地址簿,记录着域名与 IP 地址、邮件服务器等资源之间的对应关系,使得用户能够通过方便记忆的域名来访问网络资源

1、A 记录

功能:用于将域名映射到一个 IPv4 地址,是最常见和最常用的 DNS 记录类型之一。当用户在浏览器中输入域名时,计算机通过查询 DNS 服务器的 A 记录来获取对应的 IPv4 地址,从而建立与服务器的连接

2、AAAA 记录

功能:与 A 记录类似,但用于将域名解析到 IPv6 地址

3、CNAME 记录

功能:用于创建域名别名,将一个域名(别名)指向另一个域名(真实名称),而不是直接指向一个 IP 地址。当用户访问别名域名时,实际上是访问了被指向的真实域名所对应的服务器资源1.

应用场景:在网站更新、服务器迁移或者需要多个域名指向同一资源的场景中非常有用,可以方便地对域名进行重定向和统一管理,避免因为服务器变更而需要逐个更新域名的指向.

4、MX 记录

功能:邮件交换记录,用于指定负责接收邮件的邮件服务器。当发送邮件时,发送方的邮件服务器会查询接收方域名的 MX 记录,以确定将邮件发送到哪个邮件服务器

5、NS 记录

功能:用于指定域名的权威 DNS 服务器,一个域名的权威 DNS 服务器是对该域名解析信息具有最终决定权的服务器。NS 记录指向所有该域名持有的其他记录,没有 NS 记录,用户将无法访问网站1.

应用场景:在域名注册和管理过程中使用,当注册一个域名时,需要指定该域名的权威 DNS 服务器,通过设置 NS 记录来实现。同时,在进行域名解析时,其他 DNS 服务器会根据 NS 记录找到权威 DNS 服务器来获取最准确的域名解析信息.

6、PTR 记录

功能:主要用于反向解析,即将 IP 地址解析为域名,与 A 记录和 AAAA 记录的作用相反。它可以实现通过 IP 地址访问域名,在一些网络安全和验证场景中很有用,比如检查邮件服务器的合法性等1.

应用场景:在网络安全领域,特别是邮件服务器的反垃圾邮件验证和一些网络访问控制机制中应用,通过反向解析 IP 地址来验证其对应的域名是否符合预期,有助于防止非法访问和垃圾邮件的发送.

 

四、dns正向解析过程

  1. 检查本地缓存:用户在浏览器或其他应用程序中输入域名后,设备会首先检查本地的 DNS 缓存。如果在缓存中找到该域名对应的 IP 地址,且该缓存未过期,则直接使用缓存中的 IP 地址,解析过程结束。这样可以节省时间并减少网络流量,因为无需向外部 DNS 服务器发送查询请求5.
  2. 查询本地 DNS 服务器:如果本地缓存中没有找到对应的 IP 地址,设备会将 DNS 查询请求发送到本地配置的 DNS 服务器,这个服务器通常由网络服务提供商(ISP)提供,也可能是企业或组织内部的 DNS 服务器5.
  3. 本地 DNS 服务器查询自身数据库:本地 DNS 服务器接收到查询请求后,会先检查自己的数据库,看是否包含该域名的解析记录。如果找到匹配的记录,就直接将对应的 IP 地址返回给客户端,完成解析35.
  4. 根 DNS 服务器查询:如果本地 DNS 服务器在自身数据库中没有找到域名的解析记录,它会向根 DNS 服务器发送查询请求。根 DNS 服务器是 DNS 系统中的最高层级,全球共有 13 组根 DNS 服务器,它们存储了顶级域名(TLD)的信息,如.com、.org、.net 等的权威 DNS 服务器地址.
  5. 顶级域名服务器查询:根 DNS 服务器收到查询请求后,会根据请求的域名中的顶级域名,返回负责该顶级域名的权威 DNS 服务器地址给本地 DNS 服务器。然后,本地 DNS 服务器再向顶级域名服务器发送查询请求,询问有关二级域名的权威 DNS 服务器地址.
  6. 权威 DNS 服务器查询:顶级域名服务器收到请求后,会返回该二级域名对应的权威 DNS 服务器地址。本地 DNS 服务器接着向权威 DNS 服务器发送查询请求,以获取具体域名的 IP 地址.
  7. 获取并返回 IP 地址:权威 DNS 服务器收到查询请求后,会在自己的数据库中查找对应的 IP 地址,并将其返回给本地 DNS 服务器。本地 DNS 服务器收到 IP 地址后,一方面将其返回给客户端,另一方面将该域名和 IP 地址的映射关系存储到本地缓存中,以便下次查询时能够更快地响应5.
  8. 客户端建立连接:客户端收到 IP 地址后,就可以使用该 IP 地址与目标服务器建立网络连接,从而实现对相应网站或服务的访问.

五、dns反向解析过程

  1. 确定反向解析域:DNS 反向解析使用特殊的顶级域 “in-addr.arpa”。对于一个 IP 地址,如 117.78.61.19,其对应的反向域名是 19.61.78.117.in-addr.arpa。
  2. 查询本地 DNS 缓存:客户端首先会检查自己本地的 DNS 缓存,看是否已经存在该 IP 地址的反向解析结果。如果缓存中有对应的域名信息,则直接返回结果,无需再向其他 DNS 服务器查询。
  3. 向本地 DNS 服务器查询:如果本地 DNS 缓存中没有找到结果,客户端会向其配置的本地 DNS 服务器发送反向解析请求,请求查询指定 IP 地址对应的域名。
  4. 本地 DNS 服务器查询:
    • 检查自身缓存:本地 DNS 服务器收到请求后,先检查自己的缓存中是否有该 IP 地址的反向解析记录。若有,则直接将结果返回给客户端。
    • 递归查询或迭代查询:若本地 DNS 服务器缓存中无相应记录,它会根据自身的配置进行递归查询或迭代查询。在递归查询中,本地 DNS 服务器会代替客户端向其他 DNS 服务器查询,直到获得最终结果并返回给客户端;而在迭代查询中,本地 DNS 服务器会向根 DNS 服务器或其他权威 DNS 服务器发送查询请求,并根据收到的响应逐步查找,直到找到负责该反向解析域的权威 DNS 服务器7.
  5. 权威 DNS 服务器查询:最终,查询请求会到达负责该反向解析域的权威 DNS 服务器。权威 DNS 服务器会查找其配置的 PTR 记录,PTR 记录用于将 IP 地址映射到对应的域名,找到与请求的 IP 地址对应的域名后,将结果返回给查询的 DNS 服务器235.
  6. 结果返回:查询结果沿着查询路径依次返回,最终由本地 DNS 服务器将反向解析得到的域名返回给客户端。

六、CDN

  1. DNS 与 CDN 的初始关联
    • 在网站配置 CDN 服务时,需要通过 DNS 进行关联。通常会使用一种叫做 CNAME(Canonical Name)的 DNS 记录。例如,网站所有者会在 DNS 服务器的配置中,将网站的域名(如www.example.com)的 CNAME 记录指向 CDN 服务提供商提供的域名(如 cdn - provider.example - cdn.com)。这就相当于告诉 DNS 系统,当用户查询www.example.com这个域名时,应该去查询 cdn - provider.example - cdn.com这个域名对应的 IP 地址相关信息。
  2. 基于 DNS 的智能解析和请求重定向
    • 当用户在浏览器中输入网站域名(如www.example.com)请求访问时,浏览器首先会向本地 DNS 服务器(通常由互联网服务提供商提供)发送 DNS 查询请求。本地 DNS 服务器如果没有缓存该域名的 IP 地址,就会向上一级 DNS 服务器查询,直到找到负责该域名的权威 DNS 服务器。
    • CDN 服务提供商的权威 DNS 服务器会根据用户的地理位置、网络状况等因素进行智能解析。它会返回离用户最近或者最适合的 CDN 边缘服务器的 IP 地址。例如,用户位于亚洲,权威 DNS 服务器会分析用户的位置信息,从众多的 CDN 边缘服务器 IP 地址中选择一个位于亚洲的服务器 IP 地址返回给用户的浏览器。这样,用户的请求就被重定向到了合适的 CDN 边缘服务器,而不是直接指向网站的源服务器。
  3. DNS 缓存与 CDN 服务的协同
    • DNS 服务器会对查询结果进行缓存。当其他附近区域的用户再次请求访问同一个网站域名时,本地 DNS 服务器如果已经缓存了之前查询到的 CDN 边缘服务器 IP 地址,就可以直接返回这个缓存的 IP 地址,而不需要再次进行复杂的查询过程。这可以加快后续用户的访问速度。
    • CDN 服务也依赖于 DNS 缓存的有效期。在 DNS 缓存有效期内,用户的访问请求会持续被导向之前确定的 CDN 边缘服务器。不过,当 DNS 缓存过期或者需要更新(比如 CDN 网络进行了优化调整,更换了边缘服务器的 IP 地址)时,就会重新进行 DNS 查询和智能解析过程,以确保用户总是被引导到最合适的 CDN 边缘服务器。
  4. CDN 对 DNS 的优化补充
    • CDN 有时也会利用自己的 DNS 服务器或者与 DNS 服务提供商合作进行优化。例如,CDN 的 DNS 服务器可以采用更先进的负载均衡算法,在返回 IP 地址时不仅考虑地理位置和网络状况,还考虑 CDN 边缘服务器的负载情况。这样可以更好地分配用户请求,避免某些边缘服务器过载,同时提高整体的服务效率。
 

七、dns应用于网络排障

1、nslookup

  1. 基本查询(查询域名对应的 IP 地址)
    • 格式:nslookup [域名]。例如,要查询百度网站(www.baidu.com)对应的 IP 地址,在命令提示符(Windows)或终端(Linux、macOS)中输入nslookup www.baidu.com
    • 结果解释:执行命令后,会返回域名对应的 IP 地址信息。通常会显示服务器名称(Server)和 IP 地址(Address)。服务器名称是执行查询的 DNS 服务器的名称,IP 地址是该 DNS 服务器的 IP 地址。在其下方会显示查询域名对应的 IP 地址。如果一个域名有多个 IP 地址(如一些大型网站为了负载均衡会有多个服务器),会全部列出。
  2.   查询特定类型的 DNS 记录(如 CNAME 记录)
    •   格式:nslookup -type=[记录类型] [域名]。例如,要查询www.baidu.com的 CNAME 记录,输入nslookup -type=cname www.baidu.com
    • 记录类型说明:
    • A 记录:是最常见的记录类型,用于将域名映射到 IP 地址,这是默认查询的记录类型。
    • CNAME 记录:即别名记录,用于将一个域名别名指向另一个域名。比如,www.example.com的 CNAME 记录可能指向example.com,表示www.example.comexample.com的别名。
    • MX 记录:用于指定邮件服务器,用于电子邮件的发送和接收。例如,查询一个公司域名的 MX 记录,可以知道该公司的邮件服务器地址。
    • NS 记录:即域名服务器记录,用于指定该域名的 DNS 服务器。

 

  3.   指定 DNS 服务器进行查询

 

    •   格式:nslookup [域名] [DNS服务器地址]。例如,你知道某个可靠的 DNS 服务器(如谷歌的公共 DNS 服务器8.8.8.8),想要使用它来查询www.example.com的 IP 地址,可以输入nslookup www.example.com 8.8.8.8

 

 

清除 DNS 缓存

DNS 缓存中存储了之前查询过的域名及其对应的 IP 地址等信息,有时缓存中的数据可能会出现错误或过时,进而引发网络故障。在 Windows 系统下,可以在命令提示符中输入 “ipconfig /flushdns” 命令来清除 DNS 缓存;在 Linux 系统中,可使用 “sudo systemctl restart NetworkManager” 或 “sudo /etc/init.d/networking restart” 等命令来刷新 DNS 缓存,使设备重新获取最新的域名解析信息。

posted @ 2024-12-08 14:55  yujin123456  阅读(771)  评论(0)    收藏  举报