隧道和网络虚拟化:NVGRE vs 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 netmask
route add default gw brgre
ifconfig brvm netmask
ovs-vsctl add-port brvm gre1 -- set interface gre1 type=gre options:remoteip=
2、主机2配置如下:
ovs-vsctl add-br brgre
ovs-vsctl add-br brvm
ovs-vsctl add-port brgre eth0
ifconfig eth0 0
ifconfig brgre netmask
route add default gw brgre
ifconfig brvm netmask
ovs-vsctl add-port brvm gre1 -- set interface gre1 type=gre options:remoteip=
在每台主机中创建2个桥,其中brvm用于仿真虚拟机,另一个brgre用作与其他主机的做隧道(VTEP)连接。eth0连接brgre,brgre绑定IP用于实现隧道。为了简化实验,我将GRE隧道设置在同一子网中,当然可以放于不同域中使仿真场景更真实。下面就可以进行测试了,和应该是可以ping通的,这两个VM域通过隧道连接,同样,也可以改成VXLAN隧道配置。
-
阿尔法路由器无法Telnet的解决方式
阿尔法路由器无法Telnet怎么办?下面就有小编分享阿尔法路由器无法Telnet的解决方式,欢迎大家学习!一、组网环境在阿尔法路由器的组网环境中,当配置完成后,所有的业务运行正常,通过外网或者阿尔法A上可以Ping通阿尔法B,但是无法Telnet到阿尔法B,如果先从外网登陆上,则...
-
服务器死机原因
服务器死机故障比较难以判断,一般分为软件和硬件两个方面。下面是YJBYS小编整理的服务器死机的解决方法,希望对你有帮助!1、软件故障:首先查看操作系统的'系统日志,可以通过系统日志来判断部分造成死机的原因;电脑病毒的原因;系统软件的bug或漏洞造成的死机,这种故...
-
用旧电脑轻松架设无线网络打印服务器
在工作中,单位需要打印的文件还是不少的,可是笔记本电脑连接一个打印机确实不方便,这样使用笔记本的同事们只有使用闪存将文件拷贝到打印室或办公室的台式电脑上去打印了,时间久了文件拷来拷去的确实有些麻烦,于是很多同事想将打印机设置一个共享打印,后来通过单位的...
-
ADSL无线路由器设置的方法
在这个全民wifi的时代,无线路由器当然成为了我们网络生活的主角,现在大家最关心莫过于路由器问题,现在小编就给大家讲一下ADSL无线路由器设置方法。DSL无线路由器设置:网卡TCP/IP协议的设置右键单击桌面上网上邻居,在弹出菜单中选择属性,出现网络对话框后,在配置标签...
相关文章
- SQL Server vNext on Linux安装
- 英语文化阅读:the only surviving calligraphy
- A Wilderness Survival Program高中英语作文
- Linux Mint Cinnamon下使用vino-server配置桌面共享的方法
- 英语阅读:Covergirl unveils empowering brand update
- MS SQL Server Management Studio Express安装图文具体步骤
- 大学英语演讲稿:Television News Coverage
- 如何用虚拟光驱Virtual Drive Manager装系统
- 高中英语作文 A Wilderness Survival Program
- java的String=a; a==null和a.equals(null)这两个判断有什么区别