DNS详解

记住某台设备的IP地址是相当困难的,尤其是在较为复杂的网络中。因此专门设计了一种字符形式的主机命名机制,方便记忆。而在IP地址与主机名之间需要有一种转换机制和查询机制,提供这种机制的系统就是域名系统DNS(Domain Name)。

全球IPV4根服务器有13台,1个主根在美国,其余12台均为辅根,9台在美国,英国1台,瑞典1台,日本1台。

由中国主导,联合国际互联网WIDE机构展开雪人计划,于2016年在全球16个国家完成25台IPV6的服务器架设。中国部署了1台主根和3台辅根。

DNS会同时占用TCP和UDP的53端口,数据传输时使用TCP协议,域名解析时使用UDP协议。

6.1 Internet域名体系

  • 名字由字符序列成,存在潜在的命名冲突。

  • 名字空间的管理结构位于一个站点,随着机器数量的不断增多对管理工作带来很大负担。

  • 名字到IP地址的映射经常发生变化,导致维护域名空间的工作量巨大。

因此DNS将因特网划分为多个顶级域,顶级域采用组织模式和地理模式的划分模式。

  • 组织模式

    例如:

顶级Internet域名 含义
com 商业组织
edu 教育机构
gov 政府机构
mil 军事部门
net 主要网络支持中心
int 国际组织
org 其他组织
  • 地理模式

    按照国家划分,每个申请加入Internet的国家都要向网络信息中心NIC(Network Information Center)注册一个顶级域名,例如cn代表中国,us代表美国。

NIC将顶级域的管理权分配给其它的管理机构,由这些管理机构再对被授权管理的域继续划分,形成二级域,负责划分二级域的机构可以再授权给其下属,由其继续划分,由此下去,形成层次型的Internet域名体系结构。

6.2 域名解析

  • 静态域名解析

    静态域名解析是通过静态域名解析表进行的,即手动建立域名和IPV4地址之间的对应关系,例如win10中C:\Windows\System32\drivers\etc的hosts文件。

  • 动态域名解析

    需要专用的域名解析服务器,提供从域名到IP地址的映射关系,负责接收客户提出的域名解析请求

    原理:

    DNS详解_第1张图片

地址解析器(Resolver)和缓存区(Cache)一起构成DNS客户端,它的作用是接收用户程序的DNS请求,并对其作出回应,一般情况下是在同一台主机上。

用户使用域名访问某些应用服务

  1. 用户程序向DNS Client的地址解析器发出DNS请求。

  2. 地址解析器收到DNS请求后,首先查询本地域名缓存。

    • 如果本地缓存中存在映射表项,地址解析器就直接将域名对应的IP地址返回给用户程序。

    • 如果不存在,地址解析器就向DNS Server发送查询请求报文。

  3. DNS Server收到查询报文后,首先判断是否归自己管理,根据不同结果回复相应的响应报文。

    • 如果归自己管理,DNS Server首先从自己的数据库中查询域名对应的IP地址。

    • 如果不归自己管理,将请求交给上一级处理,直到完成解析,将解析结果回复给DNS Client。

  4. DNS Client的地址解析器接受并解析DNS Server发回来的响应报文,将解析结果返回给用户程序

在解析域名时首先采用静态域名解析方式,如果静态解析不成功,再采用动态域名解析。每次动态解析成功的域名与IP地址的映射均存放在动态缓存区中,当下一次查询相同域名时,可以直接从缓存区中读取。缓存区中的映射会被老化删除,以保证及时从域名服务器得到最新的内容。

6.3 域名后缀列表功能

可预先设置一些域名后缀,在域名解析时,只需输入域名的部分字段,系统会自动加上不同的后缀进行解析。如想查询“example.com”,可以在后缀列表中配置”com”,然后输入”example”,系统会自动连接成”example.com”。

6.4 DNS查询类型

  • A类查询:

    查询域名对应的IP地址

  • PTR查询

    查询IP地址对应的域名

补充:CDN

Content Delivery Network,即内容分发网络。

由于用户访问源站业务有性能瓶颈,便将源站的内容(JS脚本,CSS,图片,图标等静态资源文件)缓存到各个节点,并根据用户请求的位置调度至最接近用户的服务节点,直接由服务节点快速响应,有效降低用户访问延迟,提升可用性。

CNAME,即别名记录。

允许将多个名字映射到另一个域名。如一台名为“host.test.com”设备同时提供WWW和MAIL服务,为了用户访问服务,可以为这台设备配置两个别名“www.test.com”和“mail.test.com”,实际上都指向“host.test.com”。

在CDN的实现原理是给源站域名添加CANME,是加速节点的域名。当有请求,DNS服务器解析源站域名时,会发现有cname,这时DNS服务器会向cname域名发起请求,然后被调度至加速节点的域名。

你可能感兴趣的:(网络,tcp/ip,linux,网络,网络协议)