软件定义网络PART 5
控制平面
SDN控制平面
什么是SDN控制平面?
SDN控制平面:一个或多个SDN控制器组成,是网络的大脑。
- 对底层网络交换设备进行集中管理,状态监测、转发决策以及处理和调度数据平面的流量;
- 向上层应用开放多个层次的可编程能力。
SDN控制器体系架构
南向网络控制
通过南向接口协议进行 链路发现、 拓扑管理、 策略制定、 表项下发等:- –链路发现和拓扑管理:利用上行通道对底层交换设备上报信息进行统一监控和统计;
- –策略制定和表项下发:利用下行通道对网络设备实施统一控制。
链路发现
获得SDN全网信息,实现网络地址学习、VLAN、路由转发
-
OF交换机直连链路的发现
– –LLDP协议链路层发现协议(Link Layer Discovery Protocol,LLDP)
-
OF交换机非直连链路的发现
– –广播
拓扑管理
监控和采集SDN交换机的信息,反馈工作状态和链路连接状态:- –定时发送带LLDP数据包的Packet_out消息,根据Packet_in消息获知交换机信息,监测交换机工作状态,完成网络拓扑视图更新;
- – 导致较慢的收敛过程,影响实时反馈;
策略制定
-
流表生成算法是影响控制器智能化水平的关键因素
-
针对不同层次的传输需求,制定相应的转发策略并生成对应的流表项
表项下发
通过流表下发机制控制交换机的数据包转发
-
–主动(proactive)下发:数据包到达交换机之前进行流表设置。
-
–被动(reactive)下发:交换机接收到一个数据包并且没有发现匹配的流表项,将其送给控制器处理。
北向业务支撑
- 通过北向接口为上层业务应用以及资源管理系统提供灵活的网络资源抽象;
- 北向接口定义是SDN领域关注和争论的焦点;
- REST API是用户比较容易接受的方式;
开源SDN控制器
主要开源控制器
POX( https://github.com/noxrepo/ )
- 采用Python语言开发的基于OpenFlow的控制器;
- 是NOX的兄弟版本,实现了简单的控制平面的功能。
- 简单、易上手
POX包括:
1、内核( core ):openflow和of_01 ;
2、组件( component )
Ryu( http://osrg.github.io/ryu/ )
NTT主导开发,RYU是一个基于组件的SDN框架
Ryu 主要组件与库函数
Floodlight( http://www.projectfloodlight.org/ )
Big Switch主导开发,企业级的OF控制器
参考资料:中国大学 MOCC SDN网络课程