【计算机网络(二)】DNS协议

这篇具有很好参考价值的文章主要介绍了【计算机网络(二)】DNS协议。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

什么是DNS

DNS(DOMAIN NAME SYSTEM)是一个域名系统,是万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串

名词解释

统一资源定为符(URL)

也被称作「网址」,用于定为互联网上的资源
【计算机网络(二)】DNS协议

DNS 工作流程

【计算机网络(二)】DNS协议

  1. 客户端发送域名解析请求到本地域名服务器
    • 发起域名解析请求使用 UDP 协议:因为 UDP 协议速度快,只需要一个请求一个应答
    • 这一步使用递归查询,希望直接返回获得 ip 地址或者报错
  2. 本地服务器查询hosts文件和本地缓存
  3. 有则返回,若无 =>(发送请求到根域名服务器 <=> 返回顶级域名服务器地址)
    • 后续步骤采用迭代查询,希望返回 ip 地址或者下一步查询的 dns 服务器地址
  4. 请求顶级域名服务器 <=> 返回权威域名服务器地址
  5. 请求权威域名服务器 => 返回ip地址(这一步可以做负载均衡,根据不同策略返回不同IP)
  6. 本地域名服务器缓存结果
  7. 返回ip地址给客户端

DNS请求方式

1. 递归请求(客户端 => 本地 DNS 服务器)

如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其它根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步查询。

因此,递归查询返回的查询结果或者是所要查询的IP地址或者是报错,表示无法查询到所需的IP地址

2. 迭代请求(本地 DNS 服务器 => 外网)

  1. 当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地服务器:“你下一步应当向哪一个域名服务器进行查询”。
  2. 然后让本地服务器进行后续的查询。根域名服务器通常是把自己知道的顶级域名服务器的IP地址告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询。
  3. 顶级域名服务器在收到本地域名服务器的查询请求后,要么给出所要查询的IP地址,要么告诉本地服务器下一步应当向哪一个权限域名服务器进行查询。
    最后,知道了所要解析的IP地址或报错,然后把这个结果返回给发起查询的主机

DNS服务器的常见记录类型

A记录(address)

又称IP指向,用户可以在此设置子域名并指向到自己的目标主机地址上

www.example.com     IN     A     139.18.28.5; 

AAAA记录

定义主机的IPV6地址

1251625956.s2txipv6.cdntip.com 103 IN  AAAA    240e:940:401:1:1a::

NS记录(name server)

解析服务器记录,定义DNS信息服务器所在的位置,用来表明由哪台服务器对该域名进行解析。
NS记录只对子域名生效。

zhihu.com  52908   IN      NS      ns4.dnsv5.com.
zhihu.com  52908   IN      NS      ns3.dnsv5.com. 

SOA记录

定义在多个NS服务器中哪个是主服务器

# ns3.dnsv5.com. 是主服务器
IN SOA: ns3.dnsv5.com. enterprise3dnsadmin.dnspod.com. 1594718785 3600 180 1209600 180 

MX记录(mail)

邮件交换记录。用于将以该域名为结尾的电子邮件指向对应的邮件服务器以进行处理
如:用户所用的邮件是以域名mydomain.com为结尾的,则需要在管理界面中添加该域名的MX记录来处理所有以@mydomain.com结尾的邮件

happy.example.com 作为邮件服务域名   IN MX  happy.example.com.
A记录描述邮件服务器IP  happy.example.com.  IN A  123.123.123.123 

CNAME

通常称别名指向。您可以为一个主机设置别名。比如设置test.mydomain.com,用来指向一个主机www.rddns.com那么以后就可以用test.mydomain.com来代替访问www.rddns.com了(A 记录优先级高于 CNAME,若一个主机地址同时有 A 记录和 CNAME,则 CNAME 不生效)

www.example.com IN CNAME example.com.

TXT记录

提供文本信息

zhihu.com  600 IN  TXT "google-site-verification=q42VyLbU7bjRv5xb2279AX9jJ3Vuxp-e4XG_f1EQRGk"

DNS查询工具

dig(DNS lookup utility)命令

用来查询dns的小工具

nslookup命令

交互式查询域名服务工具

host(DNS lookup utility)命令

DNS 服务器高可用

  1. DNS的规范规定了2种类型的DNS服务器,一个叫主DNS服务器,一个叫辅助DNS服务器
  2. 在一个区中主DNS服务器从自己本机的数据文件中读取该区的DNS数据信息,而辅助DNS服务器则从区的主DNS服务器中读取该区的DNS数据信息
  3. 当一个辅助DNS服务器启动时,它需要与主DNS服务器通信,并加载数据信息,这就叫做区传送(zone transfer)
  4. 这种情况下,使用TCP协议(复制内容,可靠性高)

DNS 的不足

