看懂DNS到HttpDNS
看懂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返回给你。
执行流程
- 现在我有一台电脑,在浏览器中输入www.baidu.com域名,浏览器会从浏览器的DNS缓存中检查是否有这个网址的映射关系,如果有,就返回IP,完成域名解析
- 如果没有,操作系统会先检查自己本地的hosts文件是否有这个网址的映射关系,如果有,就返回IP,完成域名解析。看到这里大家应该都猜到了,有DNS的地方,就有缓存。浏览器、操作系统、本地DNS、根域名服务器,它们都会对DNS结果做一定程度的缓存。
- 如果还没有,我的电脑就要向本地DNS服务器发起请求查询www.baidu.com这个域名。
- 本地DNS服务器拿到请求后,先检查一下自己的缓存中有没有这个地址,有的话直接返回。这个时候拿到的IP地址,会被标记为非权威服务器的应答
输入 nslookup domain name就可以查询到对应的应答,如下图:
- 如果本地DNS服务器的缓存中没有的话,本地DNS服务器会从配置文件中读取13个根DNS服务器的地址,然后向其中一台发起请求
- 根DNS服务器拿到请求后,知道他是com.这个顶级域名下的,所以会返回com域名中的NS记录(用来表明哪台服务器对该域名进行解析),其实就是一个IP(com对应的服务器IP)
- 本地DNS服务器根据返回的IP(com DNS服务器)发起请求,com DNS服务器发现你这请求的是baidu.com这个域,查到这个域的NS记录,然后返回IP(baidu.com)
- 本地DNS服务器在根据IP(baidu.com DNS服务器)访问这些权威服务器,baidu.com服务器在A记录(正向解析记录,域名到IP地址的映射)中查找到www.baidu.com的IP地址,返回IP(www.baidu.com)
- 最终本地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相关推荐
- 一张图看懂DNS域名解析全过程
DNS域名解析是互联网上非常重要的一项服务,上网冲浪(还有人在用这个词吗?)伴随着大量DNS服务来支撑,而对于网站运营来说,DNS域名解析的稳定可靠,意味着更多用户的喜欢,更好的SEO效果和更大的访问 ...
- 一文看懂:网址,URL,域名,IP地址,DNS,域名解析
今天给大家梳理一篇关于网址.URL.IP地址.域名.DNS.域名解析的白话长文,并以简单的提问-解答形式让读者更加深刻理解网址.URL.IP地址.域名.DNS.域名解析,希望有助于读者的学习,面试和工 ...
- 单文件浏览器_图文并茂深度解析浏览器渲染原理,包看懂超值得收藏
在我们面试过程中,面试官经常会问到这么一个问题,那就是从在浏览器地址栏中输入URL到页面显示,浏览器到底发生了什么?这个问题看起来是老生常谈,但是这个问题回答的好坏,确实可以很好的反映出面试者知识的广 ...
- 网络协议:TCP/IP协议,你看懂了吗?
这样的TCP/IP协议,你看懂了吗? 本文章转载自https://blog.csdn.net/yulyu/article/details/69062288 精通 TCP/IP,熟练使用 Socket ...
- TCP 的 3 次握手 4 次挥手,小学生都能看懂
前几天发了一个朋友圈,发现暗恋已久的女生给我点了个赞,于是我当晚辗转反侧.彻夜未眠!想着妹子是不是对我有感觉呢?不然怎么会突然给我点赞呢?要不趁机表个白? 于是第二天我在心中模拟了多次表白的话语,连呼 ...
- 计算机网络协议(五)——DNS、HTTPDNS
底层网络知识详解:DNS.HTTPDNS 概述 一.DNS协议:网络世界的地址簿 1.1 DNS解析流程 1.2 负载均衡 二.HTTPDNS 概述 这个专栏的计算机网络协议,我是在极客时间上学习 已 ...
- armbian清理_小孩子才做选择,OMV、HomeAssistant我全都要,小白也能看懂的N1盒子纯净刷机指南...
小孩子才做选择,OMV.HomeAssistant我全都要,小白也能看懂的N1盒子纯净刷机指南 2020-04-10 22:46:04 63点赞 609收藏 52评论 创作立场声明:今天我是一个可爱的 ...
- 网络知识扫盲,一文搞懂 DNS
在找工作面试的过程中,面试官非常喜欢考察基础知识,除了数据结构与算法之外,网络知识也是一个非常重要的考察对象. 而网络知识,通常是很抽象,不容易理解的,有很多同学就在这里裁了跟头.为了更好地通过面试, ...
- 一图看懂 aiohttp 模块:基于 asyncio 的异步HTTP网络库, 资料整理+笔记(大全)
本文由 大侠(AhcaoZhu)原创,转载请声明. 链接: https://blog.csdn.net/Ahcao2008 一图看懂 aiohttp 模块:基于 asyncio 的异步HTTP网络库, ...
最新文章
- SQLI DUMB SERIES-5
- Gzip 服务端压缩数据
- android 动画引擎,一个使用openGL渲染的炫丽Android动画库
- QT的QTimer类的使用
- linux SHELL之结构化命令
- Bailian4130 踩方格【组合+打表】
- jvm maxgcpausemillis 默认值_Tomcat和JVM的性能调优总结
- STL模板整理 priority_queue
- java根据数据库自动生成代码
- poj_3468 伸展树
- 获取父节点下的子节点 --- 递归
- 国内开源镜像(下载Linux系统)
- html的各种标签详解
- JavaScript Debugger 原理
- 一篇文章带你看遍Google I/O 2019大会
- 微信小程序学习3(wxss)
- python 绘制折线图与柱状图
- 微前端MicroApp的学习(一):简单搭建项目
- 华为南研所2015年面试经历总结
- 谷歌怕了!ChatGPT狂砸搜索引擎饭碗,CEO开会拉响「红色警报」
热门文章
- 若两素数之差为2 ,则称两素数为双胞胎数,打印出[31,600]之间所有的双胞胎数,并求有多少对双胞胎数。
- 【写在七夕浪浪漫时刻】Go中遇到http code 206和302的获取数据的解决方案
- mysql 处理字符串 减断_Mysql处理字符串函数(转)
- Revit二开--批量修改视图范围(revit宏)
- 什么是AUTOSAR规范?
- E: dpkg was interrupted, you must manually run ‘dpkg –configure -a’ to correct the problem. 解决办法
- android局部布局刷新,Android RecyclerView 局部刷新分析
- 2022-2027年中国房产网络服务行业市场全景评估及发展战略规划报告
- android设备判断是否支持NFC功能
- php项目宝塔搭建实战前后端Niushop开源商城系统