DNS协议基础笔记

1.定义

  • DNS(Domain Name System,域名系统)是互联网的一项核心服务,它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。

2.域名解析过程

  • 当用户在浏览器中输入一个域名,浏览器首先会检查自己的缓存中是否有该域名对应的 IP 地址。
  • 本地 DNS 服务器收到查询请求后,首先会检查自己的缓存中是否有该域名对应的 IP 地址。
  • 根域名服务器收到查询请求后,会返回顶级域名服务器的地址给本地 DNS 服务器。
  • 本地 DNS 服务器根据根域名服务器返回的地址,向顶级域名服务器发送查询请求。
  • 顶级域名服务器收到查询请求后,会返回权威域名服务器的地址给本地 DNS 服务器。
  • 本地 DNS 服务器根据顶级域名服务器返回的地址,向权威域名服务器发送查询请求。
  • 权威域名服务器收到查询请求后,会返回该域名对应的 IP 地址给本地 DNS 服务器。
  • 本地 DNS 服务器将查询到的 IP 地址返回给客户端,客户端使用该 IP 地址访问目标服务器。

3.缓存机制

  • 为了提高域名解析的效率,DNS 系统采用了缓存机制。客户端、本地 DNS 服务器、各级域名服务器都会缓存已经查询过的域名和 IP 地址的映射关系。当再次查询相同的域名时,可以直接从缓存中获取 IP 地址,而无需再次进行完整的域名解析过程。

4.DNS 记录类型

  • A 记录:将域名映射到 IPv4 地址。
  • AAAA 记录:将域名映射到 IPv6 地址。
  • CNAME 记录:将一个域名别名映射到另一个域名。
  • MX 记录:指定接收电子邮件的邮件服务器。
  • NS 记录:指定该域名由哪个 DNS 服务器进行解析。

5.DNS 安全问题

  • DNS 劫持
            DNS 劫持是指攻击者通过篡改 DNS 服务器的解析结果,将用户的请求重定向到恶意网站。这种攻击方式可能会导致用户的个人信息泄露、财产损失等问题。
            为了防止 DNS 劫持,可以使用加密的 DNS 服务(如 DoH、DoT),或者使用可靠的公共 DNS 服务器(如 Google Public DNS、OpenDNS 等)。

  • DNS 欺骗
            DNS 欺骗是指攻击者通过伪造 DNS 响应包,将虚假的 IP 地址返回给客户端。这种攻击方式可能会导致用户访问到恶意网站,或者被引导到钓鱼网站。
            为了防止 DNS 欺骗,可以使用数字签名技术对 DNS 响应包进行验证,或者使用加密的 DNS 服务。

 

6.应用场景

  • 网站访问
            用户通过输入域名访问网站时,DNS 协议将域名解析为 IP 地址,使得浏览器能够与目标服务器建立连接。

  • 电子邮件发送和接收
            电子邮件系统使用 DNS 协议来查找接收邮件的邮件服务器的地址。当用户发送电子邮件时,邮件客户端会查询目标域名的 MX 记录,以确定将邮件发送到哪个邮件服务器。

  • 网络管理
            DNS 协议可以用于网络管理,例如通过配置 DNS 记录来实现负载均衡、故障转移等功能。

 

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

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

相关文章

怎么强制撤销excel工作表保护?

经常不是用的Excel文件设置了工作表保护,偶尔打开文件的时候想要编辑文件,但是发现忘记了密码,那么这种情况,我们怎么强制撤销excel工作表保护?今天分享两种解决方法。 方法一、 将excel文件转换为其他文件格式&…

新品上市丨科学级新款制冷相机sM4040A/sM4040B

sM4040B科学级显微制冷相机 特性 sM4040B搭载了 GSENSE4040BSI 3.2 英寸图像传感器,针对传感器固有的热噪声,专门设计了高效制冷模块,使得相机传感器的工作温度比环境温度低达 35-40 度。针对制冷相机常见的低温结雾现象设计了防结雾机制&a…

二百五十九、Java——采集Kafka数据,解析成一条条数据,写入另一Kafka中(一般JSON)

一、目的 由于部分数据类型频率为1s,从而数据规模特别大,因此完整的JSON放在Hive中解析起来,尤其是在单机环境下,效率特别慢,无法满足业务需求。 而Flume的拦截器并不能很好的转换数据,因为只能采用Java方…

鸿蒙自动化发布测试版本app

创建API客户端 API客户端是AppGallery Connect用于管理用户访问AppGallery Connect API的身份凭据,您可以给不同角色创建不同的API客户端,使不同角色可以访问对应权限的AppGallery Connect API。在访问某个API前,必须创建有权访问该API的API…

UE5.3_跟一个插件—Socket.IO Client

网上看到这个插件,挺好! 项目目前也没有忙到不可开交,索性跟着测一下吧: 商城可见,售价72.61人民币! 但是,git上有仓库哦,免费!! 跟着链接先准备起来: Documentation: GitHub - getnamo/SocketIOClient-Unreal: Socket.IO client plugin for the Unreal Engin…

数据仓库理论知识