运营商问题

  1. 缓存失效问题
    • 本地 DNS 服务器域名解析更新不及时,有可能用户地域或网络发生变化后依然提供原来的ip 地址,导致绕远路,请求响应时间较长
    • 同时导致容灾问题,当某个 ip 的服务器挂了后,本地 DNS 服务器缓存没有更新,导致老用户持续请求到挂掉的服务器
    • 运营商缓存服务器故障导致用户无法访问
  2. 运营商偷懒转发dns
    运营商把请求转发给其他运营商,比如移动压力大偷懒不解析转发给联通,联通服务器以为你是联通用户,返回一个联通的 ip 地址给你,导致运营商跨域降低接口响应速度
  3. DNS劫持
    • 运营商 DNS 服务器将域名故意解析为其他 ip(选择可靠的 DNS 服务器或投诉到工信部)

协议自身问题

  1. DNS 污染
    DNS 解析请求使用 UDP 协议明文传输,可能导致被截取篡改
  2. LocalDns递归出口NAT
    LocalDNS递归出口NAT指的是运营商的LocalDNS按照标准的DNS协议进行递归,但是因为在网络上存在多出口且配置了目标路由NAT,结果导致LocalDNS最终进行递归解析的时候的出口IP就有概率不为本网的IP地址(例如电信变联通),此时域名权威DNS就认为用户是联通的,返回联通的ip导致跨网请求速度变慢
  3. HTTP 劫持
  • 运营商路由器发现是 HTTP 请求,在响应结果中插入 JS 代码弹出一些广告之类的

DNS 劫持

  1. 个别运营商 DNS 服务器为了利益故意返回错误的 ip 地址
  2. 攻击者伪造权威 DNS 服务器返回结果给本地 DNS 服务器,欺骗本地 DNS 服务器接收返回记录并覆盖缓存

解决方案

  1. HttpDNS
  2. DNSSEC
  3. 实时监控+商务推动

HTTP 劫持

  1. 运营商路由器发现是 HTTP 请求,直接重定向到指定地址
  2. 运营商路由器发现是 HTTP 请求,在响应结果中插入 JS 代码弹出一些广告之类的

解决方案

  1. 投诉运营商客服
  2. 投诉工信部
  3. HTTPS 加密请求,避免篡改
  4. 如果暂时无法使用 HTTPS,则事后屏蔽,遍历 DOM 对象,屏蔽无关广告

HTTP 劫持监测网站

http://wzjk.iis7.net/

  • 一个 TCP 连接可以对应几个 HTTP 请求?(提示,这在问你HTTP1.0和1.1的区别)
  • 一个tcp连接对应一个http1.0请求(未启用keepalive),对应多个http1.0请求(启用keepalive)和多个http1.1及2.0请求
    2、一个 TCP 连接中 HTTP 请求发送可以一起发送么(比如一起发三个请求,再三个响应一起接收)?(提示,这就是在问你HTTP2.0和HTTP1.1协议的区别)

3、浏览器对同一Host建立TCP连接到数量有没有限制?(拜托,一个网站那么多图片,开一个TCP连接,按顺序下载?那不是等到死?)

HTTPDNS

原理

HttpDNS的原理非常简单,主要有两步:
客户端直接访问HttpDNS接口,获取业务在域名配置管理系统上配置的访问延迟最优的IP。(基于容灾考虑,还是保留次选使用运营商LocalDNS解析域名的方式)
客户端向获取到的IP后就向直接往此IP发送业务协议请求。以Http请求为例,通过在header中指定host字段,向HttpDNS返回的IP发送标准的Http请求即可。

优势

从原理上来讲,HttpDNS只是将域名解析的协议由DNS协议换成了Http协议,并不复杂。但是这一微小的转换,却带来了无数的收益:
A、根治域名解析异常:由于绕过了运营商的LocalDNS,用户解析域名的请求通过Http协议直接透传到了腾讯的HttpDNS服务器IP上,用户在客户端的域名解析请求将不会遭受到域名解析异常的困扰。
B、调度精准:HttpDNS能直接获取到用户IP,通过结合腾讯自有专利技术生成的IP地址库以及测速系统,可以保证将用户引导的访问最快的IDC节点上。
C、实现成本低廉:接入HttpDNS的业务仅需要对客户端接入层做少量改造,无需用户手机进行root或越狱;而且由于Http协议请求构造非常简单,兼容各版本的移动操作系统更不成问题;另外HttpDNS的后端配置完全复用现有权威DNS配置,管理成本也非常低。总而言之,就是以最小的改造成本,解决了业务遭受域名解析异常的问题,并满足业务精确流量调度的需求。
D、扩展性强:HttpDNS提供可靠的域名解析服务,业务可将自有调度逻辑与HttpDNS返回结果结合,实现更精细化的流量调度。比如指定版本的客户端连接请求的IP地址,指定网络类型的用户连接指定的IP地址等。

