我们在之前的文章中简单提到过,一个IP可以对应多个域名,那么一个域名可以对应多个IP吗?如果我们想要达成这种效果,需要通过什么技术手段来实现?

从理论上讲,一个域名是可以对应多个IP的,在这种情况下,当不同的用户访问该域名时,就会访问到不同的IP地址。比如,现在北京用户在访问example.com这个域名,上海用户也在访问,两个用户虽然都访问同一个域名,但访问的IP地址并不一定相同,而是会根据负载均衡调度系统将距离访客路由跳数最小的那个IP地址返回给对应的访客。这样就能保证不同地区和线路的用户都能获得最快速稳定的访问体验。同时,由于有多个备选IP,当其中一个出现问题时,可以通过宕机切换,提高业务可用性。

要实现一个域名对应多个IP地址的效果,首先需要了解DNS(域名系统)的工作原理。

DNS(Domain Name System)是因特网的一项服务,它作为域名和IP地址相互映射的一个分布式数据库,能够使人们更方便地访问互联网。我们平时访问网站更多的是通过域名而非IP地址去触达,但域名并不能被计算机直接识别,所以需要通过DNS将域名“翻译”称可由计算机直接识别的IP地址。具体的操作方式,是在DNS解析操作平台,添加一条解析记录(A记录或AAAA记录),将网站的域名指向服务器的IP地址。一般情况下,一个域名对应一个IP地址,也就只需添加一条解析记录即可。如果想要实现一个域名对应多个IP地址,就需要添加多条解析记录,这也是通过DNS实现负载均衡的简单原理。

如我们想要将www.example.com这个域名分别指向1.1.1.1(北京电信)、2.2.2.2(上海移动)、3.3.3.3(深圳联通)三个IP。

那么我们就可以在DNS服务器中配置三个A记录,分别为

www.example.com IN A 114.100.20.201;

www.example.com IN A 114.100.20.202;

www.example.com IN A 114.100.20.203;

这样,每次域名解析请求都会根据对应的负载均衡算法计算出一个不同的IP地址返回给访客,这样就构成了一个服务器集群,并实现负载均衡的效果。在实际场景中,当北京用户访问www.example.com域名时,DNS会根据负载均衡算法和A记录得出一个就近IP地址1.1.1.1返回给客户端,当上海用户访问www.example.com域名时,DNS就会返回给2.2.2.2的服务器地址,深圳用户返回3.3.3.3。

不同用户就近访问不同的服务器IP地址,访问速度大大提升,同时也减轻了单个服务器的访问压力。

实现负载均衡的方式有很多种,其中DNS是一种十分简单和有效的技术手段,它主要有以下几点优势:

(1)将负载均衡工作交给DNS,省去了网站管理维护负载均衡服务器的麻烦;

(2)技术实现比较灵活,操作简单,成本低,适用于大多数TCP/IP应用;

(3)对于部署在服务器上的应用来说,不需要修改任何代码就能实现不同机器上的应用访问;

(4)很多DNS系统还支持基于地理位置的域名解析,可以将域名解析成距离用户地理位置最近的服务器地址,加快用户访问速度。

但基于DNS的负载均衡同样也存在一些弊端:

1.目前的DNS系统是需要经过递归服务器、顶级服务器、权威服务器以及众多缓存等多级解析的,在每一个环节都可能存在解析记录缓存。如果服务器IP发生变动,即使修改了A记录,也需要各级缓存失效后才能生效。而在解析生效前的这段时间,用户可能就会根据缓存记录访问到已经被更换过的服务器上,从而导致访问失败。

  1. DNS负载均衡采用的是简单的轮询算法,不能区分不同服务器之间的性能和负载差异,不能反映服务器当前的运行状态,所以负载均衡效果并不太好。

3.为了本地DNS服务器能够及时同步权威服务器上的最新记录,所以一般将DNS缓存刷新时间设置得比较小,这就会导致DNS频繁发起解析请求,从而造成额外的网络问题。

所以一些大型网站总是使用DNS域名解析作为第一级负载均衡手段,然后在通过提供负载均衡服务的内容部服务器再进行负载均衡,将最终请求发到真实的服务器上,从而完成最终请求。

