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

计算机网络-DNS协议, ICMP协议,DDoS攻击

DNS协议, ICMP协议,DDoS攻击

DNS协议简介

DNS(Domain Name System,域名系统)是将域名解析为IP地址的网络协议,它是互联网的基础服务之一,使用最多的端口是53端口,默认使用UDP协议。


工作原理

DNS主要负责把人类易记的域名(如 www.example.com)转化为计算机能识别的IP地址(如 93.184.216.34),一般查询过程如下:

  1. 浏览器向本地DNS服务器发起递归查询。

  2. 本地DNS服务器如果没有缓存,会发起迭代查询,流程如下:

    • 向根DNS服务器请求,得到顶级域(如 .com)服务器地址。
    • 向顶级域服务器请求,得到权威DNS服务器地址。
    • 向权威DNS服务器请求,获取最终的IP地址。
  3. 返回解析结果,并在本地DNS服务器缓存。


DNS报文结构

DNS消息通常由五部分组成:

  1. Header(头部):包括事务ID、标志、问题数等(共12字节)。
  2. Question(问题):客户端查询的域名信息。
  3. Answer(回答):查询结果(IP地址等)。
  4. Authority(权威信息):权威服务器的域名信息。
  5. Additional(附加信息):提供额外信息(如服务器IP地址等)。

常见DNS记录类型

类型含义说明
AIPv4地址记录将域名解析为IPv4地址
AAAAIPv6地址记录将域名解析为IPv6地址
CNAME别名记录将一个域名别名映射到另一个域名
MX邮件交换记录指定邮件服务器
NS名称服务器记录指定权威DNS服务器
PTR反向解析记录IP地址映射为域名
TXT文本记录存储任意文字信息,常用于验证

DNS的安全问题与解决方案

常见风险包括:

  • DNS劫持:将请求重定向到错误IP
  • DNS缓存投毒:篡改缓存中的解析结果
  • 中间人攻击:伪造DNS应答

解决方法:

  • DNSSEC:为DNS记录加签名,防止被篡改
  • DoH(DNS over HTTPS):通过HTTPS加密DNS请求
  • DoT(DNS over TLS):通过TLS加密DNS请求

常见公共DNS服务

服务商IPv4地址特点
Google8.8.8.8 / 8.8.4.4稳定快速
Cloudflare1.1.1.1注重隐私保护
阿里DNS223.5.5.5 / 223.6.6.6适合国内使用
百度DNS180.76.76.76国内可用

ICMP协议简介

ICMP(Internet Control Message Protocol,互联网控制报文协议)是TCP/IP协议族中的一个网络层协议,用于在主机和路由器之间传递控制消息,如差错报告、诊断信息等。它通常与IP协议配合使用,用来增强IP协议的功能。
参考B站这个视频

---

ICMP的作用

  1. 差错报告

    • 告知发送端在传输过程中发生的错误。
    • 例如:目的地不可达、时间超时、参数问题等。
  2. 网络诊断

    • 支持诸如 pingtraceroute 等网络测试工具。
    • 帮助用户检测目标主机是否可达及路径信息。

ICMP报文类型分类

ICMP报文分为两大类:

  • 差错报文

    • 目的不可达(Type 3)
    • 源抑制(Type 4)
    • 时间超时(Type 11)
    • 参数问题(Type 12)
  • 查询报文

    • 回显请求与应答(Type 8 和 Type 0,ping使用)
    • 路由器发现
    • 时间戳请求与应答

常见ICMP报文类型示例如下:

类型号类型名称用途说明
0Echo Reply回显应答
3Destination Unreachable目的不可达
5Redirect重定向(告诉主机更优路径)
8Echo Request回显请求(ping命令使用)
11Time Exceeded生存时间TTL耗尽

ICMP报文结构(以Echo为例)

ICMP回显请求/应答报文结构如下:

0               8              16              24             31
+---------------+---------------+---------------+---------------+
| Type          | Code          |      Checksum                  |
+---------------+---------------+-------------------------------+
|     Identifier                |     Sequence Number            |
+------------------------------+-------------------------------+
|                  Payload(可选)                              |
+--------------------------------------------------------------+
  • Type:报文类型编号(如 Echo Request 为 8)
  • Code:具体子类型(如目的不可达的具体原因)
  • Checksum:校验和
  • Identifier/Sequence Number:用于匹配请求和应答
  • Payload:可以是任意数据,一般用于测试连通性

ICMP与IP协议的关系

  • ICMP协议本身依赖于IP协议进行传输,协议号为1。
  • ICMP报文是封装在IP数据包中的,不属于TCP或UDP。
  • ICMP报文不会跨越传输层,不具备端口号等概念。

安全性注意事项

  • 由于ICMP提供了很多网络信息,它也可能被用于攻击(如 Ping Flood、Smurf Attack)。
  • 某些服务器/防火墙会屏蔽 ICMP Echo,导致不能 ping,但主机仍然在线。
  • 防火墙和安全策略中经常对ICMP做限制或过滤。

