OpenFlow协议及其简单仿真
在讲述本文的主旨之前,先来说一说SDN的三大要素:
1. 转发与控制分离,这使得网络交换机的数据转发变得更加简单、快速;同时,控制变成了网络操作系统中一个相对集中的逻辑功能。
2. OpenFlow协议,它向交换机传送转发表,交换机依此转发报文。这种做法与传统网络完全不同。在传统网络架构中,交换机和路由器需要自己决定报文的转发路径,这可能会给网络运营商带来一些不可预知的负面影响,包括成本增加、性能降低、上市时间延缓 等。有了SDN,控制软件决定报文的转发路径,使得运营商可以“随心所欲”地控制网络。
3. 具有一致性的、全系统范围的网络操作系统可编程接口,它能让网络实现真正意义上的可编程或者软件定义。如果不能实现转发与控制分离,那么几乎所有SDN所能带来的好处都无法体现;如果能实现转发和控制分离,但没有OpenFlow协议,那么就需要通过其它途径,将所需要的流量表信息传递给交换机。OpenFlow就是实现这一功能的行业标准.
以上可以看出OpenFlow对于SDN的重要性不言而喻,本文将就OpenFlow的相关内容做一定总结,以及简单的OpenFlow仿真平台的搭建.
1 .OpenFlow简介
OpenFlow是由斯坦福大学的Nick McKeown教授在2008年4月ACM Communications Review上发表的一篇论文OpenFlow: enabling innovation in campus networks首先详细论述了OpenFlow的原理。由该论文课题可知OpenFlow提出的最初出发点是用于校园内网络研究人员实验其创新网络架构、协议,考虑到实际的网络创新思想需要在实际网络上才能更好地验证,而研究人员又无法修改在网的网络设备,故而提出了OpenFlow的控制转发分离架构,将控制逻辑从网络设备盒子中引出来,研究者可以对其进行任意的编程从而实现新型的网络协议、拓扑架构而无需改动网络设备本身。
OpenFlow的思路很简单,网络设备维护一个FlowTable并且只按照FlowTable进行转发,FlowTable本身的生成、维护、下发完全由外置的Controller来实现,注意这里的FlowTable并非是指IP五元组,事实上OpenFlow 1.0定义的了包括端口号、VLAN、L2/L3/L4信息的10个关键字,但是每个字段都是可以通配的,网络的运营商可以决定使用何种粒度的流,比如运营商只需要根据目的IP进行路由,那么流表中就可以只有目的IP字段是有效的,其它全为通配。