帮助我们改善您的体验。

让我们了解您的想法。

您是否能抽出两分钟的时间完成一份问卷调查?

list Table of Contents

机器翻译对您有帮助吗?

starstarstarstarstar
Go to English page
免责声明:

我们将使用第三方机器翻译软件翻译本页面。瞻博网络虽已做出相当大的努力提供高质量译文,但无法保证其准确性。如果对译文信息的准确性有任何疑问,请参阅英文版本. 可下载的 PDF 仅提供英文版.

使用 JDM 管理虚拟网络功能

date_range 04-Jul-22

了解虚拟网络功能

虚拟化网络功能 (VNF) 包括可从瞻博网络设备管理器 (JDM) 启动和管理的所有虚拟实体。目前,虚拟机 (VM) 是唯一受支持的 VNF 类型。

JDM 环境中有几个组件:

  • JDM—管理所有服务虚拟机的生命周期。JDM 还提供具有配置持久性的 CLI 或使用 NETCONF 进行脚本编写和自动化的功能。

  • Primary Junos OS VM—作为主要虚拟设备的 系统虚拟机 。系统正在运行时,此虚拟机始终存在。

  • Other Junos OS VMs—这些虚拟机是 服务虚拟机 ,由外部控制器动态激活。这种 VM 的典型示例是 vSRX 实例。

  • Third-party VNFs— JDM 支持创建和管理第三方虚拟机,如 Ubuntu Linux 虚拟机。

JDM 架构提供将所有虚拟机连接到 JDM 的内部网络,如 图 1 所示。

图 1:JDM 与虚拟机 Network Connections Between JDM and the VMs之间的网络连接

JDM 可使用内部网络 (192.0.2.1/24) 到达任何 VNF。

注意:

至 Junos OS 版本 15.1X53-D470,实时 IP 位于 192.168.1.0/24 子网中。在所有更高版本的 Junos OS 版本中,实时 IP 位于 192.0.2.0/24 子网中。

VNF 可以在系统中拥有或共享管理端口和 NIC 端口。

所有虚拟机都隔离运行,一个虚拟机中的状态更改不会影响另一个虚拟机。当系统重新启动时,服务虚拟机将按持久配置文件中指定的方式联机。当您平滑关闭系统时,所有虚拟机(包括 Junos 虚拟机)均将关闭。

表 1 提供了常用 VNF 缩略词和术语的词汇表。

表 1:VNF 词汇表

术语

定义

JCP

Junos 控制平面(也称为主要 Junos OS VM)

JDM

瞻博网络设备管理器

NFV

网络功能虚拟化

VM

虚拟机

VNF

虚拟化网络功能

在 NFX250 设备上入网虚拟网络功能的先决条件

您可以通过 Junos 控制平面 (JCP) 在 NFX 设备上安装和管理瞻博网络 VNF 和第三方 VNF。

您可以在设备上加载的 VNF 数量取决于系统资源的可用性,例如 CPU 和系统内存的数量。

在加入 VNF 之前,建议检查 VNF 的可用系统资源,如 CPU、内存和存储。有关更多信息,请参阅 管理 VNF 生命周期

VNF 的先决条件

要实例化 VNF,NFX 设备支持:

  • 基于 KVM 的虚拟机管理程序部署

  • OVS 或 Virtio 接口驱动程序

  • 原始或 qcow2 VNF 文件类型

  • (可选)SR-IOV

  • (可选)CD-ROM 和 USB 配置驱动器

  • (可选)满足内存需求的巨大页面

管理 VNF 生命周期

您可以使用 JDM CLI 管理 VNF。此外, libvirt 软件还提供了广泛的虚拟化功能。为了确保您不受 CLI 限制,JDM 提供了使用 XML 描述文件操作 VNF 的选项。网络配置协议 (NETCONF) 支持所有 VNF 操作。多个 VNF 可以在一个系统中共存,您可以使用 XML 描述文件或映像配置多个 VNF。

注意:

确保 XML 描述符文件中指定的 VNF 资源不会超过可用系统资源。

本主题介绍 VNF 的生命周期管理。

VNF 规划资源

目的

启动 VNF 之前,必须检查系统库存并确认 VNF 所需的资源可用。VNF 的设计和配置必须正确,使其资源要求不会超过系统的可用容量。

注意:
  • 命令的 show system inventory 输出仅显示系统资源使用情况的当前快照。启动 VNF 时,资源使用量可能小于安装 VNF 软件包时可用的资源。

  • 开始 VNF 之前,必须检查系统资源的使用情况。

注意:

部分物理 CPU 由系统保留。除以下物理 CPU 外,所有其他 CPU 均可用于用户定义的 VNF:

表 2 提供了为 NFX250-LS1 保留的物理 CPU 列表。

表 2:NFX250-LS1 的物理 CPU 分配

CPU 核心

分配

0

主机、JDM 和JCP

4

主机桥

7

Ipsec

表 3 提供了为 NFX250-S1、NFX250-S2 和 NFX250-S1E 设备保留的物理 CPU 列表。

表 3:NFX250 的物理 CPU 分配

CPU 核心

分配

0

主机、JDM 和JCP

6

主机桥

7

Ipsec

有关更多信息,请参阅以下内容:

管理 VNF 图像

要从远程位置在设备上加载 VNF 映像,请使用 命令 file-copy 。或者,您也可以使用 NETCONF 命令 file-put加载 VNF 映像。

注意:

您必须在 /var/第三方/图像 目录中保存 VNF 映像。

准备 Bootstrap 配置

您可以通过连接包含自举配置 ISO 文件的 CD 或 USB 存储设备来引导 VNF。

自举配置文件必须包含初始配置,允许从外部控制器访问 VNF,并接受来自外部控制器的 SSH、HTTP 或 HTTPS 连接,以便进行进一步的运行时配置。

ISO 磁盘映像必须为自举配置文件的脱机创建,如下所示:

content_copy zoom_out_map
user@jdm>request genisoimage bootstrap-config-filename iso-filename

启动 VNF

您可以通过配置 VNF 名称并指定到 XML 描述器文件或映像的路径来启动 VNF。

使用映像启动 VNF 时,默认添加两个 VNF 接口。这些接口是管理和内部网络的必备项。对于这两个接口,保留目标外设组件互连 (PCI) 地址,例如 0000:00:03:0 和 0000:00:04:0。

要使用 XML 描述文件启动 VNF:

content_copy zoom_out_map
user@jdm# set virtual-network-functions vnf-name init-descriptor file-path
user@jdm# commit

要使用图像启动 VNF:

content_copy zoom_out_map
user@jdm# set virtual-network-functions vnf-name image file-path
user@jdm# commit

要为 VNF 指定 UUID:

content_copy zoom_out_map
user@jdm# set virtual-network-functions vnf-name [uuid vnf-uuid]

uuid 是可选参数,建议系统为 VNF 分配 UUID。

注意:
  • 保存并提交 init 描述符和映像配置后,您无法更改描述符或映像配置。要更改 VNF 的描述符或映像,必须删除并再次创建 VNF。

  • 提交检查仅适用于基于 JDM CLI 的映像规范的 VNF 配置,而非基于 init-descriptor XML 文件的 VNF 配置。

注意:

要使用图像文件创建 VNF,请确保以下内容:

  • 您必须使用唯一文件来处理在 VNF 或 VNF 之间使用的映像、磁盘、USB,但可连接到多 VNF 的 iso9660 类型文件除外。

  • 以原始格式指定为映像的文件应是带有分区表和启动分区的块设备。

  • 以 qcow2 格式指定为映像的文件应该是有效的 qcow2 文件。

为 VNF 分配资源

本主题讲解将各种资源分配给 VNF 的过程。

为 VNF 指定 CPU

要指定 VNF 所需的虚拟 CPU 数量,请键入以下命令:

content_copy zoom_out_map
user@jdm# set virtual-network-functions vnf-name virtual-cpu count 1-4

要将虚拟 CPU 固定到物理 CPU,请键入以下命令:

