论文部分内容阅读
近年来,软件定义网络(Soft Defined Network,SDN)的诞生无疑推动了传统分布式网络向集中式网络的过渡,而OpenDaylight是目前最为流行的开源SDN控制器,其开放的应用编程接口,以及控制与转发分离的思想被业内所接受。但是OpenDaylight仅仅实现了网络转发的基础功能,并没有针对各种各样的业务以及应用做相应的拓展,所以其并不能良好的满足当前网络多样化的业务需求,无法灵活的选择路由策略,这与SDN开放北向接口,面向业务的原则相违背,严重制约了软件定义网络的发展,而这正是木文所要解决的主要问题。本文基于 OpenDaylight平台,利用控制平面的可编程性质,研究并实现了基于业务需求的路由引擎,该引擎可以根据不同的业务需求收集底层网络的统计信息,从而作出最佳的路由决策。本文做的主要工作有:(1)通过分析OpenDaylight中web界面的开发步骤以及Yang模型的定义方法设计并实现了业务描述模块来描述具体的业务需求,获取描述参数作为路径计算的依据;(2)通过分析OpenDaylight中网络拓扑的获取流程,监听底层网络节点的变化通知获取网络的全局拓扑,同时自定义Graph数据结构存储拓扑数据;(3)根据具体的业务需求利用控制器向底层交换机下发封装了时间戳的 LLDP报文、Echo request消息以及OFPT_STATS_REQUEST消息,获取网络的带宽和时延信息,并将这些信息记录到Graph数据结构中;(4)设计并实现了路径计算模块,利用Dijkstra算法以及Yen算法分别计算基于跳数、时延和带宽的转发路径,并将结果写回到DataStore; (5)对本文设计的路由引擎进行功能性测试,确定其满足设计要求。本文在OpenDaylight基础上设计并实现了基于业务需求的路由引擎,经过测试,该引擎达到了预期效果,能够根据不同的业务需求触发不同的路径计算过程,从而得到最佳的路由决策。