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

这篇具有很好参考价值的文章主要介绍了在学习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年的事故是否会再发生。但对于新技术的追求是每个人都能把握的,在此过程中也要注意不要掉入求新不求好的陷阱,适合自己的才是最好的。文章来源地址https://www.toymoban.com/news/detail-699076.html

到了这里,关于在学习DNS的过程中给我的启发的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Linux运维监控学习笔记5

    监控项和应用集(重点) 监控项(item):监控项是从主机收集的信息。一个监控项是一个独立的子标,代表收集数据或监控的最小的单位。 应用集(applications):代表多个监控项目合成的组。 创建监控项: 1)Web管理界面-配置-主机-监控项(选择的是agent1的监控项,每个主

    2024年02月09日
    浏览(37)
  • 运维必备Linux学习day1(建议收藏,运维面试100%会涉及)

    一.找回root密码 找到以““Linux16”开头内容所在的行数”,在行的最后面输入: init=/bin/sh 输完红色命令后 Ctrl + X 命令 接下来在光标闪烁处,输入指令: mount -o remount,rw / (注意:各个单词间有空格) 光标闪烁的位置中,输入passwd,输入一次密码并确认密码 光标闪烁的位置

    2024年03月10日
    浏览(59)
  • 【Linux运维】LVM和RAID学习及实践

    某台服务器的磁盘管理需要自己动手处理,找了一些资料也踩了一些坑,在这里记录一下,先介绍一下LVM和RAID这两个东西。在计算机系统中,为了提高存储系统的性能、可用性和容量,许多技术被引入,其中包括LVM(Logical Volume Manager)和RAID(Redundant Array of Independent Disks)。

    2024年01月21日
    浏览(36)
  • 从零开始学习Linux运维,成为IT领域翘楚(九)

    Service命令 服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysql , sshd 防火墙等),因此我们又称为守护进程。 语法: 注意: 示例1 查看当前防火墙的状况,关闭防火墙和重启防火墙。 Systemd命令 Linux的启动一直采用init进

    2024年02月03日
    浏览(53)
  • 从零开始学习Linux运维,成为IT领域翘楚(一)

      Linux内核最初只是由芬兰人林纳斯·托瓦兹1991年在赫尔辛基大学上学时出于个人爱好而编写的。 Linux特点 Linux的各个发行版本 Linux应用领域 IT服务器 嵌入式 个人桌面 Linux和Windows区别 主要区别如下 安装VMWare虚拟机 下载CentOS 进入Centos官网找要下载的版本 https://vault.centos

    2024年02月02日
    浏览(92)
  • 从零开始学习Linux运维,成为IT领域翘楚(十)

    防火墙管理工具 firewalld概述 Centos 系统中集成了多款防火墙管理工具,其中 firewalld服务是默认的防火墙配置管理工具,它拥有基于 CLI(命 令行界面)和基 于 GUI(图形用户界面)的两种管理方式。 firewalld 中常用的区域名称及策略规则 区域 默认策略规则 trusted 允许所有的数

    2024年02月03日
    浏览(58)
  • 从零开始学习Linux运维,成为IT领域翘楚(二)

    文件系统组织结构 登录系统后,在当前命令窗口下输入命令: 用户管理概述 Linux是一个多用户、多任务的操作系统。 用户账号和用户组 用户概念 用户组概念    用户组(group)就是具有相同特征的用户(user)的集合体;比如有时我们要让多个用户具有相同的权限,比如查

    2024年02月01日
    浏览(42)
  • 【运维工程师学习三】Linux中Shell脚本编写

    Shell程序有很多, 如 Korn shell(ksh)、Bourne Again shell(bash)、C shell(包括csh与tcsh) 等等, 各主要操作系统下缺省的shell: AIX下是 Korn Shell Solaris缺省的是 Bourne shell FreeBSD缺省的是 C shell HP-UX缺省的是 POSIX shell Linux缺省的是 Bourne Again shell 但这种在命令行中的命令是即时输出结果的,不

    2024年02月11日
    浏览(71)
  • 图解系列 DNS查找过程和DNS缓存

    DNS 充当地址簿。它将人类可读的域名 (google.com) 转换为机器可读的 IP 地址 (142.251.46.238)。 来自:https://xiaolishen.medium.com/the-dns-lookup-journey-240e9a5d345c 查询 浏览器缓存 :当你输入一个域名后,浏览器会首先检查自己的缓存,看是否已经解析过该域名的IP地址。 查询 操作系统的

    2024年02月14日
    浏览(38)
  • Linux中给特定ip段访问特定端口的方式(需要在防火墙开启状态下)

    附带: 1、关闭端口(不允许所有ip访问3306端口) 2、开放端口给特定ip段允许访问 (允许ip192.168.0.0/24访问3306端口,如果只配置这个192.168.0.0那就是只允许这个ip访问3306端口) 3、重新载入一下防火墙设置,使设置生效 4、查看已设置规则 5、删除已设置规则(删除多余的规则

    2024年02月04日
    浏览(48)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包