content_copy zoom_out_map
user@jdm# set virtual-network-functions vnf-name virtual-cpu vcpu-number physical-cpu pcpu-number

物理 CPU 编号可以是一个数字,也可以是一个范围。默认情况下,VNF 被分配为一个未固定在任何物理 CPU 上的虚拟 CPU。

注意:

当 VNF 处于 运行 状态时,您无法更改 VNF 的 CPU 配置。重新启动 VNF 以执行更改。

要为 VNF CPU 启用硬件虚拟化或硬件加速,请键入以下命令:

content_copy zoom_out_map
user@jdm# set virtual-network-functions vnf-name virtual-cpu features hardware-virtualization

为 VNF 分配内存

要指定 VNF 可以使用的最大主内存,请输入以下命令:

content_copy zoom_out_map
user@jdm# set virtual-network-functions vnf-name memory size size

默认情况下,1 GB 内存分配给 VNF。

注意:

如果 VNF 处于 运行 状态,则不能更改 VNF 的内存配置。重新启动 VNF 以执行更改。

要为 VNF 分配巨大页面,请键入以下命令:

content_copy zoom_out_map
user@jdm# set virtual-network-functions vnf-name memory features hugepages [page-size page-size]

page-size 是一个可选参数。页面大小为 1GB 的可能值为 1024,页面大小为 2 MB 时为 2。默认值为 1024 个巨大的页面。

注意:

只有在启用增强型编排模式时,才建议配置巨大页面。如果禁用增强型编排模式,并且 VNF 需要大页面,则 VNF XML 描述器文件应包含具有巨大页面配置的 XML 标记。

注意:

对于使用映像文件创建的 VNF,可为所有用户定义的 VNF(包括基于大型页面和非基于巨大页面的内存)配置的总内存的最大限制。

表 4 列出了可为各种 NFX250 型号保留的最大巨大页面内存。

表 4:NFX250 设备推荐的巨型内存

模型

记忆

最大巨大页面内存 (GB)

CSO-SDWAN 的最大巨大页面内存 (GB)

NFX250-S1

16 GB

8

-

NFX250-S1E

16 GB

8

13

NFX250-S2

32 GB

24

13

NFX250-LS1

16 GB

8

-

配置 VNF 存储设备

要添加虚拟 CD 或更新虚拟 CD 的源文件,请输入以下命令:

content_copy zoom_out_map
user@jdm# set virtual-network-functions vnf-name storage device-name type cdrom source file file-name

要添加虚拟 USB 存储设备,请输入以下命令:

content_copy zoom_out_map
user@jdm# set virtual-network-functions vnf-name storage device-name type usb source file file-name

要附加硬盘,请输入以下命令:

content_copy zoom_out_map
user@jdm# 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 存储设备或硬盘,请输入以下命令:

content_copy zoom_out_map
user@jdm# delete virtual-network-functions vnf-name storage device-name
注意:
  • 从 VNF 连接或分离 CD 后,您必须重新启动设备以执行更改。如果设备在 VNF 中使用,CD 分离操作将发生故障。

  • VNF 支持一个虚拟 CD、一个虚拟 USB 存储设备和多个虚拟硬盘。

  • 当 VNF 处于运行 状态时,您可以更新 CD 或 USB 存储设备中的源文件。

  • 您必须将源文件保存在 /var/第三方 目录中,并且该文件必须具有所有用户的读写权限。

注意:

对于使用映像文件创建的 VNF,请确保以下内容:

  • 作为原始格式的硬盘指定的文件应是带有分区表的块设备。

  • 指定为 qcow2 格式的硬盘的文件应该是有效的 qcow2 文件。

  • 指定为 USB 的文件应是带有分区表或 iso9660 类型文件的块设备。

  • 指定为 CD-ROM 的文件应为 iso9660 类型的块设备。

  • 如果 VNF 具有使用总线类型=ide 指定的映像,则不应附加任何带有名称的设备。

  • 如果 VNF 具有使用 bus-type=virtio 指定的映像,则不应附加任何带有名称 vda 的设备。

配置 VNF 接口和 VLAN

您可以创建 VNF 接口并将其连接到物理 NIC 端口、管理接口或 VLAN。

  1. 要使用 SR-IOV 虚拟功能将 VNF 接口连接到物理接口:
    content_copy zoom_out_map
    user@jdm# set virtual-network-functions vnf-name interfaces interface-name mapping physical-interface-name virtual-function [vlan-id vlan-id]

    vlan-id 是可选的,是端口 VLAN ID。

  2. 要创建 VLAN:
    content_copy zoom_out_map
    user@jdm# set host-os vlans vlan-name vlan-id vlan-id
  3. 要将 VNF 接口连接到 VLAN:
    content_copy zoom_out_map
    user@jdm# set virtual-network-functions vnf-name interfaces interface-name mapping vlan members list-of-vlans [mode trunk|access]
    注意:
    • 连接到 VNF 的接口在 VNF 重新启动时一直存在。

    • 如果 VNF 支持热插拔,则可以在 VNF 处于运行 状态时连接接口。否则,添加接口,然后重新启动 VNF。

    • 要将接口映射到 VLAN,必须启用 内存功能 hugepages 命令选项。

    • 当 VNF 处于 运行 状态时,您无法更改 VNF 接口的映射。

  4. 要使用物理接口映射虚拟接口:
    content_copy zoom_out_map
    user@jdm# set virtual-network-functions vnf-name interfaces interface-name mapping peer-interfaces 

    虚拟接口和物理接口(ge-0/0/n 和 xe-0/0/n)映射可确保虚拟接口的状态与映射到的物理接口的状态匹配。例如,如果物理接口停机且虚拟接口已启动,则虚拟接口将在检测后 5 秒内关闭。一个或多个虚拟接口可映射到一个或多个物理接口。

  5. 要将 VNF 接口连接到内部管理网络:
    注意:

    将 VNF 接口连接到内部管理网络之前,必须使用 set virtual-network-function vnf-name no_default_interface 命令来配置 VNF。

    content_copy zoom_out_map
    user@jdm# set virtual-network-functions vnf-name interfaces interface-name management internal
    user@jdm# set virtual-network-functions vnf-name interfaces interface-name management out-of-band

    任何 VNF 接口(包括 eth0 和 eth1)都可以进行内部或带外属性管理。但是,连接的所有接口中只有一个 VNF 接口可以具有带外管理或内部管理。不能为同一 VNF 接口指定两个属性值。例如,eth5 可以在内部进行管理,而 eth0 可以具有带外管理。

  6. 要指定 VNF 接口的目标 PCI 地址:
    content_copy zoom_out_map
    user@jdm# 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 地址。

  7. 要删除 VNF 接口:
    content_copy zoom_out_map
    user@jdm# delete virtual-network-functions vnf-name interfaces interface-name
    user@jdm# commit
    注意:
    • 要删除接口,必须停止 VNF、删除接口并启动 VNF。

    • 连接或分离虚拟功能后,您必须重新启动 VNF 以执行更改。

    • eth0 和 eth1 保留用于连接到内部网络和带外管理网络的默认 VNF 接口。因此,可配置的 VNF 接口名称从 eth2 开始。

    • 在 VNF 中,根据访客操作系统命名约定,接口名称可能有所不同。在 JDM 中配置的 VNF 接口在 VNF 中可能不会以相同的顺序出现。

    • 您必须使用目标 PCI 地址映射到 JDM 中配置的 VNF 接口,并相应命名。

管理 VNF 状态

默认情况下,VNF 在提交 VNF 配置时自动启动。

  1. 要禁用 VNF 配置提交上的 VNF 自动启动:
    content_copy zoom_out_map
    user@jdm# set virtual-network-functions vnf-name no-autostart 
  2. 要手动启动 VNF:
    content_copy zoom_out_map
    user@jdm> request virtual-network-functions vnf-name start
  3. 要阻止 VNF:
    content_copy zoom_out_map
    user@jdm> request virtual-network-functions vnf-name stop
  4. 要重新启动 VNF:
    content_copy zoom_out_map
    user@jdm> request virtual-network-functions vnf-name restart

