机房360首页
当前位置:首页 » 虚拟化资讯 » 隧道和网络虚拟化:NVGRE vs VXLAN

隧道和网络虚拟化:NVGRE vs VXLAN

来源:SDNLAB 作者:DJ编辑 更新时间:2015/9/22 16:05:20

摘要:随着各种新技术的兴起,一项标准已经无法满足需求,技术巨头们争先恐后的想让自己的标准成为业内统一的标准,其中NVGRE和VXLAN就是典型的例子,那么这两项技术的区别到底在哪里呢?

  关于NVGRE和VXLAN隧道协议相信大家都不陌生,但是事实上隧道协议只是虚拟化网络中的一部分,它并不提供实质性的功能,只是定义不同虚拟机之间如何封装、转发数据包。本文想强调两点:其一,NVGRE和VXLAN都是用三层协议封装二层协议;其二,这两项技术都解决了VLAN规模固定的问题,不再局限于4094个。随着各种新技术的兴起,一项标准已经无法满足需求,技术巨头们争先恐后的想让自己的标准成为业内统一的标准,其中NVGRE和VXLAN就是典型的例子,那么这两项技术的区别到底在哪里呢?

  VXLAN

  VXLAN主要是由Cisco推出的,VXLAN的包头有一个24bit的ID段,即意味着1600万个独一无二的虚拟网段,这个ID通常是对UDP端口采取伪随机算法而生成的(UDP端口是由该帧中的原始MAC Hash生成的)。这样做的好处是可以保证基于5元组的负载均衡,保存VM之间数据包的顺序,具体做法是将数据包内部的MAC组映射到唯一的UDP端口组。将二层广播被转换成IP组播,VXLAN使用IP组播在虚拟网段中泛洪而且依赖于动态MAC学习。VXLAN封装将数据包大小扩展到50字节,如下图所示:


  由于数据包比较大,所以VXLAN需要借助支持大型帧的传输网络才能支持数据包规模的扩展。

  NVGRE

  NVGRE主要支持者是Microsoft。与VXLAN不同的是,NVGRE没有采用标准传输协议(TCP/UDP),而是借助通用路由封装协议(GRE)。NVGRE使用GRE头部的低24位作为租户网络标识符(TNI),与VXLAN一样可以支持1600个虚拟网络。为了提供描述带宽利用率粒度的流,传输网络需要使用GRE头,但是这导致NVGRE不能兼容传统负载均衡,这是NVGRE与VXLAN相比最大的区别也是最大的不足。为了提高负载均衡能力建议每个NVGRE主机使用多个IP地址,确保更多流量能够被负载均衡。


  NVGRE不需要依赖泛洪和IP组播进行学习,而是以一种更灵活的方式进行广播,但是这需要依赖硬件/供应商。最后一个区别关于分片,NVGRE支持减小数据包最大传输单元以减小内部虚拟网络数据包大小,不需要要求传输网络支持传输大型帧。

  实验

  OVS(open Vswitch)可以支持这两种隧道协议。可以实现两个虚拟机的简单通信,在两个主机上面分别运行VM,并且在这个VM之间创建一个隧道。如果没有GRE隧道,两个VM就无法连接。在主机之间创建隧道的简单步骤:

  1、主机1配置如下:

  ovs-vsctl add-br brgre

  ovs-vsctl add-br brvm

  ovs-vsctl add-port brgre eth0

  ifconfig eth0 0

  ifconfig brgre 192.168.1.100 netmask 255.255.255.0

  route add default gw 192.168.1.1 brgre

  ifconfig brvm 10.1.2.10 netmask 255.255.255.0

  ovs-vsctl add-port brvm gre1 -- set interface gre1 type=gre options:remoteip=192.168.1.111

  2、主机2配置如下:

  ovs-vsctl add-br brgre

  ovs-vsctl add-br brvm

  ovs-vsctl add-port brgre eth0

  ifconfig eth0 0

  ifconfig brgre 192.168.1.111 netmask 255.255.255.0

  route add default gw 192.168.1.1 brgre

  ifconfig brvm 10.1.2.11 netmask 255.255.255.0

  ovs-vsctl add-port brvm gre1 -- set interface gre1 type=gre options:remoteip=192.168.1.100

  在每台主机中创建2个桥,其中brvm用于仿真虚拟机,另一个brgre用作与其他主机的做隧道(VTEP)连接。eth0连接brgre,brgre绑定IP用于实现隧道。为了简化实验,我将GRE隧道设置在同一子网中,当然可以放于不同域中使仿真场景更真实。下面就可以进行测试了,10.1.2.10和10.2.1.11应该是可以ping通的,这两个VM域通过隧道连接,同样,也可以改成VXLAN隧道配置。

  责任编辑:DJ编辑

机房360微信公众号订阅
扫一扫,订阅更多数据中心资讯

本文地址:http://www.jifang360.com/news/2015922/n940472535.html 网友评论: 阅读次数:
版权声明:凡本站原创文章,未经授权,禁止转载,否则追究法律责任。
相关评论
正在加载评论列表...
评论表单加载中...
  • 我要分享
推荐图片