问题标签 [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 投票
0 回答
24 浏览

python - 如何针对这个问题构建更好的 SDN Controller?

我正在尝试为家庭作业解决这个问题:

https://imgur.com/qzONfiV

我有一个带有 3 个 AP 和 2 个站的 Mininet 网络。一个站是固定的,另一个是无人机,可以在 x 轴和 y 轴的有限范围内随机自由移动。AP由遥控器控制,遥控器决定STA1和STA2之间的流量必须转发到AP3的哪个端口。所以有几秒钟,当 STA2 改变他的 AP(从 AP1 到 AP2 或反之亦然)时,STA1 无法到达它。

基本控制器每 5 秒检查一次是否需要更改转发端口。如果我们每 0.3 秒从 STA1 ping 到 STA2 15 分钟,这会导致大约 30% 的数据包丢失。增加超时不是一种选择,因为它会导致更多开销。

我没有想到让它变得更好,如果您有任何建议,请提供帮助。

0 投票
2 回答
1603 浏览

python - Ryu SDN 控制器 - 如何获取有关流动数据包的特定信息

我正在尝试为个人项目学习 Ryu SDN 控制器,我需要知道某些数据包信息来决定如何处理它。

我已经导入了:

通过上述模块,我进行了一系列打印来检查完整的数据包规格:

当我尝试建立 TCP 连接时,我收到以下打印:

我的问题是:例如,我如何从 insde tcp_pkt 检索目标端口:

有没有类似 tcp_pkt.dst() 的东西?还是有另一种方法来捕捉这个价值?

0 投票
1 回答
519 浏览

python - 添加新表流时的 Ryu 控制器 struct.error

我正在编写一个 Ryu a L4 swtich 应用程序,我正在尝试执行以下操作:当识别到 TCP/UDP 数据包时,应用程序检查本地数据库以查看数据包参数是否来自已知攻击者(源 IP、目标IP 和目标端口)。

如果数据包与记录在攻击者数据库中的数据包匹配,则将流添加到交换机以丢弃特定数据包(此流的持续时间为 2 小时),如果数据包不匹配,则添加流以转发到特定交换机端口(此流程的持续时间为 5 分钟)。

问题是,当控制器将新流发送到交换机/数据路径时,我收到以下错误:

这是我的完整代码:

当我尝试建立一个被识别为已知攻击者的 TCP 连接时,上述错误出现在 add_security_flow() 类方法的末尾,当他尝试将流修改 (datapath.send_msg(mod)) 发送到交换机/数据路径。

我究竟做错了什么?我是否缺少某种变量?

0 投票
1 回答
2090 浏览

python - 如何修复 Linux 中的“ImportError: No module named ...”?

我想尝试来自http://csie.nqu.edu.tw/smallko/sdn/dijkstra_ryu.htm 的代码,但是当我尝试运行代码时,它不起作用。总是出现“ImportError: No module dijkstra_ryu.py”错误

我正在使用 Ubuntu 16.04.4 LTS、python 2.7.12 和 3.5.2 以及 ryu 4.23。

这是发生的事情:

我也尝试过使用:

但它一直显示相同的错误

可悲的是,我也试试这个:

然后出现一个新错误

我已经检查了每个模块并且没有遗漏任何部分。

0 投票
2 回答
1139 浏览

mininet - ryu 自定义脚本未使用自定义 mininet 拓扑运行

我是使用 mininet 和 RYU 控制器的新手。我在 RYU 中实现了 Dijkstra 算法,如 --> http://csie.nqu.edu.tw/smallko/sdn/dijkstra_ryu.htm

在 mininet 上,我创建了我的自定义拓扑,如下所示。但是在 mininet 拓扑上运行控制器时,会出现以下错误——

不支持的版本 0x1。如果可能,将开关设置为使用数据路径上的版本 [4] 之一('127.0.0.1',50884)

不知道如何在拓扑中将交换机的版本改为1.3。我也不知道如何从链接中更改 RYU 代码中的切换协议版本。

请帮帮我!!!

0 投票
1 回答
855 浏览

sdn - 如何在 Ryu 中获取链路的丢包和延迟

要通过发送流的最低成本指定路径,我想通过以下等式计算 Ryu 控制器中的链接成本:

成本(e)=延迟(e) + PL(e) ∀ e ε E

delay(e) 是链路 e 的延迟。PL(e) 是链路 e 的丢包率。如何使用 Ryu 和 OpenFlow 实时获取链路的延迟和丢包?

谢谢。

0 投票
1 回答
646 浏览

sdn - Ryu 控制器没有链接

我正在尝试构建一个 ryu 应用程序,并尝试获取 owl 拓扑。因此,我使用了 ryu.topology.api 中的 get_link 和 get_switch 函数。获取开关没问题,但链接列表始终为空。

我也尝试使用 get_all_link 但结果是一样的。到目前为止,我发现很多例子都是他们使用这些功能,但这些都不适用于我的设置。

以下是我尝试过的一些示例: https ://github.com/Ehsan70/RyuApps/blob/master/BasicTopoLearner.py

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

我的 Ryu 版本是 4.32,我使用 mininet 的树形拓扑

干杯并感谢您的帮助

0 投票
0 回答
161 浏览

python - 如何使用 docker 构建 SDN 胖树拓扑?没有迷你网

我正在使用 docker 在两台服务器中使用 OVS - SDN 设置胖树拓扑。我构建了 7 台交换机(docker 容器)和 4 台主机,它们将连接到接入交换机。

  • 1个核心交换机
  • 2个汇聚交换机
  • 4个接入交换机
  • 4 台主机

现在我正在尝试将它们相互连接以获得胖树拓扑但没有成功。


问题1:如何连接胖树拓扑中的容器?

我在服务器之间创建了一个覆盖网络,并且在来自不同服务器的容器之间进行了 ping,但是当我启用 OVS 时,覆盖没有 ping。就像覆盖不允许OVS流一样。


问题 2:OVS 无法使用覆盖命令

问题 3:如何使用真实服务器进行 OVS-SDN 胖树拓扑?

我不想使用 MININET。除了码头工人,我可以做些什么来虚拟化我的交换机?

0 投票
1 回答
800 浏览

sdn - 如何使用 ryu 控制器向所有交换机发送数据包?

我需要测量 Ryu 控制器中的链接延迟。我想通过控制器为所有交换机发送分组输出消息,并计算发送分组输出消息和接收分组输入消息之间的时间。我是 Ryu 的初学者,不知道如何将具有特定 EtherType(例如 0x8fc)的数据包发送到所有交换机。我已经获得了所有交换机的 MAC 并构建了一个数据包。如何将具有特定 EtherType 的数据包发送到所有交换机?我不知道每个开关的 db 参数是什么?

0 投票
1 回答
332 浏览

python - 带有 ARP 循环的 RYU 控制器 - Mininet

环路拓扑

我不知道如何管理这个 mininet 拓扑中的 ARP 循环。我已经使用 Python API 编写了拓扑代码并使用了 simple_switch.py​​ Ryu 控制器,但我仍然无法将 h1 ping 到 h2。任何人都可以提供帮助吗?