一个域名可以对应多个IP吗?如何通过DNS实现?相关推荐

  1. 域名解析,一个域名可以对应多个IP地址(基于DNS的负载均衡)

    域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务. IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址. 域名解析就是域名到IP地 ...

  2. 一个域名可以对应多个ip地址的案例

    一个域名能对于几个ip地址?很多时候大家都以为一个域名只能对应1个ip地址,其实一个域名也是可以对应多个ip地址的.下面为大家介绍下有关域名对应ip地址的知识. 网域名称系统(DNS,DomainNa ...

  3. 一个域名可以对应多个ip地址的案例说明

    一个域名能对于几个ip地址?很多时候大家都以为一个域名只能对应1个ip地址,其实一个域名也是可以对应多个ip地址的.下面为大家介绍下有关域名对应ip地址的知识. 网域名称系统(DNS,DomainNa ...

  4. 一个域名可以对应多个ip地址吗_域名解析 | A记录 ,CNAME,MX,NS 你懂了吗

    域名解析 什么是域名解析?域名解析就是国际域名或者国内域名以及中文域名等域名申请后做的到IP地址的转换过程.IP地址是网路上标识您站点的数字地址,为了简单好记,采用域名来代替ip地址标识站点地址.域名 ...

  5. DNS轮询,一个域名配多个IP实现负载均衡的研究

    背景 研究一下 "DNS轮询" 的东西,并不是一个域名只能绑定一个IP,一个域名可以绑定多个IP,如下图所配置的.那就能利用DNS这个特点进行负载均衡. 注意它的负载均衡并不是每次 ...

  6. 一个域名是否可以对应多个IP?

    ​ 首先我们要先了解什么叫域名?域名(Domain Name),是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置,地理 ...

  7. DNS域名可以对应多个ip地址的作用

    IP和DNS服务器没有必然联系. IP是个协议,实际用到的是IP地址,是一些数字组成的. DNS服务器是域名服务器,简单点说就是在互联网或广域网中,把英文网址转换成数字地址,进行解析.IP和DNS服务 ...

  8. TCP/IP协议应用层之DNS协议

    为什么会有TCP/IP协议? 世界各地有各种各样的计算机,每台计算机装有不同的操作系统,这就会导致他们对同一种信息存在多种不同的表达方式,这就好比世界各地的人们会说不同的语言.我们使用互联网可以把不同 ...

  9. 引子 我想大家应该都很熟悉DNS了,这回在DNS前面加了一个D又变成了什么呢?这个D就是Dynamic(动态),也就是说,按照传统,一个域名所对应的IP地址应该是定死的,而使用了DDNS后,域名所对应

    引子 我想大家应该都很熟悉DNS了,这回在DNS前面加了一个D又变成了什么呢?这个D就是Dynamic(动态),也就是说,按照传统,一个域名所对应的IP地址应该是定死的,而使用了DDNS后,域名所对应 ...

最新文章

  1. 使用选择器语法查找元素——​​​​​​​Selector选择器概述 ——未完待续
  2. Python列表,元组,字典的区别
  3. POJ 3087 Shuffle'm Up DFS
  4. devexpress内置图片的位置_向微思WGIS中叠加位图图片
  5. document.body.scrollTop以及一些备忘
  6. SpringBoot集成Flowable_Jsite办理任务菜单报403
  7. Java new关键字和newInstance()方法的区别
  8. __name__ == '__main__'的用法
  9. Matt Speake
  10. python学习之路第四周汇总
  11. sigmoid层的输出_keras如何多输入多输出,以及中间层输出
  12. 2019年11月~2020年7月CCF会议列表-计算机视觉计算机图形学
  13. 360驱动器显示服务器失败,360驱动大师显示驱动安装失败该怎么办 - 卡饭网
  14. 苹果官方mfi认证名单_【大型推销配件现场】苹果回应iPhone12消磁,这波操作太6了 - 社会...
  15. 一级造价工程师和一级建造师,你更想考哪一个?
  16. python discuz_python3实现discuz论坛数据库批量图文发帖搭建DZ插件模板网站附件源码下载...
  17. checkbox选中背景色改变(checkbox美化)
  18. 北航王田苗教授:国内外机器人发展热点与趋势(精华版)
  19. 初链TrueChain(TRUE)
  20. 错误: 找不到或无法加载主类 Application

热门文章

  1. keepalive+nginx搭建主从负载服务器
  2. 逻辑推理题的思路规律
  3. 光纤布线:如何测量光纤损耗与距离
  4. 机器学习 贝叶斯方法_机器学习中的常客与贝叶斯方法
  5. 《解析深度学习》部分笔记
  6. 【分区助手】如何扩大C盘容量?
  7. 什么是CMOS与BIOS?又有什么区别?
  8. MapReduce -----MapReduce 调优
  9. java大厂技术面试第二课 多线程和锁
  10. (转)ANDROID强制锁定竖屏_APP固定设置竖屏或横屏