🧩 一、整体思路:Wireshark 看的其实是「在链路上流动的数据包」
Wireshark 不“知道”整张网络,只能看到你抓包那一个点(例如在 Apollo、Phoenix、或 DNS 服务器)经过的流量。
所以你在分析时要从:
“这条包是从谁发到谁”→ “这两台机器在图上分别在哪”→ “它们之间属于同一子网还是跨路由”这样的层层映射来理解。
🧠 二、图中每一层在 Wireshark 里的表现
图中角色 | Wireshark里看到的典型协议 | 分析重点 |
DHCP | bootp / dhcp | 看到 DHCP Discover / Offer / Request / ACK,字段包括:yiaddr(分配IP)、Option 3(网关)、Option 6(DNS)。可用于确认 Apollo、Zeus 等设备的 IP 来源。 |
Intranet / Hera / Zeus / Apollo | icmp (ping),arp,http,smtp,dns | 代表内网终端;通过 ARP、ICMP 或 TCP 握手找 MAC/IP。 |
Phoenix (Router) | ip.src == router_ip / ip.dst == router_ip | 出现在跨网段流量中(例如 Apollo 发给 External Web)。 |
Mail / Web / DNS | smtp、http、dns | 内部服务端节点:它们“接收 SYN”→ 是服务器。 |
External Web / External Client | 公网 IP,如 102.139.247.19 | 通常只在“目的 IP”或“源 IP”中出现,不会出现在 ARP(因为不是同一子网)。 |
Internet 云 | 不直接出现 | 代表路由外的外部网络,抓包里表现为外部 IP。 |
🧩 三、你在 Wireshark 应该怎么看整网的关系
1️⃣ 从 DHCP 找出所有设备的 IP 分配
过滤:
关注:
Your (client) IP address (yiaddr)→ 分配的 IP
Client MAC address (chaddr)→ MAC
Option (54)→ DHCP 服务器
Option (3)→ 默认网关(通常是 Phoenix)
这样能确定:Apollo、Zeus、Hera 等设备的 IP。
2️⃣ 用 ARP 建立 IP ↔ MAC 对照表
过滤:
典型形式:
这能验证哪个 MAC 属于哪个主机(例如 Apollo)。
3️⃣ 用 ICMP 看内网互通(ping)
过滤:
可看到:
Echo (ping):请求方 → 目标方
Echo reply:目标方 → 请求方
用于确认 Zeus ↔ Apollo、Hera ↔ Apollo 是否可达。
4️⃣ 用 TCP/HTTP/SMTP/DNS 看服务端关系
协议 | 过滤语句 | 含义 |
HTTP | http 或 tcp.port == 80 | Web 服务器请求/响应(93.27.22.x) |
SMTP | smtp 或 tcp.port == 25 | 邮件传输 |
DNS | dns | 域名查询 |
ICMP | icmp | ping 测试连通性 |
例如:
- 如果
ip.dst == 93.27.22.22 && tcp.flags.syn==1 && tcp.flags.ack==0
→ 某主机正在请求 Web 服务器。
- 如果
ip.dst == 102.139.247.19
→ 正在访问 External Web(跨子网,需要经 Phoenix)。
5️⃣ 用 Statistics → Endpoints 看全局
路径:
Statistics → Endpoints → IPv4可以看到:
- 所有出现的 IP
- 每个 IP 的发包 / 收包数量
这样你可以快速确认:
哪些是客户端(发包多,SYN 多),哪些是服务器(收包多,SYN-ACK 多)。
🔍 四、综合判断方式
举个例子:
- DHCP ACK → yiaddr = 80.129.88.81,MAC = fc:2a:9c:52:1d:fc
⇒ Apollo
- ICMP echo from 80.129.88.81 → 80.129.88.79
⇒ Apollo ping Zeus
- HTTP GET → dst = 93.27.22.22
⇒ Apollo 访问 Web 服务器
- DNS query → dst = 93.27.22.24
⇒ Apollo 向内部 DNS 解析域名
- TCP → dst = 102.139.247.19
⇒ Apollo 访问 External Web,经 Phoenix 路由出网
整个拓扑在 Wireshark 就串起来了。
🧾 总结:Wireshark 分析这类拓扑的逻辑顺序
步骤 | 要找的内容 | Wireshark 过滤语句 |
① DHCP | 找每个主机的 IP 与网关 | bootp / dhcp |
② ARP | 确认 IP ↔ MAC | arp |
③ ICMP | 看主机互通 | icmp |
④ TCP SYN | 确定谁发起连接(客户端) | tcp.flags.syn==1 && tcp.flags.ack==0 |
⑤ TCP SYN-ACK | 确定谁是服务端 | tcp.flags.syn==1 && tcp.flags.ack==1 |
⑥ HTTP / SMTP / DNS | 对应 Web / Mail / DNS 服务 | http / smtp / dns |
⑦ Statistics | 看全网 IP | Statistics → Endpoints → IPv4 |