管理 VNF MAC 地址

定义的 VNF 接口(使用 CLI 或 init 描述器 XML 文件中指定)将分配一个全局唯一的持久 MAC 地址。64 个 MAC 地址的通用池用于分配 MAC 地址。您可配置通用池中提供的 MAC 地址,并且不会覆盖此地址。

  1. 要为 VNF 接口配置特定 MAC 地址:
    content_copy zoom_out_map
    user@jdm# set virtual-network-functions vnf-name interfaces interface-name mac-address mac-address
  2. 要删除 VNF 接口的 MAC 地址配置:
    content_copy zoom_out_map
    user@jdm# delete virtual-network-functions vnf-name interfaces interface-name mac-address mac-address
注意:
  • 要删除或修改 VNF 接口的 MAC 地址,必须停止 VNF,进行必要的更改,然后启动 VNF。

  • 为 VNF 接口指定的 MAC 地址可以是系统 MAC 地址或用户定义的 MAC 地址。

  • 从系统 MAC 地址池中指定的 MAC 地址必须是 VNF 接口的独特功能。

管理 MTU

最大传输单元 (MTU) 是可在不分段的情况下转发的最大数据单元。您可以将 1500 字节或 2048 字节配置为 MTU 大小。默认 MTU 值为 1500 字节。

注意:

MTU 配置仅在 VLAN 接口上受支持。

  1. 要在 VNF 接口上配置 MTU:
    content_copy zoom_out_map
    user@jdm# set virtual-network-functions vnf-name interfaces interface-name mtu size
    注意:

    如果 VNF 不支持热插拔功能,则在配置 MTU 后必须重新启动 VNF。

  2. 要删除 VNF 接口的 MTU:
    content_copy zoom_out_map
    user@jdm# delete virtual-network-functions vnf-name interfaces interface-name mtu 
    注意:

    删除 MTU 后,VNF 接口的 MTU 将重置为 1500 字节。

注意:
  • MTU 大小可以是 1500 字节,也可以是 2048 字节。

  • 可在系统中配置的 OVS 上的最大 VLAN 接口数为 20。

  • VNF 接口的最大 MTU 大小为 2048 字节。

从 JDM 访问 VNF

您可以使用 SSH 或 VNF 控制台从 JDM 访问 VNF。

  1. 要使用 SSH 访问 VNF:
    content_copy zoom_out_map
    user@jdm> ssh vnf-name
  2. 要使用虚拟控制台访问 VNF:
    content_copy zoom_out_map
    user@jdm> request virtual-network-functions vnf-name console
注意:
  • 使用 ctrl-] 退出虚拟控制台。

  • 请勿使用 Telnet 会话运行 命令。

查看 VNF 列表

要查看 VNF 列表:
content_copy zoom_out_map
user@jdm> show virtual-network-functions 
ID       Name                    State             Liveliness
-----------------------------------------------------------------
3        vjunos0                 running           alive
-        vsrx                    shut off          down

VNF 的 Liveliness 输出字段表示 VNF 的 IP 地址是否可通过 JDM 访问。实时桥 192.0.2.1/24 的默认 IP 地址。

显示 VNF 详细信息

要显示 VNF 详细信息:

content_copy zoom_out_map
user@jdm> show virtual-network-functions vnf-name
Virtual Machine Information
---------------------------
Name:               vsrx
IP Address:         192.0.2.4
Status:             Running
Liveliness:         Up
VCPUs:              1
Maximum Memory:     2000896
Used Memory:        2000896
Virtual Machine Block Devices
-----------------------------
Target   Source
---------------
hda      /var/third-party/images/vsrx/media-srx-ffp-vsrx-vmdisk-15.1-2015-05-29_X_151_X49.qcow2
hdf      /var/third-party/test.iso

删除 VNF

要删除 VNF:

content_copy zoom_out_map
user@jdm# delete virtual-network-functions vnf-name
注意:

即使删除 VNF,VNF 映像也会保留在磁盘中。

在 NFX250 平台上创建 vSRX VNF

vSRX 是一种虚拟安全设备,可在虚拟化私有云或公共云环境中提供安全和网络服务。它可以作为虚拟网络功能 (VNF) 在 NFX250 平台上运行。有关 vSRX 的更多详细信息,请参阅瞻博网络网站 (https://www.juniper.net/) 上的产品文档页面。

要从瞻博网络设备管理器 (JDM) 命令行界面激活 vSRX VNF:

  1. 分配巨大页面内存:
    content_copy zoom_out_map
    set virtual-network-functions vsrx memory size 4194304
    set virtual-network-functions vsrx memory features hugepages
  2. 定义 vSRX VNF 接口所需的 VLAN。例如:
    content_copy zoom_out_map
    set host-os vlans v1 vlan-id 2614
    set host-os vlans v2 vlan-id 2615
    set host-os vlans v3 vlan-id 2714 
    set host-os vlans v4 vlan-id 2715 
  3. 定义 vSRX VNF 接口所需的任何粘合 VLAN。例如:
    content_copy zoom_out_map
    set host-os vlans gluebr0 vlan-id 2814
    set host-os vlans gluebr1 vlan-id 2815
  4. 使用 vSRX 映像定义 vSRX VNF。例如:
    content_copy zoom_out_map
    set virtual-network-functions vsrx image /var/third-party/images/vsrx.qcow2
  5. (可选)使用包含自定义配置的组创建 vSRX VNF。例如:
    content_copy zoom_out_map
    set virtual-network-functions vsrx apply-groups junos-vsrx
  6. 将 vSRX VNF 接口映射到 VLAN 或胶水 VLAN。例如:
    content_copy zoom_out_map
    set virtual-network-functions vsrx interfaces eth2 mapping vlan members v1
    set virtual-network-functions vsrx interfaces eth3 mapping vlan members v2
    set virtual-network-functions vsrx interfaces eth4 mapping vlan members v3
    set virtual-network-functions vsrx interfaces eth5 mapping vlan members v4 
    set virtual-network-functions vsrx interfaces eth6 mapping vlan members gluebr0
    set virtual-network-functions vsrx interfaces eth7 mapping vlan members gluebr1
  7. 指定 vSRX VNF 接口的模式。接口模式可以是接入模式,也可以是中继模式。例如:
    content_copy zoom_out_map
    set virtual-network-functions vsrx interfaces eth2 mapping vlan mode trunk
  8. 指定 vSRX VNF 接口的介质字节的最大传输单元 (MTU) 大小。MTU 大小可以是 1500 字节,也可以是 2048 字节。例如:
    content_copy zoom_out_map
    set virtual-network-functions vsrx interfaces eth2 mtu 1500
  9. 指定 VNF 接口的目标 PCI 地址。例如:
    content_copy zoom_out_map
    set virtual-network-functions vsrx interfaces eth2 pci-address pci-address
  10. 在 CLI 提示符时,输入 commit 命令以激活 vSRX VNF。
    content_copy zoom_out_map
    [edit]
    root# commit
    
  11. 将 ISO 连接到 vSRX 作为 CD-ROM 设备,然后启动 vSRX。
    content_copy zoom_out_map
    [edit]
    root@jdm# set virtual-network-functions vsrx storage hdb type cdrom source file /var/third-party/iso/testcd/bootstrapconf.iso
    
    注意:

    如果 vSRX 实例正在运行,则必须重新启动实例,以便从 CD-ROM 应用新配置。

  12. (可选)要使用自定义自举配置创建 vSRX VNF,请使用 juniper.conf 使用配置文件创建 ISO 映像。
    content_copy zoom_out_map
    [edit]
    root@jdm> request genisoimage /var/third-party/iso/testcd/juniper.conf /var/third-party/iso/testcd/bootstrapconf.iso    
    ISO image "/var/third-party/iso/testcd/bootstrapconf.iso" successfully generated from "/var/third-party/iso/testcd/juniper.conf".
    注意:

    确保配置文件名为 juniper.conf。

  13. 验证 vSRX VNF 是否正确启动。您可以使用 JDM cli 或 Linux virsh 命令进行验证。
    content_copy zoom_out_map
    [edit]
    root@jdm# run show virtual-network-functions
    ID       Name                    State             Liveliness
    -----------------------------------------------------------------
    2        vjunos0                 running           alive         
    12       vsrx                    running           alive     
    7433     jdm			 running           alive   
    

    使用 Linux virsh 命令

    content_copy zoom_out_map
    [edit]
    root@jdm> start shell
    jdm:~# virsh list
     ID    Name                           State
    ----------------------------------------------------
     2     vjunos0                        running
     3     vsrx                           running          
    

    您可以看到 vSRX VNF 处于活动状态。

  14. 只有当 show 输出中的实时性显示状态 alive时,vSRX 的 SSH 连接才有效,也就是说,如果在 vSRX 的 fxp0 接口上使用自举 iso 配置来启用 DHCP 以获取内部管理 IP 地址。)如果 vSRX VNF 的实时性状态为 down,请参阅 配置 vSRX VNF 的内部管理 IP 地址

    要登录 vSRX VNF,请输入 命令 run ssh vsrx

  15. (可选)验证 vSRX VNF 详细信息。
    content_copy zoom_out_map
    root@jdm> show virtual-network-functions vsrx
    Virtual Machine Information
    ---------------------------
    Name:               vsrx
    IP Address:         192.168.1.4
    Status:             Running
    Liveliness:         Up
    VCPUs:              2
    Maximum Memory:     4000768
    Used Memory:        4000768
    Virtual Machine 		Block Devices
    -----------------------------
    Target   Source
    ---------------
    hda     /var/third-party/images/vsrx.qcow2
    hdf      /var/third-party/iso/testcd/bootstrapconf.iso
    