HTTPS效率和高可用

通过BGP网络保证不同运营商的用户可以快速访问网络
通过在多个数据中心部署服务互备实现高可用

附录

根DNS服务器名字与地址

https://www.internic.net/domain/named.root文章来源地址https://www.toymoban.com/news/detail-434515.html

到了这里,关于【计算机网络(二)】DNS协议的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【计网笔记06】计算机网络之应用层协议(SMTP协议、POP3协议、HTTP协议)、DNS域名系统、电子邮件系统

    这篇文章,主要介绍计算机网络之应用层协议(SMTP协议、POP3协议、HTTP协议)、DNS域名系统、电子邮件系统。 目录 一、计算机网络之应用层 1.1、应用层介绍 1.2、网络应用模型

    2024年02月08日
    浏览(58)
  • 计算机网络基础知识(二)—— 什么是Ip地址、Mac地址、网关、子网掩码、DNS

    初次接触网络时,只知道电脑连接网线,就可以打开4399玩小游戏,可以登录QQ和朋友聊天; 再次接触网络时,知道了怎么查看自己电脑的网络情况(Windows终端下敲入ipconfig),但是对于其中的一串串数字完全一头雾水,现在来看下这些数字都代表着什么意思吧🤓 I P 地址是网

    2024年02月03日
    浏览(46)
  • 【计算机网络】(4)什么是路由+ARP协议

    目录 一、路由         1.1 定义         1.2 思考         1.2.1 路由器的工作工程         1.3 路由表         1.4 路由的类型         1.4.1 静态路由和动态路由         1.4.2 配置静态路由         1.4.3 实验         1.4.4 Linux里的操作        

    2024年02月09日
    浏览(40)
  • 计算机网络 应用层上 | 域名解析系统DNS 文件传输协议FTP,NFS 万维网URL HTTP HTML

    之前我们讲运输层的时候已经讲了运输层可以给不同进程之间通信,但我们还需要应用层原因是,许多 应用需要多个进程之间相互配合完成,所以应用层进程用来约束这些配合! 每个应用层协议用来解决一个问题 应用层的许多协议都是基于客户服务器方式 客户是请求方,服

    2024年01月24日
    浏览(62)
  • 计算机网络 | socket IPC(本地套接字domain)

    欢迎关注博主 Mindtechnist 或加入【Linux C/C++/Python社区】一起学习和分享Linux、C、C++、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。 专栏:《Linux从小白到大神》《网络编程》 soc

    2024年02月08日
    浏览(44)
  • 计算机网络笔记:域名系统(DNS)

    域名系统概述 :互联网使用的命名系统,用来将便于人们使用的机器名字转换为IP地址。 域名系统的使用情况 : 直接使用 :许多应用层软件经常直接使用域名系统; 间接使用 :计算机用户虽然是通过间接的方式使用域名系统,但是域名系统却为互联网的各种网络应用提供

    2024年02月08日
    浏览(40)
  • 【计算机网络笔记】DNS报文格式

    DNS 提供域名到主机IP地址的映射  域名服务的三大要素:  域(Domain)和域名(Domain name): 域指由地 理位置或业务类型而联系在一起的一组计算机构 成。  主机:由域名来标识。域名是由字符和(或)数 字组成的名称,用于替代主机的数字化地址(IP 地址)。  域名服

    2024年02月08日
    浏览(49)
  • 计算机网络实验:HTTP和DNS分析

    一、实验目的 熟悉并掌握 WireShark 的基本操作,了解网络协议实体间的交互以及报文交换; 分析 HTTP 和 DNS 协议。 二 、 实验课时 2课时 三 、 实验环境 与因特网连接的计算机网络系统;主机操作系统为windows; WireShark、IE等软件。 四 、实验 步骤 1. HTTP 分析 (1)启动 WireS

    2024年01月16日
    浏览(43)
  • 计算机网络基础知识(五)——什么是TCPUDP协议?图文并茂的方式对两大传输层协议进行从头到尾的讲解

    TCP和UDP协议是TCP/IP协议的核心。 TCP 传输协议:TCP 协议是一TCP (Transmission Control Protocol)和UDP(User Datagram Protocol)协议属于传输层协议。其中TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠

    2024年02月05日
    浏览(57)
  • 初识计算机网络 | 计算机网络的发展 | 协议初识

    1.计算机网络的发展 “矛盾是普遍存在的,矛盾是事物联系的实质内容和 事物发展的根本动力 !” 计算机在诞生之初,在军事上用来计算导弹的弹道轨迹!在发展的过程中( 商业的推动,国家政策推动 ),计算机的应用场景被发现!被应用于各种各样的场景当中! 现在,

    2024年01月25日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包