摘要
- IPv6 流标签位于固定首部中,长度为 20 比特;它可与源、目的地址组成三字段分类键,无须先找到传输层端口。
- 标签必须在同一流内稳定、在不同流之间尽量均匀,却既不唯一也不受保护;碰撞和伪造都属于明确边界。
- RFC 6437 重塑了早期模型,RFC 6438 与 RFC 7098 则分别说明了隧道路径分配和三、四层服务器负载分配的有限用途。
隧道外层为何需要第三种材料
ECMP 或链路聚合通常需要从报文中取值并做哈希。在 IP-in-IPv6 隧道中,许多用户流共享一对外层地址;只使用这两个地址时,所有流可能被“极化”到同一成员。RFC 6438 给出的做法,是让发送端隧道端点根据内部二元组或五元组推导外层流标签:同一内部流保持同一值,不同流则尽量产生不同值。
中间路由器由此得到固定位置的哈希材料,却不必理解内部会话。偶尔发生碰撞并不违背模型。两个用户流若取得相同标签,就接受相同的标签式处理;这不表示二者是同一个流,也不保证每个流拥有独占路径。
这种安排体现了流标签的尺度。它解决的是“怎样保持处理一致”而非“流究竟是谁”。二十比特没有足够空间承诺全局唯一,协议也没有作出这种承诺。
零、稳定与分布
流标签为零,只表示报文未被标注。对于一个流,源端应为所有报文填写同一个非零值;在许多流之间,取值应接近离散均匀分布,并且难以预测。把五元组哈希成二十比特,或以少量源端状态作伪随机分配,都是规范举出的例子,而非强制算法。顺序递增不受推荐,因为它既容易预测,也不利于分布。
“流”不必与一条传输连接一一对应。不过 RFC 6437 建议,没有关联的传输连接或应用数据流通常应分属不同流。若相同地址之间的两个并发流发生标签碰撞,标签式分类器便无法单靠标签区分它们。
非零标签一旦写入,预期应原样到达。转发设备可以替源端给零标签赋值,但此能力必须可配置且默认关闭;规范仍偏好源端填写。这样做既承认有些源端不会行动,也限制中间网络随意改写分类材料。
固定位置比传输层语义更容易取得
端口常被用于负载分配,但 IPv6 报文并不保证中间设备总能方便地找到端口。非首片分片可能没有端口,扩展首部可能增加解析成本,加密也可能让传输信息不可见。流标签始终位于固定 IPv6 首部中。它没有还原端口或载荷含义,只提供另一组可直接读取的输入。
RFC 7098 把这一性质用于服务器场。三、四层负载均衡器可将“源地址加流标签”,或“目的地址、源地址加流标签”作为会话键。无状态设备对键做哈希,使同一流的报文落到同一服务器;有状态设备保存键与服务器的对应关系。标签为零的报文仍走传统的传输首部处理路径。
保存状态也不能消除歧义。若相同地址之间的新传输会话复用了旧标签,单凭该键就无法识别它是新会话。流标签能够支撑亲和性,却不知道应用会话何时结束、何时重建。
从 RFC 3697 到 RFC 6437
RFC 6437 取代 RFC 3697 时,重点转向鼓励非零值、无状态生成和近似均匀分布,同时保留非零标签不得沿途修改的规则,并为默认关闭的零标签代填留下受控空间。
从历史上看,这是一种通过减少语义负担来提高可用性的调整:源端负责给出稳定、分散的材料,网络把它作为哈希输入之一,而不是建立一个需要理解应用的状态体系。这是依据规范机制得出的编辑分析,并不等于所有网络都已经如此部署。
本包的三个来源没有提供当前采用率、厂商支持清单、性能基准或普遍收益数据。因此,本文只能说明协议允许什么、限制在哪里,不能断言今天有多少流标签非零或某种设备必然获得多少提升。
来源
- RFC 6437,IPv6 Flow Label Specification:https://www.rfc-editor.org/rfc/rfc6437.html
- RFC 6438,Using the IPv6 Flow Label for Equal Cost Multipath Routing and Link Aggregation in Tunnels:https://www.rfc-editor.org/rfc/rfc6438.html
- RFC 7098,Using the IPv6 Flow Label for Load Balancing in Server Farms:https://www.rfc-editor.org/rfc/rfc7098.html
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
