DNS轮询怎么实现?

https://yq.aliyun.com/articles/43118

摘要: 大多域名注册商都支持多条A记录的解析,其实这就是DNS轮询,DNS服务器将解析请求按照A记录的顺序,逐一分配到不同的IP上,这样就完成了简单的负载均衡。 优点 基本上无成本,因为往往域名注册商的这种解析都是免费的; 部署方便,除了网络拓扑的简单扩增,新增的Web服务器只要增加一个公网IP即可。

大多域名注册商都支持多条A记录的解析,其实这就是DNS轮询,DNS服务器将解析请求按照A记录的顺序,逐一分配到不同的IP上,这样就完成了简单的负载均衡。

优点

  • 基本上无成本,因为往往域名注册商的这种解析都是免费的;
  • 部署方便,除了网络拓扑的简单扩增,新增的Web服务器只要增加一个公网IP即可。

缺点

  • 健康检查,如果某台服务器宕机,DNS服务器是无法知晓的,仍旧会将访问分配到此服务器。修改DNS记录全部生效起码要3-4小时,甚至更久;
  • 分配不均,如果几台Web服务器之间的配置不同,能够承受的压力也就不同,但是DNS解析分配的访问却是均匀分配的。其实DNS也是有分配算法的,可以根据当前连接较少的分配、可以设置Rate权重分配等等,只是目前绝大多数的DNS服务器都不支持;
  • 会话保持,如果是需要身份验证的网站,在不修改软件构架的情况下,这点是比较致命的,因为DNS解析无法将验证用户的访问持久分配到同一服务器。虽然有一定的本地DNS缓存,但是很难保证在用户访问期间,本地DNS不过期,而重新查询服务器并指向新的服务器,那么原服务器保存的用户信息是无法被带到新服务器的,而且可能要求被重新认证身份,来回切换时间长了各台服务器都保存有用户不同的信息,对服务器资源也是一种浪费。

部署方法

这个是万网的域名控制面板,将同一域名解析到2条A记录上。

 这个是免费的智能DNS解析服务,www.dnspod.com   ,不仅可以多条A记录,而且还能使用中国特色,根据电信、网通、教育网的用户访问,解析到不同的IP上。

实验

先将www.alcoholwang.cn   的A记录解析到61.172.244.75和61.172.244.91上,然后使用nslookup工具查看。

 

    总结
    之前看到文章中讨论,关于DNS服务器的压力问题,其实并不用太过担心,因为解析记录通常都是有一小时的缓存的,如果用户最近一级的DNS服务器上的解析记录还未过期的话,是不用查询主服务器的,通常DNS都有一小时的缓存,所以这样就等于把压力分摊到了各用户最近一级的DNS服务器上了。

----------

大多数域名注册商都支持对统一主机添加多条A记录,这就是DNS轮询,DNS服务器将解析请求按照A记录的顺序,随机分配到不同的IP上,这样就完成了简单的负载均衡。下图的例子是:有3台联通服务器、3台电信服务器,要实现“联通用户流量分摊到3台联通服务器、其他用户流量分摊到电信服务器”这个效果的设置。

dns

DNS由于成本较低,所以一般在小型的网站用的比较多。但是大型的网站一般也会将用它和其他负载均衡的方式结合起来一起使用,DNS轮询方式提供的IP地址,在大型网站中往往是一个集群的地址,可能是均衡交换机也可能是均衡服务器。对于小网站的话,挂接多台服务器也没有问题。如:

nslookup

DNS轮询的优点:

  • 零成本:只是在DNS服务器上绑定几个A记录,域名注册商一般都免费提供解析服务;
  • 部署简单:就是在网络拓扑进行设备扩增,然后在DNS服务器上添加记录。

DNS轮询的缺点:

1、可靠性低

假设一个域名DNS轮询多台服务器,如果其中的一台服务器发生故障,那么所有的访问该服务器的请求将不会有所回应,这是任何人都不愿意看到的。即使从DNS中去掉该服务器的IP,但在Internet上,各地区电信、网通等宽带接入商将众多的DNS存放在缓存中,以节省访问时间,DNS记录全部生效需要几个小时,甚至更久。所以,尽管DNS轮询在一定程度上解决了负载均衡问题,但是却存在可靠性不高的缺点。

2、负载分配不均匀

DNS负载均衡采用的是简单的轮询算法,不能区分服务器的差异,不能反映服务器的当前运行状态,不能做到为性能较好的服务器多分配请求,甚至会出现客户请求集中在某一台服务器上的情况。

DNS服务器是按照一定的层次结构组织的,本地DNS服务器会缓存已解析的域名到IP地址的映射,这会导致使用该DNS服务器的用户在一段时间内访问的是同一台Web服务器,导致Web服务器间的负载不均匀。此外,用户本地计算机也会缓存已解析的域名到IP地址的映射。当多个用户计算机都缓存了某个域名到IP地址的映射时,而这些用户又继续访问该域名下的网页,这时也会导致不同Web服务器间的负载分配不均匀。

负载不均匀可能导致的后果有:某几台服务器负荷很低,而另几台服务器负载很高、处理缓慢;配置高的服务器分配到的请求少,而配置低的服务器分配到的请求多。


实现 DNS轮询方式的负载均衡,你可以按照以下步骤进行设置: 1. 在 DNS 配置中添加多个目标服务器的记录:首先,在你的 DNS 配置文件中添加多个目标服务器的记录。这些记录可以是 A 记录或 CNAME 记录,指向不同的目标服务器 IP 地址或主机名。 2. 配置 DNS 服务器的轮询策略:在 DNS 配置中,通常有一个默认的负载均衡策略,可能是轮询方式。你可以检查并确认你的 DNS 服务器是否已经配置为使用轮询方式进行负载均衡。如果没有,则需要修改 DNS 服务器的配置文件,将负载均衡策略设置为轮询方式。 3. 设置 DNS 记录的 TTL:确保为每个目标服务器的 DNS 记录设置合适的 TTL(Time to Live)值。TTL 值指定了 DNS 记录在缓存中的存活时间。较短的 TTL 值可以使 DNS 客户端更快地获取到最新的负载均衡结果。 4. 测试和监控:完成配置后,进行测试以确保 DNS 轮询方式的负载均衡正常运行。你可以使用工具如 dig 或 nslookup 来查询 DNS 记录,并验证返回的 IP 地址是否按照轮询方式进行分发。 另外,需要注意的是,DNS 轮询方式的负载均衡在某些情况下可能并不均衡,例如当某些客户端使用 DNS 缓存或者有其他 DNS 服务器进行了缓存时。如果你需要更精确的负载均衡控制,可以考虑使用其他更高级的负载均衡解决方案,如专业的负载均衡设备或软件,以及基于权重、健康检查等更复杂的算法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值