在学习DNS的过程中给我的启发

在国内,关于DNS相关的话题一直络绎不绝,比如DNS根服务器为什么中国没有,还有Anycast BGP实现负载,为什么DNS只有13个,还有DNS over HTTPS 和 DNS over TLS的优劣等等问题,接下来我会找出几个一一说一下其中的原理,并谈谈通过研究这些问题后我的收获。

DNS和我们每天的上网动作息息相关,它是互联网的一项基本服务,最重要的任务是域名解析,它是一个把域名和IP地址相互映射的分布式数据库,把我们访问网页时的域名翻译成IP地址,让我们顺利浏览网页。这项技术的起因就是为了解决上述需求。因为网络通信大部分都基于TCP/IP协议,也就是需要基于IP地址,所以计算机在网络中互访只能识别IP地址而不是域名,域名是用来方便我们记忆的,所以需要DNS(域名系统)来在中间做翻译。其发展是个很长的过程,也很有趣,有兴趣的可以查看相关历史。对于每级域名的长度限制最多63个字符,域名总长度限制小于253个字符。其实DNS也是可以自己搭建的,最普遍的方式是在Linux服务器中使用BIND软件来实现。搭建BIND需要一定的Linux基础,它也算是比较复杂的Linux服务了。

首先讲一下关于其负载均衡的问题。一些网站为了实现负载均衡,可能会为其分配多个IP地址来实现负载均衡,是一种初级的负载方法,把网址映射到不同的IP地址上。还有一种从整体上的负载均衡技术,就是Anycast BGP,其原理类似CDN,它实现的功能是在全球不同地方去访问相同IP的DNS服务器的延迟都会很低,其实现的原理通俗来讲就是用同一个IP地址的DNS在物理上分布在全球。如何实现的呢,首先介绍一下其中的一个构成:BGP。目前全球的互联网路由都是以BGP路由协议来传播的。它把不同AS号的局域网连接成了互联网,使之能互相访问,其在全球互联网的选路规则一般是AS号最短的路径优先,但有很多种办法可以灵活控制。Anycast BGP的实现前提之一是发布某一IP的组织是要遍布全球的,它在全球各个节点通过BGP来发布这个IP地址,通过BGP的选路功能,世界各地的主机就可以通过各自运营商访问到离自己最近的这个IP的主机,实现低延迟访问。 并且也由此技术获得了抵抗DDoS攻击的能力。

下一个问题是为什么DNS根服务器只有13个?其实应该是有13组,每组都是用上述Anycast BGP技术部署到全世界。13这个数字其实是由UDP包大小决定的。但有人会问为什么不用TCP来传输呢?最主要的是对开销的计算。UDP包头长为8个字节,但TCP包头最小却是20字节,其间相差很大,还有一个原因是TCP是面向连接的,传输之前会进行三次握手,对传输DNS等信息来讲,这种开销实在太大了。第三点是UDP最大安全数据包大小是508字节,因为最开始建立协议时的安全的MTU设置为576(Internet标准MTU值),在此基础上减去最多60的IP头和UDP头,超过这个数就可能被路由器丢弃,所有根域名服务器都是以同一份根域文件返回给顶级域名服务器,其中只能存放13个根域名,所以这是很多因素共同影响的结果。

对于中国大陆为何没有根服务器这一点,查到的内容比较敏感不便多说。还是讲讲DNS over HTTPS 和 DNS over TLS等技术吧。DNS over HTTPS(DoH)是一个安全化的域名解析方式,它通过加密的HTTPS(HTTP+SSL/TLS)协议进行DNS解析请求,来避免原始DNS请求被恶意监听和修改,以此达到保护用户隐私和安全,其规范文件为RFC8484。如果你打开自己的浏览器设置或者软路由设置可能会看到这一项的设置。 在传统的DNS基于TCP或UDP协定,当时还未有安全性的需要,无法适应现代互联网中常见的污染等攻击。后来添加的电子签名等验证虽然能抵挡污染,但对于中间设备的监听仍没有抵挡能力。此技术的使用场景大致分为三种。第一是在应用程序中使用,如在浏览器中内建DoH,其可绕过操作系统的DNS来实现查询。第二种是在本地网络中的域名服务器中安装DoH代理,此方法中客户端继续使用传统方式查询,此方法对使用者透明。第三种是在本地主机安装DoH代理,此方案更加灵活,但缺点是部署比较麻烦。DNS over TLS(DoT)是通过TLS加密并打包DNS的安全协议,使用端口853,其规范文件为RFC 7858和RFC 8310。其也能防止中间人攻击以保护用户隐私。最后再介绍一个新的安全化域名解析方案,DNS over QUIC(DoQ),它使用QUIC协议进行DNS解析,防止中间人攻击和保证用户隐私。该协议与今年5月发布了RFC9259,但暂时未被广泛使用,Adguard是最先宣布启用DoQ服务器的厂商。其优势是QUIC协议本身能让队头堵塞问题得到解决,在比较差的网络环境中表现更好,而且速度比前两者更快一些。

