📡 第五章 防火墙功能与防范威胁的对策
📄 一句话概括

虚拟路由器就是把「路由表、接口、协议进程」打包成独立实例。 多份实例互不可见,就像多台独立设备——除了共用机箱与电源。

📝 本节和前面几节的关系

前面讲的是功能,最后两节讲「怎么把一台设备当多台用」。 03.06 里提过「VRF」这个词,这一节把它讲清楚。

一、它隔离了哪四样东西

路由表:每份实例一张,可以有完全相同的地址段。 接口:物理口按 VLAN 子接口划归各实例。路由协议进程:每份实例各跑一个 OSPF,互不邻居。 地址空间:这是最关键的一样——允许重叠。

项目 不虚拟 虚拟成 N 份


路由表 全球一张 每份一张 接口 共享,按子接口分 归各自实例 协议进程 一个 每份各一个 地址空间 重叠就冲突 可以重叠

「地址可以重叠」是它最实在的用处: 两个客户的内网都是 192.168.1.0/24,物理上要合并就必须改地址,虚拟化之后各归各的实例,一个字都不用改。

二、省的是机柜,不是算力

虚拟路由器共用的是「机箱、电源、风扇、上联口」, 不共用的是「CPU 与内存」——这两样必须按实例分。

算一笔内存账:一张路由表 1 万条、每条 300 字节 = 3 MB; 10 份实例就是 30 MB,50 份就是 143 MB。 而这还没算每份实例各跑一个 OSPF 进程的开销。

所以「虚拟化省设备」这句话要加个前提: 省的是「机柜空间、布线、上联口、以及管理上的设备数量」; 不省 CPU 与内存,切得越碎,单份资源越少。

这个规律在 05.07.13(虚拟防火墙)里会再出现一次——因为虚拟化的本质就是「把物理资源按份切」,切片总有最小单位。

三、什么时候必须用它

三种场景,只有第一种是「必须」:

一、地址重叠:两家公司的内网地址一模一样,又要在同一套设备上互连。 这时候除了虚拟路由器没有别的办法。

二、业务隔离:生产网、办公网、测试网要各自的路由表与策略,但物理上又要共用出口。

三、多租户:运营商或云服务商给不同客户各一份实例。

第一种是「技术上的必需」,后两种是「管理上的方便」。 而「管理上的方便」往往被低估——因为一份配置改错只影响一个实例,这一条在出故障时价值很高。

四、动手 Demo:一台设备里跑十个虚拟路由器

这段摆出虚拟与不虚拟的四个差别,再按「1 万条路由 × 300 字节」算 1、10、50 份实例各要多少内存。

per = 10000 * 300
for n in (1, 10, 50):
    P(u"  %2d 份实例:%.0f MB。" % (n, per * n / 1048576.0))

实跑输出:

--------------------------------------------------------------------
一台设备里跑十个虚拟路由器
--------------------------------------------------------------------
**虚拟路由器就是把「路由表、接口、协议进程」打包成一份实例。**
**多份实例之间互不可见,就像十台独立的机器。**

  项目             不虚拟                     虚拟成 10 份
  ------------------------------------------------------------
  路由表           全球一张                   每份一张
  接口             共享物理口,按子接口分     归各自实例
  路由协议进程     一个                       每份各跑一个
  地址空间         重叠就冲突                 可以重叠

**算内存账**(每张表 1 万条路由,每条 300 字节):

  一张表:10,000 × 300 = 3,000,000 字节(2.9 MB)。
   1 份实例:3 MB。
  10 份实例:29 MB。
  50 份实例:143 MB。

**50 份就是 143 MB 的纯路由表**,
**还没算每份实例各跑一个 OSPF 进程的开销**——**所以虚拟路由器省的是机柜和布线,不是 CPU 与内存。**

**它最实在的用处是「地址重叠」**:
**两个客户的内网都是 192.168.1.0/24,物理上要合并就必须改地址。**
**虚拟化之后各归各的实例,一个字都不用改。**

「50 份就是 143 MB」这个数不大,但要注意它只是路由表: 每份实例还有会话表、日志缓冲、协议进程的堆栈,真实占用往往是路由表的几倍。 所以「切 50 份」这种规格,通常只在高端设备上才成立。

注意 D137 里那句「省的是机柜和布线,不是 CPU 与内存」: 这句话可以用在所有「虚拟化」的场景上——虚拟化从不创造资源,只重新分配资源。 凡是听到「虚拟化能省一半成本」的说法,都要问「省的是哪一半」。

最后那句「一份配置改错只影响一个实例」容易被忽略:故障隔离的价值往往要到真出事那天才体现, 而它偏偏是虚拟化最确定的好处之一。

30 秒实验

  1. 查一下你手上的设备支持几个虚拟路由器实例。
  2. 想一想:两个客户地址重叠,除了虚拟路由器还有什么办法?
  3. 算一下:50 份实例、每份 1 万条路由,要多少内存?

常见误区

  1. 以为虚拟化能省算力。CPU 与内存照分,切得越碎单份越少。
  2. 以为虚拟路由器等于「多个 VLAN」。VLAN 分的是二层,它分的是三层。
  3. 以为地址重叠只能靠改地址解决。虚拟路由器就是为了不改地址。
自测三问(点开对答案) 1. 虚拟路由器隔离了哪四样东西? —— 路由表、接口、路由协议进程、地址空间(允许重叠)。 2. 虚拟化真正省下的是什么? —— 机柜空间、布线、上联口与设备数量,不省 CPU 与内存。 3. 什么场景下虚拟路由器是「技术上的必需」? —— 两个网络的地址段完全重叠,又要在同一套设备上互连。

下一节:把虚拟化再往前推一步——虚拟防火墙。

相关笔记