DDoS攻击

DDoS 攻击,全称为 Distributed Denial of Service(分布式拒绝服务)攻击,是网络安全中一种非常常见且破坏性极强的攻击方式。它通过大量恶意流量同时向目标发起攻击,使目标服务器无法响应正常请求,进而“瘫痪”。


什么是DDoS攻击

DDoS 攻击的核心思想是:

利用多个分布在不同位置的攻击源(通常是被控制的肉鸡、僵尸网络),在同一时间向目标系统发送大量请求或流量,耗尽目标的带宽、CPU、内存等资源,最终让目标无法为正常用户提供服务。

这与普通的 DoS(Denial of Service,拒绝服务)攻击相比,其“分布式”让它更难防御。


DDoS攻击的常见类型

类型简介举例说明
流量型攻击利用大量的数据包耗尽带宽UDP Flood、ICMP Flood、DNS放大攻击
协议型攻击消耗服务器处理连接的资源SYN Flood、Ping of Death
应用层攻击模拟正常用户操作,但请求频率高HTTP GET Flood、慢速POST攻击(Slowloris)

下面是一些具体的攻击方式:

  1. UDP Flood

    • 不断发送大量UDP包,使目标处理不过来。
  2. SYN Flood

    • 利用TCP三次握手过程中“未完成的连接”堆积,耗尽连接资源。
  3. ICMP Flood

    • 发送大量ping请求,消耗CPU处理ICMP回应。
  4. DNS放大攻击

    • 攻击者向开放的DNS服务器伪造源地址为目标的请求,DNS服务器向目标返回大数据,从而造成“流量放大”。
  5. HTTP Flood

    • 模拟真实用户发送大量GET/POST请求,耗尽Web服务器的处理能力。

僵尸网络(Botnet)

DDoS攻击的执行基础往往是“僵尸网络”:

  • 攻击者通过病毒、木马控制大量被感染设备(家庭路由器、摄像头、服务器等)。
  • 这些设备被组成一个分布式网络,由攻击者统一指挥发动DDoS。
  • 著名的僵尸网络:Mirai(曾使GitHub、Netflix、Twitter短时间瘫痪)

DDoS攻击的危害

  • 导致网站或应用不可访问,造成经济损失;
  • 干扰业务系统运行,破坏用户信任;
  • 作为掩护,用于隐藏更复杂的入侵行为;
  • 给网络提供商和安全团队带来极大压力。

如何防御DDoS攻击

  1. 高防服务

    • 使用云防护平台,如阿里云高防、Cloudflare、腾讯云DDoS防护。
  2. 流量清洗

    • 在运营商或边缘节点过滤恶意流量。
  3. 限流与黑白名单

    • 设置IP访问频率限制,封禁异常请求。
  4. CDN加速

    • 将流量分散至多个边缘节点,减轻源站压力。
  5. 异常检测

    • 使用入侵检测系统(IDS)识别异常行为。
  6. 隐藏源站

    • 源服务器IP地址不公开,防止直接攻击。

相关文章:

  • Minor GC与Full GC分别在什么时候发生?
  • DeepSeek驱动的智能客服革命:语音交互与大模型的融合实践
  • keep the pipe Just full But no fuller - BBR 与尘封 40 年的求索
  • 复刻低成本机械臂 SO-ARM100 单关节控制(附代码)
  • 基于STM32、HAL库的CP2102-GMR USB转UART收发器 驱动程序设计
  • 分享 2 款基于 .NET 开源的实时应用监控系统
  • wails3学习-runtime:Window无边框设置
  • 【Spring Boot 多模块项目】@MapperScan失效、MapperScannerConfigurer 报错终极解决方案
  • window 显示驱动开发-处理内存段(二)
  • Linux系统下使用Kafka和Zookeeper
  • 中介者模式(Mediator Pattern)详解
  • TI AM243X开发流程
  • 【Python 字符串】
  • 大模型的应用中A2A(Agent2Agent)架构的部署过程,A2A架构实现不同机器人之间的高效通信与协作
  • Redis 重回开源怀抱:开源精神的回归与未来展望
  • 仓储车间安全革命:AI叉车防撞装置系统如何化解操作风险
  • 中科院开源:多智能体 + 知识图谱,自动生成高质量医学数据
  • SAP 交货单行项目含税金额计算报cx_sy_zerodivide处理
  • 【人工智能】低代码与AI技术未来趋势分析
  • Redis 8.0正式发布,再次开源为哪般?
  • 融创中国:今年前4个月销售额约112亿元
  • 北约年度报告渲染所谓“中国核威胁”,国防部回应
  • 毗邻三市人均GDP全部超过20万元,苏锡常是怎样做到的?
  • 技术派|伊朗展示新型弹道导弹,美“萨德”系统真的拦不住?
  • 上海科创“八杰”赋能新兴产业链:硬核科技,形成良好盈利模式
  • 是否有中国公民受印巴冲突影响?外交部:建议中国公民避免前往冲突涉及地点