在 NFX250 上将 vMX 虚拟路由器配置为 VNF

vMX 路由器是瞻博网络 MX 系列 5G 通用路由平台的虚拟版本。要快速迁移物理基础架构和服务,您可以在 NFX250 平台上将 vMX 配置为虚拟网络功能 (VNF)。有关 vMX 配置和管理的更多详细信息,请参阅 vMX 概述。

配置 VNF 之前,请检查系统库存并确认所需资源可用。vMX 作为 VNF 必须进行设计和配置,使其资源要求不会超过系统的可用容量。确保 NFX250 上至少有 20 GB 的空间可用。

要使用瞻博网络设备管理器 (JDM) 命令行界面 (CLI) 在 NFX250 上配置 vMX 作为 VNF:

  1. 下载 vmx-nested-< 版本提供的嵌套图像>.qcow2.
  2. 定义 vMX VNF 接口所需的 VLAN。例如:
    content_copy zoom_out_map
    user@host# set host-os vlans v1 vlan-id 2614
    user@host# set host-os vlans v2 vlan-id 2615
  3. 定义 vMX VNF 接口所需的粘合 VLAN。例如:
    content_copy zoom_out_map
    user@host# set host-os vlans gluebr0 vlan-id 2614
    user@host# set host-os vlans gluebr1 vlan-id 2615
  4. 使用 vMX 映像为 VNF 定义 vMX。例如:

    user@host# 设置虚拟网络功能 vmx 图像/var/第三方/images/vmx-nested-<release>.qcow2

  5. 指定 VNF 可以使用的最大主内存。为实现最佳性能,建议使用至少 5 GB 内存进行配置。

    user@host# 集虚拟网络功能 vmx 内存大小 < n>

  6. 指定虚拟机中每个 CPU 的核心数。对于 vMX VNF,您至少需要 4 个虚拟 CPU 核心。

    user@host# 集虚拟网络功能 vmx 虚拟 cpu 计数 < n> 功能 硬件虚拟化

  7. 添加附加数据驱动器以存储配置参数。

    user@host# 集虚拟网络功能 vmx 存储 vdc 类型 磁盘 文件类型 vmx-nested-< 版本>.qcow2

  8. 将 vMX VNF 接口映射到 VLAN 或胶合 VLAN。

    user@host# 集虚拟网络功能 vmx 接口 eth2 说明 wan0

    user@host# 集虚拟网络功能 vmx 接口 eth2 映射 vlan 成员< vlan>

    user@host# 集虚拟网络功能 vmx 接口 eth3 说明 wan1

    user@host# 集虚拟网络功能 vmx 接口 eth3 映射 vlan 成员< vlan>

  9. 出现 CLI 提示时,输入 commit 激活 vMX VNF 的命令。

    提交user@host数

  10. 验证 vMX VNF 是否已在 NFX250 上正确配置。

    root@jdm# run show virtual-network-functions

    content_copy zoom_out_map
    ID       Name                    State             Liveliness
    -----------------------------------------------------------------
    3        vjunos0                 running           alive         
    10       vmx                      running          alive 
    11341     jdm			running           alive   
    

    如果使用 virsh,请输入

    content_copy zoom_out_map
    root@jdm# virsh list 
     ID    Name                           State
    ----------------------------------------------------
    2     vjunos0                    running
    3     vmx                          running          
    

    这表明 vMX VNF 处于活动状态。

  11. 验证 vMX VNF 是否已在 NFX250 上正确配置。
    content_copy zoom_out_map
    root@jdm# run show virtual-network-functions

    要升级 vMX VNF,请停用 VNF 配置并选择复制到 /var/第三方/images/vmx-nested-< 位置的新映像>.qcow2 位置。再次重新激活 VNF 配置。

  12. 对于带内管理网络连接,分配的管理端口为 fxp0。对于带外管理,使用 ge-0/0/0,ge-0/0/1 用于 WAN 接口。

NFX250 上的虚拟路由反射器概述

虚拟路由反射器 (vRR) 功能允许您使用通用虚拟机实施路由反射器功能,该虚拟机可在基于 Intel 的 64 位刀片式服务器或设备上运行。由于路由反射器在控制平面上工作,因此可以在虚拟化环境中运行。基于 Intel 的刀片式服务器或设备上的虚拟路由反射器与路由器上的路由反射器相同,提供全网状内部 BGP 对等的可扩展替代方案。

从 Junos OS 17.3R1 版开始,您可以在 NFX250 网络服务平台上实施虚拟路由反射器 (vRR) 功能。瞻博网络 NFX250 网络服务平台包含瞻博网络 NFX250 设备,这是瞻博网络的安全、自动化、软件驱动型客户现场设备 (CPE),可按需提供虚拟化网络和安全服务。NFX250 设备使用 Junos 设备管理器 (JDM) 进行虚拟机 (VM) 生命周期和设备管理,以及许多其他功能。JDM CLI 与外观上的 Junos OS CLI 类似,可提供与 Junos OS CLI 相同的增值设施。

注意:
  • 从 vRR Junos OS 20.1R1 版开始,vRR 支持 Linux 网桥 (LB) 和增强型编排 (EO) 模式。建议在 EO 模式下实例化 vRR VNF。

  • NFX250 设备上对 LB 模式的支持以 NFX Junos OS 版本 18.4 结尾。

  • NFX250 设备上对 NFX-2 软件架构的支持以 NFX Junos OS 版本 19.1R1 结尾。

  • 从 NFX 主机版本 21.4R2 和 vRR Junos OS 21.4R2 版开始,您可以在 NFX250 下一代设备上部署 vRR VNF。vRR 仅支持增强型编排 (EO) 模式。

vRR 的优势

vRR 具有以下优势:

  • 可扩展性:通过实施 vRR 功能,您可以根据该功能运行的服务器核心硬件来改进可扩展性。此外,您还可以在网络中的多个位置实施虚拟路由反射器,这有助于以更低的成本扩展 BGP 网络。NFX250 上 IPv4 路由的最大路由信息库 (RIB) 规模为 2000 万。

  • 更快、更灵活的部署:您可使用开源工具在 Intel 服务器上安装 vRR 功能,从而减少路由器维护。

  • 节省空间:基于硬件的路由反射器需要中央办公空间。您可以在服务器基础架构或数据中心中可用的任何服务器上部署虚拟路由反射器功能,从而节省空间。

