路由器的硬件构成和服务器类似,但每一件的角色不同:CPU 管控制面,芯片管数据面。 内存要同时装五样东西——算下来 1.3 GB 只是「刚好够」,选型要留一倍余量。
03.07 讲完管理,从这一节开始把设备拆开看硬件。 03.01.02 提过「控制面与数据面分离」,这一节看它在硬件上的样子。
一、五样零件各管什么
零件 管什么 规格看什么 坏了会怎样
CPU 协议计算、管理面 核数、主频 协议断、管理不通 内存(RAM) 路由表、转发表、缓冲 容量 表装不下、丢包 闪存(Flash) 系统镜像、配置 容量 起不来 接口模块 接各种网络 类型、数量、速率 那一段不通 交换/转发芯片 数据面转发 pps、带宽 退回软件转发
「交换/转发芯片坏了会怎样」这一行最有意思: 设备不会立刻死,而是「退回软件转发」——CPU 扛起转发,性能掉到原来的一两个百分点,但业务还在。 所以这类故障的表现是「设备没坏,就是特别慢」。
二、内存要装五样东西
一、操作系统本体:约 512 MB。二、路由表:95 万条约 190 MB。三、转发表副本:约 120 MB。 四、数据包缓冲:约 256 MB。五、其他进程:约 200 MB。
合计约 1.3 GB,而这只是「刚好够」。 实际选型要留一倍以上余量——因为路由表会涨、缓冲需求会涨、软件版本也会变胖。
「2 GB 内存跑 95 万条 BGP 全表」这种配置半年后就会 OOM, 而 OOM 的表现不是报错,是「进程神秘重启」或「路由莫名丢失」。 这类故障最难查,因为看起来不像内存问题。
三、闪存有个坑
升级系统时新旧两个镜像要同时存在,所以实际可用空间大约是标称的一半。
「闪存 1 GB」的设备,系统占 400 MB、旧镜像占 400 MB,剩 200 MB 装不下新镜像——于是「连一次升级都做不了」。
这就是为什么选型时「闪存容量」要看两倍:不是「装得下系统」,而是「装得下两个系统」。 很多设备支持「压缩镜像」或「从外部 TFTP 启动」,就是为绕开这个限制。
四、接口模块决定「能接什么」
接口模块是唯一「按需换」的部件,也决定了这台设备的用途: 电口多的是接入型,光口多的是汇聚型,有 POS 与 E1 的是运营商型。
选型时要看两件事:槽位数量(以后能不能加)与单槽带宽(加了能不能跑满)。 很多设备槽位够但背板带宽不够——插满之后总吞吐反而下降,这是常见的设计陷阱。
五、动手 Demo:路由器里的五样零件,各管什么
这段列出五个零件的职责与故障表现,再按「系统本体、路由表、转发表、缓冲、 其他进程」五项算内存需求合计。
items = ((u"系统", 512), (u"路由表", 190), (u"转发表", 120),
(u"缓冲", 256), (u"其他", 200))
for name, mb in items:
P(u" %s:%d MB" % (name, mb))
P(u" 合计:%d MB" % sum(mb for _, mb in items))
实跑输出:
--------------------------------------------------------------------
路由器里的五样零件,各管什么
--------------------------------------------------------------------
**路由器的硬件构成和服务器类似,但每一件的角色不同。**
零件 管什么 规格看什么 坏了会怎样
-------------------------------------------------------------------------------------
CPU 协议计算、管理面 核数、主频 协议断、管理不通
内存(RAM) 路由表、转发表、缓冲 容量 表装不下、丢包
闪存(Flash) 操作系统镜像、配置 容量 起不来
接口模块 接各种网络 类型、数量、速率 那一段不通
交换/转发芯片 数据面转发 pps、带宽 性能掉到软件转发
**内存那一行要展开算**:内存要同时装五样东西。
操作系统本体:512 MB
路由表(95 万条):190 MB
转发表副本:120 MB
数据包缓冲:256 MB
其他进程:200 MB
**合计:1278 MB**
**这个数只是「刚好够」。**实际选型要留一倍以上余量。
因为**路由表会涨、缓冲需求会涨、软件版本会变胖。**
**「2 GB 内存跑 95 万条 BGP 全表」这种配置,半年后就会 OOM。**
**闪存那一行有个常见坑**:升级系统时新旧两个镜像要同时存在,**所以实际可用空间大约是标称的一半。**
**「闪存 1 GB」的设备可能连一次升级都做不了。**
「1278 MB」这个合计要当成「下限」看,不是「推荐值」。 因为它是按「95 万条全表 + 256 MB 缓冲」算的, 而缓冲是按「够用」算的,不是按「扛得住突发」算的。
「芯片坏了退回软件转发」这一条要展开:有些设备的芯片故障不会告警,只是性能下降。 所以「设备突然变慢」要查的一是 CPU、二是转发模式。 看「当前是硬件转发还是软件转发」这个字段,能立刻定位。
最后那个「闪存减半」的坑是选型时最实际的一条: 它不写在规格书上,但会让「支持升级」变成一句空话。 问供应商的时候要问「两个镜像同时存在还剩多少」。
30 秒实验
- 查一下你手上设备的内存与闪存各是多少。
- 看路由表有多少条,估算它占多少内存。
- 查一下当前是硬件转发还是软件转发。
常见误区
- 以为内存够装路由表就行。还要装缓冲、转发表、进程。
- 以为闪存标称值就是可用值。升级要放两个镜像。
- 以为芯片坏了设备就死。它会退回软件转发,变慢但不死。
自测三问(点开对答案)
1. 路由器的五样主要零件是什么? —— CPU、内存、闪存、接口模块、交换/转发芯片。 2. 为什么选型时内存要留一倍余量? —— 路由表会涨、缓冲需求会涨、软件版本会变胖,算出来的只是刚好够。 3. 转发芯片故障的典型表现是什么? —— 设备不死但性能骤降,因为退回 CPU 软件转发。下一节:这些零件是怎么一件件被叫醒的。
- ☐ (本节完,下一节 03.08.02 启动路由器的流程)