首页 > 解决方案 > 为什么我们在使用“可编程数据平面”时需要控制器?

问题描述

我知道可编程数据平面使我们能够为新协议和策略定制和修改硬件。

例如,我们可以使用 P4 来实现一个设备,该设备在其数据路径中充当集线器。

但是当我们能够在数据平面中使用 P4(或其他)应用我们的逻辑时,为什么我们不再需要控制器和控制平面?

我的意思是我们使用控制器将开关行为更改为第 2 层、第 3 层、防火墙等。现在使用可编程数据平面,我们能够使用 P4 等语言完成所有这些操作。他们不是互相冲突吗?

标签: sdn

解决方案


SDN 提供了一个集中控制平面,使服务提供商能够对网络数据平面进行编程和控制,OpenFlow 被用作控制器和交换机之间定义的通信协议。因此,SDN 解耦了数据平面、控制平面,并基于网络数据路径的行为是固定的假设进行演进。

P4 带来了更大的灵活性,因此数据路径的行为可以通过软件来表达,该软件会告诉交换机它应该处理数据包的方式。P4 有助于指定数据转发行为,然后填充表格,并自动生成填充表格所需的 API,因此 P4 优于 OpenFlow。P4 使 SDN 能够独立于协议,灵活地以编程方式匹配受 OpenFlow 限制的任意数据包字段。

现有许多交换机遵循使用 OpenFlow 的控制路径和数据路径分离的 SDN 架构。因此,OpenFlow 可能不会因为 P4 而立即过时,因为已经部署了许多固定功能交换机 ASIC,并且它们正在使用 OpenFlow 进行通信。Openflow 仍然适用于混合了固定功能交换机和可编程交换机的网络。在这样的网络中,Openfow 和 P4 应该一起运行。


推荐阅读