在 NFX250 新一代设备上配置 VNF
借助 NFX250 新一代设备,您可以从 Junos 控制平面 (JCP) 实例化和管理虚拟化网络功能 (VNF)。JCP支持创建和管理第三方 VNF。
加载 VNF 图像
要配置 VNF,必须登录JCP:
user@host:~ # cli
user@host>
要从远程位置在设备上加载 VNF 映像,可使用 file-copy
usb-pass-through
命令或从 USB 复制映像。
您必须在 /var/公共 目录中保存 VNF 映像。
user@host> file copy source-address /var/public
例如:
user@host> file copy scp://192.0.2.0//tftpboot/centos.img /var/public
或者,您也可以使用 NETCONF 命令 file-put
加载 VNF 映像。
要从 USB 复制 VNF 映像,请参阅 NFX 系列设备上的 USB 支持文件传输。
准备自举配置
您可以使用包含自举配置 ISO 文件的附加配置驱动器启动 VNF。有关创建 ISO 文件的示例,请参阅 创建 vSRX Bootstrap ISO 映像的过程。此过程可能因您用于创建 ISO 文件的操作系统(例如 Linux、Ubuntu)而异。
配置驱动器是一个虚拟驱动器,可以是与配置数据相关联的 CD-ROM、USB 驱动器或与 VNF 关联的磁盘驱动器。配置数据可以是文件或文件夹,这些文件夹捆绑在 ISO 文件中,用于制作虚拟 CD-ROM、USB 驱动器或 Disk 驱动器。
自举配置文件必须包含初始配置,允许从外部控制器访问 VNF,并接受来自外部控制器的 SSH、HTTP 或 HTTPS 连接,以便进行进一步的运行时配置。
通过连接配置驱动器,可通过 CLI 将 IP 地址、子网掩码和网关等网络配置传递至 VNF。接收配置输入后,设备将生成自举配置 ISO 文件,并将该文件作为 CD-ROM、USB 驱动器或 Disk 驱动器连接到 VNF。
有关配置和连接配置驱动器的详细信息,请参阅 (可选)将配置驱动器连接到 VNF。
-
该系统可在 /var/公共 文件夹中保存自举配置 ISO 文件。只有当文件夹中的可用空间是文件中内容总大小的两倍以上时,文件才会保存。如果文件夹中的可用空间不足,则在您提交配置时将显示错误消息。
-
重新启动系统时,系统将生成新的自举配置 ISO 文件,并将现有 ISO 文件替换为 VNF 上的新 ISO 文件。
-
配置驱动器是只读驱动器。基于 VNF,您可以将配置驱动器指定为只读 CD-ROM 驱动器、USB 驱动器或 Disk 驱动器。
配置驱动器支持以下 VNF 数据:
-
静态内容即文件 — 设备通过 CLI 接受一个或多个文件路径,将这些文件转换为 ISO 映像,然后将其连接到 VNF。配置驱动器在 VNF 配置中支持多个静态文件。
-
Jinja2 模板和参数 — Jinja2 参数由密钥值对组成。键在模板中指定,在渲染模板时,该值将替换密钥。系统将渲染的输出文件添加至 ISO 映像,然后将其连接到 VNF。模板的最大参数数为 256 个键值对。配置驱动器在 VNF 配置中支持多个模板及其参数。
注意:配置驱动器仅支持 Jinja2 模板。
-
目录 — 设备接受特定目录内容,将给定文件夹中的文件夹结构转换为 ISO 映像,然后将其连接到 VNF。配置驱动器仅支持一个文件夹。该文件夹将成为 ISO 映像中的 root 目录,并将所有后续文件夹和文件添加到 ISO 映像中。
-
您可以在 VNF 配置中添加多个源模板和源文件。
-
要在 VNF 配置中添加多个源模板和一个源文件夹,目标模板文件必须位于源文件夹内。
-
您只能在 VNF 配置中添加一个源文件夹。
-
如果两个 VNF 共享同一组文件,则会为每个 VNF 生成单独的自举配置 ISO 文件。删除一个 VNF 不会影响其他 VNF。
为 VNF 分配 CPU
表 1 列出了可用于 NFX250 型号的 VNF 使用的 CPU。
模型 |
可用于 VNF 使用的 CPU |
||||
---|---|---|---|---|---|
吞吐量模式 |
混合模式 |
计算模式 |
自定义模式 |
||
Flex 模式 |
Perf 模式 |
||||
NFX250-S1 |
0 |
4 |
8 |
8 |
8 |
NFX250-S1E |
0 |
4 |
8 |
8 |
8 |
NFX250-S2 |
0 |
4 |
8 |
8 |
8 |
用于 flex 和 perf 自定义模式的资源分配基于默认 Junos 配置中提供的模板。
更改设备的性能模式时,建议检查 VNF 的 CPU 可用性。
要检查 CPU 可用性及其状态:
user@host> show system visibility cpu CPU Statistics (Time in sec) ------------------------------------------------------------------------------- CPU Id User Time System Time Idle Time Nice Time IOWait Time Intr. Service Time ------ --------- ----------- --------- --------- ----------- ------------------ 0 7762 1475 60539 0 84 0 1 191 511 70218 0 10 0 2 102 32 70841 0 12 0 3 0 0 70999 0 0 0 4 0 0 70999 0 0 0 5 0 0 70999 0 0 0 6 70949 0 50 0 0 0 7 9005 532 59602 0 0 0 8 23 7 70966 0 0 0 9 21 7 70969 0 0 0 10 20 6 70969 0 0 0 11 18 6 70970 0 0 0 CPU Usages ---------------- CPU Id CPU Usage ------ --------- 0 17.899999999999999 1 0.0 2 0.0 3 0.0 4 0.0 5 0.0 6 100.0 7 15.199999999999999 8 0.0 9 0.0 10 0.0 11 0.0 CPU Pinning Information ------------------------------------ Virtual Machine vCPU CPU --------------------------- ---- --- vjunos0 0 0 System Component CPUs ------------------------------- -------- ovs-vswitchd 0, 6
vjunos0 是一个系统 VNF,不能修改 vjunos0 的 CPU 分配。
要指定 VNF 所需的虚拟 CPU 数量:
物理 CPU 编号可以是一个数字或一个编号范围。默认情况下,VNF 将分配一个未连接到任何物理 CPU 的虚拟 CPU。
在运行 VNF 时,您无法更改 VNF 的 CPU 配置。要执行更改,您必须重新启动 VNF。
从 Junos OS 22.1 R1 版开始,您可以使用以下命令将仿真器固定到特定物理 CPU:
user@host# set virtual-network-functions vnf-name emulator physical-cpu cpu-range
不能使用 CPU 0 或脱机 CPU 进行仿真器插脚。如果不将仿真器固定到特定物理 CPU,QEMU 会自动将其固定至虚拟 CPU。仿真器引脚的更改立即对运行中的 VNF 生效。
要为 VNF CPU 启用硬件虚拟化或硬件加速:
user@host# set virtual-network-functions vnf-name virtual-cpu features hardware-virtualization
为 VNF 分配内存
默认情况下,一定数量的内存分配给 VNF。 表 2 列出了 NFX250 型号使用 VNF 的可能内存可用性。
模型 |
可用总内存数 |
在计算、混合和吞吐量模式下为 VNF 使用提供巨大页面可用性 |
在自定义模式下为 VNF 使用提供巨大页面可用性 |
|
---|---|---|---|---|
Flex 模式 |
Perf 模式 |
|||
NFX250-LS1 |
16 GB |
6 个 1G 大页 |
9 个 1G 大页 |
9 个 1G 大页 |
NFX250-S1 和 NFX250-S1E |
16 GB |
6 个 1G 大页 |
9 个 1G 大页 |
9 个 1G 大页 |
NFX250-S2 |
32 GB |
22 个 1G 大页 |
24 个 1G 大页 |
24 个 1G 大页 |
用于 flex 和 perf 自定义模式的资源分配基于默认 Junos 配置中提供的模板。
要检查可用内存:
user@host> show system visibility memory
Memory Information
------------------
Virtual Memory:
---------------
Total (KiB): 15914364
Used (KiB): 13179424
Available (KiB): 3087076
Free (KiB): 2734940
Percent Used : 80.6
Huge Pages:
------------
Total 1GiB Huge Pages: 7
Free 1GiB Huge Pages: 5
Configured 1GiB Huge Pages: 5
Total 2MiB Huge Pages: 1376
Free 2MiB Huge Pages: 1
Configured 2MiB Huge Pages: 0
Hugepages Usage:
----------------------------------------------------------------------------------------------------------
Name Type Used 1G Hugepages Used 2M Hugepages
--------------------------------- ---------------------------------- ------------------ ------------------
srxpfe other process 1 1375
ovs-vswitchd other process 2 0
vjunos0 是一种系统 VNF,不能修改 vjunos0 的内存分配。
要指定 VNF 可以使用的最大主内存:
user@host# set virtual-network-functions vnf-name memory size size
在运行 VNF 时,您无法更改 VNF 的内存配置。要执行更改,您必须重新启动 VNF。
(可选)将配置驱动器连接到 VNF
要将配置驱动器连接到 VNF:
要验证配置驱动器是否连接到 VNF,请参阅 VNF Disk Information
show system visibility vnf 命令输出消息中的一节。
例如:
user@host> show system visibility vnf vsrx2 VNF Memory Usage -------------------------------------------------------------------------------------------------------------------- Name Maximum Memory (KiB) Used Memory (KiB) Used 1G Hugepages Used 2M Hugepages -------------------------------------- --------------------- ------------------ ------------------ ----------------- vsrx2 4194304 4194304 4 0 VNF CPU Statistics (Time in ms) ----------------------------------------------------------------------------- Name CPU Time System Time User Time -------------------------------------- ------------ ------------ ------------ vsrx2 3288 1510 770 VNF MAC Addresses ----------------------------------------------------------- VNF MAC ----------------------------------------- ----------------- vsrx2_ethdef0 9C:CC:83:BD:8C:42 vsrx2_ethdef1 9C:CC:83:BD:8C:43 VNF Internal IP Addresses --------------------------------------------------------- VNF IP ----------------------------------------- --------------- vsrx2 192.0.2.100 VNF Interfaces -------------------------------------------------------------------------------------------------------- VNF Interface Type Source Model MAC IPv4-address -------------------- --------- --------- ------------ ---------- ----------------- --------------------- vsrx2 vnet4 network default virtio 9c:cc:83:bd:8c:42 -- vsrx2 vnet5 bridge eth0br virtio 9c:cc:83:bd:8c:43 -- VNF Disk Information --------------------------------------------------------------------------------------------------------- VNF Disk File ----------------------------- ----------- --------------------------------------------------------------- vsrx2 vda /var/public/media-vsrx-vmdisk-15.1X49-D78.4.qcow2.1 vsrx2 hda /var/public/vnf_config_data_vsrx2 VNF Disk Usage ------------------------------------------------------------------------------ VNF Disk Read Req Read Bytes Write Req Write Bytes -------------------- --------- ---------- ------------ ---------- ------------ vsrx2 vda 14125 109740032 0 0 vsrx2 hda 0 0 0 0 VNF Port Statistics ---------------------------------------------------------------------------------------------------------------------------- VNF Port Rcvd Bytes Rcvd Packets Rcvd Error Rcvd Drop Trxd Bytes Trxd Packets Trxd Error Trxd Drop -------------------- --------- ------------ ------------ ---------- --------- ------------ ------------ ---------- --------- vsrx2 vnet4 52 1 0 0 0 0 0 0 vsrx2 vnet5 60 1 0 0 0 0 0 0 VNF Media Information ---------------------------------------------------------------------------------------------------------------- VNF Media Disk File ----------------------------- ----- ------------ --------------------------------------------------------------- vsrx2 CDROM hda /var/public/vnf_config_data_vsrx2
为 VNF 配置接口和 VLAN
您可以配置 VNF 接口,将 VNF 接口映射到虚拟功能,并将接口连接到物理 NIC 端口、管理接口或 VLAN,为其分配 VLAN ID,并在其上启用信任模式。
在 Junos OS 21.3R1、21.2R2、21.2R1、21.1R2 和 20.4R3 版本之前,配置 SR-IOV VNF 接口和分配 VLAN ID 的步骤如下:
user@host# set virtual-network-functions vnf-name interfaces vnf-interface-name mapping interface physical-interface-name virtual-function vlan-id vlan-id
从 Junos OS 版本 21.3R1、21.2R2、21.2R1、21.1R2 和 20.4R3 开始,配置 SR-IOV VNF 接口以分配 VLAN ID 和启用信任模式的步骤如下:
要将 VNF 接口映射到虚拟功能:
user@host# set virtual-network-functions vnf-name interfaces vnf-interface-name mapping interface physical-interface-name
要使用 SR-IOV 虚拟功能并将 VNF 接口连接到物理 NIC 端口,然后分配 VLAN ID:
user@host# set virtual-network-functions vnf-name interfaces vnf-interface-name mapping interface virtual-function vlan-id vlan-id
vlan-id 是端口的 VLAN ID,是可选值。
要启用信任模式:
user@host# set virtual-network-functions vnf-name interfaces vnf-interface-name mapping interface virtual-function trust
-
Junos OS 版本 21.3R1、21.2R2、21.2R1、21.1R2 和 20.4R3 中的 NFX 系列设备支持信任模式。
-
如果在 VNF SR-IOV 接口上启用信任模式,则 VNF 接口将进入混合模式。
要将 VNF 接口连接到 VLAN:
-
创建 VLAN:
user@host# set vmhost vlan vlan-name
-
将 VNF 接口连接到 VLAN:
user@host# set virtual-network-functions vnf-name interfaces interface-name mapping vlan members list-of-vlans [mode trunk|access]
VNF 接口可映射到一个或多个物理接口。您可以通过配置虚拟端口对等方 (VPP) 功能来启用此功能。您可以将 VNF 的 OVS 接口之间的映射配置为一个或多个前面板接口。如果所有映射物理接口都处于非活动状态,VNF 接口将变得不活动。即使至少有一个映射的物理接口处于活动状态,VNF 接口也变得处于活动状态。
-
如果 VNF 接口处于非活动状态,映射的物理接口不会失灵。
-
在将不支持信任模式的软件映像升级到支持信任模式的映像之前,建议从配置中删除所有 VNF 接口到虚拟功能映射。
-
将支持信任模式的软件映像降级到不支持信任模式的映像之前,必须从配置中删除所有 VNF 接口到虚拟功能映射。否则,该设备在降级后进入 Amnesiac 状态。
VNF 的接口是一个 OVS 端口,此映射在配置中定义。如果映射规则可以在触发操作之前查看多个物理端口,则配置 VPP 功能允许您管理多个冗余物理链路。
您可以在 VNF 虚拟接口和JCP物理接口(ge-0/0/x 和 xe-0/0/x)之间配置映射。一个虚拟接口可映射到一个或多个物理接口。VNF 虚拟接口可映射到的物理接口数量没有限制。您可以将 VNF 虚拟接口映射到所有物理接口,也可以将多个 VNF 接口映射到单个物理接口。
要配置 VPP:
root@host# set virtual-network-functions vnf-name interfaces interface-name mapping peer-interfaces physical-interface-name
例如:
root@host# set virtual-network-functions centos1 interfaces eth2 mapping peer-interfaces ge-0/0/6
要查看对等接口的映射,请运行 show system visibility vnf vnf-name
命令。
-
VNF 重新启动时,连接到 VNF 的接口将持续存在。
-
如果 VNF 支持热插拔,则可以在 VNF 运行时连接接口。否则,您必须添加接口,然后重新启动 VNF。
-
在运行 VNF 时,您无法更改 VNF 接口的映射。
您可以使用 deny-forwarding
CLI 选项阻止 VNF 接口发送或接收信息流。
如果在 deny-forwarding
作为交叉连接一部分的接口上启用了选项,则交叉连接状态将下降并丢弃所有信息流。
set virtual-network-options vnf-name interface interface-name forwarding-options deny-forwarding
要指定 VNF 接口的目标 PCI 地址:
user@host# set virtual-network-functions vnf-name interfaces interface-name pci-address target-pci-address
您可以使用目标 PCI 地址在 VNF 中重新命名或重组接口。
例如,基于 Linux 的 VNF 可在 VNF 中使用 udev 规则,根据 PCI 地址命名接口。
-
目标 PCI 地址字符串应采用以下格式:
0000:00:<slot:>:0
,这是域的值:bus:插槽:功能。对于每个 VNF 接口,插槽的值应该有所不同。域、总线和功能的值应为零。 -
在运行 VNF 时,您无法更改 VNF 接口的目标 PCI 地址。
要删除 VNF 接口:
user@host# delete virtual-network-functions vnf-name interfaces interface-name user@host# commit
-
要删除 VNF 接口,必须停止 VNF,删除接口,然后重新启动 VNF。
-
连接或分离虚拟功能后,您必须重新启动 VNF,以便更改生效。
-
eth0 和 eth1 保留用于连接到内部网络和带外管理网络的默认 VNF 接口。因此,可配置的 VNF 接口名称从 eth2 开始。
-
在 VNF 中,根据访客操作系统命名约定,接口名称可能有所不同。在JCP中配置的 VNF 接口在 VNF 中可能不会以相同的顺序出现。
-
您必须使用目标 PCI 地址映射到JCP中配置的 VNF 接口,并且必须相应地命名。
为 VNF 配置存储设备
NFX250 (NG) 设备支持以下 VNF 存储选项:
-
CD-ROM
-
磁盘
-
USB
要添加虚拟 CD 或更新虚拟 CD 的源文件:
user@host# set virtual-network-functions vnf-name storage device-name type cdrom source file file-name
您可以使用格式的 hdx、sdx 或 vdx 指定有效的设备名称,例如 hdb、sdc、vdb 等。
要添加虚拟 USB 存储设备:
user@host# set virtual-network-functions vnf-name storage device-name type usb source file file-name
要附加硬盘:
user@host# set virtual-network-functions vnf-name storage device-name type disk [bus-type virtio | ide] [file-type raw | qcow2] source file file-name
要从 VNF 中删除虚拟 CD、USB 存储设备或硬盘:
user@host# delete virtual-network-functions vnf-name storage device-name
-
从 VNF 连接或分离 CD 后,您必须重新启动设备才能生效更改。如果设备在 VNF 中使用,CD 分离操作将发生故障。
-
VNF 支持一个虚拟 CD、一个虚拟 USB 存储设备和多个虚拟硬盘。
-
在运行 VNF 时,您可以更新 CD 或 USB 存储设备中的源文件。
-
您必须将源文件保存在 /var/public 目录中,并且该文件必须具有所有用户的读写权限。
实例化 VNF
您可以通过配置 VNF 名称和指定图像的路径来实例化 VNF。
使用映像实例化 VNF 时,默认添加两个 VNF 接口。这些接口是管理和内部网络的必备项。
仅支持 QCOW2、IMG 和 RAW 映像类型。
要使用图像实例化 VNF:
user@host# set virtual-network-functions vnf-name image file-path user@host# set virtual-network-functions vnf-name image image-type image-type user@host# commit
配置 VNF 时,请勿使用格式 vnfn 中的 VNF 名称,例如 vnf1、vnf2 等。包含此类名称的配置无法提交。
(可选)要为 VNF 指定 UUID:
user@host# set virtual-network-functions vnf-name [uuid vnf-uuid]
uuid
是一个可选参数。建议允许系统为 VNF 分配 UUID。
保存并提交配置后,您无法更改 VNF 的映像配置。要更改 VNF 的映像,必须删除 VNF 并再次创建 VNF。
快速 CLI 配置
user@host# set virtual-network-functions vnf-name virtual-cpu count number
user@host# set virtual-network-functions vnf-name virtual-cpu vcpu-number physical-cpu pcpu-number
user@host# set virtual-network-functions vnf-name virtual-cpu features hardware-virtualization
user@host# set virtual-network-functions vnf-name memory size size
user@host# set virtual-network-functions vnf-name interfaces vnf-interface-name mapping interface physical-interface-name
user@host# set virtual-network-functions vnf-name interfaces vnf-interface-name mapping interface virtual-function vlan-id vlan-id
user@host# set virtual-network-functions vnf-name interfaces vnf-interface-name mapping interface virtual-function trust
user@host# set vmhost vlan vlan-name
user@host# set virtual-network-functions vnf-name interfaces interface-name mapping vlan members list-of-vlans [mode trunk|access]
root@host# set virtual-network-functions vnf-name interfaces interface-name mapping peer-interfaces physical-interface-name
user@host# set virtual-network-functions vnf-name storage device-name type cdrom source file file-name
user@host# set virtual-network-functions vnf-name storage device-name type usb source file file-name
user@host# set virtual-network-functions vnf-name storage device-name type disk [bus-type virtio | ide] [file-type raw | qcow2] source file file-name
user@host# set virtual-network-functions vnf-name image file-path user@host# set virtual-network-functions vnf-name image image-type image-type user@host# commit
验证 VNF 实例化
要验证 VNF 是否已成功实例化:
user@host> show virtual-network-functions ID Name State Liveliness -------------------------------------------------------------------------------- 1 vjunos0 Running alive 2 centos1 Running alive 3 centos2 Running alive
VNF 的 Liveliness 字段中的输出表示 VNF 的 IP 地址是否可通过内部管理网络访问。实时网桥的默认 IP 地址为 192.0.2.1/24。请注意,此 IP 地址在设备内部,用于 VNF 管理。
NFX250 下一代虚拟路由反射器概述
虚拟路由反射器 (vRR) 功能允许您在虚拟化环境中实施路由反射器功能。从 Junos OS 21.4R2 版开始,您可以在 NFX250 新一代设备上实施 vRR 功能。您可以在计算或混合模式下配置 vRR VNF。但是,我们建议您在 Flex 模式下配置 vRR VNF,因为您可以灵活模式将最大资源分配给 VNF。本主题介绍如何在灵活模式下配置 vRR VNF。
有关 vRR 的详细信息,请参阅 虚拟路由反射器 (vRR) 文档。
如何在 NFX250 新一代设备上配置 vRR VNF
从 Junos OS 21.4R2 版开始,您可以在 NFX250 新一代设备上将 vRR 配置为 VNF。在配置 vRR VNF 之前:
-
删除设备上部署的所有第三方 VNF。
-
验证设备上没有配置巨大页面。如果配置了大量页面,请将其删除。
-
将最小资源分配给第 2 层数据平面和 OVS。这样可以确保将最大资源分配给 vRR VNF。
user@host# set vmhost mode custom flex layer-3-infrastructure cpu count MIN user@host# set vmhost mode custom flex layer-3-infrastructure memory size MIN user@host# set vmhost mode custom flex nfv-back-plane cpu count MIN user@host# set vmhost mode custom flex nfv-back-plane memory size MIN user@host# commit
要配置 vRR VNF: