sauravs2006-max/SDN-based-link-failure-detection-and-recovery-using-Ryu-and-Mininet

GitHub: sauravs2006-max/SDN-based-link-failure-detection-and-recovery-using-Ryu-and-Mininet

一个基于 SDN 的链路故障检测与动态恢复的原型系统,演示控制器与交换机的实时协同。

Stars: 0 | Forks: 0

# 链路故障检测与恢复 ## 问题描述 本项目的目标是检测网络中的链路故障,并使用软件定义网络(SDN)动态更新路由。控制器持续监控拓扑变化,检测链路何时发生故障,相应地更新流表规则,并确保网络连通性保持或恢复。 ## 设置/执行步骤 步骤 1:打开终端并进入项目文件夹 cd ~/sdn_project 步骤 2:启动 Ryu 控制器 cd ryu export PYTHONPATH=$(pwd) python3 ryu/cmd/manager.py ../reroute_controller 步骤 3:打开新终端并清理 Mininet sudo mn -c 步骤 4:启动 Mininet 拓扑 sudo mn --topo linear,3 --controller=remote 步骤 5:验证正常网络运行 pingall 步骤 6:模拟链路故障 link s1 s2 down pingall 步骤 7:恢复链路 link s1 s2 up pingall 步骤 8:执行延迟测试 h1 ping h3 步骤 9:执行吞吐量测试 iperf h1 h3 ## 预期输出 - 在正常情况下,所有主机使用 pingall 成功通信,丢包率为 0%。 - 当交换机 s1 和 s2 之间的链路被关闭时,观察到丢包,表明网络故障。 - 控制器检测到链路故障并在终端中记录事件。 - 恢复链路后,连接性重新建立,pingall 再次显示通信成功。 - 延迟和吞吐量测试在故障期间显示性能下降,在恢复后显示正常性能。 ## 执行证明 ### 1. 控制器初始化 Ryu 控制器成功启动并等待网络事件。 ![控制器初始化](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/3eee35eab3190357.png) ### 2. Mininet 拓扑设置 Mininet 网络已初始化交换机和主机。 ![Mininet 拓扑](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/0cf1db9006190359.png) ### 3. 正常网络运行 所有主机成功通信,无丢包。 ![Pingall 成功](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/de067a5d59190400.png) ### 4. 链路故障场景 当交换机之间的链路被关闭时,观察到丢包。 ![链路故障](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/da19f5c647190401.png) ### 5. 控制器检测链路故障 控制器检测到链路变化并记录事件。 ![控制器日志](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/cd1b74cd3e190402.png) ### 6. 链路恢复 恢复链路后,通信重新建立。 ![链路恢复](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/e45f841edd190403.png) ### 7. 延迟测试 使用 Ping 测量主机之间的延迟。 ![延迟测试](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/c71dc2e1a5190404.png) ### 8. 吞吐量测试 使用 iperf 测量网络吞吐量。 ![吞吐量测试](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/bb4663903a190407.png) ### 9. 流表项 控制器安装的流规则显示如下。 ![流表](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/1b07ff058f190408.png) ## 参考 - Ryu SDN 框架文档:https://ryu.readthedocs.io/ - Mininet 文档:http://mininet.org/documentation/ - OpenFlow 协议概述:https://opennetworking.org/
标签:iperf, Mininet, pingall, Ryu控制器, SDN, 动态流表更新, 实时网络适应, 实验环境搭建, 开源SDN, 控制器交换机交互, 流量重路由, 网络可靠性, 网络恢复, 网络拓扑监控, 网络故障演练, 软件定义网络, 连通性维护, 逆向工具, 链路故障恢复, 链路故障检测