在 NFX350 设备上配置 VNF
NFX350 设备使您能够从 Junos 控制平面 (JCP) 实例化和管理虚拟化网络功能 (VNF)。JCP 支持创建和管理第三方 VNF。
加载 VNF 映像
要配置 VNF,您必须登录到 JCP:
user@host:~ # cli
user@host>
要从远程位置在设备上加载 VNF 映像,可以使用 file-copy
命令或使用命令从 USB usb-pass-through
复制映像。
如果您最多使用两个 VNF,则可以将 VNF 映像保存在 / var/public 目录中。如果您使用两个以上的 VNF,请将文件保存在外部 SSD 上。如果您将外部 SSD 用于 VNF,请确保初始化 SSD 并将其添加到设备。有关更多信息,请参阅 在 NFX350 设备上配置固态磁盘。
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 传输文件。
准备引导程序配置
您可以通过连接 CD-ROM、USB 存储设备或包含自举配置 ISO 文件的配置驱动器来引导 VNF。
有关创建 ISO 文件的示例,请参阅 创建 vSRX 引导 ISO 映像中的过程。该过程可能因用于创建 ISO 文件的操作系统(例如 Linux、Ubuntu)而异。
引导配置文件必须包含一个初始配置,该配置允许从外部控制器访问 VNF,并接受来自外部控制器的 SSH、HTTP 或 HTTPS 连接以进行进一步的运行时配置。
系统会将引导程序配置 ISO 文件保存在 / var/public 文件夹中。仅当文件夹中的可用空间是文件中内容总大小的两倍以上时,才会保存文件。如果文件夹中的可用空间不足,则在提交配置时会显示错误消息。
重新引导系统时,系统会生成一个新的自举配置 ISO 文件,并将现有 ISO 文件替换为 VNF 上的新 ISO 文件。
为 VNF 分配 CPU
表 1 列出了可用于 NFX350 型号的 VNF 使用的 CPU。
模型 |
可用于 VNF 的 CPU |
||||
---|---|---|---|---|---|
吞吐量模式 |
混合模式 |
计算模式 |
自定义模式 |
||
弹性模式 |
性能模式 |
||||
NFX350-S1 |
0 |
8 |
10 |
11 | 6 |
NFX350-S2 |
0 |
10 |
14 |
19 | 10 |
NFX350-S3 |
0 |
14 |
20 |
27 | 12 |
的资源 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
user@host> show vmhost mode Starting network management services: snmpd libvirtMib_subagent. Synchronizing UEFI key-store: Failed to get revocation list: 2 Juniper Dev keys are not revoked. Doing nothing cp: cannot stat '/var/platform/lte_vm_xml_params': No such file or directory rm: cannot remove '/lib/udev/rules.d/lte_usb.rules': No such file or directory Mode: -------- Current Mode: compute CPU Allocations: Name Configured Used ---------------------------------------------------------------------------------------------------------------------- Junos Control Plane 8 3,8 Juniper Device Manager 8 8 LTE 8 - NFV Backplane Control Path 8 8 NFV Backplane Data Path 1 1 Layer 2 Control Path - - Layer 2 Data Path - - Layer 3 Control Path 0 0 Layer 3 Data Path 2 2 CPUs available for VNFs 3,4,5,6,7,11,12,13,14,15 - CPUs turned off 9,10 - Memory Allocations: Name Configured Used ---------------------------------------------------------------------------------------------------------------------- Junos Control Plane (mB) 2048 2011 NFV Backplane 1G hugepages 4 8 NFV Backplane 2M hugepages - 0 Layer 2 1G hugepages - - Layer 2 2M hugepages - - Layer 3 1G hugepages 4 4 Layer 3 2M hugepages 5633 5377
CPUs available for VNFs
输出消息中的部分显示可用于板载 VNF 的 CPU。
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 列出了 NFX350 型号的 VNF 使用的可能内存可用性。
模型 |
可用内存总量 |
在计算、混合和吞吐量模式下使用 VNF 的巨大页面可用性 |
自定义模式下 VNF 使用的巨大页面可用性 |
|
---|---|---|---|---|
弹性模式 |
性能模式 |
|||
NFX350-S1 |
32 千兆字节 |
7 个 1G 巨页 |
24 个 1G 大页面 |
22 个 1G 大页面 |
NFX350-S2 |
64 GB |
23 个 1G 巨页 |
50 个 1G 巨页 |
49 个 1G 巨页 |
NFX350-S3 |
128 千兆字节 |
62 个 1G 巨页 |
110 个 1G 大页面 |
108 个 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 配置接口和 VLAN
您可以配置 VNF 接口,将 VNF 接口映射到虚拟功能,并将接口连接到物理网卡端口、管理接口或 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 接口连接到物理网卡端口并分配 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 接口将进入混合模式。
禁用欺骗检查
user@host# set virtual-network-functions vnf-name interfaces interface-name mapping interface virtual-function disable-spoof-check
要将 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 接口到虚拟功能的映射。否则,设备在降级后进入 失忆 状态。
VNF 的接口是 OVS 端口,此映射在配置中定义。如果映射规则可以在触发操作之前查看多个物理端口,则配置 VPP 功能允许您管理多个冗余物理链路。
您可以配置 VNF 虚拟接口与 JCP 物理接口(ge-0/0/ 和 xe-0/0/x )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 接口的映射。
您可以使用 CLI 选项阻止 VNF 接口发送或接收流量 deny-forwarding
。
如果在属于交叉连接的接口上启用了该 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
,即 domain:bus:slot:function 的值。每个 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 配置存储设备
NFX350 设备支持 VNF 的以下存储选项:
光盘
磁盘
Usb
要添加虚拟 CD 或更新虚拟 CD 的源文件,请执行以下操作:
user@host# set virtual-network-functions vnf-name storage device-name type cdrom source file file-name
您可以采用 hdx、sd 或 vdxx 格式指定有效的设备名称,例如 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。
验证 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 的 “活动性 ”字段中的输出指示是否可通过内部管理网络访问 VNF 的 IP 地址。实时网桥的默认 IP 地址为 192.0.2.1/24。请注意,此 IP 地址是设备内部的,用于 VNF 管理。