openflow 消息如何从交换机路由到控制器?(SDN)

网络工程 转变 sdn 开放流
2022-02-06 05:57:14

我们都知道,在 SDN 中,当一个数据包到达交换机时,如果没有流,匹配这个数据包,交换机会生成一个 packet_in 消息并向控制器请求指令。

我的问题是,如果 openflow 交换机在启动时绝对没有规则,那么它首先如何与控制器通信。例如在下图中,如果 PC1 想与 PC2 通信,它将把它的数据包发送到交换机 1。由于交换机 1 没有匹配这个数据包的流,它会尝试咨询控制器。管理员已为每个交换机配置了控制器的 IP 地址。但是交换机上没有预先安装流来告诉他们将数据包发送到控制器的位置。

在此处输入图像描述

在 Mininet 中,每个交换机和运行 mininet 的主机系统之间都有一个逻辑链接。所以每个交换机都会在这个逻辑链路上发出 openflow 消息并到达控制器。

但在实际网络中,我们无法将每个交换机直接连接到控制器。

1个回答

网络建立后,控制器在识别交换机已添加到网络时将安装默认规则,以确保它从该交换机获取未被更高优先级规则解析的消息。安装的所有后续规则都被认为具有更高的优先级。

但在实际网络中,我们无法将每个交换机直接连接到控制器。

在 SDN 网络中,所有 OpenFlow 交换机都直接连接到控制器。回想一下,路由智能从 OpenFlow 交换机中移除并包含在控制器中。因此,OpenFlow 交换机在没有该连接的情况下无法更改其流规则。

传统的交换机和路由器不连接到 SDN 控制器,因为它们包含集中在 SDN 中的路由算法。

有多种方法可以创建控制器连接,但原则是每个 OpenFlow 交换机都直接与位于转发路径之外的控制器通信。