有关 vRR 的详细信息,请参阅 虚拟路由反射器 (vRR) 文档

NFX250 上 vRR 的软件要求

在 NFX250 上支持 vRR 需要以下软件组件:

  • 瞻博网络设备管理器:瞻博网络设备管理器 (JDM) 是一种占用空间极少的 Linux 容器,支持虚拟机 (VM) 生命周期管理、设备管理、网络服务编排器模块、服务链和虚拟控制台对 VNF(包括 vSRX、vjunos)的访问,现在又支持 vRR 即 VNF。

  • Junos 控制平面:Junos 控制平面 (JCP) 是在虚拟机管理程序上运行的 Junos VM。您可以使用JCP配置 NFX250 设备的网络端口,并在默认情况下JCP作为 nFX250 上的 vjunos0 运行。您可以使用 SSH 服务从 JDM 登录JCP,命令行界面 (CLI) 与 Junos 相同。

在 NFX250 上将 vRR 配置为 VNF

您可以在 Linux 网桥 (LB) 模式或增强型编排 (EO) 模式下将 vRR 配置为 VNF。

在 Linux 网桥模式下在 NFX250 上配置 vRR VNF

为 vRR 配置 Junos 设备管理器 (JDM)

默认情况下,在 NFX250 接通电源后,Junos 设备管理器 (JDM) 虚拟机将启动。默认情况下,增强型编排模式在 JDM 上启用。配置 vRR 时,禁用增强型编排模式,移除接口配置并重新启动 NFX 设备。

要为 vRR 配置 Junos 设备管理器 (JDM) 虚拟机,请执行以下步骤:

  1. 在配置模式下,在 [edit] 层次结构级别,禁用增强型编排。默认情况下,增强型编排模式在 JDM 上启用。
    content_copy zoom_out_map
    [edit ]
    user@jdm# delete system services enhanced-orchestration
    
  2. 删除接口配置。
    content_copy zoom_out_map
    [edit ]
    user@jdm# delete interfaces
    
  3. 设置 JDM root 密码。
    content_copy zoom_out_map
    [edit ]
    user@jdm# set system root-authentication plain-text-password
    
  4. 使用 commit 命令提交配置并重新启动系统以使配置生效。
    content_copy zoom_out_map
    [edit ]
    user@jdm# commit
    user@jdm# run request reboot
    
  5. 系统重新启动后,JDM 上将提供默认网桥配置。配置 JDM root 密码、管理端口 IP 和添加默认路由。
    注意:

    系统重新启动后,如果配置中不存在组 groups1604-configs ,请将其包括在内,以便 JDM 上提供默认网桥配置。

    content_copy zoom_out_map
    [edit ]
    user@jdm# set system root-authentication encrypted-password 
    user@jdm# set system services ssh
    user@jdm# set interface eth0 vlan-id valn-id family inet address address
    user@jdm# set route destination address next-hop address
    

验证管理 IP 是否已配置

目的

确保管理 IP 地址已准确配置。

行动

在配置模式下 show interface ,输入 命令。

content_copy zoom_out_map
user@jdm# show interface eth0
content_copy zoom_out_map
vlan-id 0 { 
    family { 
        inet { 
            address 10.48.14.18/22; 
        } 
    } 
}

验证默认路由是否已配置

目的

确保为 DNS 和网关访问配置默认路由。

行动

在配置模式下 show route ,输入 命令。

content_copy zoom_out_map
user@jdm# show route
content_copy zoom_out_map
destination 172.16.0.0/12 next-hop 10.48.15.254;
destination 192.168.0.0/16 next-hop 10.48.15.254;
destination 207.17.136.0/24 next-hop 10.48.15.254;
destination 10.0.0.0/10 next-hop 10.48.15.254;
destination 10.64.0.0/10 next-hop 10.48.15.254;
destination 10.128.0.0/10 next-hop 10.48.15.254;
destination 10.192.0.0/11 next-hop 10.48.15.254;
destination 10.224.0.0/12 next-hop 10.48.15.254;
destination 10.240.0.0/13 next-hop 10.48.15.254;
destination 10.248.0.0/14 next-hop 10.48.15.254;
destination 10.252.0.0/15 next-hop 10.48.15.254;
destination 10.254.0.0/16 next-hop 10.48.15.254;
destination 66.129.0.0/16 next-hop 10.48.15.254;
destination 10.48.0.0/15 next-hop 10.48.15.254;

为 vRR 配置 Junos 控制平面 (JCP)

默认情况下,在 NFX250 接通电源后,Junos 控制平面 (JCP) VM 会出现。JCP虚拟机控制 NFX250 设备中的前面板端口。VLAN 提供虚拟路由反射器 VM 接口与使用 sxe 端口的JCP虚拟机之间的桥接。前面板端口配置为 VRR 端口的相同 VLAN 桥接的一部分。因此,数据包使用JCP而不是 vRR VNF 端口之间的这些桥接端口进行传输或接收。

要为 vRR 配置JCP,请执行以下步骤:

  1. 在操作模式下,连接到JCP虚拟机。
    content_copy zoom_out_map
    user@jdm>ssh vjunos0
    user@jcp> configure
    user@jcp#
    
  2. 使用 vRR VNF 端口的相同 VLAN 桥接配置前面板端口。在此示例中,前面板端口、 ge-0/0/1ge-0/0/10xe-0/0/12均与 vRR VNF 接口、 em2em1em3映射。ge-0/0/1 (前面板端口)将映射到 sxe-0/0/0 (vRR VNF 接口) 的em1(内部接口)。它们都是同一 VLAN(VLAN ID 100)的一部分。
    content_copy zoom_out_map
    root#set interfaces ge-0/0/1 unit 0 family ethernet-switching interface-mode trunk 
    root# set interfaces ge-0/0/10 unit 0 family ethernet-switching interface-mode trunk 
    root# set interfaces xe-0/0/12 unit 0 family ethernet-switching interface-mode trunk 
    
    content_copy zoom_out_map
    root# set interfaces sxe-0/0/0 unit 0 family ethernet-switching interface-mode trunk
    root# set interfaces sxe-0/0/1 unit 0 family ethernet-switching interface-mode trunk
    
  3. 将 VLAN 配置,并将物理接口和服务接口添加为同一 VLAN 的成员。在此示例中,我们有 3 个 VLAN(100、101 和 102)。
    content_copy zoom_out_map
    root@jcp# set vlans vlan100 vlan-id 100
    root@jcp# set vlans vlan101 vlan-id 101
    root@jcp# set vlans vlan102 vlan-id 102
    root@jcp#set interfaces ge-0/0/1 unit 0 family ethernet-switching interface-mode trunk vlan members vlan100
    root@jcp# set interfaces ge-0/0/10 unit 0 family ethernet-switching interface-mode trunk vlan members vlan101
    root@jcp# set interfaces xe-0/0/12 unit 0 family ethernet-switching interface-mode trunk vlan members vlan102
    root@jcp# set interfaces sxe-0/0/0 unit 0 family ethernet-switching interface-mode trunk vlan members 100
    root@jcp# set interfaces sxe-0/0/1 unit 0 family ethernet-switching interface-mode trunk vlan members 101-102
    
  4. 配置 MTU:
    注意:

    您可在 JCP 和 vRR VNF 接口上配置的最大 MTU 为 1518 字节。

    content_copy zoom_out_map
    root@jcp# set interfaces ge-0/0/1 mtu 1518
    root@jcp# set interfaces ge-0/0/1 unit 0 family ethernet-switching interface-mode trunk
    root@jcp# set interfaces ge-0/0/1 unit 0 family ethernet-switching vlan members vlan100
    root@jcp# set interfaces ge-0/0/1 unit 0 family ethernet-switching vlan members default
    root@jcp# set interfaces ge-0/0/1 unit 0 storm-control default
    
  5. 验证是否已准确配置接口映射。
    content_copy zoom_out_map
    sxe-0/0/0 { 
           ether-options { 
                no-flow-control; 
            		} 
            unit 0 { 
                family ethernet-switching { 
                    interface-mode trunk; 
                    vlan { 
                        members [ 100 default vlan-2 ]; 
                    } 
                } 
            } 
        } 
    ge-0/0/1 { 
            unit 0 { 
                family ethernet-switching { 
                    interface-mode trunk; 
                    vlan { 
                        members [ default vlan100 ]; 
                    } 
                    storm-control default; 
                } 
            } 
        } 
        sxe-0/0/1 { 
            ether-options { 
                no-flow-control; 
            } 
            unit 0 { 
                family ethernet-switching { 
                    interface-mode trunk; 
                    vlan { 
                        members [ 101-102 vlan-3 ]; 
                    } 
                } 
            } 
        } 
    ge-0/0/10 { 
            unit 0 { 
                family ethernet-switching { 
                    interface-mode trunk; 
                    vlan { 
                        members [ default vlan101 ]; 
                    } 
                    storm-control default; 
                } 
            } 
        } 
        xe-0/0/12 { 
            unit 0 { 
                family ethernet-switching { 
                    interface-mode trunk; 
                    vlan { 
                        members [ vlan-2 vlan102 ]; 
                    } 
                    storm-control default; 
                } 
            } 
        } 
    vlans{
    ..
            vlan100 { 
            vlan-id 100; 
        } 
        vlan101 { 
            vlan-id 101; 
        } 
        vlan102 { 
            vlan-id 102; 
        } 
      }    
    

