VPP学习之配置VXLAN隧道

VPP学习之配置VXLAN隧道

一、VXLAN技术

VXLAN(Virtual eXtensible Local Area Network,虚拟扩展局域网),是由IETF定义的NVO3(Network Virtualization over Layer 3)标准技术之一,是对传统VLAN协议的一种扩展。VXLAN的特点是将L2的以太帧封装到UDP报文(即L2 over L4)中,并在L3网络中传输

主要特征和组成部分包括:

  1. Overlay Network: VXLAN创建了一个逻辑上的覆盖网络,允许在底层物理网络之上构建虚拟网络。这个覆盖网络通过虚拟网络标识符(VNI)来区分不同的虚拟网络。
  2. 封装: VXLAN使用UDP(User Datagram Protocol)封装来传输虚拟网络的数据包。每个VXLAN数据包都被封装在一个UDP包中,UDP的目的端口通常是4789。
  3. VXLAN头: VXLAN头部包含了VXLAN网络标识符(VNI),用于标识虚拟网络,以及其他一些字段。
  4. 扩展性: VXLAN通过使用24位的VNI提供了16,777,216(2^24)个虚拟网络标识符,从而支持大规模的虚拟网络。
  5. 多租户隔离: VXLAN允许在同一物理网络上创建多个虚拟网络,从而实现多租户隔离。每个虚拟网络都有独立的VNI,使其与其他虚拟网络相互隔离。
  6. 跨子网: VXLAN允许虚拟网络跨越物理子网,使得虚拟机能够在不同的物理子网上移动而无需修改其IP地址。
  7. 用途: VXLAN通常用于构建跨数据中心的云计算网络、实现虚拟机迁移、多租户环境隔离等场景。
1、VXLAN数据包格式

在这里插入图片描述

由上可以看出VXLAN将原始L2帧封装到L4 UDP报文中。

2、VXLAN协议原理
  • VTEP(VXLAN Tunnel Endpoints,VXLAN 隧道端点):VXLAN 网络的边缘设备,用来进行 VXLAN 报文的处理(封包和解包)。VTEP 可以是网络设备(比如交换机),也可以是一台机器(比如虚拟化集群中的宿主机)。
  • VNI(VXLAN Network Identifier,VXLAN 网络标识符):VNI 是每个 VXLAN 段的标识,是个 24 位整数,一共有 2 24 = 16777216 2^{24} = 16777216 224=16777216(一千多万),一般每个 VNI 对应一个租户,也就是说使用 VXLAN 搭建的公有云可以理论上可以支撑千万级别的租户。
  • Tunnel(VXLAN 隧道):隧道是一个逻辑上的概念,在 VXLAN 模型中并没有具体的物理实体向对应。隧道可以看做是一种虚拟通道,VXLAN 通信双方认为自己是在直接通信,并不知道底层网络的存在。从整体来说,每个 VXLAN 网络像是为通信的虚拟机搭建了一个单独的通信通道,也就是隧道。

img

上图所示为 VXLAN 的工作模型,它创建在原来的 IP 网络(L3层)上,只要是三层可达(能够通过 IP 相互通信)的网络就能部署 VXLAN。在 VXLAN 网络的每个端点都有一个 VTEP 设备,负责 VXLAN 协议报文的解包和封包,也就是在虚拟报文上封装 VTEP 通信的报文头部。

物理网络上可以创建多个 VXLAN 网络,可以将这些 VXLAN 网络看成一个隧道,不同节点上的虚拟机/容器能够通过隧道直连。通过 VNI 标识不同的 VXLAN 网络,使得不同的 VXLAN 可以相互隔离。

总的来说,VXLAN 报文的转发过程就是:原始报文经过 VTEP,被 Linux 内核添加上 VXLAN 头部以及外层的 UDP 头部,再发送出去,对端 VTEP 接收到 VXLAN 报文后拆除外层 UDP 头部,并根据 VXLAN 头部的 VNI 把原始报文发送到目的服务器。

3、VXLAN与VLAN的区别

