当前位置: 首页 > news >正文

DNS、ARP

目录

DNS以及它的用途

DNS的解析方式

DNS的查询方式

DNS使用TCP/UDP

DNS劫持

常见的DNS劫持现象

DNS劫持与HTTP劫持的不同

处理DNS劫持

DNS缓存

DNS实现负载均衡

ARP以及他的工作原理


DNS以及它的用途

DNS是域名解析服务器,用来将域名解析成IP。DNS工作在网络层

  • 正向域名解析:域名--> IP  ---A记录
  • 反向域名解析:IP-->域名  ---PTR记录

DNS的解析方式

  • 分布式域名解析:客户端在本地hosts文件中查找相对应的IP/域名映射关系,随着网络规模的越来越大,分布式分辨率越来越低
  • 集中式域名解析:会有多台DNS服务器管理维护存放IP/域名映射关系的数据库,客户端去到指定的服务器查询,如果指定的服务器查询不到就会在网络中递归查询,获取其他服务器上的地址信息。

DNS的查询方式

  • 递归查询:客户端到指定的服务器查询,如果此服务器中查询不到,服务器就会到网络中询问其他服务器,最后将DNS信息返回给客户端。只需要发送一次请求,我们就可以拿到结果。
  • 迭代查询:当客户机查询的服务器没有相关DNS信息,DNS服务器返回其他服务器的地址,客户端重新发起新的请求,知道查询到信息。每一次发送请求,都会相应结果,然后拿到结果后,再次发送请求,就是迭代查询。

DNS使用TCP/UDP

区域传输时用TCP

辅域名服务器会定时向主域名服务器进行查询,以便了解数据是否有变动。如有变动,会执行一次区域传送,进行数据同步。

  1. 可靠连接,保证了数据的准确性;
  2. 一般同步时,数据量比较大(UDP传输限制在512字节);
  3. 请求量少,但每次请求数据量较大;

域名解析时用UDP

客户端向DNS服务器查询域名,一般返回的内容都不超过512字节,用UDP传输即可。不三次握手省下的时间不容小觑。

  1. 非可靠连接,因为传输的数据量小,但不用建立连接,提高查询效率;
  2. 请求量多,但每次请求返回的数据包小;

DNS劫持

指攻击者利用其他攻击手段,篡改了某个域名的解析结果,使得指向该域名的IP变成了另一个IP,导致对相应网址的访问被劫持到另一个不可达的或者假冒的网址,从而实现非法窃取用户信息或者破坏正常网络服务的目的。

常见的DNS劫持现象

  • 广告劫持:用户正常页面指向到广告页面。
  • 恶意劫持:域名指向IP被改变,将用户访问流量引到挂马,盗号等对用户有害页面的劫持。

DNS劫持与HTTP劫持的不同

  • DNS劫持:在DNS服务器中,将某个域名对应的IP地址进行了篡改,你解析出来的域名对应的IP,在劫持前后不一样,访问的是另外一个网站。
  • HTTP劫持:你DNS解析的域名的IP地址不变,在和网站交互过程中的劫持了你的请求。比如当你正常访问一个无广告的页面时,页面上出现广告弹窗,那么可能是运营商劫持了HTTP。

处理DNS劫持

设置一个可靠的DNS服务器往往就可以解决问题但是还是困难会有解析不成功的可能,主要因为DNS污染:

  • 黑客攻击国外根服务器造成国内服务器域名解析遭到污染
  • 由于数据传输过程中网络节点较多,节点也可能成为攻击目标
  • 黑客在攻击单个网站的时候,因为节点较多,导致节点污染从而影响了全网

DNS缓存

当某一个DNS服务器接受到一个DNS响应时,此时就会缓存到本地存储器中。返回的资源的报文中TTL表示可以缓存的时间。

DNS实现负载均衡

如果存在一个大型的网站,此时可能存在多台服务器来提供服务,此时存在一个域名对应着多个服务器的ip地址,此时当用户请求DNS解析时,此时会请求到多个ip地址,在每一个请求中会循环的将这些ip地址排序,然后取出第一个返回给用户。由此将用户分配到请求不同服务器上,进而达到负载均衡。

ARP以及他的工作原理

arp协议在TCP/IP模型中属于IP层(网络层),在OSI模型中属于链路层

