Floodlight学习笔记
一、Floodlight
Floodlight 是一个 OpenFlow 控制器(“ Floodlight 控制器”)和基于Floodlight 控制器构建的应用程序集合。
实现了一组通用功能来控制和查询 OpenFlow 网络,而在它之上的应用程序实现不同的功能来解决网络上的不同用户需求。
下图显示了Floodlight 控制器、使用 Floodlight 编译为 Java 模块构建的应用程序,以及基于 Floodlight REST API 构建的应用程序之间的关系:
二、Floodlight v1.2
v1.2版本建立在 v1.1 的改进基础上,重点是更强大且功能更丰富的核心模块,包括完全重写的设备、拓扑和转发模块。一个新的统计模块提供端口带宽统计,还提供多线程和统计收集示例。IPv6、链路延迟、OF-DPA、消息侦听器以及更多令人兴奋的功能。
- 新的和改进的转发、路由和拓扑模块,支持 OpenFlow 岛之间的循环
- 新的 IPv6 支持,包括 IPv6 类、转发支持以及集成到设备管理器模块
- 新的和改进的设备管理器模块修复了许多错误并添加了新功能,包括 IPv6
- Floodlight 和交换机之间以及通过 LLDP 的交换机之间的新链路延迟跟踪/更新
- 用于收集端口带宽消耗的新统计模块
- 用于通知消息处理管道结束的新ICompletionListener
- 新的 传出消息侦听器,用于通知写入交换机的消息
- 使用版本位图和 hello 标头版本的新 OpenFlow 版本协商
- 新的 开关 表功能支持和暴露给用户模块
- 用于 OXM 和其他 OpenFlow 类型的新 人类可读 JSON 序列化程序
- 新的 OF-DPA 驱动程序,可轻松与 OF-DPA 开关连接;转发中的示例使用
- 在 UDP 数据包中使用的新 SPUD 支持
- 对静态流推送器的新mask匹配支持
- 用于拉取请求自动化单元测试的新 Travis 持续集成
- 新的 Maven 构建支持;ant也支持
- 重构核心包以将大多数接口实现移至 core.internal
- 更新了 LoadBalancer 模块以使用单个主机和多个负载平衡连接
- 转发可以选择设置 send-flow-removed 标志
三、支持的拓扑
Floodlight 当前具有两个响应式数据包转发应用程序,它们具有不同的行为并使用如下所述的拓扑:
1、转发
只要在指定的超时间隔(默认为 5 秒)内没有通过路径发送流量,通过转发安装的路径就会超时
2、Learning Switch: A simple L2 learning switch
环路拓扑中的交换机无法工作(v1.2可以)
转发性能的效率远低于其他方法
此外
允许用户在网络中主动安装转发路径:
静态流入口推送器应用程序Static Flow Entry Pusher application
允许逐个交换机安装流条目,从而根据用户明确选择的交换机端口创建转发路径
电路推送器应用程序Circuit Pusher application
建立在静态流条目推送器、设备管理器和基于其 REST API 的路由服务之上,以在单个 OpenFlow 岛内构建单个最短路径电路
四、转发流匹配配置Forwarding Flow Match Configuration
如果您想指定转发将在流中使用的匹配字段,您可以在 src/main/resources/floodlightdefault.properties 中修改以下内容。
net.floodlig