计算机网络-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记录类型

类型 含义 说明
A IPv4地址记录 将域名解析为IPv4地址
AAAA IPv6地址记录 将域名解析为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地址 特点
Google 8.8.8.8 / 8.8.4.4 稳定快速
Cloudflare 1.1.1.1 注重隐私保护
阿里DNS 223.5.5.5 / 223.6.6.6 适合国内使用
百度DNS 180.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报文类型示例如下:

类型号 类型名称 用途说明
0 Echo Reply 回显应答
3 Destination Unreachable 目的不可达
5 Redirect 重定向(告诉主机更优路径)
8 Echo Request 回显请求(ping命令使用)
11 Time 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地址不公开,防止直接攻击。

你可能感兴趣的:(嵌入式,计算机网络,面经,计算机网络,ddos)