ARP是用于将 IP 地址映射到 MAC 地址的网络协议,它实现了将一种地址转换为另一种地址的功能,是局域网通信中必不可少的组成部分。其工作过程如下:

  1. 主机 A 需要向局域网中另一个主机 B 发送数据,但只知道目标主机的 IP 地址。
  2. 主机 A 先检查自己的 ARP 缓存表中是否有目标主机的 IP 对应的 MAC 地址,如果有,则直接发起通信请求。
  3. 如果 ARP 缓存表中没有所需信息,则主机 A 向它所在的子网内发送一个 ARP 请求广播包(Broadcast),其中包含目标IP地址和源MAC地址和源IP等信息。
  4. 局域网上的所有主机都会接收到 ARP 请求并接受目标IP地址,但只有目标主机(B)会解析该请求并将自己的 MAC 地址回复给主机 A。(非目标主机收到ARP包不会回应)
  5. 主机 A 接收到目标主机的 ARP 回复消息后,将该回复包中的 MAC 地址记录在自己的 ARP 缓存表中,并利用该地址生成传输数据的帧头开始进行数据传输。
  6. 简单来说,ARP 协议通过发送广播请求,让局域网内的每个主机都能获取到目标主机的 IP 地址,进而向目标主机请求其 MAC 地址。通过这个过程,主机 A 能够成功地将 IP 地址映射到 MAC 地址并开始网络通信。

需要注意的是,ARP 缓存表中存储了 IP 地址与 MAC 地址之间的映射关系,为避免 ARP 缓存被恶意攻击修改,通常需要启用 ARP 防护措施,如静态 ARP 表、动态 ARP 检测等技术。
 

相关文章:

DNS、ARP

目录 DNS以及它的用途 DNS的解析方式 DNS的查询方式 DNS使用TCP/UDP DNS劫持 常见的DNS劫持现象 DNS劫持与HTTP劫持的不同 处理DNS劫持 DNS缓存 DNS实现负载均衡 ARP以及他的工作原理 DNS以及它的用途 DNS是域名解析服务器,用来将域名解析成IP。DNS工作在…...

uniapp 微信小程序 echarts地图 点击显示类目

效果如图: 在tooltip内axisPointer内添加 label:{show:true} 即可显示“请求离婚”的标题...

速刷算法#Day-02

有序数组的平方 方法一&#xff1a;暴力求解 排序 暴力先求平方&#xff0c;然后NT直接用sort这个方法首先对数组中的每个元素求平方&#xff0c;然后进行排序。下面是对应的C代码&#xff1a; class Solution { public:vector<int> SortedSquare(vector<int>&…...

Java怎么手动将对象注入到springboot

在Java中&#xff0c;可以使用Spring的ApplicationContext来手动将对象注入到Spring Boot中。 1. 首先&#xff0c;确保你已经在Spring Boot应用程序中引入了Spring的依赖&#xff0c;比如 spring-boot-starter 。 2. 在你的类中注入ApplicationContext对象&#xff1a; Autowi…...

twisted 18.7.0 requires PyHamcrest>=1.9.0 解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...

电脑关机程序

//关机程序 1、电脑运行起来后&#xff0c;1分钟内关机。 2、如果输入&#xff1a;我是猪。就取消关机。 #include<stdio.h> #include<string.h> int main() { char input[20] { 0 }; system("shutdown -s -t 60"); again: printf(&quo…...

构建之法 - 软工教学:每天都向前推进一点点

作者&#xff1a;福州⼤学 汪璟玢⽼师 汪老师&#xff1a;每次都向前推进一点点&#xff0c;哪怕只有一点点&#xff0c;也好过什么都不做。 ​邹老师&#xff1a;对&#xff0c;几个学期下来&#xff0c;就已经超过那些“空想”的团队很远了。坚持下去&#xff01; 汪老师&…...

基于Qlearning强化学习的路径规划算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 Q值更新规则 4.2 基于Q-learning的路径规划算法设计 4.3 Q-learning路径规划流程 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022A 3.部分核心程序 ..…...

ASL国产CS5213 转VGA信号输出音频 替代AG6200安格芯片 HDMI to VGA(带音频)方案设计原理图

CS5213功能&#xff1a;HDMI转VGA带音频输出&#xff0c;专注于设计HDMI转VGA带音频输出。可替代AG6200 AG6201。 CS5213芯片是一个HDMI&#xff08;高清多媒体接口&#xff09;到VGA桥接芯片。 它将HDMI信号转换为标准VGA信号它可以在适配器、智能电缆等设备中设计。 Capst…...

springboot启动忽略某些类

springboot启动忽略某些类 描述解决方案单拉一个提交&#xff0c;把所有的涉及kafka消费的都不注入容器通过配置ComponentScan的excludeFilters配置了不生效后续处理改之前改之后解释 总结 拆分环境 感触解决实现demo参考 描述 目前我这的开发环境和测试环境数据库是两份&#…...

HCIA VLAN配置

