vlan跨交换机 udp广播_【详解】VLAN和VXLAN有何区别?VXLAN运用场景有哪些?

随着网络技术的发展,云计算凭借其系统利用率高、人力/管理成本低以及灵活性/扩展性方面展现的优势,已经成为目前各大行业IT建设的新趋势。

而服务器的虚拟化作为云计算的核心技术之一,也得到了越来越多的应用,从而极大的增加了数据中心的计算密度;同时,为了实现业务的灵活变更部署,虚拟机在二层网络中的无限制迁移需求越来越迫切。而传统的经典二、三层网络已无法完全满足这些需求。

比如传统的VLAN(虚拟局域网)技术由于最多只能支持4096个VLAN,已经不能满足云提供商的严格要求,但是VXLAN(虚拟可扩展局域网)技术因为可以通过将第2层扩展到第3层网络来构建大型多租户数据中心而备受青睐,这种技术可以有效克服VLAN带来的扩展局限性。

什么是VLAN?

Virtual Local Area Network意为虚拟局域网,是在交换机实现过程中涉及到的概念,由802.1Q标准所定义。由于交换机是工作在链路层的网络设备,连接在同一台交换机的终端处于同一个三层网中,同时也处于同一个广播域。当交换机接入较多的终端时,任意一台终端发送广播报文时(例如:ARP请求),报文都会传遍整个网络。

VLAN优点:

对于规模较大的组网场景,广播报文的泛滥对于网络通信将会造成较大的影响。VLAN技术为这一问题提供了解决方案,VLAN将同一网络划分为多个逻辑上的虚拟子网,并规定当收到广播报文时,仅仅在其所在VLAN中进行广播从而防止广播报文泛滥。

VLAN技术在链路层的层次中实现了广播域的隔离,一张图看懂VLAN作用:

8b31926ef39675289a8580331e4e8f8c.png

虽然有这些优点,然而它的弊端也很明显:

1、虚拟化技术的发展促使大数据、云计算技术公司采用单个物理设备虚拟多台虚拟机的方式来进行组网,因此对于支持VLAN的数量要求也在提升,加上VLAN技术最多支持4094个VLAN,因此已经无法满足需求。

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

e04abbaa140040e2d8d257303d73ae0b.png

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

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

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

什么是VXLAN?

Virtualextensible Local Area Network,虚拟扩展局域网。IETF定义NVO3标准技术之一,采用MAC-in-UDP报文封装模式,通过将二层报文使用三层协议封装实现二层网络在三层范围内扩展,满足数据中心大二层虚拟机迁移和多租户需求。

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

f6d28f55a88896d82ff89694b87c8fe5.png

也就是说,它可以通过将第2层扩展到第3层网络来构建大型的多租户数据中心,同时将虚拟网络与物理基础设施分离,并实现无与伦比的网络可靠性和可扩展性。因此,您可以使用VXLAN技术创建多达1600万个网络。

VXLAN术语介绍:

· NVE:NetworkVirtualization Edge,网络虚拟边缘,用于建立VxLAN隧道的网络设备;

· VTEP:VxLANtunnel End Point,VxLAN隧道端点,指建立VxLAN隧道的NVE设备端点IP,可用于静态VxLAN配置及动态VxLAN配置;

 ·VNI:VirtualNetwork Identifier,虚拟网络ID,一个VNI即一个VxLAN广播域,实现VxLAN广播域隔离,相当于VLAN中的VLAN ID;

· BD:BridgeDomain,定义一个VxLAN广播域,可配合配置BDIF,实现跨VxLAN路由,一个BD唯一映射一个VNI;

· VxLAN报文格式:

7300f2d91cf7f66085292a871ff3d4c1.png

VXLAN技术的优势和局限性

相比VLAN技术,VXLAN技术具有以下的优势:

(1) 24位长度的VNI字段值可以支持更多数量的虚拟网络,解决了VLAN数目上限为4094的局限性的问题。

(2) VXLAN技术通过隧道技术在物理的三层网络中虚拟二层网络,处于VXLAN网络的终端无法察觉到VXLAN的通信过程,这样也就使得逻辑网络拓扑和物理网络拓扑实现了一定程度的解耦,网络拓扑的配置对于物理设备的配置的依赖程度有所降低,配置更灵活更方便。

(3) VLAN技术仅仅解决了二层网络广播域分割的问题,而VXLAN技术还具有多租户支持的特性,通过VXLAN分割,各个租户可以独立组网、通信,地址分配方面和多个租户之间地址冲突的问题也得到了解决。

28591bc7b4246e76014ab8e511291fc4.png

为了保证VXLAN机制通信过程的正确性,rfc7348标准中规定,涉及到VXLAN通信的IP报文一律不允分片,这就要求物理网络的链路层实现中必须提供足够大的MTU值,保证VXLAN报文的顺利传输,这一点可以理解为当前VXLAN技术的局限性。  

