在 NFX150 设备上配置 VNF
NFX150 设备使您能够从 Junos 控制平面 (JCP) 实例化和管理虚拟化网络功能 (VNF)。JCP 支持创建和管理第三方 VNF。
要配置 VNF,请登录到 JCP 并执行以下操作:
加载 VNF 映像
或者,您可以使用 NETCONF 命令 file-put
来加载 VNF 映像。
要从远程位置在设备上加载 VNF 映像,可以使用 file-copy
命令或使用命令从 USB usb-pass-through
复制映像。
要从 USB 复制 VNF 映像,请参阅 支持在 NFX 系列设备上从 USB 传输文件。
或者,您可以使用 NETCONF 命令 file-put
来加载 VNF 映像。
您必须将 VNF 映像保存在 / var/public 目录中。
准备引导程序配置
您可以使用附加的配置驱动器(其中包含引导程序配置 ISO 文件)来引导 VNF。配置驱动器是虚拟驱动器,可以是与配置数据关联的 VNF 的 CD-ROM、USB 驱动器或磁盘驱动器。配置数据可以是文件或文件夹,这些文件或文件夹捆绑在构成虚拟 CD-ROM、USB 驱动器或磁盘驱动器的 ISO 文件中。
引导配置文件必须包含一个初始配置,该配置允许从外部控制器访问 VNF,并接受来自外部控制器的 SSH、HTTP 或 HTTPS 连接以进行进一步的运行时配置。
通过连接配置驱动器,您可以通过 CLI 将 IP 地址、子网掩码和网关等网络配置传递给 VNF。收到配置输入后,设备会生成自举配置 ISO 文件,并将该文件作为 CD-ROM、USB 驱动器或磁盘驱动器附加到 VNF。
有关配置和附加配置驱动器的更多信息,请参阅 (可选)将配置驱动器附加到 VNF。
-
系统会将引导程序配置 ISO 文件保存在 / var/public 文件夹中。仅当文件夹中的可用空间是文件中内容总大小的两倍以上时,才会保存文件。如果文件夹中的可用空间不足,则在提交配置时会显示错误消息。
-
重新引导系统时,系统会生成一个新的自举配置 ISO 文件,并将现有 ISO 文件替换为 VNF 上的新 ISO 文件。
-
配置驱动器是只读驱动器。根据 VNF,您可以将配置驱动器指定为只读 CD-ROM 驱动器、USB 驱动器或磁盘驱动器。
配置驱动器支持 VNF 的以下数据:
-
静态内容即文件 — 设备通过 CLI 接受一个或多个文件路径,将这些文件转换为 ISO 映像,然后将其附加到 VNF。配置驱动器支持 VNF 配置中的多个静态文件。
-
Jinja2 模板和参数 — Jinja2 参数由键值对组成。键在模板中指定,值在呈现模板时替换键。系统会将渲染的输出文件添加到 ISO 映像,并将其附加到 VNF。模板的最大参数数为 256 个键值对。配置驱动器支持 VNF 配置中的多个模板及其参数。
注意:配置驱动器仅支持 Jinja2 模板。
-
目录 — 设备接受特定目录内容,将给定文件夹中的文件夹结构转换为 ISO 映像,并将其附加到 VNF。配置驱动器仅接受一个文件夹。该文件夹将成为 ISO 映像中的根目录,所有后续文件夹和文件都将添加到 ISO 映像中。
-
您可以在 VNF 配置中添加多个源模板和源文件。
-
要在 VNF 配置中添加多个源模板和一个源文件夹,目标模板文件必须位于源文件夹中。
-
在 VNF 配置中只能添加一个源文件夹。
-
如果两个 VNF 共享同一组文件,则会为每个 VNF 生成单独的自举配置 ISO 文件。删除一个 VNF 不会影响另一个 VNF。
为 VNF 分配 CPU
表 1 列出了可用于 NFX150 型号的 VNF 使用的 CPU。
模型 |
可用于 VNF 的 CPU |
|||
---|---|---|---|---|
吞吐量模式 |
混合模式 |
计算模式 |
自定义模式(Flex 模式) | |
NFX150-C-S1 |
0 |
1 |
2 |
1 |
NFX150-C-S1-AE |
0 |
1 |
2 |
1 |
NFX150-C-S1-AA |
0 |
1 |
2 |
1 |
NFX150-C-S1E-AE |
0 |
1 |
2 |
1 |
NFX150-C-S1E-AA |
0 |
1 |
2 |
1 |
NFX150-S1 |
0 |
2 |
4 |
4 |
NFX150-S1E |
0 |
2 |
4 |
4 |
更改设备性能模式时,建议检查 VNF 的 CPU 可用性。
要检查设备的当前操作模式,请执行以下操作:
user@host> show vmhost mode
有关更多信息,请参阅 显示 vmhost 模式。
要检查 CPU 可用性及其状态,请执行以下操作:
user@host> show system visibility cpu
有关详细信息,请参阅 显示系统可见性 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 分配内存
在运行 Junos OS 18.1R1 版的 NFX150 设备上,不支持为 VNF 启用大页面和预预留大页面。
表 2 列出了 NFX150 型号的 VNF 使用的可能内存可用性。
模型 |
可用内存总量 | 内存/大页 VNF 在计算、混合和吞吐量模式下的可用性 |
自定义模式下 VNF 使用的内存/大页可用性(Flex 模式) |
---|---|---|---|
注意:
NFX150-C-S1 和 NFX150-C-S1E 型号不需要大页。 |
|||
NFX150-C-S1 |
8 | 1 GB |
2 千兆字节 |
NFX150-C-S1-AE |
8 | 1 GB |
2 千兆字节 |
NFX150-C-S1-AA |
8 | 1 GB |
2 千兆字节 |
NFX150-C-S1E-AE |
16 | 9 千兆字节 |
10 千兆字节 |
NFX150-C-S1E-AA |
16 | 9 千兆字节 |
10 千兆字节 |
NFX150-S1 |
16 | 7 个 1G 巨页 |
8 个 1G 巨页 |
NFX150-S1E |
32 | 23 个 1G 巨页 |
24 个 1G 巨页 |
要指定 VNF 可以使用的最大主内存,请输入以下命令:
user@host# set virtual-network-functions vnf-name memory size size
如果 VNF 处于运行状态,则无法更改该 VNF 的内存配置。重新启动 VNF 以使更改生效。
(可选)将配置驱动器连接到 VNF
将文件和模板添加到配置驱动器。
将目录添加到配置驱动器。
-
指定要添加到配置驱动器中的源目录:
user@host# set virtual-network-functions vnf-name config-data source directory directory-name
-
指定要在配置驱动器中添加的设备名称和类型:
user@host# set virtual-network-functions vnf-name config-data target device-name target-device-name
user@host# set virtual-network-functions vnf-name config-data target device-type device-type user@host# set virtual-network-functions vnf-name config-data target device-label device-label
-
提交配置:
user@host# commit
要验证配置驱动器是否已连接到 VNF,请参阅VNF Disk Information
显示系统可见性 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 接口将进入混合模式。
要将 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 存储设备
NFX150 支持 VNF 的以下存储选项:
-
光盘
-
磁盘
-
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 接口。管理和内部网络需要这些接口。目标外围组件互连 (PCI) 地址(如 0000:00:03:0 和 0000:00:04:0)是为这些接口保留的。
-
要使用图像实例化 VNF:
注意:仅支持 Qcow2 和原始映像类型。
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 是否成功实例化:
user@host> show virtual-network-functions ID Name State Liveliness -------------------------------------------------------------------------------- 1 vjunos0 Running alive 2 centos1 Running alive 3 centos2 Running alive 11057 LTE Running alive
VNF 的 实时性 输出字段指示 VNF 的 IP 地址是否可通过内部管理网络访问。实时网桥的默认 IP 地址为 192.0.2.1/24。