目录 一、VLAN&#xff08;虚拟局域网 &#xff09; 二、VLAN配置思路 三、配置命令 1、创建vlan 单个创建&#xff1a; 批量创建&#xff1a; 2、交换机上的各个接口划分到对应的vlan中 单个操作&#xff1a; 批量操作&#xff1a; 3、trunk…...

微信小程序--原生

1&#xff1a;数据绑定 1&#xff1a;数据绑定的基本原则 2&#xff1a;在data中定义页面的数据 3&#xff1a;Mustache语法 4&#xff1a;Mustache的应用场景 1&#xff1a;常见的几种场景 2&#xff1a;动态绑定内容 3&#xff1a;动态绑定属性 4&#xff1a;三元运算 4&am…...

Django快速上手

1. 安装Django Django 4.x的版本只支持MySQL8及以上的版本了。如果mysql版本比较老&#xff0c;需要使用老版本的django。此处指定django版本为3.2.20 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple django3.2.202. 创建项目 创建项目 在指定目录使用命令行创建项…...

Android, 笔记+课表的app实现

NoteSchedule: 笔记课表&#xff0c;不同于超表和课程格子等笔记类软件&#xff0c;笔记课表的核心是将课表和笔记进行深度绑定&#xff0c;点击每个课表&#xff0c;就进入到笔记view中&#xff0c;点击其中的item就可以进入到笔记详情&#xff1b; 该应用已上线&#xff0c;…...

Openlayers实战:多数据分散聚合

在飞机、轮船等地图显示的应用中,很多时候会用到数据聚合,Openlayers中提供了Cluster这个API ,他作为souce的一部分,设定distance值,如果2个点的间距小于 distance 所设置的数时,就会以聚合的方式显示。从而解决了数据淤积显示的状态,非常实用。 效果图 源代码 /* * @…...

9、Kubernetes核心技术 - Volume

目录 一、概述 二、卷的类型 三、emptyDir 四、hostPath 五、NFS 5.1、master服务器上搭建nfs服务器 5.2、各个slave节点上安装nfs客户端 5.3、创建Pod 六、PV和PVC 6.1、PV 6.1.1、PV资源清单文件示例 6.1.2、PV属性说明 6.1.3、PV的状态 6.2、PVC 6.2.1、PVC资…...

HTML <small> 标签

定义和用法 <small> 标签呈现小号字体效果。 <small> 标签和它所对应的 <big> 标签一样&#xff0c;但它是缩小字体而不是放大。如果被包围的字体已经是字体模型所支持的最小字号&#xff0c;那么 <small> 标签将不起任何作用。 与 <big> 标签…...

网页版Java(Spring/Spring Boot/Spring MVC)五子棋项目(四)对战模块

网页版Java&#xff08;Spring/Spring Boot/Spring MVC&#xff09;五子棋项目&#xff08;四&#xff09;对战模块 一、约定前后端交互接口1. 建立连接接口2. 针对落子的请求和响应 二、实现前端页面三、实现后端1. 当用户进入房间&#xff0c;更新用户状态 OnlineUserManager…...

React实现关键字高亮

先看效果&#xff1a; 实现很简单通过以下这个函数&#xff1a; highLight (text, keyword ) > {return text.split(keyword).flatMap(str > [<span style{{ color: red, fontWeight: bold }}>{keyword}</span>, str]).slice(1);}展示某段文本时调用该函数…...

react-media如何使用

介绍 react-media 是 React 中用于响应式设计的一个很好的库。它可以用于在视口宽度满足特定条件时渲染组件。 主要功能包括: 媒体查询:通过 minWidth, maxWidth 和 width 等设置媒体查询条件。 渲染组件:当媒体查询条件匹配时渲染子组件。 默认样式:可以设置默认渲染的组件。…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet&#xff0c;点击确认后如下提示 最终上报fail 解决方法 内核升级导致&#xff0c;需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

系统设计 --- MongoDB亿级数据查询优化策略

系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log&#xff0c;共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题&#xff0c;不能使用ELK只能使用…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话&#xff1a; “利润不是赚出来的&#xff0c;是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业&#xff0c;很多企业看着销售不错&#xff0c;账上却没钱、利润也不见了&#xff0c;一翻库存才发现&#xff1a; 一堆卖不动的旧货…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

Java 加密常用的各种算法及其选择

在数字化时代&#xff0c;数据安全至关重要&#xff0c;Java 作为广泛应用的编程语言&#xff0c;提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景&#xff0c;有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

【笔记】WSL 中 Rust 安装与测试完整记录

#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统&#xff1a;Ubuntu 24.04 LTS (WSL2)架构&#xff1a;x86_64 (GNU/Linux)Rust 版本&#xff1a;rustc 1.87.0 (2025-05-09)Cargo 版本&#xff1a;cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...