关于VLAN和VXLAN的理解.docx

上传人:b****5 文档编号:2776854 上传时间:2022-11-15 格式:DOCX 页数:6 大小:21.39KB
下载 相关 举报
关于VLAN和VXLAN的理解.docx_第1页
第1页 / 共6页
关于VLAN和VXLAN的理解.docx_第2页
第2页 / 共6页
关于VLAN和VXLAN的理解.docx_第3页
第3页 / 共6页
关于VLAN和VXLAN的理解.docx_第4页
第4页 / 共6页
关于VLAN和VXLAN的理解.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

关于VLAN和VXLAN的理解.docx

《关于VLAN和VXLAN的理解.docx》由会员分享,可在线阅读,更多相关《关于VLAN和VXLAN的理解.docx(6页珍藏版)》请在冰豆网上搜索。

关于VLAN和VXLAN的理解.docx

关于VLAN和VXLAN的理解

关于VLAN和VXLAN的理解

2017年08月26日22:

48:

53 阅读数:

26693 标签:

 SDNVXLANOverlay 更多

个人分类:

 技术

版权声明:

本文为博主原创文章,未经博主允许不得转载。

  被公司调到新网路部门研究SDN,项目涉及到一些虚拟网络的概念。

初次接触VLAN和VXLAN技术,特整理资料学习下。

VLAN

·概况 

  VLAN(VirtualLocalAreaNetwork)意为虚拟局域网,是在交换机实现过程中涉及到的概念,由802.1Q标准所定义。

由于交换机是工作在链路层的网络设备,连接在同一台交换机的终端处于同一个三层网中,同时也处于同一个广播域。

当交换机接入较多的终端时,任意一台终端发送广播报文时(例如:

ARP请求),报文都会传遍整个网络。

对于规模较大的组网场景,广播报文的泛滥对于网络通信将会造成较大的影响。

VLAN技术为这一问题提供了解决方案,VLAN将同一网络划分为多个逻辑上的虚拟子网,并规定当收到广播报文时,仅仅在其所在VLAN中进行广播从而防止广播报文泛滥。

VLAN技术在链路层的层次中实现了广播域的隔离。

·标准

  VLAN标准涉及到的RFC文献有2个:

rfc3069、rfc5517。

rfc3069阐述了利用VLAN技术来优化子网划分并节省IP地址数目的方案;rfc5517则给出了Cisco提出的私有VLAN的标准以满足网络安全方面的需求。

  802.1Q标准所定义的以太网帧格式在基于传统以太网帧格式中添加了描述VLAN信息的字段,帧格式如下:

 

  802.1Q标准的以太网帧格式增加了802.1Q字段,该字段包含了Type、PRI、CFI和VID4个部分,各个部分的含义如下:

·Type:

长度为2bytes,表示帧类型,802.1Qtag帧中Type字段取固定值0x8100,如果不支持802.1Q的设备收到802.1Q帧,则将其丢弃。

·PRI:

priority字段,长度为3bit,表示以太网帧的优先级,取值范围是0~7,数值越大,优先级越高。

当交换机/路由器发生传输拥塞时,优先发送优先级高的数据帧。

·CFI:

CanonicalFormatIndicator,长度为1bit,表示MAC地址是否是经典格式。

CFI为0说明是经典格式,CFI为1表示为非经典格式。

该字段用于区分以太网帧、FDDI帧和令牌环网帧,在以太网帧中,CFI取值为0

·VID:

VLANID,长度为12bit,取值范围是0~4095,其中0和4095是保留值,不能给用户使用。

  这里需要关注的是VID字段,该字段唯一标识了一个VLAN,12bit长度的VID可以表示4096个不同的值,除去两个保留值,一个以太网最多可以划分为4094个VLAN。

  笔者工作中主要关注的是VXLAN技术,因此对于VLAN的介绍不再详述,详细标准可参见rfc文档。

VXLAN

·概况 

  VXLAN(VirtualeXtentialLAN)意为虚拟可拓展局域网。

随着大数据、云计算技术的兴起以及虚拟化技术的普及,VLAN技术的弊端逐渐显现出来,具体表现为如下3个方面:

  

(1)虚拟化技术的发展促使大数据、云计算技术公司采用单个物理设备虚拟多台虚拟机的方式来进行组网,随着应用模块的增加,对于支持VLAN数目的要求也在提升,802.1Q标准中的最多支持4094个VLAN的能力已经无法满足当下需求。

  

