VXLAN

news2024/11/16 1:48:00

VXLAN简介

定义

RFC定义了VLAN扩展方案VXLAN(Virtual eXtensible Local Area Network,虚拟扩展局域网)。VXLAN采用MAC in UDP(User Datagram Protocol)封装方式,是NVO3(Network Virtualization over Layer 3)中的一种网络虚拟化技术。

目的

随着网络技术的发展,云计算凭借其在系统利用率高、人力/管理成本低、灵活性/可扩展性强等方面表现出的优势,已经成为目前企业IT建设的新趋势。而服务器虚拟化作为云计算的核心技术之一,得到了越来越多的应用。

服务器虚拟化的详细介绍请参见服务器虚拟化。

服务器虚拟化技术的广泛部署,极大地增加了数据中心的计算密度;同时,为了实现业务的灵活变更,虚拟机VM(Virtual Machine)需要能够在网络中不受限迁移,这给传统的“二层+三层”数据中心网络带来了新的挑战。

为了应对传统数据中心网络对服务器虚拟化技术的限制,VXLAN技术应运而生,其能够很好地解决如下问题:

  • 针对虚拟机规模受设备表项规格限制

    服务器虚拟化后,VM的数量比原有的物理机发生了数量级的增长,而接入侧二层设备的MAC地址表规格较小,无法满足快速增长的VM数量。

    VXLAN将管理员规划的同一区域内的VM发出的原始报文封装成新的UDP报文,并使用物理网络的IP和MAC地址作为外层头,这样报文对网络中的其他设备只表现为封装后的参数。因此,极大降低了大二层网络对MAC地址规格的需求。

  • 针对网络隔离能力限制

    VLAN作为当前主流的网络隔离技术,在标准定义中只有12比特,因此可用的VLAN数量仅4096个。对于公有云或其它大型虚拟化云计算服务这种动辄上万甚至更多租户的场景而言,VLAN的隔离能力无法满足。

    租户是一套完整的可用于数据中心网络部署的逻辑资源的集合,逻辑资源包括VLAN、IP地址池等网络资源和物理服务器、虚拟机等计算资源。租户有各自的租户管理员进行网络业务的编排和部署。

    VXLAN引入了类似VLAN ID的用户标识,称为VXLAN网络标识VNI(VXLAN Network Identifier),由24比特组成,支持多达16M的VXLAN段,有效地解决了云计算中海量租户隔离的问题。

  • 虚拟机迁移范围受限

    虚拟机迁移是指将虚拟机从一个物理机迁移到另一个物理机。为了保证虚拟机迁移过程中业务不中断,则需要保证虚拟机的IP地址保持不变,这就要求虚拟机迁移必须发生在一个二层网络中。而传统的二层网络,将虚拟机迁移限制在了一个较小的局部范围内。

    VXLAN将VM发出的原始报文进行封装后通过VXLAN隧道进行传输,隧道两端的VM不需感知传输网络的物理架构。这样,对于具有同一网段IP地址的VM而言,即使其物理位置不在同一个二层网络中,但从逻辑上看,相当于处于同一个二层域。即VXLAN技术在三层网络之上,构建出了一个虚拟的大二层网络,只要虚拟机路由可达,就可以将其规划到同一个大二层网络中。这就解决了虚拟机迁移范围受限问题。

    大二层网络的详细介绍请参见大二层网络。

受益

随着数据中心在物理网络基础设施上实施服务器虚拟化的快速发展,作为NVO3技术之一的VXLAN:

  • VXLAN特性在本质上属于一种VPN技术,能够在任意路由可达的网络上叠加二层虚拟网络,通过VXLAN网关实现VXLAN网络内部的互通,同时,也可以实现与传统的非VXLAN网络的互通。

  • VXLAN通过采用MAC in UDP封装来延伸二层网络,将以太报文封装在IP报文之上,通过路由在网络中传输,无需关注虚拟机的MAC地址。且路由网络无网络结构限制,具备大规模扩展能力。通过路由网络,虚拟机迁移不受网络架构限制。

VXLAN网络架构

VXLAN是NVO3中的一种网络虚拟化技术,通过将原主机发出的数据包封装在UDP中,并使用物理网络的IP、MAC作为外层头进行封装,然后在IP网络上传输,到达目的地后由隧道终结点解封装并将数据发送给目标主机。

通过VXLAN,虚拟网络可接入大量租户,且租户可以规划自己的虚拟网络,不需要考虑物理网络IP地址和广播域的限制,降低了网络管理的难度,同时满足虚拟机迁移和多租户的需求。

类似于传统的VLAN网络,VXLAN网络也有VXLAN网络内互访和VXLAN网络间互访。

