Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

在 KVM 上部署和管理 vJunos-switch

阅读本主题可了解如何在安装 vJunos-switch 实例后对其进行部署和管理。

本主题将介绍如下内容:

  • 如何使用 libvirt 在 KVM 服务器上调出 vJunos 开关。

  • 如何选择 CPU 和内存量、设置连接所需的网桥以及配置串行端口。

  • 如何将相关的 XML 文件部分用于前面列出的配置和选择。

    注意:

    从瞻博网络网站下载示例 XML 文件和 vJunos-switch 映像。

在主机服务器上设置 vJunos 交换机部署

本主题介绍如何在主机服务器上设置 vJunos 交换机部署。

注意:

本主题仅重点介绍 XML 文件中用于通过 libvirt 部署 vJunos-switch 的几个部分。

整个 XML 文件 vjunos.xml 以及虚拟机映像和相关文档可在 vJunos 实验室软件下载 页面上下载。

如果尚未安装软件包,请安装“最低软件要求”部分中提到的包。请参阅 最低硬件和软件要求

  1. 为计划使用的 vJunos 交换机的每个千兆以太网接口创建一个 Linux 网桥。

    # ip link add ge-000 type bridge

    # ip link add ge-001 type bridge

    在这种情况下,实例将配置 ge-0/0/0 和 ge-0/0/1。

  2. 调出每个 Linux 网桥。

    ip link set ge-000 up

    ip link set ge-001 up

  3. 创建提供的 QCOW2 vJunos 映像的活磁盘副本。

    # cd /root

    # cp vjunos-switch-23.1R1.8.qcow2 vjunos-sw1-live.qcow2

    为计划部署的每个 vJunos 创建不同的副本。这可确保您不会对原始映像进行任何永久性更改。实时映像也必须可由部署 vJunos-switch 的用户标识(通常是 root 用户)写入。

  4. 通过修改以下部分来指定提供给 vJunos 的内核数。

    以下节指定提供给 vJunos 的内核数。至少需要 4 个内核,足以满足实验室用例的需求。

    所需的默认内核数为 4,对于大多数应用程序来说已经足够了。这是 vJunos-switch 支持的最低 CPU。您可以将 CPU 模型保留为 IvyBridge。新一代英特尔 CPU 也将使用此设置。

  5. 如果需要,通过修改以下部分来增加内存。

    以下示例显示了 vJunos-switch 所需的默认内存。默认内存对于大多数应用程序来说已经足够了。如果需要,可以增加该值。它还显示要生成的特定 vJunos-switch 的名称,在本例中为 vjunos-sw1

  6. 通过修改 XML 文件来指定 vJunos-switch 映像的名称和位置,如以下示例所示。

    您必须为主机上的每个 vJunos VM 提供其自己唯一命名的 QCOW2 映像。这是 libvirt 和 QEMU-KVM 所必需的。

  7. 创建配置磁盘映像。

    # ./make-config.sh <juniper.conf> <config.img>

    vJunos-switch 通过将第二个磁盘连接到包含该配置的 VM 实例来接受初始配置。使用提供的脚本 make-config.sh 创建磁盘映像。

    XML 文件引用此配置驱动器,如下所示:

    注意:

    如果您不喜欢初始配置,请从 XML 文件中删除上述部分。

  8. 设置管理以太网端口。

    此示例允许您从 vJunos 交换机所在的主机服务器外部连接到 VCP“fxp0”,即管理端口。

    您需要通过 DHCP 服务器或使用标准 CLI 配置为 fxp0 配置可路由 IP 地址。

    以下节中的“eth0”是指提供与外部世界连接的主机服务器接口,应与主机服务器上此接口的名称匹配。

    如果未使用动态主机配置协议 (DHCP),则在 vJunos 交换机启动并运行后,telnet 至其控制台并使用 CLI 配置配置“fxp0”的 IP 地址,如下所示:

    注意:

    以下配置只是示例或示例配置片段。您可能还需要设置静态路由配置。

    # set interfaces fxp0 unit 0 family inet address 10.92.249.111/23

    # set routing-options static route 0.0.0.0/0 next-hop 10.92.249.254
  9. 对 VCP 管理端口启用 SSH。

    # set system services ssh root-login allow 命令。

  10. 为您在 XML 文件中指定的每个端口创建一个 Linux 网桥。

    端口名称在以下章节中指定。vJunos-switch 的约定是使用 ge-0xy,其中 “xy” 指定实际端口号。在以下示例中,ge-000 和 ge-001 是端口号。这些端口号将分别映射到 Junos ge-0/0/0 和 ge-0/0/1 接口。如前所述,您需要为您在 XML 文件中指定的每个端口创建一个 Linux 网桥。

  11. 为主机服务器上的每个 vJunos 交换机提供唯一的串行控制台端口号。

    在以下示例中,唯一的串行控制台端口号为“8610”。

    请勿修改以下 smbios 节。它会告诉 vJunos 它是 vJunos 交换机。

  12. 使用 vJunos-sw1.xml 文件创建 vJunos-sw1 VM。

    # virsh create vjunos-sw1.xml

    术语“sw1”用于表示这是正在安装的第一个 vJunos 交换机虚拟机。后续 VM 可以命名为 vjunos-sw2 和 vjunos-sw3 等。

    结果,将创建 VM,并显示以下消息:

    从vjunos-sw1.xml创建的域 vjunos-sw1

  13. 如果以下 XML 行已被注释掉,请检查/etc/libvirt/qemu.conf并取消注释这些行。

    下面给出了一些有效值的示例。取消对指定行的注释。

  14. 重新启动 libvirtd 并再次创建 vJunos-switch VM。
    # systemctl restart libvirtd
  15. 安全地关闭部署在主机服务器上的 vJunos 交换机(如果需要)。# virsh shutdown vjunos-sw1使用命令关闭 vJunos-switch。

    执行此步骤时,发送至 vJunos-switch 实例的关机信号将允许该实例正常关机。

    将显示以下消息。

    域“vjunos-sw1”正在关闭
    注意:

    请勿使用“virsh destroy”命令,因为此命令可能会损坏 vJunos-switch 虚拟机磁盘。

    如果虚拟机在使用“virsh destroy”命令后停止启动,请创建提供的原始 QCOW2 映像的实时 QCOW2 磁盘副本。

