使用 Hyper-V 部署 ASA Virtual

您可以使用 Microsoft Hyper-V 部署 ASA virtual


重要


从 9.13(1) 开始,ASA virtual的最低内存要求为 2GB。如果当前 ASA virtual的内存少于 2GB,您将无法在不增加 ASA virtual机内存的情况下,从早期版本升级到 9.13(1) 及更高版本。您也可以使用 9.13(1) 版本重新部署新的 ASA virtual机。


概述

您可以在独立的 Hyper-V 服务器上或通过 Hyper-V 管理器部署 Hyper-V。有关使用 Powershell CLI 命令进行安装的说明,请参阅“使用命令行在 Hyper-V 上安装 ASA virtual”,第 46 页。有关使用 Hyper-V 管理器进行安装的说明,请参阅“使用 Hyper-V 管理器在 Hyper-V 上安装 ASA virtual”,第 46 页。Hyper-V 未提供串行控制台选项。您可以在管理接口上通过 SSH 或 ASDM 管理 Hyper-V。有关设置 SSH 的信息,请参阅“配置 SSH”,第 54 页。

下图显示了在路由防火墙模式下建议用于 ASA virtual的网络拓扑。在 Hyper-V 中为 ASA virtual设置了三个子网 - 管理、内部和外部。

图 1. 在路由防火墙模式下建议用于 ASA Virtual的网络拓扑

准则和限制

  • 平台支持

    • 思科 UCS B 系列服务器

    • 思科 UCS C 系列服务器

    • Hewlett Packard Proliant DL160 Gen8

  • 操作系统支持

    • Windows Server 2019

    • 原生 Hyper-V



      ASA virtual 应该在当今用于虚拟化的最现代、64 位高性能平台上运行。


  • 文件格式

    支持 VHDX 格式以便在 Hyper-V 上进行 ASA virtual 的初始部署。

  • Day 0 配置

    您创建一个文本文件,其中包含您需要的 ASA CLI 配置命令。有关程序,请参阅准备 Day 0 配置文件

  • Day 0 配置的防火墙透明模式

    配置行“firewall transparent”必须位于 Day 0 配置文件的顶部;如果它出现在文件中的其他任何位置,您可能会遇到反常的行为。有关程序,请参阅准备 Day 0 配置文件

  • 故障转移

    Hyper-V 上的 ASA virtual 支持主用/备用故障转移。对于路由模式和透明模式下的主用/备用故障转移,您必须在所有虚拟网络适配器中启用 MAC 地址欺骗。请参阅 配置 MAC 地址欺骗。对于独立 ASA virtual 的透明模式,管理接口不应启用 MAC 地址欺骗,因为不支持主用/备用故障转移。

  • Hyper-V 最多支持八个接口。Management 0/0 和 GigabitEthernet 0/0 至 0/6。您可以将 GigabitEthernet 用作故障转移链路。

  • VLAN

    使用 Set-VMNetworkAdapterVLan Hyper-V Powershell 命令在中继模式下的接口上设置 VLAN。您可以将管理接口的 NativeVlanID 设置为特定的 VLAN,或设置为“0”(如果没有 VLAN)。中继模式在 Hyper-V 主机重新启动期间不会持续存在。您必须在每次重新启动后重新配置中继模式。

  • 不支持传统网络适配器。

  • 不支持第 2 代虚拟机。

  • 不支持 Microsoft Azure。

前提条件

  • 在 MS Windows 2012 上安装 Hyper-V。

  • 创建 Day 0 配置文本文件(如果要使用)。

    在首次部署 ASA virtual 之前,必须先添加 Day 0 配置文件;否则,您必须从 ASA virtual 执行 write erase,才能使用 Day 0 配置。有关程序,请参阅准备 Day 0 配置文件

  • 从 Cisco.com 下载 ASA virtual VHDX 文件。

    http://www.cisco.com/go/asa-software



    需要 Cisco.com 登录信息和思科服务合同。


  • 至少配置有三个子网/VLAN 的 Hyper-V 交换机。

  • 有关 Hyper-V 系统要求,请参阅 Cisco Secure Firewall ASA 兼容性

准备 Day 0 配置文件

在启动 ASA virtual之前,您可以准备一个 Day 0 配置文件。此文件是包含将在 ASA virtual 启动时应用的 ASA virtual 配置的文本文件。此初始配置将放入您选择的工作目录中名为“day0-config”的文本文件,并写入首次启动时安装和读取的 day0.iso 文件。Day 0 配置文件必须至少包含将激活管理接口以及设置用于公共密钥身份验证的 SSH 服务器的命令,但它还可包含完整的 ASA 配置。day0.iso 文件(自定义 day0.iso 或默认 day0.iso)必须在首次启动过程中可用。

开始之前

我们在本示例中使用的是 Linux,但对于 Windows 也有类似的实用程序。

  • 要在初始部署过程中自动完成 ASA virtual 的许可过程,请将从思科智能软件管理器下载的智能许可身份 (ID) 令牌放入与 Day 0 配置文件处于同一目录且名为“idtoken”的文本文件。

  • 如果要在透明模式下部署 ASA virtual,则必须在透明模式下将已知的运行 ASA 配置文件用作 Day 0 配置文件。这不适用于路由防火墙的 Day 0 配置文件。

  • 您必须在首次启动 ASA virtual 之前添加 Day 0 配置文件。如果您决定要在初始启动 ASA virtual 之后使用 Day 0 配置,则必须执行 write erase 命令,应用 Day 0 配置文件,然后启动 ASA virtual

过程


步骤 1

在名为“day0-config”的文本文件中输入 ASA virtual的 CLI 配置。添加三个接口的接口配置和所需的任何其他配置。

第一行应以 ASA 版本开头。day0-config 应该是有效的 ASA 配置。生成 day0-config 的最佳方式是从现有的 ASA 或 ASA virtual复制一个运行配置的所需部分。day0-config 中的行顺序很重要,应与现有的 show run 命令输出中看到的顺序相符。

示例:

ASA Version 9.5.1
!
interface management0/0
nameif management
 security-level 100
 ip address 192.168.1.2 255.255.255.0
 no shutdown
interface gigabitethernet0/0
 nameif inside
 security-level 100
 ip address 10.1.1.2 255.255.255.0
 no shutdown
interface gigabitethernet0/1
 nameif outside
 security-level 0
 ip address 198.51.100.2 255.255.255.0
 no shutdown
http server enable
http 192.168.1.0 255.255.255.0 management
crypto key generate rsa modulus 1024
username AdminUser password paSSw0rd
ssh 192.168.1.0 255.255.255.0 management
aaa authentication ssh console LOCAL

步骤 2

(可选)将思科智能软件管理器发布的智能许可证身份令牌文件下载到您的计算机。

步骤 3

(可选)从下载文件复制 ID 令牌并将其放入仅包含 ID 令牌的文本文件。

步骤 4

(可选)若要在初始 ASA virtual 部署过程中进行自动许可,请确保 day0-config 文件中包含以下信息:

  • 管理接口 IP 地址

  • (可选)要用于智能许可的 HTTP 代理

  • 用于启用与 HTTP 代理(如果指定)或 tools.cisco.com 的连接的 route 命令

  • 将 tools.cisco.com 解析为 IP 地址的 DNS 服务器

  • 指定您正请求的 ASA virtual 许可证的智能许可配置

  • (可选)更加便于 ASA virtual 在 CSSM 中进行查找的唯一主机名

步骤 5

通过将文本文件转换成 ISO 文件生成虚拟 CD-ROM:

stack@user-ubuntu:-/KvmAsa$ sudo genisoimage -r -o day0.iso day0-config idtoken
I: input-charset not specified, using utf-8 (detected in locale settings)
Total translation table size: 0
Total rockridge attributes bytes: 252
Total directory bytes: 0
Path table size (byptes): 10
Max brk space used 0
176 extents written (0 MB)
stack@user-ubuntu:-/KvmAsa$

身份令牌自动向智能许可服务器注册 ASA virtual

步骤 6

重复步骤 1 到 5,使用相应的 IP 地址为要部署的每个 ASA virtual 创建单独的默认配置文件。


使用 Hyper-V 管理器通过 Day 0 配置文件部署 ASA Virtual

在设置 Day 0 配置文件(准备 Day 0 配置文件)之后,您可以使用 Hyper-V 管理器进行部署。

过程


步骤 1

转至服务器管理器 (Server Manager) > 工具 (Tools) > Hyper-V 管理器 (Hyper-V Manager)

步骤 2

在 Hyper-V 管理器右侧点击设置 (Settings)。“设置”(Settings) 对话框将打开。在左侧的硬件 (Hardware) 下,点击 IDE 控制器 1 (IDE Controller 1)

图 2. Hyper-V 管理器

步骤 3

在右窗格的媒体 (Media) 下,选择映像文件 (Image file) 单选按钮,浏览到您保存 Day 0 ISO 配置文件的目录,然后点击应用 (Apply)。当您首次启动 ASA virtual时,系统将基于 Day 0 配置文件中的内容对其进行配置。


使用命令行在 Hyper-V 上部署 ASA Virtual

您可以通过 Windows Powershell 命令行在 Hyper-V 上安装 ASA virtual。如果您在独立的 Hyper-V 服务器上,则必须使用命令行安装 Hyper-V。

