使用 KVM 部署 ASAv
关于使用 KVM 的 ASAv 部署
使用 KVM 的 ASAv 部署示例 显示使用 ASAv 和 KVM 的网络拓扑示例。本章所述的程序均基于此拓扑示例。您所需的具体程序取决于您的要求。ASAv 用作内部和外部网络之间的防火墙。另外,此示例中还配置了一个单独的管理网络。
ASAv 和 KVM 的先决条件
http://www.cisco.com/go/asa-software
- 性能受主机及其配置的影响。通过调整主机,您可以最大化 KVM 上的 ASAv 吞吐量。有关通用主机调整的概念,请参阅《 具备 Linux 和 Intel 架构的虚拟化平台的网络功能虚拟化数据包处理性能 》。
- Ubuntu 14.04 的有用优化包括以下内容:
–macvtap - 高性能 Linux 网桥;您可以使用 macvtap,而不是 Linux 网桥。注意,您必须配置特定设置才能使用 macvtap,而不是 Linux 网桥。
–透明大页面 (Transparent Huge Pages) - 用于增加内存页面大小,在 Ubuntu 14.04 中默认开启。
–禁用超线程 (Hyperthread disabled) - 用于将两个 vCPU 减少到一个单核。
–txqueuelength - 用于将默认 txqueuelength 增加到 4000 个数据包并减少丢包率。
–固定 (pinning) - 用于将 qemu 和 vhost 进程固定到特定 CPU 内核;在某些情况下,固定可显著提高性能。
- 有关优化基于 RHEL 的分发的信息,请参阅《 Red Hat Enterprise Linux6 虚拟化调整和优化指南 》。
- 有关 KVM 的系统要求,请参阅 思科 ASA 兼容性矩阵 。
准备 Day 0 配置文件
在启动 ASAv 之前,您可以准备 Day 0 配置文件。此文件是包含将在 ASAv 启动时应用的 ASAv 配置的文本文件。此初始配置将放入您选择的工作目录中名为“day0-config”的文本文件,并写入首次启动时安装和读取的 day0.iso 文件。Day 0 配置文件必须至少包含将激活管理接口以及设置用于公钥身份验证的 SSH 服务器的命令,但它还可包含完整的 ASA 配置。day0.iso 文件(自定义 day0.iso 或默认 day0.iso)必须在首次启动过程中可用。
注意:要在初始部署过程中自动授权 ASAv,请将从思科智能软件管理器下载的智能许可身份 (ID) 令牌放入与 Day 0 配置文件处于同一目录且名为“idtoken”的文本文件。
注意: 如果要在透明模式下部署 ASAv,则必须在透明模式下将已知的运行 ASA 配置文件用作 Day 0 配置文件。这不适用于路由防火墙的 Day 0 配置文件。
注意: 我们在本示例中使用的是 Linux,但对于 Windows 也有类似的实用程序。
1. 在名为“day0-config”的文本文件中输入 ASAv 的 CLI 配置。添加三个接口的接口配置和所需的任何其他配置。
第一行应以 ASA 版本开头。day0-config 应该是有效的 ASA 配置。生成 day0-config 的最佳方式是从现有的 ASA 或 ASAv 复制一个运行配置的所需部分。day0-config 中的行顺序很重要,应与现有的 show run 命令输出中看到的顺序相符。
2. (可选)将思科智能软件管理器发布的智能许可证身份令牌文件下载到您的计算机。
3. (可选)从下载文件复制 ID 令牌并将其放入仅包含 ID 令牌的、名为“idtoken”的文本文件。
4. (可选)若要在初始 ASAv 部署过程中进行自动许可,请确保 day0-config 文件中包含以下信息:
–用于启用与 HTTP 代理(如果指定)或 tools.cisco.com 的连接的 route 命令
–将 tools.cisco.com 解析为 IP 地址的 DNS 服务器
–(可选)更加便于 ASAv 在 CSSM 中进行查找的唯一主机名
5. 通过将文本文件转换成 ISO 文件生成虚拟 CD-ROM:
准备虚拟网桥 XML 文件
您需要设置将 ASAv 访客连接到 KVM 主机,以及将访客彼此连接的虚拟网络。
在 KVM 主机上准备虚拟网桥 XML 文件。对于准备 Day 0 配置文件所述的虚拟网络拓扑示例,您需要以下三个虚拟网桥文件:virbr1.xml、virbr2.xml 和 virbr3.xml(您必须使用这三个文件名;例如,不允许使用 virbr0,因为它已经存在)。每个文件具有设置虚拟网桥所需的信息。您必须为虚拟网桥提供名称和唯一的 MAC 地址。提供 IP 地址是可选的。
2. 创建包含以下内容的脚本(在本例中,我们将脚本命名为 virt_network_setup.sh):
3. 运行此脚本以设置虚拟网络。此脚本将生成虚拟网络。只要 KVM 主机运行,网络就会保持运行。
注意:如果重新加载 Linux 主机,则必须重新运行 virt_network_setup.sh 脚本。此脚本在主机重启期间即停止运行。
5. 显示分配给 virbr1 网桥的 IP 地址。这是您在 XML 文件中分配的 IP 地址。
启动 ASAv
使用基于 virt-install 的部署脚本启动 ASAv。
1. 创建名为“virt_install_asav.sh”的 virt-install 脚本。
ASAv VM 的名称在此 KVM 主机上的所有其他虚拟机 (VM) 中必须是唯一的。ASAv 最多可以支持 10 个网络。此示例使用三个网络。网络网桥语句的顺序非常重要。第一个列出的始终是 ASAv 的管理接口 (Management 0/0),第二个列出的是 ASAv 的 GigabitEthernet 0/0,第三个列出的是 ASAv 的 GigabitEthernet 0/1,以此类推,直至 GigabitEthernet0/8。虚拟 NIC 必须是 Virtio。
注意:watchdog 要素是 KVM 访客的虚拟硬件监视设备。如果 ASAv 因任何原因而变得无响应,监视设备可以触发重新启动 KVM 访客。
系统将显示窗口,其中显示 VM 的控制台。您可以看到 VM 正在启动。VM 需要几分钟进行启动。VM 停止启动后,您可以从控制台屏幕发出 CLI 命令。
热插拔接口调配
您可以动态添加和删除接口,而无需停止并重新启动 ASAv。在将新的接口添加到 ASAv 虚拟机时,ASAv 应该能够检测到该接口,并且将其调配为常规接口。同样,当您通过热插拔调配的方式删除现有的接口时,ASAv 应删除该接口并释放与其相关联的任何资源。
热插拔接口调配的准则
- 当您添加一个热插拔接口时,其接口编号等于当前的最后一个接口的编号加上 1。
- 当您删除一个热插拔接口时,会产生一个接口编号缺口,除非您删除的接口是最后一个接口。
- 当存在一个接口编号缺口时,下一个热插拔调配的接口将填补该缺口。
–首先将一个热插拔接口添加到虚拟机监控程序中的主用 ASAv,然后将一个热插拔接口添加到虚拟机监控程序中的备用 ASAv。
–在主用 ASAv 中配置新添加的故障切换接口;该配置将同步到备用设备。
–从虚拟机监控程序内的主用 ASAv 中删除故障切换接口,然后立即从虚拟机监控程序内的备用 ASAv 中删除相应的接口。
- 热插拔接口调配限于 Virtio 虚拟 NIC。
- 支持的最大接口数量是 10。如果您尝试添加超过 10 个接口,则会收到错误消息。
- 您无法打开接口卡 (media_ethernet/port/id/10)。
您可以使用 virsh 命令行添加和删除 KVM 虚拟机监控程序中的接口。
2. 使用 attach-interface 命令添加一个接口:
Domain 可以指定为短整数、名称或完整的 UUID。 type 参数可以是“network”(表示物理网络设备)或“bridge”(表示连接到设备的网桥)。 source 参数表示连接类型。 model 参数表示虚拟 NIC 类型。 mac 参数指定网络接口的 MAC 地址。 live 参数表示该命令影响正在运行的域。
注意:请使用 ASAv 上的接口配置模式配置并启用该接口,以便传输和接收流量;有关详细信息,请参阅思科 ASA 系列文档导航。
3. 使用 detach-interface 命令删除一个接口: