🎬 HoRain 云小助手:个人主页
⛺️生活的理想,就是为了理想的生活!
⛳️ 推荐
前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。
目录
二、ICMP 协议(Internet Control Message Protocol)
三、NAPT 技术(Network Address Port Translation)
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. 关键记录类型
记录类型 | 功能 | 示例 |
---|---|---|
A | IPv4 地址映射 | www.example.com → 93.184.216.34 |
AAAA | IPv6 地址映射 | 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 | 名称 | 应用场景 |
---|---|---|
0 | Echo Reply | Ping 命令的响应 |
3 | Destination Unreachable | 路由不可达或端口关闭 |
5 | Redirect | 通知更优路由路径 |
8 | Echo Request | Ping 命令的请求 |
11 | Time Exceeded | TTL 超时(用于 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
四、技术关联与协同
-
DNS + NAPT
- 内网主机通过 DNS 解析公网服务域名
- NAPT 实现内网多设备共享公网 IP 访问外部服务
-
ICMP + NAPT
- ICMP 错误消息需反向转换 IP 地址
- 示例:外网返回的 "TTL Exceeded" 需映射回内网主机
-
全链路示例
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 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