VLAN作为传统的网络隔离技术,在标准定义中VLAN的数量只有4000个左右,无法满足大型数据中心的租户间隔离需求。另外,VLAN的二层范围一般较小且固定,无法支持虚拟机大范围的动态迁移

VXLAN完美地弥补了VLAN的上述不足,一方面通过VXLAN中的24比特VNI字段,提供多达16M租户的标识能力,远大于VLAN的4000;另一方面,VXLAN本质上在两台交换机之间构建了一条穿越数据中心基础IP网络的虚拟隧道,将数据中心网络虚拟成一个巨型“二层交换机”,满足虚拟机大范围动态迁移的需求。

两者的具体区别如下:

  1. 封装机制:
    • VXLAN: 使用UDP封装技术,通过在数据包上添加VXLAN头并使用UDP进行封装,从而在物理网络上创建一个虚拟网络。
    • VLAN: 使用802.1Q标准,将VLAN标签插入以太网帧的头部,以区分不同的虚拟网络。
  2. 网络标识符:
    • VXLAN: 使用24位的VXLAN网络标识符(VNI),允许创建多达16,777,216个虚拟网络。
    • VLAN: 使用12位的VLAN标签,允许创建最多4096个VLAN。
  3. 扩展性:
    • VXLAN: 提供更大的虚拟网络标识符空间,因此在大规模云计算环境中更具扩展性。
    • VLAN: 在小到中型规模的网络中表现良好,但在大规模部署时可能受到限制。
  4. 隔离性:
    • VXLAN: 具有更好的多租户隔离能力,每个虚拟网络都有独立的VNI,使其能够在物理网络上互相隔离。
    • VLAN: 虽然可以提供隔离,但在大型部署中,VLAN的数量和范围受到一些限制。
  5. 跨子网:
    • VXLAN: 允许虚拟网络跨越物理子网,因此虚拟机可以在不同的物理子网上移动而无需更改IP地址。
    • VLAN: 通常限于单一子网,虚拟机在不同子网上移动时需要进行IP地址更改。
  6. 应用领域:
    • VXLAN: 主要用于云计算环境,支持大规模虚拟网络的创建和管理。
    • VLAN: 在传统企业网络中广泛应用,提供不同部门或功能之间的逻辑隔离。

二、VPP的VXLAN

通过使用VXLAN隧道在跨三层的underlay网络上构建二层overlay网络,可以实现二层桥接域(bridge domains,BD)跨越多个网络设备或公网。这使得在地理位置上分离的服务器也可以共同位于同一数据中心,只要它们可以通过底层的三层网络访问即可。

VPP中的VTEP(VXLAN Tunnel End Points,VXLAN隧道端点)设备就是VPP,VTEP是在创建VXLAN隧道时指定的,每个VXLAN隧道的源IP地址和目标IP地址就是本地服务器VTEP地址和目标服务器VTEP地址。

如下为两个VTEP设置之间负责对VXLAN流量进行封装和解封装操作过程,其中每个方框为VPP中的报文流量所经过的VPP节点。

在这里插入图片描述

在vppctl中创建VTEP1

# 将eth0口up
set interface state eth0 up

ip table add 100

# 创建eth0的qinq子接口eth0.100100,并up
create sub-interfaces eth0 100100 dot1q 100 inner-dot1q 100 exact-match
set interface state eth0.100100 up

# 创建vxlan接口eth0.10
create sub-interfaces eth0 10
set interface state eth0.10 up
set interface ip address eth0.10 192.168.8.8/24

# 创建Bridge Domain桥
create bridge-domain 11

# 创建BVI接口
bvi create instance 100
set interface state bvi100 up
create sub-interfaces bvi100 100100 dot1q 100 inner-dot1q 100 exact-match
set interface state bvi100.100100 up
set interface ip table bvi100.100100 100
set interface ip address  bvi100.100100 192.168.9.9/24

# 配置vxlan隧道
create vxlan tunnel src 192.168.8.8 dst 192.168.7.7 vni 10 decap-next l2
set interface l2 bridge vxlan_tunnel0 11
set interface l2 bridge eth0.100100 11
set interface l2 bridge bvi11.100100 11 bvi

