交换与路由设备:二层交换机和三层路由器

初学网络时,交换机和路由器几乎总是被一起提到,很多人把它俩都笼统理解成「负责把数据往前送的盒子」。这没错,但远远不够。它们之间真正的分界,不在外形、价格或端口数,而在一件最本质的事上:它们各自依据什么信息来做转发决定。 交换机盯着 MAC 地址干活,路由器盯着 IP 地址干活——这一字之差,决定了它们工作在哪一层、能解决哪类问题、出问题时你该往哪查。

所以这一篇我们先把机制讲透:交换机收到一帧后,是怎么靠 MAC 地址表决定从哪个口转出去的、这张表又是怎么自己「学」出来的;路由器收到一个包后,又是怎么查路由表、并把帧头整段改写后转出去的。 把这两套转发流程看清楚,再回头解释广播域、冲突域这些概念,以及为什么现实设备总是把两种能力揉在一起。

交换机和路由器最大的差别,不是外形和价格,而是它们「看待网络的视角」不一样:一个只关心本地局域网里「这台机器在哪个口」,一个关心「这个包该送去哪个网络」。

一、先回顾两层的分工

要讲清这两种设备,得先把它们工作的两层摆正:

  • 数据链路层(二层):用 MAC 地址寻址,负责同一个局域网内部的帧投递。MAC 是网卡出厂烧死的物理地址,全球唯一,但它不含任何位置信息,没法告诉你「这台机器在地球哪个网络」。
  • 网络层(三层):用 IP 地址寻址,IP 是分层的、带网络归属信息的,能跨越不同网络做端到端寻址。

一句话定位:二层管「在同一个局域网里把帧送到对的那台机器」,三层管「把包从一个网络送到另一个网络」。 交换机干前者,路由器干后者。带着这个分工往下看机制。

二、交换机的核心机制:MAC 地址表怎么用、怎么学

二层交换机最关心的就一样东西——MAC 地址表(也叫 CAM 表),它记录「哪个 MAC 地址挂在我的哪个端口上」。交换机收到一帧后的处理流程是:

  1. 看目的 MAC,拿它去查 MAC 地址表;
  2. 查到了:直接从对应端口转出去(单播转发),其他端口完全不打扰;
  3. 没查到(未知单播):从除入口外的所有端口广播出去(泛洪 flooding),让目标自己应答。

那这张表是哪来的?没人手工配——交换机会自动学习。机制非常巧妙,叫源地址学习

交换机每收到一帧,都顺手看一眼这帧的源 MAC,把「源 MAC ↔ 收到它的那个端口」记进 MAC 表。久而久之,谁在哪个口,它就全摸清了。

举个完整例子。交换机刚上电,表是空的:

  • 主机 A(接口 1)发帧给主机 B:交换机记下「A 在端口 1」;但还不知道 B 在哪,于是把帧泛洪到所有其他端口;
  • B(接口 3)收到并回帧给 A:交换机这次记下「B 在端口 3」;这次目的是 A,表里有,直接从端口 1 单播出去;
  • 之后 A、B 再通信,交换机两边都查得到,全程精准单播,不再泛洪。

这就是交换机「即插即用」的奥秘——靠观察每帧的源地址自学成才。表项还有老化时间,长时间不出现的 MAC 会被删掉,适应设备移动。

三、路由器的核心机制:查路由表 + 改写帧头

路由器工作在三层,它收到一个包(注意,它拆到 IP 层来看)后的流程,和上一篇「路由基础」里讲的一脉相承:

  1. 看目的 IP,拿它去查路由表,用最长前缀匹配选出下一跳和出接口;
  2. TTL 减 1(IPv4 还要重算首部校验和);
  3. 改写二层帧头:把源 MAC 换成自己出接口的 MAC、目的 MAC 换成下一跳的 MAC(先用 ARP/NDP 解析);
  4. 从出接口发出

这里有一个理解二者差别的关键,必须盯死:

交换机转发时不改帧的 MAC 地址,它只是把帧从对的口送出去;路由器转发时每一跳都把二层帧头整段换掉(源/目的 MAC 全换),但不动三层的源/目的 IP

为什么路由器必须换 MAC?因为 MAC 只在一个局域网内有效。包从「网络甲」走到「网络乙」,跨越了二层边界,原来那对「甲网络内部的 MAC」到了乙网络毫无意义,必须换成「乙网络里下一跳的 MAC」。而 IP 是端到端的全局地址,全程不能变,否则就找不到最终目标了。「IP 不变、MAC 每跳换」——这八个字是二层三层协作的命门。

四、用一次跨网访问把两者串起来

把交换机和路由器放进同一个场景,机制就立体了。设想主机 A(192.168.1.10)要访问外网服务器 203.0.113.5,网关是 192.168.1.1

  1. A 先判断目标在不在本网段:用子网掩码一算,203.0.113.5 不在 192.168.1.0/24 里,是外网。于是 A 决定把包发给网关
  2. A 需要网关的 MAC:通过 ARP 解析 192.168.1.1 的 MAC。封装帧:源 MAC=A,目的 MAC=网关。
  3. 帧经过交换机:交换机看目的 MAC(网关的 MAC),查表,从网关所在端口转出去——它全程没看过 IP,也没改任何地址,只是二层投递。
  4. 网关路由器收到:拆到 IP 层,看目的 IP 203.0.113.5,查路由表选下一跳,TTL 减一,把帧头的源 MAC 换成自己外网口 MAC、目的 MAC 换成下一跳 MAC,发出。
  5. 后续每一跳路由器重复第 4 步,IP 始终是 203.0.113.5,MAC 一跳跳地换。