如果想提高自己的Linux水平,可以看一看《Linux就该这么学》这本书,其中也有DNS相关章节,在线阅读网址:www.linuxprobe.com.

通过对这些问题的研究,让我对DNS有了更多更深刻的理解。网络安全绝不是简简单单就能做到的,其中涉及技术和社会环境等各种因素,特别是国内的特殊环境,谁也预料不到2014年的事故是否会再发生。但对于新技术的追求是每个人都能把握的,在此过程中也要注意不要掉入求新不求好的陷阱,适合自己的才是最好的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/124190.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Net跨平台UI框架Avalonia入门-安装和使用(v11版本)

介绍Avalonia v11版本 avalonia v11版本发布了,增加了很多新的功能,Avalonia的扩展也同步升级了。 主要更新内容: 辅助功能:增加了对各种辅助工具的支持,提高了Avalonia应用程序的可用性。输入法编辑器(I…

python实现某音自动登录+获取视频数据

前言 Dy这个东西想必大家都用过,而且还经常刷,今天就来用代码,获取它的视频数据 环境使用 Python 3.8 Pycharm 模块使用 requests selenium json re 一. 数据来源分析 1. 明确需求 明确采集网站以及数据内容 网址: https://www.dy.com/…

【电源专题】典型设备的接地设计

在文章:【电源专题】接地的类型 中我们讲到不同的历史时期接地概念是不同的,有为了安全的电气接地和物理接地,也有为了提供参考电位的接地。 那么在设备接地的设计中,我们会怎么进行操作呢? 在文章【电源专题】接地的类型讲到一个混合接地的例子,我们可以把大功率的地接…

13分钟聊聊并发包中常用同步组件并手写一个自定义同步组件

本篇文章通过AQS自己来实现一个同步组件,并从源码级别聊聊JUC并发包中的常用同步组件 本篇文章需要的前置知识就是AQS,阅读本篇文章大概需要13分钟 自定义同步组件 为了更容易理解其他同步组件,我们先来使用AQS自己来实现一个常用的可重入…

Origin绘制彩色光谱图

成果图 1、双击线条打开如下窗口 2、选择“图案”-》颜色-》按点-》映射-》Wavelength 3、选择颜色映射 4、单击填充-》选择加载调色板-》Rainbow-》确定 5、单击级别,设置成从370到780,右侧增量选择2(越小,颜色渐变越细腻&am…

时序预测 | MATLAB实现TCN-LSTM时间卷积长短期记忆神经网络时间序列预测

时序预测 | MATLAB实现TCN-LSTM时间卷积长短期记忆神经网络时间序列预测 目录 时序预测 | MATLAB实现TCN-LSTM时间卷积长短期记忆神经网络时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.MATLAB实现TCN-LSTM时间卷积长短期记忆神经网络时间序列预测…

Kotlin委托Delegate托管by

Kotlin委托Delegate托管by import kotlin.reflect.KPropertyfun main() {var user: String by MyDelegate()user "fly"println(user) }class MyDelegate {private var v: String? nulloperator fun getValue(thisRef: Any?, property: KProperty<*>): Stri…

【Spring面试】一、SpringBoot启动优化与Spring IoC

文章目录 Q1、SpringBoot可以同时处理多少请求Q2、SpringBoot如何优化启动速度Q3、谈谈对Spring的理解Q4、Spring的优缺点Q5、Spring IoC容器是什么&#xff1f;作用与优点&#xff1f;Q6、Spring IoC的实现机制是什么Q7、IoC和DI的区别是什么Q8、紧耦合与松耦合的区别&#xf…

如何让自己的精力集中 Maven自学笔记 马云演讲观看

目录 如何让自己的精力集中 Avoid having multiple tasks and objects in your line of sight 人的脑袋是给自己思考用的 晚上床上想千条路&#xff0c;早上起床还是走原路 参与才会变得更好 共度灾难&#xff0c;是需要互相鼓励的 CFO Capital 上海各区都有哪些大学?…

LabVIEW对EAST长脉冲等离子体运行的陀螺稳态运行控制

LabVIEW对EAST长脉冲等离子体运行的陀螺稳态运行控制 托卡马克是实现磁约束核聚变最有希望的解决方案之一。电子回旋共振加热&#xff08;ECRH是一种对托卡马克有吸引力的等离子体加热方法&#xff0c;具有耦合效率高&#xff0c;功率沉积定位好等优点。陀螺加速器是ECRH系统中…

Kafka3.0.0版本——消费者(消费者组案例)

目录 一、消费者组案例1.1、案例需求1.2、案例代码1.2.1、消费者1代码1.2.2、消费者2代码1.2.3、消费者3代码1.2.4、生产者代码 1.3、测试 一、消费者组案例 1.1、案例需求 测试同一个主题的分区数据&#xff0c;只能由一个消费者组中的一个消费。如下图所示&#xff1a; 1…

设计模式(1) - UML类图

1、前言 最近在阅读 Android 源码&#xff0c;时常碰到代码中有一些巧妙的写法&#xff0c;简单的如 MediaPlayerService 中的 IFactory&#xff0c;我知道它是工厂模式&#xff0c;但是却不十分清楚它为什么这么用&#xff1b;复杂点的像 NuPlayer 中的 DeferredActions 机制…

vulhub-tomcat弱口令

1.启动靶场 进入文件 进入目录 进入到靶场 启动靶场 docker-compose up -d 2.查看 ip地址 3.使用nmap对ip进行 扫描 发现存在8080的端口&#xff0c;并且端口是开放的状态&#xff0c;apache&#xff0c;tomcat搭建的 4.访问ip地址的端口 点击Manager app 6.开启BP进行抓包 随…

vue-cli3项目本地启用https,并用mkcert生成证书

在项目根目录下的vue.config.js文件中&#xff1a; // vue.config.js module.exports {devServer: {host:dev.nm.cngc// 此处开启 https,并加载本地证书&#xff08;否则浏览器左上角会提示不安全&#xff09;https: {cert: fs.readFileSync(path.join(_dirname,./cert.crt)…

UI自动化之混合框架

什么是混合框架&#xff0c;混合框架就是将数据驱动与关键字驱动结合在一起&#xff0c;主要用来回归业务主流程&#xff0c;将核心流程串联起来。 上一篇我们写到了关键字驱动框架&#xff0c;关键字驱动框架是针对一个业务场景的单条测试用例的。 我们以163邮箱的登录到创建…

云计算中的负载均衡技术,确保资源的平衡分配

文章目录 1. 硬件负载均衡器2. 软件负载均衡器3. DNS负载均衡4. 内容分发网络&#xff08;CDN&#xff09; &#x1f388;个人主页&#xff1a;程序员 小侯 &#x1f390;CSDN新晋作者 &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 ✨收录专栏&#xff1a;云计算 ✨文章内…

【负载均衡】常见的负载均衡策略有哪些?

文章目录 前言负载均衡分类常见负载均衡策略小结 前言 负载均衡策略是实现负载均衡器的关键&#xff0c;而负载均衡器又是分布式系统中不可或缺的重要组件。使用它有助于提高系统的整体性能、可用性、可靠性和安全性&#xff0c;同时支持系统的扩展和故障容忍性。对于处理大量…

el-form表单动态校验(场景: 输入框根据单选项来动态校验表单 没有选中的选项就不用校验)

el-form表单动态校验 el-form常规校验方式: // 结构部分 <el-form ref"form" :model"form" :rules"rules"><el-form-item label"活动名称: " prop"name" required><el-input v-model"form.name" /…

面试中的时间管理:如何在有限时间内展示最大价值

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

客户端发现pod并与之通信

客户端发现pod并与之通信 pod需要一种寻找其他pod的方法来使用其他pod提供的服务&#xff0c;不像在没有Kubernetes的世界&#xff0c;系统管理员要在用户端配置文件中明确指出服务的精确IP地址 或者主机名来配置每个客户端应用&#xff0c;但同样的方法在Kubernetes中不适用 …