在 OVS 设备上有效地安装流程,处理中的数据包,值得在 Neon/Sodium 上使用 Oxygen

Efficiently installing flows on OVS devices, Packet In Processing, worth is to use Oxygen over Neon/Sodium

所以我转向了新版本的 OpenDayLight,我目前正在使用 Neon(Sodiums api 资源管理器出于某种原因无法正常工作,但我今天再次尝试)。

我记得旧版本的 OpenDayLight 有一个 L2Switch,但我想它不再受支持,我昨晚在安装流,以便单个交换机上的 2 台主机可以通信。我是通过 restconf 和 md-sal:add-flow 或任何它的名字来做的,它不是很有效,但它确实有效,我能够传递流量。

我可能会编写自己的 L2 学习代码,因为我已经为其他控制器完成了它,而且它相当简单,但似乎这是一种在 SDN 网络中获得可达性的过时方法,我开始觉得自己缺少了一些东西。

ODL Sodium/Neon 中是否有一些功能可以处理主机的 ARP,或者是否有某种类型的 L2 学习?如果没有,什么是将流安装到网络中的有效方法,特别是具有大量交换机的数据中心式网络。在一台交换机上手动安装流程是可以忍受的,但是一旦我的硬件准备就绪,我们将拥有 8 个物理 OVS 设备,并且每次使用 rest 一次安装一个流程可能会杀死我 lmao。

此外,我一直在四处查看,并通过控制器上的数据包输入处理的项目代码,如果我进行 L2 学习,我将需要这样做,而我使用 ODL 的主要目标是开发某种类型的网络安全应用程序。

如果我没记错的话,当 OVS 设备收到一个它不知道如何转发的数据包时,它会将其发送到控制器,控制器将做出决定并将流安装到交换机上以供将来的数据包使用.我知道如何安装流程,我只是有点迷失了在哪里放置代码来检查数据包并决定如何处理它。在 POX 中它很简单,几乎只是一个您要覆盖的 PacketIn 函数,希望它与 ODL

类似

Oxygen 似乎还有 L2Switch,如果我有一个无法手动安装流的大型拓扑,为了 L2 功能降级到 Oxygen 是否值得?

是的,我认为您真正想要的是 l2switch。那个项目总是 与 OpenDaylight 一起安装的快速项目,以显示一些快速 SDN 功能 (使用mininet),但在上游社区并没有真正维护 所以我们删除了它。然而,最近有人在谈论试图保留它 活着所以至少它可以在未来的 ODL 版本中发布和安装。

您会考虑参与这项工作吗?如果是这样,你可以让 l2switch 工作 又是最新的 master 分支(什么是镁释放),可能 进入最终的钠服务版本(SR)之一。我不知道这一切 需要做到这一点,但我认为这可能不会太难。

后退一步确实有助于上游 ODL 社区,但是 希望通过较新的 ODL 版本在短期内为您提供所需的东西 以及对整体 ODL 代码库的更多体验。

如果没有,那么您在使用 restconf 的编程流程上走在了正确的轨道上。你 不一定要使用 md-sal:add-flow,你可以只添加流 你想要在配置存储中,只要 openflow 节点存在, openflowplugin 应该在 ovs 开关上对其进行编程。 Here 是一个测试 添加您引用的 "punt to controller" 流程的案例。只是钻 进入机器人框架关键字以获取更多详细信息。就像 这是 PUT 请求 URIhere is the body 已发送。