配置VTEP2:

set interface state eth0 up
set interface state eth1 up

create sub-interfaces eth0 200200 dot1q 200 inner-dot1q 200 exact-match
set interface state eth0.200200 up

create sub-interfaces eth0 10
set interface state eth0.10 up
set interface ip address eth0.10 192.168.7.7/24

create bridge-domain 21

create vxlan tunnel src 192.168.7.7 dst 192.168.8.8 vni 10 decap-next l2
set interface l2 bridge vxlan_tunnel0 21
set interface l2 bridge eth0.200200 21
set interface l2 tag-rewrite eth0.200200 translate 2-2 dot1q 100 100

组网示图如下:

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

互动多媒体内容的魔法:如何让你的网页活起来

互动多媒体内容的魔法:如何让你的网页活起来 前言 在之前的文章中,我们探讨了网页结构中的基础介绍,本文将介绍如何通过简单的交互增强用户体验,包括图像大小的动态切换,以及音视频内容的播放控制来介绍网页多媒体的具…

测试:4核8G服务器并发数,支持多少人?

腾讯云4核8G服务器支持多少人在线访问?支持25人同时访问。实际上程序效率不同支持人数在线人数不同,公网带宽也是影响4核8G服务器并发数的一大因素,假设公网带宽太小,流量直接卡在入口,4核8G配置的CPU内存也会造成计算…

出现 ‘vue‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件的解决方法(图文界面)

目录 前言1. 问题所示2. 原理分析3. 解决方法前言 由于Java转全栈,对此前端的细节点都比他人更加注意,所以此处记录更有用的信息!(小白都能看懂) 1. 问题所示 出现如下问题: F:\vue_project>vue -version vue 不是内部或外部命令,也不是可运行的程序 或批处理文件…

网关kong记录接口处理请求和响应插件 tcp-log-with-body的安装

tcp-log-with-body 介绍 Kong的tcp-log-with-body插件是一个高效的工具,它能够转发Kong处理的请求和响应。这个插件非常适用于需要详细记录API请求和响应信息的情景,尤其是在调试和排查问题时。 软件环境说明 kong version 2.1.4 - 2.8.3 [可用亲测]C…

Windows Docker 部署 Redis

部署 Redis 打开 Docker Desktop,切换到 Linux 内核。然后在 PowerShell 执行下面命令,即可启动一个 redis 服务 docker run -d --name redis -p 6379:6379 redis-如果需要自启动,加 --restart always 参数即可。 连接 Redis 使用客户端连…

数据中心GPU集群高性能组网技术分析

数据中心GPU集群组网技术是指将多个GPU设备连接在一起,形成一个高性能计算的集群系统。通过集群组网技术,可以实现多个GPU设备之间的协同计算,提供更大规模的计算能力,适用于需要大规模并行计算的应用场景。 常用的组网技术&…

【Python笔记-设计模式】状态模式

一、说明 状态模式是一种行为设计模式,用于解决对象在不同状态下具有不同行为 (一) 解决问题 在对象行为根据对象状态而改变时,规避使用大量的条件语句来判断对象的状态,提高系统可维护性 (二) 使用场景 当对象的行为取决于其状态&#…

NPN型三极管与PNP型三极管基本原理

NPN型三极管与PNP型三极管基本原理 文章目录 NPN型三极管与PNP型三极管基本原理一、三极管二、结构三、工作原理四、基本应用五、总计 一、三极管 三极管是电子电路中最基本、最常见、重要的器件,其主要功能是对电流的放大和开关作用,从半导体结构上可以…

全国夜间灯光指数数据、GDP密度分布、人口密度分布、土地利用数据、降雨量数据

引言 DMSP/OLS的1992-2013年全球遥感影像,包括三种非辐射定标的夜间灯光影像。三种全年平均影像分别是:无云观测频数影像、平均灯光影像和稳定灯光影像。目前地理遥感生态网可提供全国稳定灯光影像免费下载。稳定灯光影像是标定夜间平均灯光强度的年度栅…

HCIA-HarmonyOS设备开发认证V2.0-习题