看清楚了吗?同一段链路上,交换机负责「帧在本网段内精准投递」,路由器负责「包跨网段时换装继续上路」。 A 访问同办公室的另一台机器,全程只经交换机(二层);A 访问外网,才需要路由器(三层)出场。

五、冲突域与广播域:两种设备的边界差异

理解了转发机制,两个经典概念就好懂了,它们描述的是「设备能隔离什么」:

  • 冲突域:会发生信号冲突(需要争抢介质)的范围。早期集线器(hub)所有口共享一个冲突域,谁发都可能撞车。交换机每个端口是一个独立冲突域——它给每个口做缓存和独立转发,从根上消除了端口间的冲突。这是交换机相比集线器最大的进步。
  • 广播域:一个广播帧(目的 MAC 全 F)能扩散到的范围。交换机不隔离广播域——广播帧会被泛洪到同一二层网络的所有端口;ARP 请求、DHCP 发现这些广播流量,整个二层网段都收得到。路由器天然隔离广播域——它默认不转发广播,一个网络的广播出不了网关。

交换机隔离冲突域,但不隔离广播域;路由器连广播域也隔离。这正是「网络分段、部门隔离、广播风暴抑制」常要靠三层(路由 / VLAN + 三层交换)来做的原因——二层网络铺得太大,广播流量会把带宽吃垮。

六、VLAN 与三层交换机:现实没那么纯粹

教科书把交换机和路由器划得泾渭分明,现实设备却普遍把能力揉在一起,理解了基础机制反而更看得懂这些「混合体」:

  • VLAN(虚拟局域网):在一台物理交换机上,用 VLAN 把端口划成若干个互相隔离的逻辑二层网络——相当于把一个大广播域切成几个小的。不同 VLAN 之间默认二层不通,要通就得走三层路由。这让「广播域隔离」不再依赖物理布线。
  • 三层交换机:硬件上是交换机(高速、多口),但又内置了路由功能。它能在 VLAN 之间做路由转发,且因为路由查表用专用芯片(ASIC)硬件加速,速度远快于传统软件路由器。数据中心、企业核心层大量用它。
  • 现代「路由器」:家用/企业路由器往往集成了交换、NAT、防火墙、VPN、DHCP 一大堆功能于一身。

设备能力混合不代表基础边界失效,恰恰相反——只有先吃透「二层看 MAC、三层看 IP」这条线,面对一台三层交换机时,你才分得清它此刻是在做二层转发还是三层路由。

七、工程视角:排障第一步先分清二层还是三层

把这套区分落到排障,价值立刻显现。遇到「不通」,第一个要问的问题永远是:我现在是在同一个二层网络里,还是已经跨网了? 因为两者的排查方向完全相反:

  • 同网段互访不通(两台机器在同一子网):重点查二层——ARP 表是否正常(ip neigh)、交换机 MAC 表、VLAN 划分是否一致、端口是否 up。
  • 跨网段不通(要经过网关):重点查三层——默认网关配对没(ip route)、路由表有没有到目标网络的路由、中间有没有 ACL/防火墙/NAT 拦截。

判断在不在同一网段,就用「目标 IP 和本机 IP 在同一子网掩码下是否同网络」来算。能在心里把「这是个交换问题还是路由问题」分开,你的排障就已经领先一大截——很多人卡住,正是因为在二层问题上死查路由、或反过来。

八、学习这一部分最容易踩的坑

1. 以为路由器转发不改地址

恰恰相反:路由器每一跳都把二层 MAC 整段换掉,只有 IP 端到端不变。交换机才是「不改地址、只挑端口」。混淆这点,你永远看不懂跨网转发。

2. 不知道 MAC 表是自学的

交换机的 MAC 表靠「记录每帧的源 MAC ↔ 入端口」自动学成,不是人工配的。理解这点,才懂为什么未知单播会泛洪、为什么表项会老化。

3. 把冲突域和广播域搞混

交换机隔离冲突域、不隔离广播域;路由器两者都隔离。这是两个不同维度,混了就理解不了「为什么大二层要靠路由/VLAN 切分」。

4. 被三层交换机绕晕

三层交换机不是「更高级的交换机」那么简单,它兼具二层转发和三层路由两种能力,工作时按数据情况切换。先分清两种基础职责,再看它就不乱了。

总结

这一篇我们先讲机制、后讲设计,核心是分清两种设备「依据什么、怎么转发」:

  • 二层交换机看 MAC、查 MAC 地址表做本网段投递,转发时不改 MAC;MAC 表靠「源地址学习」自动建立,未知单播会泛洪;
  • 三层路由器看 IP、查路由表(最长前缀匹配)做跨网转发,每跳改写二层 MAC、TTL 减一,但 IP 端到端不变;
  • 「IP 不变、MAC 每跳换」是二层三层协作的命门;
  • 交换机隔离冲突域但不隔离广播域,路由器两者都隔离,故大二层靠 VLAN / 三层来切分广播域;
  • 现实设备(三层交换机、集成路由器)把能力揉在一起,但理解基础边界才看得懂它们;
  • 排障第一步永远先分「同网段(查二层 ARP/交换)」还是「跨网段(查三层路由/网关)」。

当你能对着一次「A 访问外网」的过程,说清哪一步是交换机在二层投递、哪一步是路由器在三层换装转发,这部分就真正属于你了。

参考资源