过程


步骤 1

打开 Windows Powershell。

步骤 2

部署 ASA virtual

示例:

new-vm -name $fullVMName -MemoryStartupBytes $memorysize -Generation 1 -vhdpath
C:\Users\jsmith.CISCO\ASAvHyperV\$ImageName.vhdx -Verbose

步骤 3

根据您的 ASA virtual型号,更改默认的 CPU 计数 (1)。

示例:

set-vm -Name $fullVMName -ProcessorCount 4

步骤 4

(可选)将接口名称更改为对您有意义的名称。

示例:

Get-VMNetworkAdapter -VMName $fullVMName -Name "Network Adapter" | Rename-vmNetworkAdapter -NewName
mgmt

步骤 5

(可选)如果您的网络需要,请更改 VLAN ID。

示例:

Set-VMNetworkAdapterVlan -VMName $fullVMName -VlanId 1151 -Access -VMNetworkAdapterName "mgmt"

步骤 6

刷新接口,以便 Hyper-V 获取所做的更改。

示例:

Connect-VMNetworkAdapter -VMName $fullVMName -Name "mgmt" -SwitchName 1151mgmtswitch

步骤 7

添加内部接口。

示例:

Add-VMNetworkAdapter -VMName $fullVMName -name "inside" -SwitchName 1151mgmtswitch
Set-VMNetworkAdapterVlan -VMName $fullVMName -VlanId 1552 -Access -VMNetworkAdapterName "inside"

步骤 8

添加外部接口。

示例:

Add-VMNetworkAdapter -VMName $fullVMName -name "outside" -SwitchName 1151mgmtswitch
Set-VMNetworkAdapterVlan -VMName $fullVMName -VlanId 1553 -Access -VMNetworkAdapterName “outside"

使用 Hyper-V 管理器在 Hyper-V 上安装 ASA Virtual

您可以使用 Hyper-V 管理器在 Hyper-V 上安装 ASA virtual

过程


步骤 1

转至服务器管理器 (Server Manager) > 工具 (Tools) > Hyper-V 管理器 (Hyper-V Manager)

图 3. 服务器管理程序

步骤 2

此时将出现 Hyper-V 管理器。

图 4. Hyper-V 管理器

步骤 3

从右侧的虚拟机监控程序列表中,右键点击列表中的所需虚拟机监控程序,然后选择新建 (New) > 虚拟机 (Virtual Machine)

图 5. 启动新虚拟机

步骤 4

此时将出现“新建虚拟机向导”(New Virtual Machine Wizard)。

图 6. New Virtual Machine Wizard

步骤 5

执行该向导的各个步骤,指定以下信息:

  • 您的 ASA virtual 的名称和位置

  • 生成您的 ASA virtual

    ASA virtual支持的唯一代系是第 1 代

  • ASA virtual的内存量 (100Mbps 为 1024 MB,1Gbps 为 2048 MB,2Gbps 为 8192 MB)

  • 网络适配器(连接到您已设置的虚拟交换机)

  • 虚拟硬盘和位置

    选择使用现有的虚拟硬盘 (Use an existing virtual hard disk),然后浏览到 VHDX 文件的位置。

步骤 6

点击“完成”(Finish),此时将出现一个显示 ASA virtual配置的对话框。

图 7. 新虚拟机摘要

步骤 7

如果您的 ASA virtual有四个 vCPU,则必须在启动 ASA virtual之前修改 vCPU 值。在 Hyper-V 管理器右侧点击设置 (Settings)。“设置”(Settings) 对话框将打开。在左侧的“硬件”(Hardware) 菜单下,点击处理器 (Processor) 以访问“处理器”(Processor) 窗格。将 Number of virtual processors 更改为 4。

100Mbps 和1Gbps 授权具有一个 vCPU,2Gbps 授权具有四个 Vcpu。默认值为 1。

图 8. 虚拟机处理器设置

步骤 8

在“虚拟机”(Virtual Machines) 菜单中,连接到您的 ASA virtual,方法是右键点击列表中的 ASA virtual名称,然后点击连接 (Connect)。控制台将打开,显示已停止的 ASA virtual

图 9. 连接到虚拟机

步骤 9

在“虚拟机连接”(Virtual Machine Connection) 控制台窗口中,点击蓝绿色的“启动”(Start) 按钮启动 ASA virtual

图 10. 启动虚拟机

步骤 10

ASA virtual的启动过程会在控制台中显示。

图 11. 虚拟机启动过程

从 Hyper-V 管理器添加网络适配器

新部署的 ASA virtual只有一个网络适配器。您需要至少添加两个网络适配器。在本示例中,我们将添加内部网络适配器。

开始之前

  • ASA virtual 必须处于关闭状态。