VXLAN的应用场景:

VXLAN在云数据中心之间虚拟机迁移中的应用,如某个企业在不同的数据中心有不同业务应用的虚拟机,数据中心之间虚拟机迁移是经常会遇到的,为了保证虚拟机迁移过程中业务不中断,则需要保证迁移虚拟机的IP地址、MAC地址等参数保持不变,这就要求虚拟机迁移前后属于统一个二层网络。

如果使用传统方法解决此问题,可能需要购买新的物理设备以分离流量,并可能导致诸如VLAN散乱、网络成环以及系统和管理开销等问题。

55d32c2250b5db1ff922191c790381aa.png

为了成功实现虚拟机在业务不中断情况下的迁移,可通过VXLAN技术实现。VXLAN是MAC in UDP的网络虚拟化技术,只要物理网络支持IP转发,所有IP路由可达的终端用户即可建立一个大范围二层网络。

在虚拟机上联的交换机上配置VXLAN相关信息,虚拟机上联交换机之间建立VXLAN隧道和VXLAN网关,通过VXLAN隧道和VXLAN网关,可实现在不同数据中心之间虚拟机成功迁移,并且可保证虚拟机迁移过程中网络无感知、业务不中断。

VXLAN在SDN环境下的应用,SDN环境下,可以通过SDN控制器来实现VXLAN的IP和VID之间相关信息的对应关系,SDN控制器可以作为ARP代答设备,这样大大提高了VXLAN的灵活性与扩展性。所以VXLAN技术在SDN环境中可以被广泛应用。

5c7a109d973397fc313b5c4948ee5b27.gif

为了方便广大网络爱好学习者一起学(聚)习(众)交(搞)流(基),特开设华为干货交流群,里面已经上传大量学习资料,欢迎广大网络工程师进群学习!

扫我入群?

f8b6ef86f8c35893fc86fe9780dab932.png

我知道爱学习的你“在看”058a8841b666e6372843c6581ecf7e10.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/288487.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux tcp 内核模块,C – Linux – 内核模块 – TCP头