启动 vRR

您可以使用 vRR 映像存档中的 XML 配置模板启动 vRR VNF 作为虚拟化网络功能 (VNF)。

  1. 要启动 vRR VNF,请使用 virsh 命令并指定 VM 名称。
    content_copy zoom_out_map
    root$ virsh define vrr.xml
    root$ virsh start vrr
    

    其中, vrr virshvrr.xml 中指定的域名。

  2. 要创建大小为 24GB 的 VRR VNF,以及 2 个虚拟 CPU 和 2 个 VNF 接口 (em2, em3),您可以使用此示例配置。
    注意:

    要创建 vRR VNF,请使用默认内存分配模式,而不是大页面。

    content_copy zoom_out_map
    <domain type='kvm' id='10'>
    <!-- Assign VRR VM instance name -->
    <name>template_vrr</name>
    <!-- Assign Memory required for this VRR VM instance -->
    <memory unit=’KiB’>25769803</currentMemory>
    <currentMemory unit='KiB'>25165824</currentMemory>
    <memoryBacking>
    <locked/>
    </memoryBacking>
    <!-- Assign required virtual CPU for VRR VM instance, here 2 vcpu is assigned -->
    <vcpu placement='static' cpuset='0-1'>2</vcpu> 
       <cputune>
        <vcpupin vcpu='0' cpuset='0'/> 
        <vcpupin vcpu='1' cpuset='1'/> 
       </cputune> 
       <resource> 
        <partition>/machine</partition> 
       </resource>
       <sysinfo type='smbios'>
        <bios>
          <entry name='vendor'>Juniper</entry>
         </bios>
         <system> 
           <entry name='manufacturer'>Juniper</entry> 
           <entry name='product'>VRR</entry> 
           <entry name='version'>16.1</entry> 
        </system> 
       </sysinfo> 
       <os> 
         <type arch='x86_64' machine='pc-i440fx-1.7'>hvm</type>
         <boot dev='hd'/>
         <smbios mode='sysinfo'/>
       </os> 
       <features>
         <acpi/>
         <apic/>
       </features>
       <cpu mode='host-model'>
         <model fallback='allow'/>
         <topology sockets='1' cores='4' threads='1'/>
       </cpu>
       <clock offset='utc'/>
       <devices>
        <emulator>/usr/bin/kvm</emulator>
     <!-- Provide VRR VM instance image location -->
        <disk type='file' device='disk'>
             <driver name='qemu' type='qcow2' cache='writethrough'/> 
             <source file='/var/opt/test/nikramas/forsriov/fin_val/16.1R5.7/junos-x86-64-16.1R5.7.img'/>
             <backingStore/>
             <target dev='vda' bus='virtio'/>
             <alias name='virtio-disk0'/>
             <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
          </disk>
        <controller type='pci' index='0' model='pci-root'>
          <alias name='pci.0'/>
         </controller>
     <!-- em0 – management interface with the associated bridge --> 
         <interface type='bridge'>
              <source bridge='eth0br'/>
           <target dev='vnet5'/>
           <model type='virtio'/>
           <alias name='net0'/>
           <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
         </interface>
     <!-- em1 – internal data interface with the associated bridge -->
         <interface type='bridge'>
          <source bridge='virbr0'/>
          <target dev='vnet6'/>
          <model type='virtio'/>
          <alias name='net1'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
         </interface>
     <!-- em2 – external data interface with the associated bridge -->
         <interface type='bridge'>
          <source bridge='sxe0br'/>
          <target dev='vnet7'/>
          <model type='virtio'/> 
          <alias name='net2'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
         </interface>
     <!-- em3 – external data interface with the associated bridge -->
         <interface type='bridge'>
          <source bridge='sxe1br'/>
          <target dev='vnet8'/>
          <model type='virtio'/>
          <alias name='net3'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
         </interface>
         <serial type='pty'> 
           <source path='/dev/pts/0'/> 
           <target port='0'/> 
           <alias name='serial0'/> 
         </serial> 
         <console type='pty' tty='/dev/pts/0'> 
           <source path='/dev/pts/0'/> 
           <target type='serial' port='0'/> 
           <alias name='serial0'/> 
         </console> 
         <memballoon model='none'> 
            <alias name='balloon0'/> 
         </memballoon> 
       </devices> 
       <seclabel type='none' model='none'/> 
     </domain> 
    

支持从 JDM 对 vRR VNF 进行实时检测

VNF 的实时性表示 Junos 设备管理器 (JDM) 是否可访问 VM 的 IP 地址。如果虚拟机的活性下降,则意味着无法通过 JDM 访问虚拟机。您可以使用 命令查看虚拟机的 show virtual-machines 活力。默认情况下,vRR VNF 的活性显示为下降。在创建 vRR VNF 之前,建议您在 JDM 中启用实时检测。

