HoRain云--DNS、ICMP与NAPT技术全解析

  

🎬 HoRain 云小助手个人主页

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

目录

⛳️ 推荐

DNS 系统、ICMP 协议与 NAPT 技术详解

一、DNS 系统(Domain Name System)

1. 核心功能

2. 分层架构

3. 查询过程

4. 关键记录类型

5. 安全机制

二、ICMP 协议(Internet Control Message Protocol)

1. 协议定位

2. 报文结构

3. 常见消息类型

4. 典型工具

5. 防火墙策略

三、NAPT 技术(Network Address Port Translation)

1. 技术背景

2. 核心原理

3. 工作流程

4. 端口映射类型

5. 协议兼容性

6. 典型配置(Linux iptables)

四、技术关联与协同

五、常见问题与解决方案


DNS 系统、ICMP 协议与 NAPT 技术详解


一、DNS 系统(Domain Name System)

1. 核心功能

DNS 是互联网的 "电话簿",负责将 域名(如 www.example.com 转换为 IP 地址(如 93.184.216.34),实现人类可读名称与机器可识别地址的映射。

2. 分层架构
- **根域名服务器(Root Servers)**:全球 13 组,管理顶级域(TLD)信息
- **顶级域服务器(TLD Servers)**:管理 .com、.org 等通用域或国家域(如 .cn)
- **权威域名服务器(Authoritative Servers)**:存储具体域名的解析记录
- **递归解析器(Recursive Resolver)**:客户端直接访问的本地 DNS 服务器
3. 查询过程
sequenceDiagram
    participant Client
    participant Recursive Resolver
    participant Root Server
    participant TLD Server
    participant Authoritative Server

    Client->>Recursive Resolver: 查询 www.example.com
    Recursive Resolver->>Root Server: 请求 .com 的 TLD 服务器
    Root Server-->>Recursive Resolver: 返回 .com TLD 地址
    Recursive Resolver->>TLD Server: 请求 example.com 的权威服务器
    TLD Server-->>Recursive Resolver: 返回 example.com 的 NS 记录
    Recursive Resolver->>Authoritative Server: 请求 www.example.com 的 A 记录
    Authoritative Server-->>Recursive Resolver: 返回 IP 地址
    Recursive Resolver-->>Client: 返回最终结果
4. 关键记录类型
记录类型功能示例
AIPv4 地址映射www.example.com → 93.184.216.34
AAAAIPv6 地址映射www.example.com → 2606:2800:220:1:248:1893:25c8:1946
CNAME别名记录blog.example.com → www.example.com
MX邮件服务器地址example.com → mail.example.com
TXT文本验证信息(如 SPF、DKIM)"v=spf1 include:_spf.google.com ~all"
5. 安全机制
  • DNSSEC:通过数字签名防止 DNS 欺骗
  • DoH/DoT:DNS over HTTPS/TLS 加密传输
  • EDNS Client Subnet:优化 CDN 路由选择

二、ICMP 协议(Internet Control Message Protocol)

1. 协议定位
  • 网络层协议(位于 IP 协议之上)
  • 核心功能:传递网络诊断与控制信息(非数据传输
2. 报文结构
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   Type (8)   |   Code (0)    |          Checksum             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           Identifier          |        Sequence Number       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          Payload Data                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • Type:消息类型(如 0=回显应答,3=目的不可达)
  • Code:子类型(如 Type=3 时,Code=0 表示网络不可达)
  • Checksum:校验和
3. 常见消息类型
Type名称应用场景
0Echo ReplyPing 命令的响应
3Destination Unreachable路由不可达或端口关闭
5Redirect通知更优路由路径
8Echo RequestPing 命令的请求
11Time ExceededTTL 超时(用于 Traceroute)
4. 典型工具
  • Ping:测试网络连通性(基于 Echo Request/Reply)
    ping www.google.com
    
  • Traceroute:追踪数据包路径(利用 TTL 超时机制)
    traceroute -I www.baidu.com  # 使用 ICMP 模式
    
5. 防火墙策略
# 允许 ICMP 回显请求(Ping)
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
# 拒绝所有 ICMP 流量
iptables -A INPUT -p icmp -j DROP

三、NAPT 技术(Network Address Port Translation)

1. 技术背景
  • NAT(网络地址转换):解决 IPv4 地址短缺问题
  • NAPT(网络地址端口转换):NAT 的增强版,支持 多对一映射
2. 核心原理
- **端口复用**:通过 TCP/UDP 端口号区分不同内网主机
- **映射表维护**:动态记录 `内网IP:端口 ↔ 公网IP:端口` 对应关系
3. 工作流程
sequenceDiagram
    participant 内网主机A
    participant 路由器
    participant 外网服务器

    内网主机A->>路由器: 请求 [192.168.1.100:54321 → 8.8.8.8:80]
    路由器->>外网服务器: 转换 [203.0.113.5:60000 → 8.8.8.8:80]
    外网服务器-->>路由器: 响应 [8.8.8.8:80 → 203.0.113.5:60000]
    路由器-->>内网主机A: 转换 [203.0.113.5:60000 → 192.168.1.100:54321]
4. 端口映射类型
类型描述配置示例
动态NAPT自动创建临时映射(出站连接)家用路由器默认模式
静态NAPT手动绑定固定端口(入站服务)iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 192.168.1.2:80
端口触发根据出站连接动态开放入站端口游戏主机联机配置
5. 协议兼容性
协议处理方式挑战
TCP/UDP通过端口号区分会话
ICMP使用 Query ID 字段模拟端口需特殊处理 ICMP 错误消息
FTP需要 ALG(应用层网关)解析 PORT 命令被动模式 (PASV) 更易兼容
6. 典型配置(Linux iptables)
# 启用IP转发
sysctl -w net.ipv4.ip_forward=1

# 配置NAPT(动态源地址转换)
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# 静态端口映射(将公网IP的80端口映射到内网服务器)
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.1.100:80

四、技术关联与协同

  1. DNS + NAPT

    • 内网主机通过 DNS 解析公网服务域名
    • NAPT 实现内网多设备共享公网 IP 访问外部服务
  2. ICMP + NAPT

    • ICMP 错误消息需反向转换 IP 地址
    • 示例:外网返回的 "TTL Exceeded" 需映射回内网主机
  3. 全链路示例

    1. 用户访问 http://www.example.com → DNS 解析获得 203.0.113.5
    2. 内网主机 192.168.1.100:54321 发起 HTTP 请求
    3. 路由器通过 NAPT 转换为 203.0.113.5:60000
    4. 服务器响应通过 ICMP 错误检测路径可达性
    

五、常见问题与解决方案

问题场景原因分析解决方案
内网设备无法 Ping 通外网路由器丢弃 ICMP 回显请求检查防火墙是否允许 ICMP Type 8
外部无法访问内网 Web 服务器静态 NAPT 规则未配置或错误验证 DNAT 规则与端口映射
DNS 解析缓慢本地 DNS 服务器性能不足更换公共 DNS(如 8.8.8.8)
FTP 文件传输失败NAPT 未正确处理 PORT/PASV 命令启用 FTP ALG 或强制使用被动模式

通过深入理解 DNS、ICMP 和 NAPT 的工作原理及交互方式,可有效诊断网络故障并优化系统配置。

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值