📡 第四章 理解L3交换机的性能与功能
📄 一句话概括

L3 交换机的功能按「在哪一层」分三组:二层、三层、高级。 三组的性能代价完全不同——前两组由芯片做基本不掉速,第三组要吃 TCAM。

📝 本节和前面几节的关系

上一节讲性能,这一节讲功能。 这一节是一个「地图」,后面三节都在填这张图。

一、三组功能

组 包含什么 缺了会怎样


二层功能 VLAN、生成树、链路聚合 连基本组网都做不了 三层功能 SVI、静态路由、OSPF 跨网段要靠外挂设备 高级功能 ACL、QoS、组播、VRRP 策略与冗余做不了

三组的性能代价差别很大:二层与三层的基本查表由芯片做,接近线速; 而 ACL 与 QoS 要查 TCAM——TCAM 面积是有限的,所以「能配多少条 ACL」是硬上限,不是软件限制。

二、TCAM 这一条要单独说

TCAM 是一种「一次比较全部表项」的存储器, 所以它能在常量时间内给出最长匹配——这就是「线速转发」的硬件基础。

但它的面积很贵:一条 ACL 表项要占多少位是固定的, 所以「支持 4000 条 ACL」与「支持 8000 条」是两个不同的芯片。 而且 ACL 与路由表共用同一块 TCAM——ACL 配多了,能装的路由就少了。

这就是 01.04.07 那句话的完整含义:「ACL 条数上限是 TCAM 面积决定的」, 而且它和路由表容量是「抢同一块地方」的关系。

三、VLAN 够不够用

802.1Q 的 VID 是 12 位,理论 4096 个,去掉 0 与 4095 两个保留值,可用 4094 个。

哪怕划 1000 个 VLAN,也只用了四分之一。 所以「VLAN 不够用」这种说法基本不成立——真正不够的是「生成树实例数」与「MAC 表容量」。

MAC 表容量这一条最容易被忽略:一台接入交换机的 MAC 表可能只有 8K 条, 而一个大型园区网的总 MAC 数是几万——不过每台交换机只需要记「直连与下游」的,所以够用。 但如果发生 MAC 泛洪攻击,表被填满就会退化成广播。

四、功能越多越慢的老规律

03.08.03 讲过路由器「开功能掉 18 倍」, 在 L3 交换机上这个规律同样成立,只是落差小一些——因为它的服务面能力本来就比路由器弱。

实际的落差大致是:纯二层三层转发接近线速;开 ACL 后降到七成左右; 开大规格 NAT 或加密后可能掉到一成。 所以「L3 交换机能不能当出口设备」这个问题的答案是: 能,但只能做轻量的 NAT,且要看规格书给的「开功能后吞吐」。

五、动手 Demo:L3 交换机的功能,分三层看

这段列出三组功能与缺失后果,再算 VLAN 数量上限(4094 个)与「划 10、100、1000 个」各占多少比例。

for n in (10, 100, 1000):
    P(u"  划 %s 个 VLAN:占 %.1f%%。" % (format(n, u","), n * 100.0 / 4094))

实跑输出:

--------------------------------------------------------------------
L3 交换机的功能,分三层看
--------------------------------------------------------------------
**L3 交换机的功能可以按「在哪一层」分三组**,**这样看规格书就不会乱。**

  组           包含什么                   缺了会怎样
  ----------------------------------------------------------------
  二层功能     VLAN、生成树、链路聚合     连基本组网都做不了
  三层功能     SVI、静态路由、OSPF        跨网段要靠外挂路由器
  高级功能     ACL、QoS、组播、VRRP       策略与冗余做不了

**这三组的「性能代价」完全不同**:**二层与三层由芯片做,基本不掉速**;
**而 ACL 与 QoS 要查 TCAM、组播要维护转发表,都会吃掉一部分能力。**

**算一下 VLAN 的数量上限与实际需要**:

  802.1Q 的 VID 是 12 位,理论 4096 个。
  去掉 0 与 4095 两个保留值,可用 4094 个。
  若划 10 个 VLAN:占可用总数的 0.2%。
  若划 100 个 VLAN:占可用总数的 2.4%。
  若划 1,000 个 VLAN:占可用总数的 24.4%。

**哪怕划 1000 个 VLAN,也只用了四分之一。**
**所以「VLAN 不够用」这种说法基本不成立**——**真正不够的往往是「生成树实例数」与「MAC 表容量」。**

「1000 个 VLAN 只占 24.4%」这个数字说明 VLAN 不是瓶颈,但它背后的限制还在: 每个 VLAN 要一个生成树实例、一个 SVI、一段地址,这些都要吃资源。 所以「能划 4094 个」不等于「该划 4094 个」。

「ACL 与路由表抢同一块 TCAM」这一条是硬件层的事实,它解释了一个常见现象: 「路由表明明没满,但加一条路由报错说资源不足」——因为 ACL 把地方占了。

最后「开功能后的吞吐」这句要反复强调: 交换机厂商的规格书最爱标「线速」,而那个「线速」往往指「纯二层转发」。 所以买之前要看「开 ACL 后」「开 NAT 后」这两行。

30 秒实验

  1. 数一下你的网络里划了多少个 VLAN。
  2. 查一下核心交换机的 MAC 表容量与 ACL 条数上限。
  3. 看规格书有没有给「开 ACL 后的吞吐」。

常见误区

  1. 以为 VLAN 越多越好。每个 VLAN 都吃实例与地址。
  2. 以为 ACL 条数只受软件限制。受 TCAM 面积限制。
  3. 以为 ACL 与路由表互不影响。它们抢同一块 TCAM。
自测三问(点开对答案) 1. L3 交换机的功能按什么分成三组? —— 按在哪一层:二层、三层、以及高级(ACL、QoS、组播、VRRP)。 2. 为什么 ACL 条数有硬上限? —— 它要用 TCAM 存储,TCAM 面积固定,且与路由表共用。 3. 802.1Q 实际可用多少个 VLAN? —— 4094 个,12 位共 4096 个减去两个保留值。

下一节:从 VLAN 开始,把三层功能一个个拆开。

相关笔记