《软件定义网络原理与应用》课程教学探究
2016-05-14李养群周梅
李养群 周梅
摘要:《软件定义网络原理与应用》是一门较为前沿的课程。对该课程教学内容、实验内容、教学方法和考核方法进行了较为全面的梳理和总结。从基础原理介绍、经典应用场景分析方面探讨了SDN网络技术原理与实现过程,启发学生结合网络知识进行思考。加强实践内容知识考核,考试中增加实验常见问题和解决方法内容,提高学生的学习积极性,以实现良好教学效果。
关键词关键词:SDN网络技术;课程内容体系;实验内容体系;教学改革
DOIDOI:10.11907/rjdk.161194
中图分类号:G434文献标识码:A文章编号文章编号:16727800(2016)007021302
0引言
软件定义网络(SoftwareDefined Networking,简称SDN)技术起源于斯坦福大学于2008年提出的OpenFlow技术。OpenFlow的基本原理是将网络控制功能与转发功能相分离,网络设备根据自身的流表(Flow Table)进行数据包转发,而控制器实现对设备流表的管理,例如添加、修改、删除等操作,同时控制器可将该功能通过应用编程接口向用户开放,管理人员根据需求开发各种应用,实现网络的灵活部署和管理。开放、集中式的软件控制模式,对目前的网络架构势必带来影响,同时建立在其之上的网络应用也必然要随之演进,其架构如图1所示。基础设施层主要包含网络路由交换设备等。在控制层,通过Openflow接口协议,可获得网络状态,并将状态信息反馈给应用。应用根据用户指示,将指令通过控制器下发给路由设备的流表中,从而实现控制功能。在应用层,用户根据控制器提供的北向接口开发和定制个性化应用,实现网络的灵活管控。
SDN网络与传统网络架构相比,具有如下特点:①控制功能与转发功能相分离;②可由软件通过开放API进行灵活管理和配置;③网络功能虚拟化,网络部署更灵活;④简化网络管理,通过控制器实现全局或者部分网络的管控。
SDN技术在工业界得到了广泛应用。Google公司已经在其内部部署SDN广域网络连接各地数据中心,通过SDN技术实现了带宽利用率100%。思科公司也提出了开放式网络环境SDN解决方案,提供了onePK开发工具套件,计划在未来的硬件产品中均支持SDN功能。腾讯互联网企业也正在积极研究SDN技术以实现流量管理控制和流量按需调度。运营商正在积极研究和探讨SDN技术如何应用于数据中心建设、城域网骨干网、接入网等,以及SDN在未来网络演进中的角色和方法Georg Hampe等针对SDN如何应用到电信网中进行了研究。SDN技术得到越来越多的应用,鉴于此,笔者学校网络工程专业新开设了《软件定义网络原理与应用》这门课程。
这门新开课程面临着无实践经验可借鉴、无教学内容可参考、无实际教材可选用、无实验内容可操作的情况。具体如下:
(1) 课程内容体系确立。《软件定义网络原理与应用》是一门具有一定的理论性、综合性和实践性课程,内容前沿,概念较多,涉及了计算机网络原理、操作系统、网络应用开发等内容,内容比较繁杂,具有一定的难度。因此,课程内容既要介绍基础理论知识,又要确保学生具有实践应用开发能力,通过实验实践活动提高理论认识。
(2) 实验内容、平台的选择与定位。作为前沿技术,虽然已经有相当多的实验模拟及仿真平台,但这些平台主要用于科研验证或实际工程实战,对于初学者而言,有一定难度。在这些科研或者工程开发平台之上,如何凝练出关键知识点,建立与之相符的实验内容及实验平台,需要结合教学实践进行探索。
(3) 教学方法和手段的选择。目前的教学主要采用理论教学加辅助实验的方式进行,这种方式是当前的主流教学方式,大部分教师也习惯于这种教学方式,但该方法的缺点也是相当明显的。传统教学方式从知识点出发,忽视课堂内容的目标性,学生学习之后,对于如何解决实际问题仍然无法给出明确的思路和解决方法。因此,传统的以知识点为中心的课堂理论教学必须改革,需将科研项目和教学内容相结合,以此吸引学生的学习兴趣,提高学习效果。
(4) 考核方式的调整和完善。目前考核方式基于平时成绩和期末考试成绩,期末考试主要考核理论知识,这导致部分学生不重视实验,在期末考试时根据知识点进行短期突击,导致成绩无法体现实际问题解决能力。另外,由于实验条件限制,多名同学共享实验环境,造成部分学生实验“打酱油”的现象。
2课程教学模式
(1)教学理念和思路。目前,各学校都在积极参与国家“工程教育专业认证”,《软件定义网络原理与应用》课程应用性强,是学生在未来工作中直接应用的重要技能。因此,要充分围绕“理论扎实和灵活应用”这两个方向进行教学,充分提高学生的应用和动手能力。课程教学体系、教学方法和考核方法均围绕该课程的“前沿性,应用性、综合性”特点而展开。
(2)教学内容确立。SDN网络技术最主要的特点在于控制与平面相分离、可编程等特点。因此,《软件定义网络原理与应用》课程也应根据“控制面、转发面、应用层”这3个内容展开,并提供与之配套的应用场景。针对SDN网络技术的这种特点,结合本课程的“前沿性,应用性、综合性”要求,提出了图2所示的教学体系。首先,将课程内容分为3大块:基础理论、支撑技术以及应用场景,将应用场景内容贯穿于整个内容体系之中。在基础理论中,针对应用场景,分析新的理论和技术可以为应用场景的实现带来哪些便利?有哪些作用为用户带来哪些收益?在基本技术中,为了实现这些应用场景,需要使用哪些新技术?最后在应用场景中,给出具体的实施方法和效果。在基础理论中,主要讲述SDN网络体系架构,理解控制面与转发面相分离的思想,并阐述支持这种分离机制的Openflow协议原理以及网络虚拟化思想。在基本技术环节中,进一步阐述支持技术,包括Openflow协议技术、网络控制器、网络控制器与应用层的北向接口和面向网络设备的南向接口,以及RESTful API和服务编排技术、网络拓扑管理技术等。在应用场景中,着重介绍当前SDN网络技术应用最为广泛的一些场景,例如数据中心虚拟化技术、数据中心网络虚拟化、网络资源监控与分配、网络安全管理、网络流量识别与管控等应用场景。
(3)实验内容体系架构。课程实验内容体系架构如图3所示。实验内容分为基本概念实验与综合实验。基本概念实验主要用于验证SDN网络技术基本概念和原理,包括各种Openflow流表控制实验、开源控制器实验、网络状态的监控以及路由表的下发、网络虚拟化技术VxLAN等。而编程接口主要从SDN网络可编程的角度进行验证性分析,帮助理解采用主流的编程方式实现网络的动态管理。
(4) 教学和考核方法。结合上述典型应用场景和实验案例,采用案例驱动教学法。围绕着“应用场景需求→如何实现?需要哪些技术 → 具体实现→实现结果总结与分析→凝练对SDN网络的认识”的思路展开。例如,针对网络安全管理实验,需要针对来自不同用户的网络流量执行不同的转发策略,即在传输时,不同用户的流量路径不同。对不可靠用户的流量将其定向到防火墙进行过滤,