目录 习题一习题二(待续...)坚持就有收获 习题一 # HarmonyOS简介 1. 以下哪几项属于OpenHarmony的技术特性?()A. 统一OS,弹性部署B. 一次开发,多端部署C. 硬件互助,资源共享2. Ope…

Ansible get_url模块 get_url模块用于将文件或软件从http、https或ftp下载到本地节点上

目录 常用参数:案例验证 常用参数: dest: 指定将文件下载的绝对路径—必须 url: 文件的下载地址(网址)—必须 url_username: 用于http基本认证的用户名 url_password: 用于http基本认证的密码 v…

Springboot解决模块化架构搭建打包错误找不到父工程

Springboot解决模块化架构搭建打包错误找不到父工程 一、情况一找不到父工程依赖1、解决办法 二、情况二子工程相互依赖提示"程序包xxx不存在" 一、情况一找不到父工程依赖 报错信息 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:…

最新精心整理Android面试题,Android未来路在何方

我们程序员经常迷茫于有太多东西要学,有些找不到方向、不知所措。 很多程序员都愿意说,我想变得更好,但是更好是什么却很模糊,同时我们又不知道该怎么样去做。我们的生命如此短暂,作为程序员的职业生涯可能会更短。所…

海量物理刚体 高性能物理引擎Unity Physics和Havok Physics的简单性能对比

之前的博客中我们为了绕过ECS架构,相当于单独用Batch Renderer Group实现了一个精简版的Entities Graphics,又使用Jobs版RVO2实现了10w人同屏避障移动。 万人同屏对抗割草 性能测试 PC 手机端 性能表现 弹幕游戏 海量单位同屏渲染 锁敌 避障 非ECS 那么有…

react 原理揭秘

1.目标 A. 能够知道setState()更新数据是异步的 B. 能够知道JSX语法的转化过程 C. 能够说出React组件的更新机制 D. 能够对组件进行性能优化 E. 能够说出虚拟DOM和Diff算法 2.目录 A. setState()的说明 B. JSX语法的转化过程 C. 组件更新机制 D. 组件性能优化 E. 虚拟DOM和D…

xss高级靶场

一、环境 XSS Game - Ma Spaghet! | PwnFunction 二、开始闯关 第一关 看看代码 试一下直接写 明显进来了为什么不执行看看官方文档吧 你不执行那我就更改单标签去使用呗 ?somebody<img%20src1%20onerror"alert(1)"> 防御&#xff1a; innerText 第二关…

云计算 2月26号 (进程管理和常用命令)

一、权限扩展 文件权限管理之&#xff1a; 隐藏权限防止root误删除 文件属性添加与查看 [rootlinux-server ~]# touch file1 file2 file3 1.查看文件属性 [rootlinux-server ~]# lsattr file1 file2 file3 ---------------- file1 ---------------- file2 ---------------- f…

AI时代的产品文案秘籍:如何用AI提升效率

人工智能写作工具&#xff1a;解放双手&#xff0c;创作不停歇 在当前人工智能技术飞速发展的背景下&#xff0c;越来越多的个体已经开始利用这一AI写作工具&#xff0c;以显著提高自己的工作效率。这不仅标志着人工智能服务于人类的宏伟时代的到来&#xff0c;更是人人可用的创…

ArmSoM Rockchip系列产品 通用教程 之 CAN 使用

CAN 使用 1. CAN 简介 CAN (controller Area Network)&#xff1a;控制器局域网络总线&#xff0c;是一种有效支持分布式控制或实时控制的串行通信网络。 目前世界上绝大多数汽车制造厂商都采用CAN总线来实现汽车内部控制系统之间的数据通信。 RK3568/RK3588的CAN驱动文件&a…

【嵌入式——QT】日期与定时器

日期 QTime&#xff1a;时间数据类型&#xff0c;仅表示时间&#xff0c;如 16:16:16&#xff1b;QDate&#xff1a;日期数据类型&#xff0c;仅表示日期&#xff0c;如2024-1-22&#xff1b;QDateTime&#xff1a;日期时间数据类型&#xff0c;表示日期和时间&#xff0c;如2…