系统集成网络运维VxLAN

关于vxlan一直理解的不够透彻,谁能帮忙普及一下vxlan的相关知识?

随着虚拟化和软件定义的发展,现在网络和传统的技术有了很大的变化,对于vxlan技术,一直没有接触,有谁能详细的解释一下呢,最好有详细的例子的图示。

参与3

1同行回答

mac2008mac2008项目经理IT公司
VXLAN是什么VXLAN(Virtual eXtensible Local Area Network,虚拟扩展局域网),是由IETF定义的NVO3(Network Virtualization over Layer 3)标准技术之一,采用L2 over L4(MAC-in-UDP)的报文封装模式,将二层报文用三层协议进行封装,可实现二层网络在三层范围内进行扩展,同时满足数据中心大...显示全部

VXLAN是什么

VXLAN(Virtual eXtensible Local Area Network,虚拟扩展局域网),是由IETF定义的NVO3(Network Virtualization over Layer 3)标准技术之一,采用L2 over L4(MAC-in-UDP)的报文封装模式,将二层报文用三层协议进行封装,可实现二层网络在三层范围内进行扩展,同时满足数据中心大二层虚拟迁移和多租户的需求。

NVO3是基于三层IP overlay网络构建虚拟网络的技术的统称,VXLAN只是NVO3技术之一。除此之外,比较有代表性的还有NVGRE、STT。

在回答VXLAN如何解决前面提到的问题之前,先让我们来了解下VXLAN的网络模型。

VXLAN网络模型

图2-1 VXLAN网络模型

从上图中可以发现,VXLAN网络中出现了以下传统数据中心网络中没有的新元素:

  • VTEP(VXLAN Tunnel Endpoints,VXLAN隧道端点)

VXLAN网络的边缘设备,是VXLAN隧道的起点和终点,VXLAN报文的相关处理均在这上面进行。总之,它是VXLAN网络中绝对的主角。VTEP既可以是一*立的网络设备(比如华为的CE系列交换机),也可以是虚拟机所在的服务器。那它究竟是如何发挥作用的呢?答案稍候揭晓。

  • VNI(VXLAN Network Identifier,VXLAN 网络标识符)

前文提到,以太网数据帧中VLAN只占了12比特的空间,这使得VLAN的隔离能力在数据中心网络中力不从心。而VNI的出现,就是专门解决这个问题的。VNI是一种类似于VLAN ID的用户标示,一个VNI代表了一个租户,属于不同VNI的虚拟机之间不能直接进行二层通信。VXLAN报文封装时,给VNI分配了足够的空间使其可以支持海量租户的隔离。详细的实现,我们将在后文中介绍。

  • VXLAN隧道

“隧道”是一个逻辑上的概念,它并不新鲜,比如大家熟悉的GRE。说白了就是将原始报文“变身”下,加以“包装”,好让它可以在承载网络(比如IP网络)上传输。从主机的角度看,就好像原始报文的起点和终点之间,有一条直通的链路一样。而这个看起来直通的链路,就是“隧道”。顾名思义,“VXLAN隧道”便是用来传输经过VXLAN封装的报文的,它是建立在两个VTEP之间的一条虚拟通道。

见招拆招

看到这里,爱思考的你肯定又要问了,VXLAN网络模型为什么是长这个样子滴?前文已经讲到,VXLAN是为了解决云计算时代虚拟化中的一系列问题而产生的一项技术。下面就让我们来看下,基于图2-1的网络模型, VXLAN是如何见招拆招来解决这一系列问题的。

  • 招式一:隐形

对于“虚拟机规模受网络设备表项规格的限制”这个问题,可能有人会想:换成规格大一些的接入交换机(比如跟核心或网关同档次的设备)不就行了。我只能说,如果你是“壕”,确实可以这么做。但是在不提高网络建设成本的前提下,如何能解决问题呢?

既然无法提升设备表项规格,那就只能限制设备上的MAC表项,将大量VM的MAC地址“隐形”。那么,如何做到隐形呢?这时,就该VTEP出场了。

VTEP会将VM发出的原始报文封装成一个新的UDP报文,并使用物理网络的IP和MAC地址作为外层头,对网络中的其他设备只表现为封装后的参数。也就是说,网络中的其他设备看不到VM发送的原始报文。

如果服务器作为VTEP,那从服务器发送到接入设备的报文便是经过封装后的报文,这样,接入设备就不需要学习VM的MAC地址了,它只需要根据外层封装的报文头负责基本的三层转发就可以了。因此,虚拟机规模就不会受网络设备表项规格的限制了。

当然,如果网络设备作为VTEP,它还是需要学习VM的MAC地址。但是,从对报文进行封装的角度来说,网络设备的性能还是要比服务器强很多。

  • 招式二:扩容

对于“传统网络的隔离能力有限”这个问题,VXLAN采用了“扩容”的解决方法,引入了类似VLAN ID的用户标示,也就是前文提到的VNI。一个VNI代表了一个租户,属于不同VNI的虚拟机之间不能直接进行二层通信。VTEP在对报文进行VXLAN封装时,给VNI分配了24比特的空间,这就意味着VXLAN网络理论上支持多达16M(即:224-1)的租户隔离。相比VLAN,VNI的隔离能力得到了巨大的提升,有效得解决了云计算中海量租户隔离的问题。

  • 招式三:暗度陈仓

前面提到,为了保证业务不中断,VM的迁移就必须发生在同一个二层域内。现在,再回头看下VXLAN网络模型,你是不是惊奇地发现,有了VTEP的封装机制和VXLAN隧道后,所谓的 “二层域”就可以轻而易举的突破物理上的界限?也就是说,在IP网络中, “明”里传输的是跨越三层网络的UDP报文,“暗”里却已经悄悄将源VM的原始报文送达目的VM。就好像在三层的网络之上,构建出了一个虚拟的二层网络,而且只要IP网络路由可达,这个虚拟的二层网络想做多大就做多大。现在,你应该明白为什么说VXLAN是一种NVO3技术了吧。

收起
互联网服务 · 2019-08-26
浏览2456

提问者

pysx0503
pysx0503153369
系统工程师第十区。散人
擅长领域: 存储备份服务器

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2019-07-18
  • 关注会员:2 人
  • 问题浏览:2902
  • 最近回答:2019-08-26
  • X社区推广