第36周:阶段项目——云网络简易 SDN 控制器
目标:综合运用前 5 周知识,基于 OVS 和 OpenFlow 实现一个简易 SDN 控制器,自动化构建和管理多租户虚拟网络。
1. 项目架构
1.1 整体架构
1 | ┌──────────────────┐ |
1.2 关键功能
1 | 控制器功能: |
2. 项目结构
1 | sdn_controller/ |
3. 拓扑搭建
3.1 setup_topo.sh
1 |
|
3.2 在每台主机上运行
1 | # 在 Host A 上: |
4. SDN 控制器
4.1 sdn_controller.py
1 | #!/usr/bin/env python3 |
4.2 requirements.txt
1 | ryu==4.34 |
5. 启动与运行
5.1 启动控制器
1 | # 安装依赖 |
5.2 配置 OVS 连接控制器
1 | # 在每台 OVS 主机上 |
5.3 测试
1 | # === 测试 1:同租户互通 === |
6. API 扩展
6.1 REST API
1 | # api.py — 简易 REST API |
6.2 CLI 工具
1 | # cli.py — 简单的 CLI 工具 |
7. 高级特性
7.1 拓扑自动发现(LLDP)
1 | # topology.py — LLDP 发现 |
7.2 OpenFlow QoS
1 | # QoS:限速 |
7.3 监控与遥测
1 | # 端口统计 |
8. 主流 SDN 控制器
1 | Ryu(推荐入门): |
9. 测试用例
1 |
|
10. 性能优化
1 | # === 优化 1:批量流表下发 === |
11. 项目交付物
1 | 完整的项目结构: |
12. 学习路径总结
1 | 通过整个阶段(第 31-36 周),你已掌握: |
- 本文作者: CoderSong
- 本文链接: https://jack-song-gif.github.io/2026/05/27/第36周:阶段项目——云网络简易 SDN 控制器/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!