过程


步骤 1

在 Hyper-V 管理器右侧点击设置 (Settings)。“设置”(Settings) 对话框将打开。在左侧的“硬件”(Hardware) 菜单下,点击添加硬件 (Add Hardware),然后点击网络适配器 (Network Adapter)

 

请勿使用“旧版网路适配器”。

图 12. 添加网络适配器

步骤 2

在添加网络适配器后,可以修改虚拟交换机和其他功能。如果需要,还可以设置 VLAN ID。

图 13. 修改网络适配器设置

修改网络适配器名称

Hyper-V 中使用通用的网络接口名称“网络适配器”。如果网络接口都具有相同的名称,可能会造成混淆。您不能使用 Hyper-V 管理器修改名称。您必须使用 Windows Powershell 命令修改名称。

过程


步骤 1

打开 Windows Powershell。

步骤 2

根据需要修改网络适配器。

示例:

$NICRENAME= Get-VMNetworkAdapter -VMName 'ASAvVM' -Name "Network Adapter"
rename-VMNetworkAdapter -VMNetworkAdapter $NICRENAME[0] -newname inside
rename-VMNetworkAdapter -VMNetworkAdapter $NICRENAME[1] -newname outside

MAC 地址欺骗

要使 ASA virtual以透明模式传送数据包,并实现高可用性主用/备用故障转移,必须为所有接口开启 MAC 地址欺骗。您可以在 Hyper-V 管理器中或使用 Powershell 命令执行此操作。

使用 Hyper-V 管理器配置 MAC 地址欺骗

您可以使用 Hyper-V 管理器在 Hyper-V 上配置 MAC 欺骗。

过程


步骤 1

转至服务器管理器 (Server Manager) > 工具 (Tools) > Hyper-V 管理器 (Hyper-V Manager)

此时将出现 Hyper-V 管理器。

步骤 2

在 Hyper-V 管理器右侧点击设置 (Settings),打开设置对话框。

步骤 3

在左侧的硬件 (Hardware) 菜单下:

  1. 点击内部 (Inside) 并展开菜单。

  2. 点击高级功能 (Advanced Features) 打开 MAC 地址选项。

  3. 点击启用 MAC 地址欺骗 (Enable MAC address spoofing) 单选按钮。

步骤 4

对外部接口重复上述操作。


使用命令行配置 MAC 地址欺骗

您可以使用 Windows Powershell 命令行在 Hyper-V 上配置 MAC 欺骗。

过程


步骤 1

打开 Windows Powershell。

步骤 2

配置 MAC 地址欺骗。

示例:

Set-VMNetworkAdapter -VMName $vm_name\
-ComputerName $computer_name -MacAddressSpoofing On\
-VMNetworkAdapterName $network_adapter\r"

配置 SSH

您可以在 Hyper-V 管理器的 Virtual Machine Connection 中,通过管理接口为 ASA virtual配置 SSH 访问。如果要使用 Day 0 配置文件,您可以为其添加 SSH 访问。有关详细信息,请参阅准备 Day 0 配置文件

过程


步骤 1

验证是否存在 RSA 密钥对:

示例:

asav# show crypto key mypubkey rsa

步骤 2

如果不存在 RSA 密钥对,请生成 RSA 密钥对:

示例:

asav(conf t)# crypto key generate rsa modulus 2048

username test password test123 privilege 15
aaa authentication ssh console LOCAL
ssh 10.7.24.0 255.255.255.0 management
ssh version 2

步骤 3

验证您是否可以从其他 PC 使用 SSH 访问 ASA virtual


CPU 使用情况和报告

“CPU 利用率”(CPU Utilization) 报告汇总了指定时间内使用的 CPU 百分比。通常,核心在非高峰时段运行大约 30% 至 40% 的总 CPU 容量,在高峰时段运行大约 60% 至 70% 的容量。

ASA 虚拟中的 vCPU 使用率

ASA 虚拟 vCPU 使用率显示了用于数据路径、控制点和外部进程的 vCPU 用量。

Hyper-V 报告的 vCPU 使用率包括上述 ASA 虚拟使用率,及:

  • ASA 虚拟空闲时间

  • 用于 ASA 虚拟机的 %SYS 开销

CPU 使用率示例

show cpu usage 命令可用于显示 CPU 利用率统计信息。

示例

Ciscoasa#show cpu usage

CPU utilization for 5 seconds = 1%; 1 minute: 2%; 5 minutes: 1%

在以下示例中,报告的 vCPU 使用率截然不同:

  • ASAv 虚拟报告:40%

  • DP:35%

  • 外部进程:5%

  • ASA(作为 ASA 虚拟报告):40%

  • ASA 空闲轮询:10%

  • 开销:45%