OpenFlow 示例:我的理解是否正确?

网络工程 路由 开放流 专用网
2021-08-04 00:23:49

我有一个关于校园网络 OpenFlow 使用示例的问题:Open Flow: Enabling Innovation in Campus Networks我将首先引用这篇论文来提供一些关于我正在努力解决的例子的背景之后,我引用了我不明白的具体段落。

  1. 使用开放流

作为如何使用 OpenFlow 交换机的一个简单示例,假设 Amy(研究人员)发明了 Amy-OSPF 作为替代 OSPF 的新路由协议。

她想在 OpenFlow 交换机网络中尝试她的协议,而无需更改任何终端主机软件。 Amy-OSPF 将在控制器中运行;每次新的应用程序流启动时,AmyOSPF 都会选择一条通过一系列 OpenFlow 交换机的路由,并在沿路径的每个交换机中添加一个流条目。

在她的实验中,Amy 决定对从她自己的台式 PC 进入 OpenFlow 网络的流量使用 Amy-OSPF — 这样她就不会为其他人中断网络。为此,她将一个流定义为通过她的 PC 连接到的交换机端口进入 OpenFlow 交换机的所有流量,并添加一个流条目,其动作为“封装所有数据包并将其转发到控制器”。

以下是我难以理解的摘录:

当她的数据包到达控制器时,她的新协议会选择一条路由,并向沿所选路径的每个交换机添加一个新的流条目 (用于应用流)当后续数据包到达交换机时,它们会被流表快速(以线速)处理

所以,如果我的理解是正确的:

  1. Amy 将一个流定义为来自路由器 R 上端口 N 的所有流量。

  2. 添加带有操作“封装+转发到控制器”的流条目。

  3. 数据包使用路径 P_0 路由到控制器 C_1

  4. 数据包到达 C_1

  5. Amy-OSPF 将计算从路由器 R 上的端口 N 到 C1 的最佳路由/路径(可能与 P_0 不同),我们称之为 P_1。

  6. 它将流条目多播到路径 P_1 上选定的路由器,表示如果数据包被标记为来自路由器 R 上的端口 N,则转发到 P_1 上的下一个路由器。

  7. 路径 P_1 上的每个路由器都有最佳路径(下一跳)本地视图,而 C_1 具有全局视图(从开始到结束的所有跃点)。

  8. 进一步的处理将非常快,因为路由器将只执行由控制器 C_1 传达的流条目。

我错过了什么吗?此外,Amy 向哪个路由器/交换机添加了 0 和 1 的规则(定义流,添加流条目“封装 + 转发到控制器”)。

谢谢,

1个回答

我想你基本上已经明白了。

有几点我想说。

  1. P_0R的路径C_1通常(但不总是)作为单独的网络在“带外”实现。

  2. 每个网络流只有一个或少数数据包应该到达C_1. 一旦流被 AmyOSPF 控制器插入,它们就会根据该路由逻辑简单地转发。这就是第二个引用所说的。

  3. AmyOSPF计算最佳路径P_1R该数据包的目的,可以是任何地方。它可以在不与交换机交谈的情况下做到这一点。

组成路径的流条目P_1然后被发送到路由器P_1,这样所有从 Amy 的机器到特定目的地的流量都沿着该路径发送,而不必去控制器。在 的情况下R,这个新的流条目必须比表示将所有流量从该端口发送到控制器的条目具有更高的优先级。

  1. 它不是真正的多播,控制器与每个交换机/路由器都有单独的连接。每个路由器的流条目也可能略有不同。

  2. 关键是路由器具有什么“视图”并不重要,因为所有路由都是在控制器中完成的。C_0确实有全球视野。

对于源自 Amy 机器的每个新网络流,都必须重复此操作。创建一条从Rto 开始的路径X然后Y沿着它发送去往它的数据包是没有意义的话虽如此,流条目可以聚合。