什么是网络虚拟化NV和SDN?

来源:互联网 发布:导入数据错误 编辑:程序博客网 时间:2024/05/16 16:23

话说最近网络虚拟化(Networking Virtualization,NV)和SDN真实热得发烫,先谈一下我个人的理解和看法。由于没有实际玩过相应的产品,所以也只是停留在理论阶段,而且尚在学习中,有些地方难以理解甚至理解错误,因此,特地来和大家交流一下。

早在2009年就出现了SDN(Software Defined Networking)的概念,但最近才开始被众人所关注,主要还是因为Google跳出来表态其内部数据中心所有网络都开始采用OpenFlow进行控制,将OpenFlow从原本仅是学术性的东西瞬间推到了商用领域。第二个劲爆的消息就是VMWare大手笔12.6个亿$收掉了网络虚拟化公司Nicira。

SDN只是一个理念,归根结底,她是要实现可编程网络,将原本封闭的网络设备控制面(Control Plane)完全拿到“盒子”外边,由集中的控制器来管理,而该控制器是完全开放的,因此你可以定义任何想实现的机制和协议。比如你不喜欢交换机/路由器自身所内置的TCP协议,希望通过编程的方式对其进行修改,甚至去掉它,完全由另一个控制协议取代也是可以的。正是因为这种开放性,使得网络的发展空间变为无限可能,换句话说,只有你想不到,没有你做不到。

 那SDN为什么会和NV扯上关系呢?其实他们之间并没有因果关系,SDN不是为实现网络虚拟化而设计的,但正式因为SDN架构的先进性,使得网络虚拟化的任务也得以实现。很多人(包括我自己)在最初接触SDN的时候,甚至认为她就是NV,但实际上SDN的目光要远大得多,用句数学术语来说就是“NV包含于SDN,SDN包含NV”。

再来看看NV,为什么NV会如此火爆,归根结底还是因为云计算的崛起。服务器/存储虚拟化为云计算提供了基础架构支撑,也已经有成熟的产品和解决方案,但你会发现一个问题,即便如此,虚拟机的迁移依然不够灵活,例如VMWare vMotion可以做到VM在线迁移,EMC VPLEX可以做到双活站点,但虚拟机的网络(地址、策略、安全、VLAN、ACL等等)依然死死地与物理设备耦合在一起,即便虚拟机从一个子网成功地迁移到另一个子网,但你依然需要改变其IP地址,而这一过程,必然会有停机。另外,很多策略通常也是基于地址的,地址改了,策略有得改,所以依然是手动活,繁杂且易出错。所以说,要实现Full VM Migration,即不需要更改任何现有配置,把逻辑对象(比如IP地址)与物理网络设备去耦(decouple)才行。这是一个举例,总而言之,目的就是实现VM Migration Anywhere within the DataCenter non-disruptively,尤其是在云这样的多租户(Multi-tanency)环境里,为每一个租户提供完整的网络视图,实现真正的敏捷商务模型,才能吸引更多人投身于云计算。

SDN不是网络虚拟化的唯一做法,Network overly(mac in mac, ip in ip)的方式也是现在很多公司实际在使用的,比如Microsoft NVGRE、Cisco/VMWare VXLAN、Cisco OTV、Nicira STT等。事实上overly network似乎已经成为NV实现的标准做法,SDN模型下的NV实现目前更多的是在学术、研究领域。新技术总是伴随大量的竞争者,都想在此分一杯羹,甚至最后成为标准。好戏才刚刚上演,相信会越发精彩。

个人觉得这是一个非常有意思的话题,希望和大家交流心得,互相学习.

NV的目标就是如何呈现一个完全的网络给云环境中的每一个租户,租户可能会要求使用任何其希望使用的IP地址段,任何拓扑,当然更不希望在迁移至公共云的情况下需要更改其原本的IP地址,因为这意味着停机。所以,客户希望有一个安全且完全隔离的网络环境,保证不会与其他租户产生冲突。既然vMotion之类的功能能够让虚拟机在云中自由在线漂移,那网络是否也能随之漂移呢?这里简单介绍下微软的Hyper-v networking virtualization,到不是因为技术有多先进,只不过他的实现细节比较公开,而其它公司的具体做法相对封闭,难以举例。

其实微软的思路很简单,就是将原本虚拟机的二层Frame通过NVGRE再次封装到 IP packet中进行传输,使得交换机能够通过识别NVGRE的Key字段来判断数据包的最终目的地。这其实就是一个Network Overlay的做法,它将虚拟网络与物理网络进行了分离。试想,公司A和公司B都迁移到公有云且就那么巧,他们的一些虚拟机连接到了同一个物理交换机上,现在的问题是,他们各自的虚拟机原本使用的私有IP段是一样的,如果没有VLAN就会导致IP冲突。但现在看来,这已经不是问题,因为虚拟机之间的通信都要通过NVGRE的封装,而新的IP包在物理网络上传输时是走物理地址空间的,而物理地址空间是由云服务提供者所独占的,因此不存在IP冲突的情况。

Figure 1: Server vs. network virtualization

Figure 2

Figure 3: IP address rewrite

总结一下就是,这里的网络虚拟化可以认为是IP地址虚拟化,将虚拟网络的IP与物理网络完全分离,这样做就可以避免IP冲突,跨子网在线迁移虚拟机的问题,微软的要求是:虚拟机可以在数据中心中任意移动,而客户不会有任何感觉,这种移动能力带来了极大的灵活性。

详情微软的NV资料可点击:http://technet.microsoft.com/en-us/library/jj134174.aspx

本站声明:本站原创文章可以转载,请注明来自SDNAP.com - SDN联合播报

0 0