验证 vJunos-switch 虚拟机

本主题介绍如何验证 vJunos-switch 是否已启动并正在运行。

  1. 验证 vJunos-switch 是否已启动且正在运行。
    # virsh list
  2. 连接到 VCP 的串行控制台。

    您可以从 XML 文件找到要连接到 VCP 串行控制台的端口。此外,您可以通过“telnet localhost <portnum>”登录到 VCP 的串行控制台,其中 portnum 在 XML 配置文件中指定:

    注意:

    对于驻留在主机服务器上的每个 vJunos 交换机虚拟机,telnet 端口号必须是唯一的。

  3. 禁用自动映像升级。

    如果未在上述步骤中提供任何初始 Junos 配置,则默认情况下,vJunos 交换机将尝试使用 DHCP 进行初始网络设置。

    如果没有可以提供 Junos 配置的 DHCP 服务器,则可能会收到重复消息,如下所示:

    “自动映像升级”

    您可以按如下方式禁用这些消息:

  4. 验证 vJunos-switch xml 文件中指定的 ge 接口是否已启动且可用。show interfaces terse使用命令。

    例如,如果 vJunos-switch XML 定义文件指定两个连接到 “ge-000” 和 “ge-001” 的虚拟 NIC,则在使用 show interface output 命令进行验证时,ge-0/0/0 和 ge-0/0/1 接口应处于链路“up”状态,如下所示。

  5. 验证是否在每个相应的“ge”桥接下配置了 vnet inetrface。brctl启动 vJunos-switch 后,在主机服务器上使用命令,如下所示: