zoukankan      html  css  js  c++  java
  • 网络协议- DNS协议

    网络协议- DNS协议

    DNS 协议就像手机中的通讯录,它将联系人的姓名和电话号组成对应关系。DNS 协议将网站的网址和网站的IP 地址组成对应关系。有了这个DNS ,你就可以说出网站名称,找到网站的IP地址。

    DNS 服务器

    DNS 协议是手机通讯录这样一个概念,DNS 服务器就是具体的电话本。没有这个电话本,用户就上不了网,互联网就瘫痪了。但整个互联网不能就有一个电话本啊,全世界的用户都用一个DNS 服务器,那它肯定忙不过来。所以DNS 服务器 要被设计成一个分布式的高可靠高并发

    真正的DNS 服务是树状的

    • 根DNS 服务器:返回顶级域 DNS 服务器的IP地址

    • 顶级域DNS 服务器:返回权威DNS 服务器的IP地址

    • 权威DNS 服务器:返回相应主机的IP地址

    DNS解析流程

    为了提高DNS 的解析性能,很多网络都会就近部署DNS 缓存服务器。于是,就有了以下DNS 解析流程。

    • 电脑客户端会发出一个DNS 请求,问“www.163.com 的 IP 是啥”,把它发给本地域名服务器解析。本地域名服务器如果是通过DHCP配置本地DNS 由你的网络服务商ISP,如电信、移动等自动分配,如果是局域网会由交换机分配。

    • 本地DNS 服务器收到客户端的请求,它自己由一张大表,保存了很多域名和其对应的IP地址。如果它也没有你要找的域名,它会问根域名服务器。根域名服务器是最高层次的,全球共有13套。它不直接用于域名解析,只告诉你要找的域名在哪个方向。

    • 根DNS 服务器收到本地DNS 请求,发现是.com 后缀,就会告诉本地DNS 服务器,这个域名在.com 区域管。然后给一个.com 区域的顶级域名服务器的地址。

    • 本地NDS 转向顶级域名服务器,问“www.163.com 的 IP 是啥”。顶级域名服务器就是一些如:.com、.net、.org 这些一级域名,它负责管理二级域名,比如163.com 。

      顶级域名服务器看到消息后,回送www.163.com 区域的权威DNS 服务器的地址。

    • 本地DNS 转向权威DNS 服务器,问“www.163.com 的 IP 是啥”,163.com的权威DNS 服务器,它是域名解析结果的原出处。它负责163.com 域名和IP地址的对应关系。

    • 本地DNS 得到IP地址后,再返回给客户端,客户端和目标网站建立连接。

    整个过程如下图所示:

     负载均衡

    在域名转为IP的查询过程中,还能玩点猫腻,就像一个人有好多手机号一样。这个号码不在服务器区会提供给查询者其他号码。这就是负载均衡了。

    举个实际的例子:当我们在终端 ping bai.com 时,不同的时间和不同的地点得到的IP 地址是不一样的。DNS服务器会根据每台服务器的访问量,来均衡引导客户端访问哪个服务器,不会产生有的服务器忙死,有的闲死。

    DNS实现内部负载均衡

    在局域网下,一个应用要访问数据库,最好不要配置数据库的IP地址,而是配置域名,这样即使这个数据库挂掉了,还有其他机器的数据库顶替。这只需要在DNS 服务器中讲域名映射为新的IP地址。

    DNS全局负载均衡

    为保证我们的应用高可用,往往部署在多个机房。像百度、腾讯这样的应用在核心城市都会有机房的。DNS 负责将北京的用户引到北京的数据中心,给上海的用户提供上海的数据中心。这样访问速度会更快。

    全局负载均衡器 (GSLB- Global Server Load Balance)

    yourcompany.com 的DNS 服务器中,通过配置CNAME 的方式,给object.yourcompany.com 起一个别名,如:object.vip.yourcompany.com ,告诉本地DNS服务器,让它请求GSLB 解析这域名,GSLB就能在这个过程中施展负载均衡的功夫了。

    两层GSLB,一层是运营商,一层是地域。本地DNS 服务器先问第一层GSLB 运营商,然后转到第二层 GSLB 地域。

     

  • 相关阅读:
    mysql之全局查询日志
    使用MySQL Workbench进行数据库设计——MySQL Workbench使用方法总结
    HttpClient工具类
    JSON字符串转换为Map
    Java判断一个日期是否在下周日期区间
    Linux 查看日志文件
    判断一个日期是否为当前日期的前后几天的方法
    Spring-Boot 整合Dubbo 解决@Reference 注解为null情况
    spring注解之@Scope
    Swagger Annotation 详解(建议收藏)
  • 原文地址:https://www.cnblogs.com/mingjie-c/p/11922819.html
Copyright © 2011-2022 走看看