摘要
- Anja Feldmann 等六位研究者把骨干网需求定义为“从一个入口进入、面向一组可能出口的流量”,由此将用户送来的需求与当时路由配置选出的路径分开。
- 他们在 AT&T IP 骨干网上联合使用 NetFlow、路由器转发表、配置文件和 SNMP;采集丢失、快照错位和入口歧义不是被清洗掉的杂质,而是矩阵可信度的一部分。
夜班屏幕上,一条链路亮成红色。运维人员知道它很忙,却还不知道为什么忙。链路计数器把经过这里的字节加在一起,但不会标出哪一股需求来自哪个入口,也不会说明这些需求为什么在当前路由下汇聚于此。更不会回答:如果改一个 OSPF 权重,红色会消失,还是只会换到另一条链路?
Anja Feldmann、Albert Greenberg、Carsten Lund、Nick Reingold、Jennifer Rexford 与 Fred True 在 2001 年发表的研究,从这个缺口出发。他们没有把“流量矩阵”当成某台设备里等待导出的表格,而是把它当成需要由多类记录共同推导的运营对象。
链路负载是结果。需求是网络必须承载的东西。拓扑与路由配置夹在两者之间,决定每股需求在何处变成负载。若把当前链路的结果直接当作需求,模型就被锁死在当前路径上,无法可靠评估下一次配置改变。
需求不应随一次改权重而改名
按每一对源地址与目的地址构造端到端矩阵,规模会大到难以使用。更根本的限制是,单一运营商通常只看得到流量经过自己网络的那一段。多数互联网路径跨越多个管理域,没有谁天然拥有完整旅程。
研究团队选择了一个更贴近运营控制面的抽象:一股需求包含入口链路、流量体积,以及能够到达目标前缀的一组出口链路。它不是固定的一对一关系。BGP 通告撤回可能缩小出口集合,内部路由则在当时的配置下选定具体出口。
这样,改变 OSPF 权重时,需求本身不必被重新定义;变化的是需求如何铺到骨干链路上。团队相关的 NetScope 系统据此可以先找出拥塞链路上的需求,再在仿真环境中测试新配置,而不是直接拿生产网络做实验。
时间粒度也服务于决策。容量规划与流量工程关心的是几十分钟、数小时或数天的变化,而不是每个包的到达顺序。因此,流记录可被分摊进时间窗,再按入口和可能出口集合聚合。这里追求的不是重演每次会话,而是保留足以解释网络后果的结构。
四种记录缺一不可
理想状态下,每个入口都会产生细粒度流记录:输入接口、目的地址、开始与结束时间、字节数。转发表将目的前缀连接到出口集合。配置文件补充链路名称、角色、容量、包过滤规则和 OSPF 参数。路由模型再检验某个入口到某个出口的路径是否成立。
当时的 AT&T 骨干网无法在所有客户接入链路上开启这类测量。有些路由器没有相应能力,有些设备若开启功能会承担过高的计算负担。团队于是重点观察对等互联链路;这些位置通常使用功能更强的路由器,也承载大量跨运营商流量。
代价被明确写进方法。第一,两个接入点之间的内部流量可能完全不经过对等互联。第二,出站流量只在离开时被看到,原始入口不确定。第三,多跳转接流量会在入口与出口各留下记录,若不识别就会重复计数。
出站流量尤其体现“推导”与“观测”的差别。一个源地址可能对应客户的多个接入链路。模型逐一询问:按该时刻保存的拓扑和路由配置,从这个候选入口进入的流量,能否经过实际观测到的输入、输出接口并抵达那个出口?不可能的候选项被排除。
结果可能只剩一个入口,也可能仍有多个,或者一个都不剩。多个入口仍然合理时,研究者把流量分摊给它们,而不是凭空选出唯一答案;没有一致路径时,则留下未匹配记录。这使矩阵不只是数字阵列,还携带“实测出口”“唯一推定入口”“多个可能入口”“与快照不一致”等不同证据状态。
采集流量也会遇到拥塞
NetFlow 记录通过 UDP 发往集中采集服务器。在负荷高的时候,采集链路丢失的导出包最高达到 90%。危险之处在于,收到的数据仍会画出起伏自然的曲线;它不像完全中断那样显眼,只是在比例上严重失真。
导出序号让团队能够观察缺口。丢失分布与近似独立丢包的假设相符,于是他们按十分钟区间估算丢失概率,并用校正因子调整该时段收到的流量。校正没有复原每一条消失的流记录,它是在公开统计假设下把不完整样本外推为总体。
另一套仪器负责挑战这个外推。SNMP 每五分钟提供接口字节计数。经过丢失校正的 NetFlow 利用率曲线与 SNMP 走势较为接近。SNMP 无法告诉研究者入口到出口的需求结构,却能核对重建后的链路总量是否可信。正因为它不依赖同一条失灵的导出通道,校验才有意义。
数据身份也要对齐。NetFlow 用整数 SNMP 索引指认接口,配置和转发表则使用名称与 IP 地址。某些接口卡时钟没有与路由处理器同步。配置、转发表、流记录和 SNMP 也不总在同一时刻采集。即使每张表内部都正确,把不同时刻的它们拼在一起,仍可能得到从未真实存在过的网络状态。
四次实验中的异常日恰好展示了这一点。一条接入链路在配置快照之后完成升级,稍晚采集的转发表已经指向新链路。客户前缀因而无法与旧接口身份衔接,未匹配比例明显上升。确认并对齐这次真实变更后,结果回到其他日期附近。这里的“修正”不是为了让数字好看,而是承认两类证据描述了不同版本的网络。
高覆盖率不是唯一归因率
在 1999 年 11 月的四组实验中,通常有超过 98% 的对等互联字节能被聚合为某种需求。出站字节中,超过 99.3% 至少能找到一个候选入口。不过,最初仍有约 35% 至 45% 的出站字节对应多个可能入口。
路由模型排除了一部分候选。各次实验中,大约四分之一到三分之一的歧义流量最终收敛到单一入口。同一客户在同城设置的冗余接入点往往走相近的内部路径,因此即便无法分清,对链路负载判断的影响也可能有限。完成消歧后,仍有约 2.5% 到 4% 的出站字节无法纳入一个或多个点到多点需求。
这些百分比只属于一个 1999 年骨干网的四天,不是今天的性能基线。它们真正留下的是一套记账方式:覆盖了大部分字节,并不等于唯一知道每个字节从哪里来;小比例残差也可能集中在路由最活跃、最值得审查的部分。
团队还观察到,少数大需求占据大量流量,需求随时段显著变化,而排名靠前的一部分在相邻日期又具有一定稳定性。这让有选择的测量成为可能,却也带来集中风险:如果几股大需求被同一错误路由聚到一起,局部配置错误会迅速扩大为全网负载迁移。
矩阵的价值来自它可以被质疑
Feldmann 的研究兴趣横跨流量分析、建模和路由,不是偶然。缺少路由状态的测量只能描述后果;缺少实际需求的路由模型只是在为假想流量画路径;失去时间戳的配置快照则可能非常准确地解释一个已经不存在的网络。
流量矩阵把这些局部视图接起来。它带日期、带假设、带校正,也带无法消除的歧义。正是这些限定,使它比一张看似干净的仪表盘更适合决策:运营者不仅能问负载来自哪里、改变后去向何处,还能知道回答中的哪一部分是直接观测,哪一部分是模型推断。
现代可观测性的难点也在这里。保留链路计数只是第一步,还要保留解释它的路由与配置版本、采集损失、接口映射、未决候选和独立核验。红色链路告诉人们哪里疼。只有可追溯的矩阵,才能说明一种治疗会不会把疼痛移到别处。
来源
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