VXLAN网络内互访

通过VXLAN技术可以实现在已有三层网络上构建虚拟二层网络,实现主机之间的二层互通。VXLAN网络内互访如图1所示。

图1 VXLAN网络内互访
 

VXLAN网络内互访中涉及的概念如下:

  • 网络标识VNI(VXLAN Network Identifier)

    类似于传统网络中的VLAN ID,用于区分VXLAN段,不同VXLAN段的租户不能直接进行二层通信。一个租户可以有一个或多个VNI,VNI由24比特组成,支持多达16M的租户。

  • 广播域BD(Bridge Domain)

    类似传统网络中采用VLAN划分广播域方法,在VXLAN网络中通过BD划分广播域。

    在VXLAN网络中,将VNI以1:1方式映射到广播域BD,一个BD就表示着一个广播域,同一个BD内的主机就可以进行二层互通。

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

    VTEP可以对VXLAN报文进行封装和解封装。

    VXLAN报文中源IP地址为源端VTEP的IP地址,目的IP地址为目的端VTEP的IP地址。一对VTEP地址就对应着一条VXLAN隧道。在源端封装报文后通过隧道向目的端VTEP发送封装报文,目的端VTEP对接收到的封装报文进行解封装。

  • 虚拟接入点VAP(Virtual Access Point)

    VXLAN业务接入点,可以基于VLAN或报文流封装类型(相关介绍参考VXLAN接入方式)接入业务:
    • 基于VLAN接入业务:在VTEP上建立VLAN与BD的一对一或多对一的映射。这样,当VTEP收到业务侧报文后,根据VLAN与BD的映射关系,实现报文在BD内进行转发。
    • 基于报文流封装类型接入业务:在VTEP连接下行业务的物理接口上创建二层子接口,并配置不同的流封装类型,使得不同的接口接入不同的数据报文。同时,将二层子接口与BD进行一一映射。这样业务侧报文到达VTEP后,即会进入指定的二层子接口。即根据二层子接口与BD的映射关系,实现报文在BD内进行转发。
  • 网络虚拟边缘NVE(Network Virtualization Edge)

    NVE是实现网络虚拟化功能的网络实体。报文经过NVE封装转换后,NVE间就可基于三层基础网络建立二层虚拟化网络。

  • 二层网关

    类似传统网络的二层接入设备,在VXLAN网络中通过二层网关解决租户接入VXLAN虚拟网络,也可用于同一VXLAN虚拟网络的子网通信。

VXLAN网络间互访(集中式网关)

不同BD之间的主机不能直接进行二层通信,需要通过VXLAN三层网关实现主机间的三层通信。

集中式网关是指将三层网关集中部署在一台设备上,如图2所示,所有跨子网的流量都经过三层网关进行转发,实现流量的集中管理。

图2 VXLAN网络间互访
 

VXLAN网络间互访中涉及的概念如下:

  • 三层网关

    类似传统网络中不同VLAN的用户间不能直接进行二层互访,不同VNI之间的VXLAN及VXLAN和非VXLAN之间也不能直接相互通信。为了使VXLAN之间,以及VXLAN和非VXLAN之间能够进行通信,引入了VXLAN三层网关的概念。

    三层网关用于VXLAN虚拟网络的跨子网通信以及外部网络的访问。

  • VBDIF接口

    类似于传统网络中采用VLANIF解决不同广播域互通的方法,在VXLAN中引入了VBDIF的概念。

    VBDIF接口在VXLAN三层网关上配置,是基于BD创建的三层逻辑接口。通过VBDIF接口配置IP地址可实现不同网段的VXLAN间,及VXLAN和非VXLAN的通信,也可实现二层网络接入三层网络。

VXLAN网络间互访(分布式网关)

分布式网关是指将VXLAN二层网关和三层网关部署在同一台设备上,如图3所示,VTEP设备既作为VXLAN网络中的二层网关设备,与主机对接,用于解决终端租户接入VXLAN虚拟网络的问题。同时也作为VXLAN网络中的三层网关设备,实现跨子网的终端租户通信,以及外部网络的访问。仅BGP EVPN方式部署VXLAN网络时支持分布式网关。

图3 VXLAN网络间互访
 

VXLAN分布式网关具有如下特点:

  • 同一个VTEP节点既可以做VXLAN二层网关,也可以做VXLAN三层网关,部署灵活。
  • VTEP节点只需要学习自身连接服务器的ARP表项,而不必像集中式三层网关一样,需要学习所有服务器的ARP表项,解决了集中式三层网关带来的ARP表项瓶颈问题,网络规模扩展能力强。