(2)公有云提供商的业务要求将实体网络租借给多个不同的用户,这些用户对于网络的要求有所不同,而不同用户租借的网络有很大的可能会出现IP地址、MAC地址的重叠,传统的VLAN仅仅解决了同一链路层网络广播域隔离的问题,而并没有涉及到网络地址重叠的问题,因此需要一种新的技术来保证在多个租户网络中存在地址重叠的情况下依旧能有效通信的技术。

  (3)虚拟化技术的出现增加了交换机的负担,对于大型的数据中心而言,单台交换机必须支持数十台以上主机的通信连接才足以满足应用需求,而虚拟化技术使得单台主机可以虚拟化出多台虚拟机同时运行,而每台虚拟机都会有其唯一的MAC地址。

这样,为了保证集群中所有虚机可以正常通信,交换机必须保存每台虚机的MAC地址,这样就导致了交换机中的MAC表异常庞大,从而影响交换机的转发性能。

  基于以上需求,VXLAN技术被提出。

  VXLAN技术是网络Overlay技术的一种实现,对于Overlay技术,笔者的理解是:

在基于物理网络拓扑的基础上通过一定的技术来构建虚拟的、不同于物理网络拓扑的逻辑网络,而物理网络的拓扑结构对于Overlay终端而言是透明的,终端不会感知到物理网络的存在,而仅仅能感知到逻辑网络结构。

对于终端的视角,网络的情况和直接通过物理设备实现逻辑拓扑的效果是相同的。

VXLAN技术可以基于三层网络结构来构建二层虚拟网络,通过VLAN技术可以将处于不同网段网络设备整合在同一个逻辑链路层网络中,对于终端用户而言,这些网络设备似乎“真实地”部署在了同一个链路层网络中。

·标准

  文档rfc7348详细地介绍了VXLAN的实现机制。

本质上VXLAN是一种隧道技术。

通过将虚拟网络中的数据帧封装在实际物理网络中的报文中进行传输。

具体实现方式为:

将虚拟网络的数据帧添加VXLAN首部后,封装在物理网络中的UDP报文中,然后以传统网路络的通信方式传送该UDP报文,到达目的主机后,去掉物理网络报文的头部信息以及VXLAN首部,将报文交付给目的终端。

整个通信过程目的终端不会感知到物理网络的存在。

  利用VXLAN技术组网的方法可以用下图来描述:

  图中两台终端T1和T2位于不同的网络中,二者通过路由器来实现互通,通过VXLAN可以使得这两台终端在“逻辑上”位于“同一个”链路层网络中而与两台终端直接相连的路由器也在逻辑上构建了一条在虚拟链路中的通道vxlantunnel,这样的路由器我们称之为“vxlan隧道终端”(VXLANTunnelEndPoint,VTEP)。

在包含VXLAN的网络中,VXLAN的实现机制仅仅对VTEP节点可见。

  需要说明的是,VTEP节点可以由实现了VXLAN功能的交换机、路由器等硬件设备充当,但在更多的基于虚拟化技术实现的网络拓扑的应用中,VTEP节点的角色更多由部署了多台虚拟机的主机中的hypervisor进程来担任,如下图:

 

   接下来介绍VXLAN的通信原理。

VXLAN通过将逻辑网络中通信的数据帧封装在物理网络中进行传输,封装和解封装的过程由VTEP节点完成。

VXLAN将逻辑网络中的数据帧添加VXLAN首部后,封装在物理网络中的UDP报文中传送,VXLAN首部的格式如下:

 

VXLAN首部由8个字节组成,第1个字节为标志位,其中标志位I设为1表示是一个合法的VXLAN首部,其余标志则保留,在传输过程中必须置为0;第2-4字节为保留部分,第5-7字节为VXLAN标识符,用来表示唯一的一个逻辑网络;第8个字节同样为保留字段,暂未使用。

  VXLAN传输过程中,将逻辑链路网络的数据帧添加VXLAN首部后,依次添加UDP首部,IP首部,以太网帧首部后,在物理网络中传输,数据帧的封装格式可以用下图来描述:

 

需要注意的是,外部UDP首部的目的端口号为4789,该数值为默认VXLAN解析程序的端口,外层IP首部中的源IP和目的IP地址均填写通信双方的VTEP地址,协议的其余部分和传统网络相同。

