问题标签 [ryu]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1487 浏览

openflow - 在 RYU App 中注册新的命令行选项

我需要能够从我的 simple_switch.py​​ 应用程序中读取路径文件。我已将以下代码添加到 python 中的 simple_switch.py​​ 中。

我尝试按如下方式启动应用程序。

但是我收到以下错误。

看起来我需要在某个地方注册一个新的命令行选项才能使用它。有人可以指出我该怎么做吗?也有人可以解释如何访问程序中的文件(text.txt)吗?

0 投票
0 回答
110 浏览

python - 用于将流条目预编程到交换机中的 API

我在我的 simple_switch.py​​ 中使用以下函数来填充到交换机的流。

正如你在上面看到的,它需要“msg.buffer_id”。现在这个“msg”来自传递给事件处理程序的 PACKET_IN 事件。我想知道是否有更通用的 API 可以鉴于我知道路径并希望对流进行预编程,用于填充流。

0 投票
0 回答
1191 浏览

python - Paramiko.ssh_exception.SSHException:通道关闭

我刚刚遇到了将 SDN 交换机 pica 8 3290 与 ryu 的 of-config 库和 python paramiko 库连接的问题。

这是回溯消息:

我用谷歌搜索了这个问题,paramiko.ssh_exception.SSHException: Channel closed。但是,我的问题没有任何合适的解决方案。

任何人都可以给我一些指示来解决这个问题吗?

0 投票
3 回答
925 浏览

python - 为什么在推送 MPLS 标头后不从 ovs 交换机(版本 2.3.1)转发数据包?

我正在创建 ryu 应用程序来推送和弹出 mpls 标签。这是 ovs(2.3.1 版)交换机 s1 上的流条目:

任何人都知道为什么即使流条目匹配也不转发数据包。因为如果我打开 Wireshark 并查看 s1-eth2 以检查 mpls 标头,则没有检测到具有 mpls 标头或 ethertype = 0x8847 的数据包。

我在 s1-eth2 看到的只有数据包是 ICMPv6(路由器请求消息)、DHCP 和 MDNS。它们中的任何一个都与我从主机 1 发送到 h2 的 ping 无关。我的拓扑:h1-s1-s2-h2

我的代码有错误还是 ovs 或 openflow_v1.4 ryu 中的错误?

谢谢。

0 投票
1 回答
1306 浏览

openflow - 如何使用 OpenFlow 和 Ryu 控制器“激活”被 STP 禁用/阻止的端口,以便我可以通过它转发数据包?

我正在寻找在带有环路的拓扑中使用 SDN 网络中的 OpenFlow 1.3 协议发送数据包的方法。我选择的控制器是 Ryu。为了识别我正在捕获 ARP 数据包的主机并避免洪水风暴,我正在使用STP

我的问题是,当我的路由算法计算的路径包含被 STP 阻止/禁用的端口时,连接无法完成(主机无法相互 ping 通)。

经过思考后,我得出一个结论,即我需要“激活”我的路由路径上的禁用/阻塞端口。但我找不到任何方法来做到这一点..

所以现在的问题是:我怎样才能实现我的解决方案?有没有办法“激活” Ryu 中的端口?或者,如果我的解决方案无法实现,还有其他方法可以用来解决这个问题吗?

0 投票
3 回答
2693 浏览

ryu - Ryu:将数据路径转换为交换机 IP 地址

目前,我正在 Ryu(开源 OpenFlow 控制器)之上编写一个应用程序。

要创建 OF-Config 连接(或 OVSDB 连接),我想我必须获取连接到 Ryu 控制器的每个交换机的 IP 地址。但是,我找不到将数据路径对象或数据路径 ID 转换为交换机 IP 地址的 API。

所以,如果有这样的API,我想知道它。如果没有,我期待收到一些关于在没有 IP 地址的情况下建立连接的方法的评论。

0 投票
1 回答
1763 浏览

networking - 如何使用 Ryu 获取 OVS 端口信息

我目前正在使用 OpenVSwitch 和 Ryu SDN 控制器框架建立一个测试平台。OVS 在 linux 上运行,具有三个端口(包括内部端口),如以下输出所示:

当使用以下代码片段(最小的工作示例)连接新交换机时,我设法得到通知:

当所示开关连接时,控制器正确打印Router Munic has joined!。但是,用于获取有关可用端口信息的代码片段不起作用。您知道如何获取 ryu 中的可用端口吗?代码片段来自这个问题

背景:OVS 有两个物理端口,一个连接到“外部”网络,另一个连接到“内部”网络。我不仅需要知道哪些端口可用,我还需要知道哪个端口是哪个。任何想法如何解决这个问题?提前致谢!

0 投票
1 回答
1108 浏览

mininet - get_all_link(self) 为一个拓扑输出所有可能的链接

我有 4 个交换机和 4 个主机的拓扑。开关构成一个回路。我的目标是了解交换机连接到控制器时的网络拓扑。问题是该函数get_all_links()返回所有可能的链接,或者至少返回一些没有意义的东西。port_modify我在触发事件时调用该函数。

这是我用来构建拓扑的代码:

这是我的 Ryu 代码:

所以当我检查链接时,它给了我 24 个链接,而只有 4 个。

该代码部分位于SDNLab上。我删除了一些事件以节省一些空间。完整代码请访问:https ://github.com/Ehsan70/RyuApps/blob/master/topo_learner.py

0 投票
0 回答
288 浏览

mininet - 集线器:未捕获的异常-> KeyError:

我使用 Ryu 制作了一个控制器来处理路径和开关。该代码似乎正在运行,但我收到以下错误。它是异步的,这意味着它似乎与任何事件无关,并且每隔一段时间就会发生一次。问题是这些文件是 Ryu 文件,我没有更改它们。

我正在使用 mininet 来虚拟化网络。

有任何想法吗?

编辑:文件:

0 投票
1 回答
2216 浏览

mininet - 拓扑中存在循环时 Mininet pingall 失败

我使用 Ryu 作为我的 SDN 控制器来控制具有循环的拓扑。

我正在使用学习交换机技术来路由数据包。我的主要功能/处理程序是:

我需要在我的拓扑中有循环。有谁知道如何正确配置拓扑/控制器以使循环可ping?

我的完整控制器代码:https ://github.com/Ehsan70/RyuApps/blob/master/topo_learner.py 我的拓扑代码:https ://github.com/Ehsan70/RyuApps/blob/master/Pkt_Topo_with_loop.py