Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

在 KVM 上部署和管理 vJunos 路由器

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

本主题将介绍如下内容:

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

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

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

    注意:

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

在主机服务器上设置 vJunos 路由器部署

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

注意:

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

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

如果尚未安装软件包,请安装“最低软件要求”部分中提到的包。请参见 KVM 上 vJunos 路由器的最低硬件和软件要求

  1. vJunos 实验室软件下载页面下载虚拟机映像、脚本和 xml 文件。
  2. 为计划使用的 vJunos 路由器的每个千兆以太网接口创建一个 Linux 网桥。

    # ip link add ge-000 type bridge

    # ip link add ge-001 type bridge

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

  3. 调出每个 Linux 网桥。

    ip link set ge-000 up

    ip link set ge-001 up

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

    # cd /root

    # cp vjunos-router-23.2R1.14.qcow2 vjunos-rtr1-live.qcow2

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

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

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

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

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

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

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

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

  8. 创建配置磁盘映像。

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

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

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

    注意:

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

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

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

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

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

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

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

    注意:

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

    虚拟机启动后,请在 vJunos 路由器上的 CLI 中运行此配置。

    # 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
  10. 对 VCP 管理端口启用 SSH。

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

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

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

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

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

    以下 smbios 节通知 vJunos 路由器它是虚拟 Junos 路由器。所以,不要修改这个 smbios 节。

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

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

  14. 重新启动 libvirtd 并再次创建 vJunos 路由器虚拟机。
    # systemctl restart libvirtd
  15. 使用 vjunos-rtr1.xml 文件创建 vjunos-rtr1 VM。

    # virsh create vjunos-rtr1.xml

    术语“rtr1”用于指示这是正在安装的第一个 vJunos 路由器虚拟机。后续 VM 可以命名为 vjunos-rtr2 和 vjunos-rtr3 等。

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

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

  16. 安全地关闭部署在主机服务器上的 vJunos 路由器(如果需要)。# virsh shutdown vjunos-rtr1使用命令关闭 vJunos-router。

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

    将显示以下消息。

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

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

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

验证 vJunos 路由器虚拟机

本主题介绍如何验证 vJunos 路由器是否已启动且正在运行。

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

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

    注意:

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

  3. 禁用自动映像升级。

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

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

    “自动映像升级”

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

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

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

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