看懂DNS到HttpDNS

文章目录

  • 看懂DNS到HttpDNS
  • DNS
    • 什么是DNS以及DNS的作用
    • 为何需要DNS解析域名成IP
    • 简单域名知识
    • DNS解析流程
      • 本地DNS
    • DNS解析总结
    • 基于UDP协议的DNS问题
      • DNS劫持
      • DNS污染
  • HttpDNS
    • 什么是HttpDNS
    • 作用
    • 存在问题
    • 应用场景

DNS

什么是DNS以及DNS的作用

  • DNS(Domain Name System)域名系统,作为域名与IP的映射的一个分布式数据库系统。
  • 能够使得用户更加方便去访问对应的服务,而不用去记住那一串毫无规律的IP串。

为何需要DNS解析域名成IP

首先计算机在网络上通讯时只能识别IP地址(网络通讯大部分是基于TCP/IP协议,而TCP/IP是基于IP地址的),比如我要在浏览器中访问百度的地址,我可以在地址栏直接输入14.215.177.39就能访问到百度的首页。但是我们无法记住更多的IP地址。那么域名就出现了,域名是由一串用”.”分隔的唯一名字。所以现在我们访问网站的时候,就可以在浏览器地址栏中输入域名(www. baidu.com),那么DNS就会把域名翻译成IP,然后访问IP。

简单域名知识

域名按照从右到左的顺序来划分优先等级,最右边的是最高级的根域,根域就是所谓的”.”,其实我们的域名www.baidu.com在配置当中应该是www.baidu.com.(最后有一个点),一般我们在浏览器里输入时会省略后面的点。接下来就是顶级域又称一级域,一级域之后还有二级三级域。如何区分当前域名是几级域,可以参考域名中有几个点来判断(除了根域外),比如baidu.com就是个一级域,而www.baidu.com就是个二级域(它是在baidu.com这个域里面有一个叫做www的主机)

每一层域都会有一堆域名(DNS)服务器,DNS服务器是能提供域名解析的服务器,记录类型可以是A(address)记录,NS(name server)记录,MX(mail),CNAME等,这些记录类型后续会一一介绍到。

这里有个知识点,百科中说全世界只有13台根DNS服务器,但其实这是错误的观点,根DNS服务器只有具体的13个IP地址,但机器的数量不止13台。

DNS服务器一般分三种,根DNS服务器,顶级DNS服务器,权威DNS服务器

DNS解析流程

本地DNS

即上网时手动指定或者自动分配的DNS的地址。

情况一般如下:

  • 如果你的电脑是直连运营商(ISP)网络,一般默认设置情况下DNS为ISP的服务器地址。
  • 如果你的电脑和ISP之间还加了无线或者有线路由(一般的路由器本身还会内置DNS转发器),它的作用是将发往它所有的DNS请求转发到上层DNS,但最终会转发到ISP的DNS。
  • 如果手动修改了DNS,比如改成114.114.114.114这样的公用DNS服务器,那么指的就是这个服务器。
  • 本地DNS不是权威服务器,相当于一个代理的DNS解析服务器,他会帮你迭代权威服务器返回的回答,然后把最终查到的IP返回给你。

执行流程

  1. 现在我有一台电脑,在浏览器中输入www.baidu.com域名,浏览器会从浏览器的DNS缓存中检查是否有这个网址的映射关系,如果有,就返回IP,完成域名解析
  2. 如果没有,操作系统会先检查自己本地的hosts文件是否有这个网址的映射关系,如果有,就返回IP,完成域名解析。看到这里大家应该都猜到了,有DNS的地方,就有缓存。浏览器、操作系统、本地DNS、根域名服务器,它们都会对DNS结果做一定程度的缓存。
  3. 如果还没有,我的电脑就要向本地DNS服务器发起请求查询www.baidu.com这个域名。
  4. 本地DNS服务器拿到请求后,先检查一下自己的缓存中有没有这个地址,有的话直接返回。这个时候拿到的IP地址,会被标记为非权威服务器的应答

输入 nslookup domain name就可以查询到对应的应答,如下图:

  1. 如果本地DNS服务器的缓存中没有的话,本地DNS服务器会从配置文件中读取13个根DNS服务器的地址,然后向其中一台发起请求
  2. 根DNS服务器拿到请求后,知道他是com.这个顶级域名下的,所以会返回com域名中的NS记录(用来表明哪台服务器对该域名进行解析),其实就是一个IP(com对应的服务器IP)
  3. 本地DNS服务器根据返回的IP(com DNS服务器)发起请求,com DNS服务器发现你这请求的是baidu.com这个域,查到这个域的NS记录,然后返回IP(baidu.com)
  4. 本地DNS服务器在根据IP(baidu.com DNS服务器)访问这些权威服务器,baidu.com服务器在A记录(正向解析记录,域名到IP地址的映射)中查找到www.baidu.com的IP地址,返回IP(www.baidu.com)
  5. 最终本地DNS服务器拿到用户想访问的www.baidu.com的IP,返回给客户端,并进行缓存操作,以便下次使用。

DNS解析总结

DNS的域名解析过程分为两种:递归查询和迭代查询。

  • 我的电脑向本地DNS服务器的查询一般都是采用递归查询
  • 本地DNS服务器向其他DNS服务器的查询是迭代查询

基于UDP协议的DNS问题

DNS劫持

DNS决定的是我们的域名将解析到哪一个IP地址的记录,是基于UDP协议的一种应用层协议。这种攻击的前提是攻击者掌控了你的本地DNS服务器

攻击者劫持了DNS服务器,通过某些手段取得某域名的解析记录控制权,进而修改此域名的解析结果,导致用户对该域名地址进行访问的时候,由原来的IP地址转入到修改后的IP地址。结果就是让正确的网址不能解析或者是被解析到另一个网址的IP,实现获取用户资料或者破坏原有网址正常服务的目的。

由于域名劫持往往只能在特定的被劫持的网络范围内进行,所以在此范围外的DNS服务器能够返回正常的IP地址,或者修改DNS以及直接IP访问。

一般而言,用户上网的DNS服务器都是运营商分配的,所以在这个节点上,运营商可以做一些事情,比如,你去访问www.a.com,正常DNS应该返回10.0.0.1,而运营商劫持后,会返回一个运营商的中间服务器IP,访问该服务器会一致性的返回302(暂时重定向),让用户浏览器跳转到预处理好的带广告的网页,在该网页中再通过iframe打开用户原先访问的地址。

DNS污染

又称域名服务器缓存投毒(DNS cache poisoning),它和DNS劫持的不同之处,在于污染针对的是DNS缓存,是在查询信息到达目标DNS服务器前,经过的节点上做手脚,而劫持是DNS服务器中记录的是错误的内容。

总结下就是DNS劫持是修改DNS服务器,DNS污染是修改DNS缓存。

看下图举个例子:对于GFW来说,DNS劫持用于国内服务器,因为可以修改服务器中的DNS记录,而对于国外服务器GFW无法更改其内容,故采用DNS污染的方式篡改用户收到的信息。其中的过程是,当你向国外DNS服务器查询DNS记录时,这些流量走到国际出口带宽的时候会遇到GFW的关键字审查,如果上了黑名单,GFW会立即向你返回一个虚假的DNS记录。上面也说到DNS走的是UDP协议,加上DNS查询结果只认最快返回的,所以一定是先收到了GFW给你返回的虚假DNS记录,就算马上你收到了真正的来自国外DNS的回复,也会被你的系统无视掉。这种攻击也被称为中间人攻击。

HttpDNS

什么是HttpDNS

HTTPDNS使用HTTP协议进行域名解析,代替现有基于UDP的DNS协议,域名解析请求直接发送到阿里云的HTTPDNS服务器,从而绕过运营商的Local DNS,能够避免Local DNS造成的域名劫持问题和调度不精准问题。

作用

  • 防劫持

绕过运营商Local DNS,避免域名劫持,让每一次访问都畅通无阻。

  • 精准调度

基于访问的来源IP,获得最精准的解析结果,让客户端就近接入业务节点。

智能DNS,就是为了调度用户访问策略,但是这些因素会导致智能DNS策略失效。小运营商,没有DNS服务器,直接调用别的服务商,导致服务商识别错误,直接跨网传输,速度大大下降。服务商多长NAT,实际IP,获得不了,结果没有就近访问。一些运营商将IP设置到开卡地,即使漫游到其他地方,结果也是没有就近访问。

  • 0ms解析延迟

通过热点域名预解析、缓存DNS解析结果、解析结果懒更新策略等方式实现0解析延迟

  • 快速生效

避免Local DNS不遵循权威TTL,解析结果长时间无法更新的问题

  • 稳定可靠

存在问题

解决了DNS的基于UDP劫持,但是仍然存在HTTP劫持的风险,当然,遇到这种情况,要么通过IP去解析域名,要么,确保解析链上的ISP达成合作协议,不对HTTP进行劫持。

应用场景

1、希望降低访问延迟、减少跨网访问的资讯、游戏类APP;
2、希望降低连接失败率,提升业务成功率的电商等通用APP;
3、域名屡次被劫持,希望用户访问顺畅无阻的社交等通用APP;
4、对流畅度要求高,提升连接成功率的视频、音乐类APP;
注:需要客户端进行一定的开发,适用于移动APP的使用,但是不适合浏览器使用。