与VLAN对比

上面介绍VXLAN相关概念时与传统网络中的VLAN进行了对比,下面总结VXLAN与VLAN的差别。

表1 VXLAN网络与传统VLAN网络对比
对比项VLAN网络VXLAN网络

概念

虚拟局域网。

虚拟扩展局域网。

网络存在形式

将一个物理的LAN在逻辑上划分成多个广播域,并且将网络范围限制在一个较小的地域范围内。

在已有的任意路由可达的网络上叠加的二层虚拟网络,不受地域范围限制,具备大规模扩展能力。

可支持虚拟局域网范围

VLAN作为当前主流的网络隔离技术,在标准定义中只有12比特,因此可用的VLAN数量仅4096个。对于公有云或其它大型虚拟化云计算服务这种动辄上万甚至更多租户的场景而言,VLAN的隔离能力无法满足。

VXLAN作为新型的网络隔离技术,在RFC 7348定义中有24比特,支持多达16M(约1600万)租户隔离,有效地解决了云计算中海量租户隔离的问题。

网络划分方式

通过VLAN ID划分广播域,同一个广播域之间的主机能进行二层互通。

通过BD划分广播域,同一个BD内的主机可以进行二层互通。

封装方式

在报文中添加VLAN Tag。

原始报文在封装过程中先被添加一个VXLAN帧头,再被封装在UDP报头中,最后使用承载网络的IP、MAC地址作为外层头进行封装。(具体封装格式请参见VXLAN报文封装格式)

网络间互通方式

VLAN间互访通过VLANIF接口实现,VLANIF接口是一种三层的逻辑接口,可以实现VLAN间的三层互通。

VXLAN间互访以及VXLAN和非VXLAN之间的通信通过VBDIF接口实现。

VBDIF接口在VXLAN三层网关上配置,是基于BD创建的三层逻辑接口。

受益

限制广播域:广播域被限制在一个VLAN内,节省了带宽,提高了网络处理能力。

增强局域网的安全性:不同VLAN内的报文在传输时是相互隔离的,即一个VLAN内的用户不能和其它VLAN内的用户直接通信。

位置无关性:业务可在任意位置灵活部署,缓解了服务器虚拟化后相关的网络扩展问题。

网络部署灵活性:在传统网络架构上叠加新的网络,部署方便,同时避免了大二层的广播风暴,可扩展性极强。

适合云业务:支持千万级别租户隔离,支持云业务的大规模部署。

技术优势:采用MAC in UDP封装方式,无需关注主机的MAC地址,降低了大二层网络对MAC地址规格的需求。

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

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

相关文章

强化学习_06_pytorch-PPO实践(Hopper-v4)

一、PPO优化 PPO的简介和实践可以看笔者之前的文章 强化学习_06_pytorch-PPO实践(Pendulum-v1) 针对之前的PPO做了主要以下优化: batch_normalize: 在mini_batch 函数中进行adv的normalize, 加速模型对adv的学习policyNet采用beta分布(0~1): 同时增加MaxMinScale …

【中国善网ESG周报】企业ESG报告分析之“华大”

引言: ESG(环境、社会和治理)是一个越来越受到关注的话题,它涉及到企业在经营过程中如何平衡利润、人们和地球的利益。随着全球气候变化加剧、社会不平等问题日益突出,以及公司治理和道德标准的日益重要,E…

ISO_IEC_18598-2016自动化基础设施管理(AIM)系统国际标准解读(一)

██ ISO_IEC_18598-2016是什么标准? ISO/IEC 18598国际标准是由ISO(国际标准化组织)/IEC(国际电工委员会)联合技术委员会1-信息技术的第25分委员会-信息技术设备互连小组制定的关于信息基础设施自动化管理的国际标准&…

微信小程序固定头部-CSS实现

效果图 代码逻辑:设置头部的高度,浮动固定后,再加个这个高度的大小的外边距 .weui-navigation-bar {position: fixed;top: 0px;left: 0px;right: 0px;height:90px; } .weui-navigation-bar_bottom{height:90px; }

Chapter 8 - 19. Congestion Management in TCP Storage Networks

Queue Depth Monitoring and Microburst Detection Queue depth monitoring and microburst detection capture the events that may cause congestion at a lower granularity but are unnoticed by other means due to long polling intervals. 队列深度监控和微爆检测可捕捉…

人工智能到深度学习:药物发现的机器智能方法(综述学习)

Artificial intelligence to deep learning: machine intelligence approach for drug discovery - PubMed (nih.gov) 人工神经网络、深度神经网络、支持向量机、分类和回归、生成对抗网络、符号学习和元学习是应用于药物设计和发现过程的算法的例子。人工智能已应用于药物设计…

