DNS域名解析与CDN内容分发网络

DNS域名解析与CDN内容分发网络,第1张

一、DNS域名解析:( Domain Name System)是“域名系统”的英文缩写, www.qq.com ==>192.168.1.1 域名方便记忆

二、CDN内容分发网络:

假设通过CDN加速的域名为 www.a.com ,接入CDN网络,开始使用加速服务后,当终端用户(北京)发起HTTP请求时,处理流程如下:

1.当终端用户(北京)向 www.a.com 下的指定资源发起请求时,首先向LDNS(本地DNS)发起域名解析请求。

2.LDNS检查缓存中是否有 www.a.com 的IP地址记录。如果有,则直接返回给终端用户;如果没有,则向授权DNS查询。

3.当授权DNS解析 www.a.com 时,返回域名CNAME www.a.tbcdn.com 对应IP地址。

4.域名解析请求发送至阿里云DNS调度系统,并为请求分配最佳节点IP地址。

5.LDNS获取DNS返回的解析IP地址。

6.用户获取解析IP地址。

7.用户向获取的IP地址发起对该资源的访问请求。

8.如果该IP地址对应的节点已缓存该资源,则会将数据直接返回给用户,例如,图中步骤7和8,请求结束。

9.如果该IP地址对应的节点未缓存该资源,则节点向源站发起对该资源的请求。

10.获取资源后,结合用户自定义配置的缓存策略,将资源缓存至节点,例如,图中的北京节点,并返回给用户,请求结束。

总结:(1)CDN的加速资源是跟域名绑定的。

(2)通过域名访问资源,首先是通过DNS分发查找离用户最近的CDN节点(边缘服务器)的IP

(3)通过IP访问实际资源时,如果CDN上并没有缓存资源,则会到源站请求资源,并缓存到CDN节点上,这样,用户下一次访问时,该CDN节点就会有对应资源的缓存了。

在 DNS 查询 篇中,主要是根据阮一峰老师的文章所做的学习记录。讲述了通过命令 dig 来跟踪域名的查询过程,也提到了 DNS 服务器的层级结构、DNS 记录、DNS 缓存等。整体都是文字叙述,读起来会稍微有些累。这篇会通过图示来进一步简化 DNS 的解析过程,并会提到 DNS 的另一项重要作用, 负载均衡 。

首先我们来了解一下 DNS 服务器。主要有三种类型的 DNS 服务器:

DNS 服务器的层级是树状结构,如下图所示:

假设我们需要在浏览器上访问https://www.baidu.com 网页,浏览器识别到访问的是个域名而不是 ip 地址时,会开始发起域名解析的过程。用户电脑上运行着 DNS 应用客户端,我们把它叫做本地 DNS 解析器。

首先我们先来回顾一下域名解析的整个过程,稍后会以图示的方式展现。

本地 DNS 服务器地址会配置在本机。如果是采用 DHCP 动态获取 IP 地址的方式,那么一般会被配置为网络运营商的 DNS 服务地址;或者可以自己配置为非权威 DNS 服务器地址,比如 google 的 8.8.8.8 。

那么它如何知道根域名服务器的地址呢?很简单,根域名服务器数量少,其地址会配置在本地 DNS 服务器中。

整体流程如下图所示,其中白色箭头表示查询方向,绿色箭头表示返回方向。

DNS 的另一个作用是做负载均衡, Server Load Balance 。

最简单的一种应用情况,在 DNS 服务器上配置某个域名对应的 ip 时,可以配置多个 A 记录,即一个域名对应多个 ip。这里可以配置不同的策略。

当客户端请求域名解析时,DNS 服务器返回全部 ip 地址。客户端拿到多个 ip 后可进行轮询,或者是随机选择一个 ip,或者是按照某种算法选择一个 ip 进行请求。

假设配置了 ip1, ip2, ip3 三个地址。第一次请求返回 ip1,第二次请求返回 ip2,以此类推。

设定各个 ip 的权重,优先返回权重大的 ip。