我正在尝试创建linux内核模块,它将检查传入的数据包.目前,我正在提取数据包的TCP标头并读取源和目标端口 – >但是我得到的值不正确.我有钩功能:unsigned int hook_func(unsigned int hooknum,struct sk_buff *skb,const struct net_device *in,const struct net…

C#11:原始字符串

这一直以来是我写代码的一个痛点,C#11终于解决了,那就是我想把一个整齐的格式的json字符串转出,但不能如愿,要不用一个三方库来搞定,要不就加各种双引号,如果有变量还得小心处理{},因为在C#stri…

php in_array 判断数组中是否存在此元素

判断数组中是否存在此元素在php中很简单&#xff0c;直接使用 in_array即可。用法如下 &#xff1a; <?php $array_1array(red,blue,green); if(in_array(red1, $array_1)){echo 1; }else{echo 2; }以上例子我新建了一个数组array_1&#xff0c;里面的值想必也看到了。…

Android开源项目SlidingMenu本学习笔记(两)

我们已经出台SlidingMenu使用&#xff1a;Android开源项目SlidingMenu本学习笔记&#xff08;一个&#xff09;&#xff0c;接下来再深入学习下。依据滑出项的Menu切换到相应的页面 文件夹结构&#xff1a; 点击Bluetooth能够切换到对应的界面 关键代码 MainActivity.java pack…

Makefile的学习

1 Makefile 就这样理解&#xff0c;帮我们对程序进行编译&#xff0c;我们每次gcc g啥的很麻烦 2 举例子 我这里有3个文件first.c second.c third.c first.c文件如下 #include <stdio.h> int add(int a, int b) {return a; } second.c文件如下 int sub(int a, int …

扒开系统调用的三层皮(下)

5234 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 1.给MenuOS增加time和time-asm命令 步骤 rm menu -rf //强制删除git clonehttp://github.com/menging/menu.git // 克隆相关信息到menucd menumake rootfs //自动编…

Python版九九乘法表

1、示例一 >>> for i in range(10):s=for j in range(1,i+1):s+=str(j)+*+str(i)+=+str(j*i)+\tprint s 2、示例二 >>> for i in range(10):s=for j in range(1,i+1):s+=str(j)+*+str(i)+=+repr(j*i).ljust(4)print s 3、示例三 >>> for i in ran…

R 语言 相关入门资料

《R语言基础语法入门》&#xff1a; http://www.xueqing.tv/upload/april-training/day1/index.html#1 转载于:https://www.cnblogs.com/pinganzi/p/7354679.html

Tiny之Web工程构建

友情提醒&#xff1a;阅读此文需要java、Maven环境搭建技能&#xff0c;关于java开发环境及maven环境搭建请咨询谷哥和度娘。 搭建TinyWeb工程环境 搭建一下TinyWeb的开发环境&#xff0c;是非常简单的 如果你没有下载过Tiny框架&#xff0c;请在命令行中输入下面的命令&…

linux 端口 流量统计,Linux下如何对端口流量进行统计

在不修改源代码的情况下对程序暴露端口流量进行监控统计&#xff0c;可以利用Linux中自带的Iptable添加简单的规则让其起到端口流量统计的作用。但是需要注意的是在服务器重启、Iptable服务重启的时候统计数据会被重置清零。添加需要统计的端口1、输入监控下面示例是监控目标端…

Hello Playwright:(1)从开发到部署

前言虽然前面写过几篇 C# 使用 Playwright 的文章&#xff0c;但是讲解的不太全面。看到有朋友有学习这方面的需要&#xff1a;因此&#xff0c;就有了《Hello Playwright》这个系列的产生。Playwright 介绍Playwright 是微软开源的一个基于 Node.js 的工具库&#xff0c;可使用…

没有主清单属性_原神:晴知的主C诺艾尔大型进阶攻略初版

作者&#xff1a;NGA-最可爱的晴知前言大家好我是晴知&#xff0c;一个诺艾尔主C玩家(目前是0命座)&#xff0c;截至10月8日&#xff0c;我的账号等级为41级&#xff0c;深境螺旋11层打通&#xff0c;但星数不够12层&#xff0c;一者因为圣遗物太烂而我想45级再刷圣遗物&#x…

【ArcGIS风暴】ArcGIS栅格数据(分区)统计方法总结

【问题描述】如图所示,如何根据中国植被区划分区,统计各个区域内NDVI的平均值? 目录 1、Layer Properties 2、Zonal Statistics as Table 3、Band Collection Statistics 分区统计及根据统计区域或赋值栅格为每个区域计算统计数据。分区统计包括众数、最大值、均值、中位…

剑指offer之反转链表

1 问题 反转链表&#xff0c;比如0->1->2->3反转后变成了3->2->1->0 2 分析 搞3个指针&#xff0c;初始化一个指针&#xff0c;让头结点指向这里&#xff0c;然后另外一个指针初始化为NULL&#xff0c;然后让第一个节点指向这里&#xff0c;然后头结点依次…

php str_replace 字符串替换

我们在这里使用 str_replace 来替换一串字符串中的字符&#xff0c;例如如下代码&#xff1a; <?php $strHello world!; $str1str_replace("world","Terry",$str); echo $str1; str的值为Hello world!&#xff0c;我们在str_replace后面第一个参数是…

python去掉字符串中空格的方法

1.strip()&#xff1a;把头和尾的空格去掉 2.lstrip()&#xff1a;把左边的空格去掉 3.rstrip()&#xff1a;把右边的空格去掉 4.replace(c1,c2)&#xff1a;把字符串里的c1替换成c2。故可以用replace( ,)来去掉字符串里的所有空格 5.split()&#xff1a;通过指定分隔符对字符串…

快速合并同一个excel表中的多个sheet

很多朋友会遇到这样的问题,就是很有很多页的数据,少的有几十页,多的可能有几百页,然后需要合并到一个页面做数据分析,如果一页页的复制粘贴的话,就比较麻烦。下面我就介绍一种利用excel的宏计算来解决这个问题。 一、数据准备 二、合并效果

LoadRunner中进程运行和线程运行区别

LoadRunner中进程运行和线程运行区别 发布时间: 2012-5-23 10:29 作者: 田志良 来源: 51Testing软件测试网采编 字体: 小 中 大 | 上一篇 下一篇 | 打印 | 我要投稿 | 推荐标签&#xff1a; 性能测试 软件测试 LoadRunner loadrunner 测试工具 LoadRunner control…

释放内存软件_原来苹果手机这样清理内存,可以释放大量空间,真是太好用了...

相信大家都喜欢用苹果手机&#xff0c;给人感觉就是流畅&#xff0c;但是苹果手机使用久了&#xff0c;内存不足也会导致卡顿的&#xff0c;今天就来教大家清理苹果手机内存的方法&#xff0c;可以释放大量空间。一、正确卸载软件很多人在使用手机时&#xff0c;发现有些软件不…

linux用户取消密码,[Linux]linux下取消用户名和密码直接登录

假定目前只有root用户&#xff0c;则有如下两种方式可直接登录系统&#xff1a;方式一&#xff1a;1. passwd -d root, 但ssh必须要有用户名和密码&#xff0c;所以可以passwd root, 然后输入密码2. 修改/lib/systemd/system/serial-getty\.service#ExecStart-/sbin/agetty --k…