虚拟路由器就是把「路由表、接口、协议进程」打包成独立实例。 多份实例互不可见,就像多台独立设备——除了共用机箱与电源。
前面讲的是功能,最后两节讲「怎么把一台设备当多台用」。 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 秒实验
- 查一下你手上的设备支持几个虚拟路由器实例。
- 想一想:两个客户地址重叠,除了虚拟路由器还有什么办法?
- 算一下:50 份实例、每份 1 万条路由,要多少内存?
常见误区
- 以为虚拟化能省算力。CPU 与内存照分,切得越碎单份越少。
- 以为虚拟路由器等于「多个 VLAN」。VLAN 分的是二层,它分的是三层。
- 以为地址重叠只能靠改地址解决。虚拟路由器就是为了不改地址。
自测三问(点开对答案)
1. 虚拟路由器隔离了哪四样东西? —— 路由表、接口、路由协议进程、地址空间(允许重叠)。 2. 虚拟化真正省下的是什么? —— 机柜空间、布线、上联口与设备数量,不省 CPU 与内存。 3. 什么场景下虚拟路由器是「技术上的必需」? —— 两个网络的地址段完全重叠,又要在同一套设备上互连。下一节:把虚拟化再往前推一步——虚拟防火墙。
- ☐ (本节完,下一节 05.07.13 虚拟防火墙)