看懂DNS到HttpDNS相关推荐

  1. 一张图看懂DNS域名解析全过程

    DNS域名解析是互联网上非常重要的一项服务,上网冲浪(还有人在用这个词吗?)伴随着大量DNS服务来支撑,而对于网站运营来说,DNS域名解析的稳定可靠,意味着更多用户的喜欢,更好的SEO效果和更大的访问 ...

  2. 一文看懂:网址,URL,域名,IP地址,DNS,域名解析

    今天给大家梳理一篇关于网址.URL.IP地址.域名.DNS.域名解析的白话长文,并以简单的提问-解答形式让读者更加深刻理解网址.URL.IP地址.域名.DNS.域名解析,希望有助于读者的学习,面试和工 ...

  3. 单文件浏览器_图文并茂深度解析浏览器渲染原理,包看懂超值得收藏

    在我们面试过程中,面试官经常会问到这么一个问题,那就是从在浏览器地址栏中输入URL到页面显示,浏览器到底发生了什么?这个问题看起来是老生常谈,但是这个问题回答的好坏,确实可以很好的反映出面试者知识的广 ...

  4. 网络协议:TCP/IP协议,你看懂了吗?

    这样的TCP/IP协议,你看懂了吗? 本文章转载自https://blog.csdn.net/yulyu/article/details/69062288 精通 TCP/IP,熟练使用 Socket ...

  5. TCP 的 3 次握手 4 次挥手,小学生都能看懂

    前几天发了一个朋友圈,发现暗恋已久的女生给我点了个赞,于是我当晚辗转反侧.彻夜未眠!想着妹子是不是对我有感觉呢?不然怎么会突然给我点赞呢?要不趁机表个白? 于是第二天我在心中模拟了多次表白的话语,连呼 ...

  6. 计算机网络协议(五)——DNS、HTTPDNS

    底层网络知识详解:DNS.HTTPDNS 概述 一.DNS协议:网络世界的地址簿 1.1 DNS解析流程 1.2 负载均衡 二.HTTPDNS 概述 这个专栏的计算机网络协议,我是在极客时间上学习 已 ...

  7. armbian清理_小孩子才做选择,OMV、HomeAssistant我全都要,小白也能看懂的N1盒子纯净刷机指南...

    小孩子才做选择,OMV.HomeAssistant我全都要,小白也能看懂的N1盒子纯净刷机指南 2020-04-10 22:46:04 63点赞 609收藏 52评论 创作立场声明:今天我是一个可爱的 ...

  8. 网络知识扫盲,一文搞懂 DNS

    在找工作面试的过程中,面试官非常喜欢考察基础知识,除了数据结构与算法之外,网络知识也是一个非常重要的考察对象. 而网络知识,通常是很抽象,不容易理解的,有很多同学就在这里裁了跟头.为了更好地通过面试, ...

  9. 一图看懂 aiohttp 模块:基于 asyncio 的异步HTTP网络库, 资料整理+笔记(大全)

    本文由 大侠(AhcaoZhu)原创,转载请声明. 链接: https://blog.csdn.net/Ahcao2008 一图看懂 aiohttp 模块:基于 asyncio 的异步HTTP网络库, ...

最新文章

  1. SQLI DUMB SERIES-5
  2. Gzip 服务端压缩数据
  3. android 动画引擎,一个使用openGL渲染的炫丽Android动画库
  4. QT的QTimer类的使用
  5. linux SHELL之结构化命令
  6. Bailian4130 踩方格【组合+打表】
  7. jvm maxgcpausemillis 默认值_Tomcat和JVM的性能调优总结
  8. STL模板整理 priority_queue
  9. java根据数据库自动生成代码
  10. poj_3468 伸展树
  11. 获取父节点下的子节点 --- 递归
  12. 国内开源镜像(下载Linux系统)
  13. html的各种标签详解
  14. JavaScript Debugger 原理
  15. 一篇文章带你看遍Google I/O 2019大会
  16. 微信小程序学习3(wxss)
  17. python 绘制折线图与柱状图
  18. 微前端MicroApp的学习(一):简单搭建项目
  19. 华为南研所2015年面试经历总结
  20. 谷歌怕了!ChatGPT狂砸搜索引擎饭碗,CEO开会拉响「红色警报」

热门文章

  1. 若两素数之差为2 ,则称两素数为双胞胎数,打印出[31,600]之间所有的双胞胎数,并求有多少对双胞胎数。
  2. 【写在七夕浪浪漫时刻】Go中遇到http code 206和302的获取数据的解决方案
  3. mysql 处理字符串 减断_Mysql处理字符串函数(转)
  4. Revit二开--批量修改视图范围(revit宏)
  5. 什么是AUTOSAR规范?
  6. E: dpkg was interrupted, you must manually run ‘dpkg –configure -a’ to correct the problem. 解决办法
  7. android局部布局刷新,Android RecyclerView 局部刷新分析
  8. 2022-2027年中国房产网络服务行业市场全景评估及发展战略规划报告
  9. android设备判断是否支持NFC功能
  10. php项目宝塔搭建实战前后端Niushop开源商城系统