Tkinter.Text控件中,文本存在某个关键字的将被高亮显示(标记颜色+字体加粗)

在Tkinter的Text控件中,要标记某个关键字并改变其颜色,你可以使用tag_add方法来给包含关键字的文本添加标签,然后使用tag_config方法来配置该标签的显示样式,包括前景色(字体颜色)和背景色等。以下是一个完…

深度测试:指定DoC ID对ES写入性能的影响

在[[使用python批量写入ES索引数据]]中已经介绍了如何批量写入ES数据。基于该流程实际测试一下指定文档ID对ES性能的影响有多大。 一句话版 指定ID比不指定ID的性能下降了63%,且加剧趋势。 以下是测评验证的细节。 百万数据量 索引默认使用1分片和1副本。 指定…

Phoncent博客:探索AI写作与编程的无限可能

Phoncent博客,一个名为Phoncent的创新AIGC博客网站,于2023年诞生。它的创始人是庄泽峰,一个自媒体人和个人站长,他在网络营销推广领域有着丰富的经验。庄泽峰深知人工智能技术在内容创作和编程领域的潜力和创造力,因此…

SpringCloud 基本概念

开篇 学习springcloud的前提我已经认为你已经具备: 微服务的基本概念具备springboot的基本用法 eurake server:注册中心,对标zookeeper eurake client:服务,对标dubbo ribbon:负载均衡,对标nginx feign:与ribbon类似,目前项目没有使用,暂时就不写 hystrix:断路…

面试笔记系列四之SpringBoot+SpringCloud+计算机网络基础知识点整理及常见面试题

什么是 Spring Boot? Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。 Spring Boot 有哪…

阿里云2核4G服务器租用价格85元一年,30元3个月

阿里云2核4G服务器多少钱一年?2核4G服务器1个月费用多少?2核4G服务器30元3个月、85元一年,轻量应用服务器2核4G4M带宽165元一年,本文阿里云服务器网整理的2核4G参加活动的主机是ECS经济型e实例和u1云服务器,阿里云服务…

REVERSE-COMPETITION-VNCTF-2024

REVERSE-COMPETITION-VNCTF-2024 前言TBXObaby_c2yunobfuseko 前言 ko的随机数算法没看出来,可惜~ 这里给自己打个广告:东南网安研二在读,求实习,求内推,求老板们多看看我QAQ TBXO 通过字符串定位到main函数汇编视…

K8S之使用Deployment实现滚动更新

滚动更新 滚动更新简介使用Deployment实现滚动更新相关字段介绍测试滚动更新观察滚动更新查看历史版本 自定义滚动更新策略自定义配置建议实践自定义策略通过 RollingUpdateStrategy 字段来设置滚动更新策略使用Recreate更新策略 滚动更新简介 滚动更新是一种自动化程度较高的…

C++入门06 数据的共享与保护

图源:文心一言 听课笔记简单整理,供小伙伴们参考,内容包含“🐋5.2 变量的生存期与可见性、🐋5.5 静态成员与静态函数、🐋5.6 友元函数与友元类、🐋5.7 共享数据的保护 / const关键字、&#x1…

使用Fragments(片段)提升你的Vue.js开发体验

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

JS进阶——深入对象

版权声明 本文章来源于B站上的某马课程,由本人整理,仅供学习交流使用。如涉及侵权问题,请立即与本人联系,本人将积极配合删除相关内容。感谢理解和支持,本人致力于维护原创作品的权益,共同营造一个尊重知识…

docker安装单机版canal和使用

说明:我安装的组件架构如下: 1、准备一台虚拟机,192.168.2.223,我安装的时候,docker只支持canal1.1.6版本,1.1.7无法使用docker安装.还有一点要补充,就是1.1.6好像不支持es8.0以上版本&#x…

基于springboot实现的牙科诊所系统

一、系统架构 前端:html | layui | js | css 后端:springboot | mybatis 环境:jdk1.8 | mysql | maven 二、 代码及数据库 三、功能介绍 01. web端-首页 02. web端-医生介绍 03. web端-新闻资讯 04. web端-关于我们 05. web…

mini-spring|关于Bean对象作用域以及FactoryBean的实现和使用

需求 FactoryBean 直接配置FactoryBean 获取FactoryBean中的Bean对象 FactoryBean的getObject方法通过反射获取Bean对象 由此省去对实体Dao类的定义 解决方法 对外提供一个可以二次从 FactoryBean 的 getObject 方法中获取对象的功能即可 整体架构 整个的实现过程包括了两部…