要从 JDM 启用 vRR VNF 的实时检测,请执行以下步骤:

  1. 要验证是否从 JDM 检测 vRR VNF 的实时性,请发出以下命令:
    注意:

    默认情况下,vRR VNF 的活性显示为下降。您必须从 JDM 启用 vRR VNF 的实时检测。

    content_copy zoom_out_map
    user@jdm> show virtual-machines
    ID       Name                               State      Liveliness 
    ----------------------------------------------------------------- 
    2        vjunos0                            running    alive 
    18       VRR                                running    down
    8366     jdm                                running    alive 
    
  2. 通过修改 vRR VNF 接口的网络接口设置,创建带有内部桥virbr0接的虚拟接口。VM 模板的一部分,如下文所示。PCI 详细信息,如 busfunction slot信息可以基于您的现有接口任意运行下一个编号,特别是插槽编号。

    这是一个示例网络接口设置。

    content_copy zoom_out_map
    <interface type='bridge'>
        <source bridge='eth0br'/>
    <model type=’e1000’/>
     <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </interface>
    

    您必须按以下内容更改设置:

    content_copy zoom_out_map
    <interface type='bridge'>
        <source bridge='virbr0'/>
    <model type=’e1000’/>
     <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </interface>
    

    修改设置时,请确保:

    • 接口类型为 'bridge'

    • 该型号旨在 e1000 防止 VLAN 子接口出现问题。

    • 此虚拟机的 PCI 资源是该虚拟机的独特之处。

  3. 要识别与接口关联的 virbr0 MAC 地址,请使用 命令 virsh dumpxml vrr-vm-name
    content_copy zoom_out_map
    user@jdm:/var/third-party# virsh dumpxml VRR
    
    ...
    <interface type='bridge'>
    <mac address=’52:54:00:c4:fe:8d'/>
        <source bridge='virbr0'/>
    <model type=’e1000’/>
     <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </interface>
    ...
    

    这是 vRR VNF 分配给接口的 virbr0 MAC 地址。

  4. 要将 IP 地址分配给连接到 virbr0 接口的 vRR VNF 接口,必须使用属于内部网络一部分的 IP。在此示例中, 52:54:00:c4:fe:8d由 vRR VNF 分配的 MAC 地址与 em4 vRR VNF 的接口相关联。因此,我们必须使用此步骤中所示的 IP 地址配置 em4 接口。
    content_copy zoom_out_map
    user@> set interfaces em4 unit 0 family inet address 192.168.1.10/24
    user@# run show interfaces em4
    Physical interface: em4, Enabled, Physical link is Up 
      Interface index: 130, SNMP ifIndex: 154 
      Type: Ethernet, Link-level type: Ethernet, MTU: 1514, Speed: 1000mbps 
      Device flags   : Present Running 
      Interface flags: SNMP-Traps 
      Link type      : Full-Duplex 
      Current address: 52:54:00:c4:fe:8d, Hardware address: 52:54:00:c4:fe:8d  
      Last flapped   : 2017-07-11 07:42:38 UTC (00:04:42 ago) 
        Input packets : 40 
        Output packets: 4 
     
      Logical interface em4.0 (Index 69) (SNMP ifIndex 155) 
        Flags: Up SNMP-Traps 0x4000000 Encapsulation: ENET2 
        Input packets : 37 
        Output packets: 4 
        Protocol inet, MTU: 1500 
        Max nh cache: 100000, New hold nh limit: 100000, Curr nh cnt: 0, 
        Curr new hold cnt: 0, NH drop cnt: 0 
          Flags: Sendbcast-pkt-to-re, Is-Primary 
          Addresses, Flags: Is-Default Is-Primary 
            Local: 192.168.1.10 
    

    此示例中由 vRR VNF 分配的 MAC 地址与 em4 接口相关联。

  5. 在 Junos 设备管理器 (JDM) 中,使用 IP 地址和 vRR VNF 名称更新文件 /等/主机
    注意:

    更新 /等/主机 文件时,请在 IP 地址和 vRR VNF 名称之间包括空间。不包括选项卡空间。

    content_copy zoom_out_map
    user@jdm> cat /etc/hosts
    127.0.0.1       localhost 
    ::1             localhost ip6-localhost ip6-loopback 
    ff02::1         ip6-allnodes 
    ff02::2         ip6-allrouters 
    192.168.1.1     hypervisor 
    192.168.1.2     vjunos0 
    192.168.1.3     vjunos1 
    192.168.1.4     vsrx 
    192.168.1.254   jdm nfx-vrr-jdm 
    128.0.0.254     jdm nfx-vrr-jdm 
    192.168.1.5     ipsec-nm 
    192.168.1.10    VRR  
    
  6. 从 JDM 对 vRR VNF 的 IP 地址进行 Ping,以验证是否可从 JDM 访问内部网桥 virbr0
    content_copy zoom_out_map
    user@jdm> ping 192.168.1.10
    PING 192.168.1.10 (192.168.1.10) 56(84) bytes of data. 
    64 bytes from 192.168.1.10: icmp_seq=1 ttl=64 time=0.316 ms 
    64 bytes from 192.168.1.10: icmp_seq=2 ttl=64 time=0.379 ms 
    ^C 
    --- 192.168.1.10 ping statistics --- 
    2 packets transmitted, 2 received, 0% packet loss, time 999ms 
    rtt min/avg/max/mdev = 0.316/0.347/0.379/0.036 ms 
    
    
  7. 要验证是否从 JDM 检测 vRR VNF 的实时性,请发出以下命令:
    content_copy zoom_out_map
    user@jdm> show virtual-machines
    ID       Name                               State      Liveliness 
    ----------------------------------------------------------------- 
    2        vjunos0                            running    alive 
    18       VRR                                running    alive
    8366     jdm                                running    alive 
    

    现在,vRR VNF 的实时状态显示为有效状态。

在增强型编排模式下在 NFX250 上配置 vRR VNF

配置 vRR VNF 之前,请检查系统清单,并使用 show system visibility 命令确认所需资源可用。vRR,因为必须设计和配置 VNF,使其资源要求不会超出系统的可用容量。

您可以使用 JDM CLI 配置,无需使用 XML 描述文件,即可在增强型编排 (EO) 模式下实例化 vRR VNF。EO 模式使用 Open vSwitch (OVS) 作为 NFV 后面板来桥接接口。

要从瞻博网络设备管理器 (JDM) CLI 激活 vRR VNF:

  1. qcow2.img vRR 映像下载到 /var/third-party/images/ 文件夹。
  2. 定义 vRR VNF。例如:
    content_copy zoom_out_map
    user@host# set virtual-network-functions VRR-1 image /var/third-party/images/junos-x86-64-18.4R1-S2.4.img
  3. 定义 vSRX VNF 接口所需的 VLAN。例如:
    content_copy zoom_out_map
    user@host# set host-os vlans vlan10 vlan-id 10
    user@host# set host-os vlans vlan20 vlan-id 20
  4. 为 vRR VNF 分配巨大的页面作为内存。例如:
    content_copy zoom_out_map
    user@host# set system memory hugepages page-size 1024 page-count 8
  5. 指定 vRR VNF 所需的虚拟 CPU 数量。建议至少为 vRR VNF 分配两个虚拟 CPU。例如:
    content_copy zoom_out_map
    user@host# set virtual-network-functions VRR-1 virtual-cpu count 2
  6. 将虚拟 CPU 连接到物理 CPU。例如:
    content_copy zoom_out_map
    user@host# set virtual-network-functions VRR-1 virtual-cpu 0 physical-cpu 8
    user@host# set virtual-network-functions VRR-1 virtual-cpu 1 physical-cpu 9
  7. 在 vRR 接口 (eth2) 上配置最大传输单元 (MTU)。例如:
    content_copy zoom_out_map
    user@host# set virtual-network-functions VRR-1 interfaces eth2 mtu 2048
  8. 将 LAN 侧面向内部的接口配置为中继端口,并将其添加至 LAN 侧 VLAN。例如:
    content_copy zoom_out_map
    user@host# set virtual-network-functions VRR-1 interfaces eth2 mapping vlan mode trunk
    user@host# set virtual-network-functions VRR-1 interfaces eth2 mapping vlan members vlan10
  9. 在 vRR 接口 (eth3) 上配置最大传输单元 (MTU)。例如:
    注意:

    MTU 大小可以是 1500 字节,也可以是 2048 字节。

    content_copy zoom_out_map
    user@host# set virtual-network-functions VRR-1 interfaces eth3 mtu 2048
  10. 将 LAN 侧面向内部的接口配置为中继端口,并将其添加至 LAN 侧 VLAN。例如:
    content_copy zoom_out_map
    user@host# set virtual-network-functions VRR-1 interfaces eth3 mapping vlan mode trunk
    user@host# set virtual-network-functions VRR-1 interfaces eth3 mapping vlan members vlan20
  11. 指定 vRR VNF 的内存分配。建议将至少 4GB 内存分配给 vRR VNF。例如:
    content_copy zoom_out_map
    user@host# set virtual-network-functions VRR-1 memory size 4194304
  12. 配置巨大的页面来满足内存需求。例如:
    content_copy zoom_out_map
    user@host# set virtual-network-functions VRR-1 memory features hugepages
  13. 提交配置以激活 vRR VNF。例如:
    content_copy zoom_out_map
    user@host# commit

    提交配置后,VNF 需要一些时间才能启动。第一个接口 (em0) 由 JDM 的 DHCP 自动提供 IP 地址,以实现实时性。

  14. 验证 VNF 是否正常运行。例如:
    content_copy zoom_out_map
    user@host> show virtual-network-functions brief 
    ID       Name                                              State      Liveliness
    -
    1        vjunos0                                           Running    alive
    5        VRR-1                                             Running    alive
    9887     jdm                                               Running    alive
    
  15. (可选)验证 vRR VNF 详细信息。例如:
    content_copy zoom_out_map
    user@host> show virtual-network-functions VRR-1 detail 
    Virtual Network Function Information
    -
    
    Id:                 5
    Name:               VRR-1
    State:              Running
    Liveliness:         alive
    IP Address:         192.0.2.100
    VCPUs:              2
    Maximum Memory:    4194304 KiB
    Used Memory:        45015 KiB
    Used 1G Hugepages:  2
    Used 2M Hugepages:  0
    Error:              None
    