·通信过程

  下面简要说明VXLAN网络中的通信过程。

对于处于同一个VXLAN的两台虚拟终端,其通信过程可以概括为如下的步骤:

①发送方向接收方发送数据帧,帧中包含了发送方和接收方的虚拟MAC地址。

②发送方连接的VTEP节点收到了数据帧,通过查找发送方所在的VXLAN以及接收方所连接的VTEP节点,将该报文添加VXLAN首部、外部UDP首部、外部IP首部后,发送给目的VTEP节点。

③报文经过物理网络传输到达目的VTEP节点。

④目的VTEP节点接收到报文后,拆除报文的外部IP首部和外部UDP首部,检查报文的VNI以及内部数据帧的目的MAC地址,确认接收方与本VTEP节点相连后,拆除VXLAN首部,将内部数据帧交付给接收方。

⑤接收方收到数据帧,传输完成。

   通过以上的步骤可以看出:

VXLAN的实现细节以及通信过程对于处于VXLAN中的发送方和接收方是不可见的,基于发送方和接收方的视角,其通信过程和二者真实处于同一链路层网络中的情况完全相同。

 

  以上通信方式可以用下图来描述:

 

其中VTEP2中收到的报文和VTEP1中发送的报文相同,接受者收到的报文和发送者发出的报文也完全相同,这里为了便于描述,图中将其略去。

  需要说明的是,VTEP1同样需要将上述封装好的IP报文封装在以太网帧中才能进行传输,这里称之为“外层以太网帧(OuterEthernetFrame)”,外层以太网帧中数据字段值取决于实际物理网络的实现,因此笔者为在图中给出。

在VXLAN的实际实现中,VTEP1和VTEP2可以处于不同的物理网络中,只要保证VTEP1和VTEP2可以通信即可,而对于二者通信所经过的路径,我们不必关心。

 

·VTEP节点工作机制

  通过以上通信步骤的描述可以看到,VTEP节点在VXLAN网络通信中起到了至关重要的作用。

在VXLAN网络通信中,VTEP节的职责主要有3项:

  

(1)将虚拟网络通信的数据帧添加VXLAN头部和外部UDP和IP首部。

  

(2)将封装好的数据包转发给正确的VTEP节点。

  (3)收到其他VTEP发来的VXLAN报文时,拆除外部IP、UDP以及VXLAN首部,然后将内部数据包交付给正确的终端。

  对于功能

(1)和(3)只要按照上文中给出的封装和拆解规则进行处理即可,这里主要说明功能

(2)的实现,即VXLAN数据包的转发过程。

当VTEP节点收到一个VXLAN数据包时,需要根据内部以太网帧的目的MAC地址找到与拥有该目的地址的终端直接相连的VTEP地址,因此,这里需要一个目的MAC地址和VTEP节点IP地址的映射关系,VTEP节点利用一个转发表来存储此映射关系。

转发表的格式为:

,即给定VNI和目的MAC地址后映射到一个VTEPIP地址。

  需要说明的是,映射VTEP节点IP地址时,之所以需要VNI的信息,是因为当存在多租户的情况下,各个租户将会独立组网,此时,多个租户设定的MAC地址有一定的概率会出现重叠,此时我们必须保证每个租户的网络都能独立地正常通信,因此,在为每个租户配置唯一的一个VNI的情况下,给定VNI和目的MAC地址,唯一确定一个VTEP地址。

  下图是一个样例,对于下图中的网络拓扑,分别给出了两个VTEP节点的转发表:

   

   上图中给出了6个终端,分别属于2个租户,其中,终端T1、T2和T4属于租户1,分配VNI为1,终端T3、T5和T6属于租户2,分配VNI为2,两个VTEP节点的转发表已在图中给出。

  每一个VTEP节点都必须拥有完整的转发表才可以正确地进行转发的功能,转发表的学习过程可以基于这样一种简单的策略:

通过ARP报文学习,当收到终端发送的数据帧时,首先根据收到数据的端口判定数据发送方的VNI值,根据VNI和数据帧中的目的MAC查找对应的VTEP节点,如果查找成功,则转发,否则,在当前VXLAN网络中广播ARP请求报文,这样,连接目的MAC终端的VTEP节点

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 思想汇报心得体会

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1