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

组网示图如下:

在这里插入图片描述

  • 21
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VPP(Vector Packet Processing)是一种高性能数据平面框架,支持多种协议,包括 IKEv2(Internet Key Exchange version 2)协议。在VPP配置IKEv2,需要进行以下步骤: 1. 安装VPP 首先,需要安装VPP和相关的插件。可以从官方网站上下载最新版本的VPP,并按照官方文档进行安装。 2. 配置IKEv2插件 在VPP中,可以使用IKEv2插件来实现IKEv2协议的支持。需要启用IKEv2插件,可以使用以下命令: ``` set plugins plugin_path /usr/lib64/vpp_plugins/ set plugins plugin default-plugin-enable set plugins plugin ikev2-plugin-enable ``` 3. 配置IKEv2连接 在VPP中,可以使用IKEv2插件来创建IKEv2连接。可以使用以下命令创建IKEv2连接: ``` ikev2 profile name IKEV2-PROFILE ikev2 profile auth shared-secret KEY ikev2 profile local-auth method pre-shared-key ikev2 profile remote-auth method pre-shared-key ikev2 profile local-id name FQDN ikev2 profile remote-id name FQDN ikev2 profile tunnel-ip local IP_ADDRESS ikev2 profile tunnel-ip remote IP_ADDRESS ikev2 profile ike-crypto-profile IKE-CRYPTO-PROFILE ikev2 profile esp-crypto-profile ESP-CRYPTO-PROFILE ``` 4. 配置IKEv2策略 在VPP中,可以使用IKEv2插件来配置IKEv2策略。可以使用以下命令配置IKEv2策略: ``` ikev2 policy name IKEV2-POLICY ikev2 policy proposal 1 encryption aes-256-gcm ikev2 policy proposal 1 integrity sha-256 ikev2 policy proposal 1 dh-group 19 ikev2 policy proposal 1 lifetime seconds 3600 ``` 5. 配置IKEv2安全协议 在VPP中,可以使用IKEv2插件来配置IKEv2安全协议。可以使用以下命令配置IKEv2安全协议: ``` ikev2 crypto name IKE-CRYPTO ikev2 crypto proposal 1 encryption aes-256-gcm ikev2 crypto proposal 1 integrity sha-256 ikev2 crypto proposal 1 dh-group 19 ikev2 crypto proposal 1 lifetime seconds 3600 ``` 6. 配置ESP安全协议 在VPP中,可以使用IKEv2插件来配置ESP安全协议。可以使用以下命令配置ESP安全协议: ``` ikev2 crypto name ESP-CRYPTO ikev2 crypto proposal 1 encryption aes-256-gcm ikev2 crypto proposal 1 integrity sha-256 ikev2 crypto proposal 1 lifetime seconds 3600 ``` 7. 配置IKEv2转发 在VPP中,可以使用IKEv2插件来配置IKEv2转发。可以使用以下命令配置IKEv2转发: ``` ikev2 route name IKEV2-ROUTE ikev2 route local-networks 10.0.0.0/24 ikev2 route remote-networks 10.1.0.0/24 ikev2 route profile IKEV2-PROFILE ``` 以上就是在VPP配置IKEv2的步骤。需要根据实际情况进行调整和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值