配置交叉连接

通过交叉连接功能,可在任何两个 OVS 接口(例如 VNF 接口)或连接到 OVS 的物理接口(例如 hsxe0 和 hsxe1)之间切换流量。您可以在任意两个 OVS 接口之间双向切换属于特定 VLAN 的所有流量或流量。

注意:

此功能不支持单向流量。

交叉连接功能支持以下内容:

  • 用于所有网络流量的两个 VNF 接口之间无条件交叉连接。

  • VNF 接口之间基于 VLAN 的信息流转发支持以下功能:

    • 提供基于 VLAN ID 切换流量的选项。

    • 支持从中继到接入端口的网络流量。

    • 支持从接入到中继端口的网络流量。

    • 支持 VLAN PUSH、POP 和 SWAP 操作。

要配置交叉连接,

  1. 配置 VLAN:
    content_copy zoom_out_map
    [edit]
    user@jdm#set host-os vlans vlan-name vlan-id vlan-id 
    user@jdm#set host-os vlans v10 vlan-id 10 
    user@jdm#set host-os vlans v20 vlan-id 20 
    user@jdm#set host-os vlans v30 vlan-id 30 
    user@jdm#set host-os vlans v40 vlan-id 40 
    
  2. 配置 VNF:
    content_copy zoom_out_map
    user@jdm# set virtual-network-functions vnf-name interfaces interface-name mapping vlan members list
    user@jdm# set virtual-network-functions vnf1 interfaces eth1 mapping vlan members v10
    user@jdm# set virtual-network-functions vnf1 interfaces eth1 mapping vlan members v30
    user@jdm# set virtual-network-functions vnf1 interfaces eth1 mapping vlan members v40
    user@jdm# set virtual-network-functions vnf1 interfaces eth1 mapping vlan mode trunk
    user@jdm# set virtual-network-functions vnf2 interfaces eth2 mapping vlan members v10
    user@jdm# set virtual-network-functions vnf2 interfaces eth2 mapping vlan members v20
    user@jdm# set virtual-network-functions vnf2 interfaces eth2 mapping vlan members v30
    user@jdm# set virtual-network-functions vnf2 interfaces eth2 mapping vlan mode trunk
    user@jdm# set virtual-network-functions vnf2 interfaces eth3 mapping vlan members v10
    user@jdm# set virtual-network-functions vnf2 interfaces eth3 mapping vlan members v20
    user@jdm# set virtual-network-functions vnf2 interfaces eth3 mapping vlan members v30
    user@jdm# set virtual-network-functions vnf2 interfaces eth3 mapping vlan mode trunk
    user@jdm# set virtual-network-functions vnf4 interfaces eth4 mapping vlan members v30
    user@jdm# set virtual-network-functions vnf5 interfaces eth5 mapping vlan members v50
    user@jdm# set virtual-network-functions vnf5 interfaces eth6
    user@jdm# set virtual-network-functions vnf6 interfaces eth7
    
  3. 配置交叉连接:
    • 配置基于 VLAN 的交叉连接:

      content_copy zoom_out_map
      user@jdm# set cross-connect vlan-cross-connect-name virtual-network-functions vnf-name interfaces interface-name vlan-id vlan-id 
      user@jdm# set cross-connect c1 virtual-network-functions vnf1 interfaces eth2 vlan-id 10
      user@jdm# set cross-connect c1 virtual-network-functions vnf4 interfaces eth2 vlan-id 10
      
    • 配置无条件交叉连接

      content_copy zoom_out_map
      user@jdm# set cross-connect unconditional-cross-connect-name virtual-network-functions vnf-name interfaces interface-name 
      user@jdm# set cross-connect c2 virtual-network-functions vnf1 interfaces eth1
      user@jdm# set cross-connect c2 virtual-network-functions vnf5 interfaces eth5
      
    • 使用启用的 VLAN SWAP 操作配置交叉连接:

      content_copy zoom_out_map
      user@jdm# set cross-connect swap-cross-connect-name virtual-network-functions vnf-name interfaces interface-name vlan-id vlan-id 
      user@jdm# set cross-connect c1 virtual-network-functions vnf1 interfaces eth1 vlan-id 10
      user@jdm# set cross-connect c1 virtual-network-functions vnf4 interfaces eth4 vlan-id 30
      
    • 配置启用的 VLAN PUSH 或 POP 操作的交叉连接:

      content_copy zoom_out_map
      user@jdm# set cross-connect push-pop-cross-connect-name virtual-network-functions vnf-name interfaces interface-name vlan-id vlan-id 
      user@jdm# set cross-connect push-pop-cross-connect-name virtual-network-functions vnf-name interfaces interface-name 
      user@jdm# set cross-connect c3 virtual-network-functions vnf1 interfaces eth1 vlan-id 10
      user@jdm# set cross-connect c3 virtual-network-functions vnf6 interfaces eth7
      
    • 在交叉连接上配置本机 VLAN 流量

      content_copy zoom_out_map
      user@jdm# set cross-connect push-pop cross-connect-name virtual-network-functions vnf-name interfaces interface-name vlan-id vlan-id 
      user@jdm# set cross-connect c2 virtual-network-functions vnf1 interfaces eth1 vlan-id none
      user@jdm# set cross-connect c2 virtual-network-functions vnf5 interfaces eth5 vlan-id none
      

配置分析器 VNF 和端口镜像

端口镜像功能允许您监控网络流量。如果在 VNF 接口上启用了该功能,OVS 系统桥接会将该 VNF 接口的所有网络数据包的副本发送至分析器 VNF 进行分析。您可以使用端口镜像或分析器 JDM 命令来分析网络流量。

注意:
  • 仅在连接到 OVS 系统桥接的 VNF 接口上支持端口镜像。

  • 在配置端口镜像选项之前,必须配置 VNF 接口。

  • 如果配置后分析器 VNF 处于活动状态,则必须重新启动 VNF 才能生效更改。

  • 您最多可以配置四个输入端口和一个用于分析器规则的输出端口。

  • 所有分析器规则中都必须有唯一的输出端口。

  • 更改输入 VNF 接口的配置后,您必须卸下并激活引用该接口的分析器规则以及分析器 VNF 重新启动。

要配置分析器 VNF 并启用端口镜像:

  1. 配置分析器 VNF:
    content_copy zoom_out_map
    [edit]
    user@jdm#set virtual-network-functions analyzer-vnf-name image file-path 
    user@jdm#set virtual-network-functions analyzer-vnf-name memory features hugepages page-size page-size 
    user@jdm#set virtual-network-functions analyzer-vnf-name interfaces interface-name analyzer 
    
  2. 在 VNF 接口和分析器 VNF 的输入和输出端口中启用网络流量的端口镜像:
    content_copy zoom_out_map
    user@jdm# set host-os forwarding-options analyzer analyzer-instance-name input [ingress | egress] virtual-network-function vnf-name interface interface-name
    user@jdm# set host-os forwarding-options analyzer analyzer-rule-name output virtual-network-function analyzer-vnf-name interface interface-name
    
发布历史记录表
释放
描述
17.3R1
从 Junos OS 17.3R1 版开始,您可以在 NFX250 网络服务平台上实施虚拟路由反射器 (vRR) 功能。
external-footer-nav