ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

一根网线跑两个网段:广播域和子网,到底是不是一回事?

一根网线跑两个网段:广播域和子网,到底是不是一回事?

一根网线跑两个网段:广播域和子网,到底是不是一回事?

一次内网排查中撞见一个"怪现象",逼着我把一个自以为很熟的基础概念重新想了一遍。结论是:很多人(包括当时的我)把"广播域"和"网段"偷偷画了等号,而这个等号在安全上是要出人命的。

一、怪现象:单网卡、双 IP、跨网段直连

排查中发现某台内网 Windows 终端是单网卡绑了两个 IP,而且属于两个不同的网段:

  • 网段 A:192.168.10.111(办公网段,网关192.168.10.1)
  • 网段 B:192.168.20.153(核心业务网段,网关192.168.20.88)

这台机器只有一根网线、一块物理网卡(验证过:一块网卡,MAC 唯一,两个 IPv4 地址)。

按很多人(包括我)的直觉,这里马上冒出三个疑问:

  1. 一根网线,数据怎么"知道"该奔 A 段还是 B 段?
  2. 交换机是不是给这两个网段各开了一条路?
  3. 更拧巴的:都说"一个交换机端口是一个广播域",一个广播域里为啥能有俩 IP 段?

二、先纠一个流传很广的错误说法

“一个交换机端口是一个广播域”——这句话本身就不对。

正确的说法是:同一个 VLAN 的所有端口,共享一个广播域。

  • 划了 VLAN:端口属于哪个 VLAN,就在哪个广播域里;
  • 没划 VLAN(出厂默认):整台交换机所有端口就是一个大广播域。交换机默认所有口都在 VLAN 1,什么都不配,一个广播帧从 1 口涌到 48 口。

而"网段"(IP 子网)是主机自己配的三层概念。网卡上配什么 IP、什么掩码,交换机根本不看、也看不懂——二层转发只认 MAC。交换机既不知道也不关心一帧里装的 IP 是 10 段还是 20 段。

三、广播域和网段的正确关系

把两个概念各自定义写清楚,关系就自己浮出来了:

概念层次本质
广播域二层ARP 广播能到达的范围
网段(子网)三层主机网卡上的 IP + 掩码配置

关系是单向包含:

  • ✅一个网段必须待在一个广播域里——同网段主机之间要靠 ARP 直达,ARP 是二层广播,跨不了广播域;
  • ❌一个广播域里却可以同时住着多个网段——没有任何协议规定"一个二层域只能有一个三层网段"。

所以"链路层是一个、网络层是两个"这个直觉是对的。一根线、一个端口、一个广播域,网卡上配两个分属不同网段的 IP,两个网段的 ARP 请求都能从同一个广播域里得到应答——这就是所谓"单臂多子网",完全合法,而且在内网里相当常见。

四、那数据到底怎么"奔向"两边?靠路由表,不靠网线

报文用哪个源 IP 出去、走不走网关,由主机自己的路由表决定。以那台双 IP 机器为例:

# 命中直连路由 → 源 IP 用 20.153,直接 ARP 对方,不过任何网关 192.168.20.0/24 直接连接 # 命中默认路由 → 源 IP 用 10.111,交给 10.1 转发 0.0.0.0 192.168.10.1
  • 去核心业务网段的设备:ARP 直接问对方要 MAC,二层直达;
  • 去办公网段或外网:ARP 网关 10.1,三层交给它。

交换机在中间只干一件事:按 MAC 把帧转出去。它从头到尾没有做过任何"选网段"的决策——所有决策都是主机路由表做的。

五、实证:ARP 表是最铁的证据

怎么证明这两个网段共享同一个广播域?不用猜,看 ARP 表就够了。

在那台机器上执行arp -a,另一个网段的网关和核心业务服务器的 IP 全部解析出了 MAC 地址。

ARP 能解析到,只有一种解释:对方设备直接应答了 ARP 请求——没经过路由器、没跨 VLAN、没有三层设备插手。也就是说:

这两个网段的设备,物理上就泡在同一个二层域里。

顺带一提,这也是很多内网"隐性打通"的典型指纹:如果你在 A 网段的机器上,ARP 表里躺着 B 网段设备的 MAC 记录,那不用再验证什么了,二层就是通的。

六、安全上这意味着什么:三层隔离是纸糊的

这次排查最颠覆认知的结论是:

“两台设备 IP 不在一个网段” ≠ “它们是隔离的”。
只要在同一个广播域里,改个 IP 就能直达对方,连 ARP 欺骗的门槛都省了。

真正有效的隔离必须在二层做:

  1. VLAN 划分:把核心业务网段单独划 VLAN,办公口进不去这个广播域;
  2. 物理分离:核心业务用独立交换机、独立布线,最彻底;
  3. 三层 ACL / 防火墙:就算二层通了,在网关上把跨段访问策略做死。

顺序上,1 和 2 是根,3 是补充。只在三层上"用不同网段编号隔开",等于门没锁只换了门牌号。

七、自查清单(五分钟做完)

每台可疑终端上跑一遍:

# 1. 是否单网卡双 IP(双宿)ipconfig /all# 看同一块网卡下是否有多个 IPv4# 2. 是否有多条默认网关(双网关是多宿主的强信号)route print-4# 3. ARP 表里是否出现"不该出现的网段"的 MAC(二层直通的铁证)arp-a

交换机侧(核心层查一次就够):

display vlan# 华为系:看 VLAN 划分,是否全网一个 VLAN 大锅炖show vlan brief# 思科系同上

如果核心交换机上除了 VLAN 1 没有任何划分,而内网又同时跑着办公和核心业务两个网段——那隔离状态就是"纸糊的",建议立刻排上整改日程。

八、写在最后

这次经历给我的教训是:基础概念上的一个模糊点(广播域 ≠ 网段),落到现场就是一个隔离假设的塌方。

自问自答收个尾:

  • 一根线怎么跑两个网段?——因为网段是主机的配置,不是线的属性;路由表决定去哪,ARP 决定到达。
  • 一个广播域为啥能有俩网段?——因为从没有"一个广播域一个网段"的规定,只有"一个网段必须待在一个广播域里"的反向约束。
  • 隔离靠不同网段行不行?——不行。隔离是二层的活:VLAN 或物理分离,别拿 IP 编号当锁。

文中拓扑与地址已做脱敏泛化处理,技术细节均来自实际验证过程。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进