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

服务器 数据中心
关于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

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

NVGRE

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

隧道和网络虚拟化技术 nvgre

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隧道配置。

责任编辑:何妍 来源: SDNLAB
相关推荐

2013-12-03 15:47:11

叠加网络VXLANNVGRE

2011-11-18 14:00:23

VXLANNVGREVLAN

2019-06-27 15:08:04

网络虚拟化VXLAN

2022-04-02 06:55:23

VXLAN虚拟化网络

2014-04-09 09:55:49

SDN技术SDN软件定义网络

2018-02-28 14:29:18

2011-11-14 09:10:08

虚拟化

2014-06-12 10:17:25

SDN网络虚拟化

2011-10-17 12:20:53

NVGREVXLAN

2011-05-27 09:19:04

OpenFlow网络虚拟化

2013-09-25 10:06:49

桌面虚拟化Persistent

2012-11-02 09:35:20

VXLANVmware网络协议

2011-12-19 10:38:01

网络虚拟化

2013-05-13 11:43:09

虚拟化中国虚拟化

2015-12-14 10:50:28

网络虚拟化FlowVisor

2015-12-14 14:11:26

网络虚拟化FlowVisor

2014-08-20 10:11:22

软件定义网络

2012-08-03 09:42:47

OpenFlowSDN网络虚拟化

2014-02-13 09:10:38

SDN网络虚拟化思科

2015-12-14 11:47:23

网络虚拟化FlowVisor
点赞
收藏

51CTO技术栈公众号