基于SDN,数据平面的主要功能是根据控制器的指令(以流规则的形式)存储和转发数据包。在阅读OpenFlow Specification v5.1时,我遇到了可以修改数据包标头的Set-field Action set。我的问题是:基于 OpenFlow 的交换机是否可以比仅仅转发修改数据包头(例如更改 IP 地址)更进一步?
谢谢你。
基于SDN,数据平面的主要功能是根据控制器的指令(以流规则的形式)存储和转发数据包。在阅读OpenFlow Specification v5.1时,我遇到了可以修改数据包标头的Set-field Action set。我的问题是:基于 OpenFlow 的交换机是否可以比仅仅转发修改数据包头(例如更改 IP 地址)更进一步?
谢谢你。
是的。
更准确地说,openflow 协议定义了 set-field 动作,但它是否支持这个取决于交换机实现,如果支持,哪些字段可以修改。
例如,此文档提到 Cisco NXOS 交换机上的 openflow 代理支持(以及其他)以下操作:
- 重写源 MAC 地址 (SMAC) 仅支持 Ethertype 值 0x0800 或 0x86DD (IP)
- 重写目标 MAC 地址 (DMAC) 仅支持 Ethertype 值 0x0800 或 0x86DD (IP)
- 仅 Ethertype 值 0x0800 或 0x86DD (IP) 支持重写 VLAN ID
- 剥离 VLAN(仅支持 Ethertype 值 0x0800 或 0x86DD (IP))
注意 必须同时指定重写 DMAC 和重写 SMAC 操作。