vlan与vxlan
简介
VXLAN(Virtual eXtensible Local Area Network)或许是目前最热门的网络虚拟化技术。网络虚拟化是指在一套物理网络设备上虚拟出多个二层网络。VXLAN由RFC7348定义,这是2014年定稿的一个协议,VXLAN协议将Ethernet帧封装在UDP内,再加上8个字节的VXLAN header,用来标识不同的二层网络。
VLAN(Virtual Local Network)在1998年就提出了第一稿,并且得到广泛的应用,VLAN直接在Ethernet帧的头部加上4个字节的VLAN Tag,用来标识不同的二层网络。VLAN已经在大部分的网络设备和操作系统中得到了支持,它处理起来也比较简单,在读取Ethernet数据的时候,只需要根据EtherType相应的偏移4个字节就行。相比之下,VXLAN因为提出的较晚,在设备上的支持率不如VLAN,而且,VXLAN数据的封装解封装,要比VLAN复杂的多
VXLAN与VLAN的最大区别在于,VLAN只是修改了原始的Ethernet Header,但是整个网络数据包还是原来那个数据包,而VXLAN是将原始的Ethernet Frame隐藏在UDP数据里面。经过VTEP封装之后,在网络线路上看起来只有VTEP之间的UDP数据传递,原始的网络数据包被掩盖了.
VXLAN并不是凭空出现,这种在UDP里面封装网络数据的做法,在VXLAN之前就已经存在,例如OTV(Overlay Transport Virtualization)和LISP(Locator/ID Separation Protocol)。
使用vxlan的原因
交换机 MAC 地址表限制
VLAN tag 总共有 4 个字节,其中有 12 bit 用来标识不同的二层网络(即 LAN ID),故而最多只能支持 2^12
,即 4096 个子网的划分。而虚拟化(虚拟机和容器)的兴起使得一个数据中心会有成千上万的机器需要通信,这时候 VLAN 就无法满足需求了。而 VXLAN 的报文 Header 预留了 24 bit 来标识不同的二层网络(即 VNI,VXLAN Network Identifier),即 3 个字节,可以支持 2^24 个子网。虚机或容器迁移范围受限
对于同网段主机的通信而言,报文到底交换机后都会查询 MAC 地址表进行二层转发。数据中心虚拟化之后,VM 的数量与原有的物理机相比呈数量级增长,而应用容器化之后,容器与 VM 相比也是呈数量级增长。。。而交换机的内存是有限的,因而 MAC 地址表也是有限的,随着虚拟机(或容器)网卡 MAC 地址数量的空前增加,交换机表示压力山大啊!而 VXLAN 就厉害了,它用 VTEP(后面会解释)将二层以太网帧封装在 UDP 中,一个 VTEP 可以被一个物理机上的所有 VM(或容器)共用,一个物理机对应一个 VTEP。从交换机的角度来看,只是不同的 VTEP 之间在传递 UDP 数据,只需要记录与物理机数量相当的 MAC 地址表条目就可以了,一切又回到了和从前一样。
虚机或容器迁移范围受限
VLAN 与物理网络融合在一起,不存在 Overlay 网络,带来的问题就是虚拟网络不能打破物理网络的限制。举个例子,如果要在 VLAN 100 部署虚拟机(或容器),那只能在支持 VLAN 100 的物理设备上部署。VLAN 其实也有解决办法,就是将所有的交换机 Trunk 连接起来,产生一个大的二层,这样带来的问题就是广播域过分扩大,也包括更多未知的单播和多播,即 BUM(Broadcast,Unknown Unicast,Multicast),同时交换机 MAC 地址表也会有承受不住的问题。
而 VXLAN 将二层以太网帧封装在 UDP 中(上面说过了),相当于在三层网络上构建了二层网络。这样不管你物理网络是二层还是三层,都不影响虚拟机(或容器)的网络通信,也就无所谓部署在哪台物理设备上了,可以随意迁移。
VXLAN 协议原理
vxlan常见术语
VTEP(VXLAN Tunnel Endpoints,VXLAN 隧道端点)
VXLAN 网络的边缘设备,用来进行 VXLAN 报文的处理(封包和解包)。VTEP 可以是网络设备(比如交换机),也可以是一台机器(比如虚拟化集群中的宿主机)。VNI(VXLAN Network Identifier,VXLAN 网络标识符)
VNI 是每个 VXLAN 段的标识,是个 24 位整数,一共有 2^24 =16777216(一千多万),一般每个 VNI 对应一个租户,也就是说使用 VXLAN 搭建的公有云可以理论上可以支撑千万级别的租户
vxlan协议报文格式如下:Tunnel(VXLAN 隧道)
隧道是一个逻辑上的概念,在 VXLAN 模型中并没有具体的物理实体向对应。隧道可以看做是一种虚拟通道,VXLAN 通信双方认为自己是在直接通信,并不知道底层网络的存在。从整体来说,每个 VXLAN 网络像是为通信的虚拟机搭建了一个单独的通信通道,也就是隧道。
vxlan工作模型
它创建在原来的 IP 网络(三层)上,只要是三层可达(能够通过 IP 相互通信)的网络就能部署 VXLAN。在 VXLAN 网络的每个端点都有一个 VTEP 设备,负责 VXLAN 协议报文的解包和封包,也就是在虚拟报文上封装 VTEP 通信的报文头部。
物理网络上可以创建多个 VXLAN 网络,可以将这些 VXLAN 网络看成一个隧道,不同节点上的虚拟机/容器能够通过隧道直连。通过 VNI 标识不同的 VXLAN 网络,使得不同的 VXLAN 可以相互隔离。
- VXLAN Header : 在原始二层帧的前面增加 8 字节的 VXLAN 的头部,其中最主要的是 VNID,占用 3 个字节(即 24 bit),类似 VLAN ID,可以具有 2^{24}2
24个网段。 - UDP Header : 在 VXLAN 和原始二层帧的前面使用 8 字节 UDP 头部进行封装(MAC IN UDP),目的端口号缺省使用 4789,源端口按流随机分配(通过 MAC,IP,四层端口号进行 hash 操作), 这样可以更好的做 ECMP。
在上面添加的二层封装之后,再添加底层网络的 IP 头部(20 字节)和 MAC 头部(14 字节),这里的 IP 和 MAC 是宿主机的 IP 地址和 MAC 地址。
同时,这里需要注意 MTU 的问题,传统网络 MTU 一般为 1500,这里加上 VXLAN 的封装多出的(36+14/18,对于 14 的情况为 access 口,省去了 4 字节的 VLAN Tag)50 或 54 字节,需要调整 MTU 为 1550 或 1554,防止频繁分包。
字段 | 长度 | 含义 |
---|---|---|
Source Port | 16 bit | 源端口号是内层以太 |
Dest Port | 16 bit | 目的 UDP 端口号是 4789 |
UDP Length | 16 bit | UDP 数据包长度 |
UDP Checksum | 16 bit | UDP 数据包校验和 |
VXLAN Header | VXLAN Flags | 8 bit 取值为 00001000 |
Reserved_1 | 24 bit | 保留字段,必须设置为 0 |
VXLAN Network Identifier | 24 bit | VXLAN 网络标识,用于区分 VXLAN 段 |
Reserved_2 | 8 bit | 保留字段,必须设置为 0 |
vlan与vxlan相关推荐
- 计算机网络:VLAN和VXLAN
目录 Overlay网络 VLAN VXLAN 两种Overlay技术:NVGRE和VXLAN 什么是VXLAN 为什么需要VXLAN 虚拟机动态迁移,要求提供一个无障碍接入的网络 VXLAN与VLA ...
- VLAN vs. VXLAN:云时代下各施所长
来源于:SDNLAB VXLAN(Virtual eXtensible Local Area Network,虚拟可扩展局域网)可以说是目前最热门的网络虚拟化技术.自2014年引入以来,VXLAN已逐 ...
- 什么是VLAN?VXLAN?以及VLAN和VXLAN的区别?
转自:CSDN博主octopusflying的<关于VLAN和VXLAN的理解> 该博主的这篇文章写的极好,强烈推荐!就是文字排版有点不舒服,我转载一下,重新排版. VLAN 概括 VLA ...
- 做了几年的网工也未必了解VLAN和VXLAN的区别,今天我来告诉你!
资深网络工程师对于vlan和vxlan应该能够区别开,但是刚入行.或者平时不太关注技术栈的网工们对于vlan和vxlan常常混淆,甚至都没有听过vxlan,那么今天我带着大家来剖析一下这两种技术,相信 ...
- vlan跨交换机 udp广播_【详解】VLAN和VXLAN有何区别?VXLAN运用场景有哪些?
随着网络技术的发展,云计算凭借其系统利用率高.人力/管理成本低以及灵活性/扩展性方面展现的优势,已经成为目前各大行业IT建设的新趋势. 而服务器的虚拟化作为云计算的核心技术之一,也得到了越来越多的应用 ...
- 《跟唐老师学习云网络》 - 什么是VLAN和VXLAN
一.背景 敲黑板: VLAN是你理解云网络的门槛石,要想通往云网络的世界,这一扇大门一定得理解透彻. 二.为什么需要VLAN 在前面的课程里面,我们知道了局域网的概念.一个局域网里面有N台电脑互相通信 ...
- vlan和vxlan对比
vxlan是一种overlay network,所谓overlay network指的就是建立在其他网络上的网络,overlay network中的节点可以看作是有逻辑链路连接起来的. vxlan和G ...
- VLAN、VXLAN
相比VLAN技术,VXLAN技术具有以下的优势: (1) 24位长度的VNI字段值可以支持更多数量的虚拟网络,解决了VLAN数目上限为4094的局限性的问题. (2) VXLAN技术通 ...
- 计算机网络:overlay(VLAN,VxLAN)、underlay网络、大二层的介绍
目录 相关术语 概述 Overlay 网络 Overlay网络组成 VLAN VXLAN Underlay网络 技术专区 相关术语 P network:运营商核心网络,也就是提供VPN服务供应商自己的 ...
最新文章
- 退休失败,64岁Python之父决定加入微软,将开源进行到底!
- 数据类型,运算符和表达式03 - 零基础入门学习C语言04
- (十二)java版电子商务spring cloud分布式微服务- Spring 4.2.2以上版本和swagger集成方案和踩过的坑...
- HDU -2546饭卡(01背包+贪心)
- div添加html链接,DIV添加超链接小记
- 实现连麦_微信重磅更新,视频号直播连麦打赏美颜上线,新增巨大流量入口
- python进阶(四) windows下虚拟环境使用
- #论char数组结尾’\0’的必要性#
- 线性表接口的实现_Java
- composition API
- Python 局域网扫描存活主机开放端口
- 与戴尔科技同行,与远见如影随形
- Android实战简易教程五(ListView用法研究)
- Spring Boot基础学习笔记08
- oracle没commit有日志吗,commit操作是否一定会被记录到redo等问题的研究
- 连接主机名失败但可以连接主机ip,能用ip地址连接却无法用主机名连接,看过来一站解决
- codeforce 1395总结
- 如何移动桌面文件到计算机,怎么样把电脑桌面文件全部转移到指定文件夹
- 一次性奖金是否选择并入综合所得测算表
- 基于KF32A156 - MCU Bug list