另外一种复杂的应用情况,做全局的负载均衡,即 GSLB,Global Server Load Balance 。全局上可分为运营商和区域,在同一个运营商上进行访问肯定速度更快;同样,请求的服务器距离客户端越近,速度越快。

那全局负载均衡如何实现呢?跟添加中间层的思想差不多,经过中间层 GSLB 来控制负载均衡策略。下面介绍两种方式。

具体做法是,在权威 DNS 服务器上给目标域名配置一条 NS 记录, A → B ,即 A 对应的域名服务器地址为 B,也就是 GSLB 的地址 ,让 GSLB 来充当 权威域名服务器 。

当 DNS 解析 A 域名时,会返回设置好的 B。这样本地 DNS 服务器就会转到请求 B 也就是 GSLB 去进行域名解析, GSLB 就可按照某种策略进行负载均衡计算,比如根据本地 DNS 服务器的所属运营商和本地 DNS 服务器的位置返回合适的 ip。

假设查询的目标域名为 http://www.company.com ,设置一条 NS 记录为 http://www.company.com → http://www.companyOk.com 。那么当查询 www.company.com 时,DNS 服务器会返回 www.companyGSLB.com 。然后本地 DNS 服务器会去请求 www.companyGSLB.com DNS 服务器,让该权威域名服务器去解析 www.company.com 域名,返回合适的 ip 地址。这样,控制权就交到了 www.companyGSLB.com 手上,具体策略可以由它自己来确定。

但是这种方式只能知道本地 DNS 服务器所属的运营商和 ip 地址,而不是客户端的 ip。

流程如下图所示:

通过给域名添加别名的方式来实现,有两种不同的方式。

a. 设置别名后,再通过 http 重定向

给目标域名 A 配置别名 CNAME,也就是 GSLB 的域名。这样请求解析 A 域名时会返回 CNAME 记录,之后本地 DNS 服务器会转为请求 GSLB 的域名,最后返回 GSLB 的 ip 地址。

这样,客户端就会跟 GSLB 进行通信,GSLB 可以知道客户端的 ip 地址,进而根据一系列的策略进行调度,然后利用 http 重定向将客户端定向到合适的地址。

流程如下图所示:

b. 设置别名,通过 NS 记录转到不同的 GSLB 域名服务器

给目标域名设置别名,对别名设置 NS 记录,转到不同的 GSLB 去查询。

举个栗子:比如在 company.com 的权威服务器上给域名 test.company.com 设置别名 hello.test.comany.com。

当本地 DNS 服务器请求解析 test.company.com 时,流程如下:

流程图如下:

这里只有一层 GSLB,也可以有多层。假设第一层 GSLB 是用来区分运营商,第二层 GSLB 是区分区域。

比如本地 DNS 服务器所在运营商是移动,那么在 xx.GSLB1.com 就可返回另一个别名 yd.test.comany.com 。 yd.test.comany.com 也对应一条 NS 记录, yd.test.comany.com → xx.GSLB2.com ,这样就将 yd.test.comany.com 转到第二层 GSLB 去解析。 GSLB2 就可根据本地 DNS 服务器的位置返回距离用户较近区域的 ip。

1、打开电脑上面的控制面板,找到管理工具,双击打开之后,找到本地安全策略。

2、双击打开本地安全策略之后,找到IP安全策略,右击鼠标选择创建IP安全策略。

3、输入IP安全策略的名称和描述信息,单击下一步,出现第二张图的时候取消掉前面的勾选,单击下一步,最后一步也是取消前面的勾选。

4、完成IP安全策略的创建之后选择第二项,单击添加按钮,在弹出的框框内输入筛选器名称,点击添加。

5、在本地安全策略窗口,双击我们之前创建的IP安全策略,然后在弹出的界面中单击添加按钮。

6、在筛选器列表的这里,我们选择自己创建的IP安全策略,先是双击,然后单击添加按钮一直下一步即可。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/413919.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-23
下一篇2023-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存