802.1Q标准的以太网帧格式增长了802.1Q字段,该字段包含了Type、PRI、CFI和VID 4个部分,各个部分的含义以下:网络
·Type:长度为2 bytes,表示帧类型,802.1Q tag帧中Type字段取固定值0x8100,若是不支持802.1Q的设备收到802.1Q帧,则将其丢弃。
·PRI:priority字段,长度为3 bit,表示 以太网帧的优先级,取值范围是0~7,数值越大,优先级越高。当交换机/路由器发生传输拥塞时,优先发送优先级高的数据帧。
·CFI:Canonical Format Indicator,长度为1bit,表示MAC地址是不是经典格式。CFI为0说明是经典格式,CFI为1表示为非经典格式。该字段用于区分以太网帧、FDDI帧和令牌环网帧,在以太网帧中,CFI取值为0
·VID:VLAN ID,长度为12 bit,取值范围是0~4095,其中0和4095是保留值,不能给用户使用。
这里须要关注的是VID字段,该字段惟一标识了一个VLAN,12bit长度的VID能够表示4096个不一样的值,除去两个保留值,一个以太网最多能够划分为4094个VLAN。.net
VXLAN是一种隧道技术。经过将虚拟网络中的数据帧封装在实际物理网络中的报文中进行传输。具体实现方式为:将虚拟网络的数据帧添加VXLAN首部后,封装在物理网络中的UDP报文中,而后以传统网路络的通讯方式传送该UDP报文,到达目的主机后,去掉物理网络报文的头部信息以及VXLAN首部,将报文交付给目的终端。整个通讯过程目的终端不会感知到物理网络的存在。orm
利用VXLAN技术组网的方法能够用下图来描述:blog
图中两台终端T1和T2位于不一样的网络中,两者经过路由器来实现互通,经过VXLAN可使得这两台终端在“逻辑上”位于“同一个”链路层网络中而与两台终端直接相连的路由器也在逻辑上构建了一条在虚拟链路中的通道vxlan tunnel,这样的路由器咱们称之为“vxlan隧道终端”(VXLAN Tunnel End Point, 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地址,协议的其他部分和传统网络相同。虚拟机
① 发送方向接收方发送数据帧,帧中包含了发送方和接收方的虚拟MAC地址。② 发送方链接的VTEP节点收到了数据帧,经过查找发送方所在的VXLAN以及接收方所链接的VTEP节点,将该报文添加VXLAN首部、外部UDP首部、外部IP首部后,发送给目的VTEP节点。③ 报文通过物理网络传输到达目的VTEP节点。④ 目的VTEP节点接收到报文后,拆除报文的外部IP首部和外部UDP首部,检查报文的VNI以及内部数据帧的目的MAC地址,确认接收方与本VTEP节点相连后,拆除VXLAN首部,将内部数据帧交付给接收方。⑤ 接收方收到数据帧,传输完成。