1、数据仓库的概念 数据仓库(英文:Date Warehouse,简称数仓、DW),是一个用于数据存储、分析、报告的数据系统。数据仓库的建设目的是面向分析的集成化数据环境,其数据来源于不同的外部系统&#…

【H2O2|全栈】Markdown | Md 笔记到底如何使用?【前端 · HTML前置知识】

Markdown的一些杂谈 目录 Markdown的一些杂谈 前言 准备工作 认识.Md文件 为什么使用Md? 怎么使用Md? ​编辑 怎么看别人给我的Md文件? Md文件命令 切换模式 粗体、倾斜、下划线、删除线和荧光标记 分级标题 水平线 引用 无序…

缓存类型以及读写策略

缓存(Cache)是一种高效的数据存储技术,旨在提高数据访问速度。 它将频繁访问或最近使用的数据临时存储在更快速但较小的存储介质(如内存)中,以减少从较慢的存储设备(如硬盘或远程服务器&#x…

4G模块、WIFI模块、NBIOT模块通过AT指令连接华为云物联网服务器(MQTT协议)

MQTT协议概述 MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,它被设计用来提供一对多的消息分发和应用之间的通讯,尤其适用于远程位置的设备和高延迟或低带宽的网络。MQTT协议基于客户端-服务器架构&…

iOS——方法交换Method Swizzing

什么是方法交换 Method Swizzing是发生在运行时的,主要用于在运行时将两个Method进行交换,我们可以将Method Swizzling代码写到任何地方,但是只有在这段Method Swilzzling代码执行完毕之后互换才起作用。 利用Objective-C Runtimee的动态绑定…

网络编程学习:TCP/IP协议

TCP/IP协议简介 TCP/IP协议包含了一系列的协议,也叫TCP/IP协议族(TCP/IP Protocol Suite,或TCP/IP Protocols),简称TCP/IP。 分层结构 为了能够实现不同类型的计算机和不同类型的操作系统之间进行通信,引…

Zookeeper基本原理

1.什么是Zookeeper? Zookeeper是一个开源的分布式协调服务器框架,由Apache软件基金会开发,专为分布式系统设计。它主要用于在分布式环境中管理和协调多个节点之间的配置信息、状态数据和元数据。 Zookeeper采用了观察者模式的设计理念,其核心…

在vscode中用virtual env的方法

vscode是非常常用的软件开发工具。我们也非常了解如何使用vscode开发python的基本方法。当然,vscode可以开发基本所有编程语言。真的是又大又全又好用。 那么为什么要在vscode里面使用virtual env呢?因为python开发会遇到包管理的问题。而virtual env可…

Flutter 小技巧之 Row/Column 即将支持 Flex.spacing

事实上这是一个相当久远的话题,如果对于前因后果不管兴趣,直接看最后就行。 这个需求最早提及应该是 2018 年初在 #16957 被人提起,因为在 Flutter 上 Wrap 有 runSpacing 和 spacing 用于配置垂直和水平间距,而为什么 Colum 和 …

C++ | Leetcode C++题解之第392题判断子序列

题目&#xff1a; 题解&#xff1a; class Solution { public:bool isSubsequence(string s, string t) {int n s.size(), m t.size();vector<vector<int> > f(m 1, vector<int>(26, 0));for (int i 0; i < 26; i) {f[m][i] m;}for (int i m - 1; …

C语言第一周课

目录 1.程序设计的基本概念是什么?C语言是什么?算法是什么? 2.开发环境 3.第一个C语言程序 4.搭建VC6编译环境 5.实际操作,完成第一个C语言程序 6.体验在线编译环境 1.程序设计的基本概念是什么?C语言是什么?算法是什么? C语言是一种较早的程序设计语言&#xff0c…

Linux第十一节课 - 进程

一个程序从磁盘以文件的形式加载到内存之后&#xff0c;已经变成了进程&#xff01; 引入管理者和被管理者 1、管理者和被管理者不需要见面&#xff01;&#xff08;例如学生和校长&#xff01;&#xff09; 2、管理者在不见被管理者的情况下&#xff0c;如何做好管理呢&…

Windows下Python和PyCharm的应用(二)__快捷键方式的设定

前言 程序写久了&#xff0c;难免会形成自己的编程习惯。比如对某一套快捷键的使用&#xff0c;已经形成了肌肉记忆。 为了方便快捷键的使用&#xff0c;可以在PyCharm中设置自己喜欢的快捷键。 我比较习惯于微软Visual Studio的快捷键设置。&#xff08;因为早些年VC开发用的…

计算机网络与Internet应用

一、计算机网络 1.计算机网络的定义 网络定义&#xff1a;计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备&#xff0c;通过通信线路连接起来&#xff0c;在网络操作系统&#xff0c;网络管理软件及网络通信协议的管理和协调下&#xff0c;实现资源共享…

数据仓库技术选型方案文档

关联博客&#xff1a; 数据仓库技术选型方案文档 Flink CDC MySQL数据同步到Doris表同步配置生成工具类 新版报表系统&#xff08;明细报表、看板、数据大屏&#xff09;方案&介绍 文章目录 数据仓库技术选型背景现状现状架构目标架构业务反馈&痛点问题&#xff1a;原因…