为私有云的 ASA 虚拟 ASA 虚拟

通过集群,您可以将多台 ASA 虚拟 组合成一个逻辑设备。集群具有单个设备的全部便捷性(管理、集成到一个网络中),同时还能实现吞吐量增加和多个设备的冗余性。您可以使用 VMware 和 KVM 部署 ASA 虚拟 集群。仅支持路由防火墙模式。



使用集群时,有些功能不受支持。请参阅集群不支持的功能


关于 ASA 虚拟 集群

本节介绍集群架构及其工作原理。

集群如何融入网络中

集群包含多台防火墙,作为单一设备工作。要用作集群,该防火墙需要以下基础设施:

  • 独立的网络(称为集群控制链路),通过 VXLAN 接口用于集群内的通信。VXLAN 充当第 3 层物理网络上的第 2 层虚拟网络,让 ASA virtual 能够通过集群控制链路发送广播/组播消息。

  • 对每台防火墙的管理访问权限,用于进行配置和监控。ASA virtual 部署包括用于管理集群节点的 Management 0/0 接口。

将集群接入网络中时,上游和下游路由器需要能够使用第 3 层单独接口和以下方法之一使出入集群的数据实现负载均衡:

  • 策略型路由 - 上游和下游路由器使用路由映射和 ACL 在节点之间执行负载均衡。

  • 等价多路径路由 - 上游和下游路由器使用等价静态或动态路由在节点之间执行负载均衡。



不支持第 2 层跨区以太网通道。


集群节点

集群节点协调工作来实现安全策略和流量的共享。本节介绍每种节点角色的性质。

引导程序配置

您要在每台设备上配置最低的引导程序配置,包括集群名称、集群控制链路接口和其他集群设置。启用集群的第一个节点通常成为控制节点。在后续节点上启用集群时,这些设备将作为数据节点加入集群。

控制和数据节点角色

一个集群成员是控制节点。如果多个集群节点同时上线,则控制节点由引导程序配置中的优先级设置决定;优先级可设置为 1 到 100,其中 1 为最高优先级。所有其他成员都是数据节点。 通常,当您首次创建集群时,您添加的第一个节点会成为控制节点,因为它是到目前为止集群中的唯一节点。

必须只能在控制节点上执行所有配置(引导程序配置除外);然后配置将被复制到数据节点中。如果是接口等物理资产,控制节点的配置将被镜像到所有数据节点。例如,如果将以太网接口 1/2 配置为内部接口,将以太网接口 1/1 配置为外部接口,则这些接口也将在数据节点上用作内部和外部接口。

有些功能在集群中无法扩展,控制节点将处理这些功能的所有流量。

单个接口

您可以将集群接口配置为独立接口

独立接口是正常的路由接口,每个接口都有自己的本地 IP 地址。由于接口配置只能在控制节点上配置,因此您可以通过接口配置设置一个 IP 地址池,供集群节点上的给定接口(包括控制节点上的一个接口)使用。集群的主集群 IP 地址是集群的固定地址,始终属于当前的控制节点。本地 IP 地址始终是路由的控制节点地址。主集群 IP 地址提供对地址的统一管理访问;当控制节点更改时,主集群 IP 地址将转移到新的控制节点,使集群的管理得以无缝继续。不过,在此情况下必须在上游交换机上分别配置负载均衡。



不支持第 2 层跨区以太网通道。


基于策略的路由(仅路由防火墙模式)

使用独立接口时,每个 ASA 接口都会保留自己的 IP 地址和 MAC 地址。基于策略的路由 (PBR) 是一种负载均衡方法。

如果已经在使用 PBR 并希望充分利用现有的基础设施,我们建议使用此方法。

PBR 根据路由映射和 ACL 作出路由决定。您必须在集群中的所有 ASA 之间手动划分流量。由于 PBR 是静态路由,因此可能有时候无法实现最佳的负载均衡效果。为了获得最佳性能,建议您配置 PBR 策略,以便连接的转发数据包和返回数据包定向到同一个 ASA。例如,如果您有一台思科路由器,使用带对象跟踪的思科 IOS PBR 即可实现冗余。思科 IOS 对象跟踪使用 ICMP ping 监控每台 ASA。然后,PBR 可根据特定 ASA 的可访问性来启用或禁用路由映射。有关详细信息,请参阅以下 URL:

http://www.cisco.com/c/en/us/solutions/data-center-virtualization/intelligent-traffic-director/index.html

http://www.cisco.com/en/US/products/ps6599/products_white_paper09186a00800a4409.shtml

同等成本的多路径路由(仅路由防火墙模式)

使用独立接口时,每个 ASA 接口都会保留自己的 IP 地址和 MAC 地址。等价多路径 (ECMP) 路由是一种负载均衡方法。

如果已经在使用 ECMP 并希望充分利用现有的基础设施,我们建议使用此方法。

ECMP 路由可以通过路由指标并列最优的多条“最佳路径”转发数据包。它与 EtherChannel 一样,也可以使用源和目标 IP 地址及/或源和目标端口的散列值将数据包发送到下一跃点。如果将静态路由用于 ECMP 路由,则 ASA 故障会导致问题;如果继续使用该路由,发往故障 ASA 的流量将丢失。因此,如果使用静态路由,请务必要使用静态路由监控功能,例如对象跟踪。我们还建议使用动态路由协议来添加和删除路由,在这种情况下,您必须配置每台 ASA 使之加入动态路由。

集群控制链接

每个节点必须将一个接口作为集群控制链路的 VXLAN (VTEP) 接口。

VXLAN 隧道端点

VXLAN 隧道终端 (VTEP) 设备执行 VXLAN 封装和解封。每个 VTEP 有两种接口类型:一个或多个虚拟接口称为 VXLAN 网络标识符 (VNI) 接口;以及称为 VTEP 源接口的常规接口,用于为 VTEP 之间的 VNI 接口建立隧道。VTEP 源接口连接到传输 IP 网络,进行 VTEP 至 VTEP 通信。

VTEP 源接口

VTEP 源接口是一个计划要将其与 VNI 接口相关联的常规ASA virtual 接口。您可以将一个 VTEP 源接口配置为集群控制链路。源接口会被保留,以便仅供集群控制链路使用。每个 VTEP 源接口在同一子网上都有一个 IP 地址。此子网应与所有其他流量隔离,并且只包括集群控制链路接口。

VNI 接口

VNI 接口类似于 VLAN 接口:它是一个虚拟接口,通过使用标记,实现网络流量在给定物理接口上的分离。您只能配置一个 VNI 接口。每个 VNI 接口在同一子网上都有一个 IP 地址。

对等体 VTEP

与数据接口的常规 VXLAN 只允许单个 VTEP 对等体不同,ASA virtual 集群允许您配置多个对等体。

集群控制链路流量概述

集群控制链路流量包括控制流量和数据流量。

控制流量包括:

  • 控制节点选举。

  • 配置复制。

  • 运行状况监控。

数据流量包括:

  • 状态复制。

  • 连接所有权查询和数据包转发。

集群控制链路故障

如果某台设备的集群控制链路线路协议关闭,则集群将被禁用;数据接口关闭。当您修复集群控制链路之后,必须通过重新启用集群来手动重新加入集群。



ASA 虚拟 处于非活动状态时,所有数据接口关闭;只有管理专用接口可以发送和接收流量。管理接口将保持打开,使用设备从 DHCP 或集群 IP 池接收的 IP 地址。如果使用集群 IP池,在重新加载而设备在集群中仍然处于非活动状态时,则管理接口将无法访问(因为它届时将使用与控制节点相同的主 IP 地址)。您必须使用控制台端口(如果可用)来进行任何进一步配置。


配置复制

集群中的所有节点共享一个配置。您只能在控制节点上进行配置更改(引导程序配置除外),这些更改会自动同步到集群中的所有其他节点。

ASA 虚拟集群管理

使用 ASA 虚拟集群的一个好处可以简化管理。本节介绍如何管理集群。

管理网络

我们建议将所有节点都连接到一个管理网络。此网络与集群控制链路分隔开来。

管理接口

使用 Management 0/0 接口进行管理。



您不能为管理接口启用动态路由。您必须使用静态路由。


您可以使用静态寻址或 DHCP 作为管理 IP 地址。

如果您使用静态寻址,则可以使用集群的主集群 IP 地址是集群的固定地址,而该集群始终属于当前的控制节点。您还要为每个接口配置一个地址范围,以便包括当前控制节点在内的每个节点都可以使用该范围内的本地地址。主集群 IP 地址提供对地址的统一管理访问;当控制节点更改时,主集群 IP 地址将转移到新的控制节点,使集群的管理得以无缝继续。本地 IP 地址用于路由,在排除故障时也非常有用。例如,您可以连接到主集群 IP 地址来管理集群,该地址始终属于当前的控制节点。要管理单个成员,您可以连接到本地 IP 地址。对于 TFTP 或系统日志等出站管理流量,包括控制节点在内的每个节点都使用本地 IP 地址连接到服务器。

如果使用 DHCP,则不使用本地地址池或主集群 IP 地址。

控制节点管理与数据节点管理

所有管理和监控均可在控制节点上进行。从控制节点中,您可以检查所有节点的运行时统计信息、资源使用情况或其他监控信息。您也可以向集群中的所有节点发出命令,并将控制台消息从数据节点复制到控制节点。

如果需要,您可以直接监控数据节点。虽然在控制节点上可以执行文件管理,但在数据节点上也可以如此(包括备份配置和更新映像)。以下功能在控制节点上不可用:

  • 监控每个节点的集群特定统计信息。

  • 监控每个节点的系统日志(控制台复制启用时发送至控制台的系统日志除外)。

  • SNMP

  • NetFlow

加密密钥复制

当您在控制节点上创建加密密钥时,该密钥将复制到所有数据节点。如果您有连接到主集群 IP 地址的 SSH 会话,则控制节点发生故障时连接将断开。新控制节点对 SSH 连接使用相同的密钥,这样当您重新连接到新的控制节点时,无需更新缓存的 SSH 主机密钥。

ASDM 连接证书 IP 地址不匹配

默认情况下,ASDM 连接将根据本地 IP 地址使用自签名证书。如果使用 ASDM 连接到主集群 IP 地址,则可能会因证书使用的是本地 IP 地址而不是主集群 IP 地址,系统会显示一则警告消息,指出 IP 地址不匹配。您可以忽略该消息并建立 ASDM 连接。但是,为了避免此类警告,您也可以注册一个包含主集群 IP 地址和 IP 地址池中所有本地 IP 地址的证书。然后,您可将此证书用于每个集群成员。有关详细信息,请参阅https://www.cisco.com/c/en/us/td/docs/security/asdm/identity-cert/cert-install.html

站点间集群

对于站点间安装,您只要遵循建议的准则即可充分发挥 ASA 虚拟 集群的作用。

您可以将每个集群机箱配置为属于单独的站点 ID。站点 ID 用于使用 LISP 检查、导向器本地化来实现流量移动,以提高性能、减少数据中心的站点间集群的往返时间延迟以及连接的站点冗余,其中流量流的备用所有者始终位于与所有者不同的站点上。

有关站点间集群的详细信息,请参阅以下各节:

ASA 虚拟集群的许可证

每个集群节点都需要相同的模型许可证。我们建议为所有节点使用相同数量的 CPU 和内存,否则将限制所有节点上的性能,以匹配功能最低的成员。吞吐量级别将从控制节点复制到每个数据节点,以便它们匹配。



如果取消注册 ASA 虚拟 从而使得其未经许可,则在重新加载 ASA 虚拟 后,它将恢复到严格的速率限制状态。未经许可的低性能集群节点将对整个集群的性能产生负面影响。请务必保留所有集群节点的许可,或删除任何未经许可的节点。


ASA 虚拟集群要求和必备条件

型号要求

  • ASAv30, ASAv50, ASAv100

  • VMware 或 KVM

  • 最多 16 个节点

ASA 虚拟 支持的平台及软件要求

集群中的所有节点:

  • 必须是相同型号。我们建议对所有节点都使用相同数量的 CPU 和内存,否则所有节点上的性能将受到限制,以匹配性能最低的节点。

  • 除在映像升级时以外,必须运行完全相同的软件。支持无中断升级。不匹配的软件版本可能会导致性能不佳,因此请务必在同一维护窗口中升级所有节点。

  • 在配置复制之前,新的集群成员对初始集群控制链路通信必须使用与控制节点相同的 SSL 加密设置(ssl encryption 命令)。

ASA 虚拟集群的准则

故障切换

集群不支持故障转移。

IPv6

集群控制链路只有在使用 IPv4 时才受支持。

其他规定

  • 当拓扑发生重大更改时(例如启用或禁用 ASA 或交换机上的接口、添加额外的交换机形成 VSS 或 vPC),您应禁用运行状态检查功能,还要禁用对已禁用接口的接口监控。当拓扑结构更改完成且配置更改已同步到所有节点后,您可以重新启用接口运行状况检查功能。

  • 将节点添加到现有集群时或重新加载节点时,会有限地暂时丢弃数据包/断开连接;这是预期的行为。有些时候,丢弃的数据包会挂起连接;例如,丢弃 FTP 连接的 FIN/ACK 数据包将使 FTP 客户端挂起。在此情况下,您需要重新建立 FTP 连接。

  • 我们不支持数据接口的 VXLAN;只有集群控制链路支持 VXLAN。

  • 将更改复制到集群中的所有节点需要时间。如果进行较大的更改,例如,添加使用对象组的访问控制规则(在部署时会拆分为多个规则),完成更改所需的时间可能会超过集群节点响应的超时时间与成功消息。如果发生这种情况,您可能会看到“无法复制命令”消息。您可以忽略此消息。

ASA 虚拟 集群默认设置

  • 默认情况下,集群运行状况检查功能处于启用状态,保持时间为 3 秒。默认情况下,在所有接口上启用接口运行状况监控。

  • 用于发生故障的集群控制链路的集群自动重新加入功能为每 5 分钟尝试无限次。

  • 用于发生故障的数据接口的集群自动重新加入功能为每 5 分钟尝试 3 次,增量间隔设置为 2。

  • 默认情况下,连接再均衡处于禁用状态。如果启用连接再均衡,交换负载信息的默认间隔时间为 5 秒。

  • 对于 HTTP 流量,默认启用 5 秒的连接复制延迟。

使用 Day0 配置来配置 ASA 虚拟集群

控制节点 Day0 配置

控制节点的以下 Day0 配置包括了引导程序配置,后面是将被复制到数据节点的接口配置。粗体文本显示了您需要为数据节点 Day0 配置更改的值。



此配置仅包括以集群为中心的配置。Day0 配置还应包括许可、SSH 访问、ASDM 访问等其他设置。有关 Day0 配置的详细信息,请参阅入门指南。



!BOOTSTRAP
! Cluster interface mode
cluster interface mode individual
!
! VXLAN peer group
object-group network cluster-peers
network-object host 10.6.6.51
network-object host 10.6.6.52
network-object host 10.6.6.53
network-object host 10.6.6.54
!
! Alternate object group representation
! object-network xyz
! range 10.6.6.51 10.6.6.54
! object-group network cluster-peers
! network-object object xyz
!
! Cluster control link physical interface (VXLAN tunnel endpoint (VTEP) src interface)
interface gigabitethernet 0/7
description CCL VTEP src ifc
nve-only cluster
nameif ccl
security-level 0
ip address 10.6.6.51 255.255.255.0
no shutdown
!
! VXLAN Network Identifier (VNI) interface
interface vni1
segment-id 1
vtep-nve 1
!
! Set the CCL MTU
mtu ccl 1664
!
! Network Virtualization Endpoint (NVE) association with VTEP src interface
nve 1
encapsulation vxlan
source-interface ccl
peer-group cluster-peers
!
! Management Interface Using DHCP
interface management 0/0
nameif management
ip address dhcp setroute
no shutdown
!
! Alternate Management Using Static IP
! ip local pool mgmt_pool 10.1.1.1 10.10.10.4
! interface management 0/0
! nameif management
! ip address 10.1.1.25 255.255.255.0 cluster-pool mgmt_pool 
! no shutdown
!
! Cluster Config
cluster group cluster1
local-unit A
cluster-interface vni1 ip 10.2.2.1 255.255.255.0
priority 1
enable noconfirm
!
! INTERFACES
!
ip local pool inside_pool 10.10.10.11 10.10.10.14
ip local pool outside_pool 10.11.11.11 10.11.11.14
!
interface GigabitEthernet0/1
nameif inside
security-level 100
ip address 10.10.10.10 255.255.255.0 cluster-pool inside_pool
!
interface GigabitEthernet0/0
nameif outside
security-level 0
ip address 10.11.11.10 255.255.255.0 cluster-pool outside_pool
!
!JUMBO FRAME RESERVATION for CCL MTU
jumbo-frame reservation

数据节点 Day 0 配置

数据节点的以下 Day0 配置仅包括引导程序配置。粗体文本显示您需要在控制节点 Day0 配置中更改的值。



此配置仅包括以集群为中心的配置。Day0 配置还应包括许可、SSH 访问、ASDM 访问等其他设置。有关 Day0 配置的详细信息,请参阅入门指南。



!BOOTSTRAP
! Cluster interface mode
cluster interface mode individual
!
! VXLAN peer group
object-group network cluster-peers
network-object host 10.6.6.51
network-object host 10.6.6.52
network-object host 10.6.6.53
network-object host 10.6.6.54
!
! Alternate object group representation
! object-network xyz
! range 10.6.6.51 10.6.6.54
! object-group network cluster-peers
! network-object object xyz
!
! Cluster control link physical interface (VXLAN tunnel endpoint (VTEP) src interface)
interface gigabitethernet 0/7
description CCL VTEP src ifc
nve-only cluster
nameif ccl
security-level 0
ip address 10.6.6.52 255.255.255.0
no shutdown
!
! VXLAN Network Identifier (VNI) interface
interface vni1
segment-id 1
vtep-nve 1
!
! Set the CCL MTU
mtu ccl 1664
!
! Network Virtualization Endpoint (NVE) association with VTEP src interface
nve 1
encapsulation vxlan
source-interface ccl
peer-group cluster-peers
!
! Management Interface Using DHCP
interface management 0/0
nameif management
ip address dhcp setroute
no shutdown
!
! Alternate Management Using Static IP
! ip local pool mgmt_pool 10.1.1.1 10.10.10.4
! interface management 0/0
! nameif management
! ip address 10.1.1.25 255.255.255.0 cluster-pool mgmt_pool 
! no shutdown
!
! Cluster Config
cluster group cluster1
local-unit B
cluster-interface vni1 ip 10.2.2.2 255.255.255.0
priority 2
enable noconfirm
!
! INTERFACES
!
ip local pool inside_pool 10.10.10.11 10.10.10.14
ip local pool outside_pool 10.11.11.11 10.11.11.14
!
interface GigabitEthernet0/1
nameif inside
security-level 100
ip address 10.10.10.10 255.255.255.0 cluster-pool inside_pool
!
interface GigabitEthernet0/0
nameif outside
security-level 0
ip address 10.11.11.10 255.255.255.0 cluster-pool outside_pool
!
!JUMBO FRAME RESERVATION for CCL MTU
jumbo-frame reservation

部署后配置 ASA 虚拟 集群

要在部署 ASA 虚拟 后配置集群,请执行以下任务。

配置接口设置

在每个节点上配置集群接口模式,以及在控制节点上配置接口。当数据节点加入集群时,接口配置将被复制到数据节点。请注意,集群控制链路在引导程序配置过程中进行配置。

在每个节点上配置集群接口模式

在启用集群之前,您需要将防火墙转换为使用单个接口。由于集群会限制您可以使用的接口类型,因此此过程允许您检查现有配置中是否存在不兼容的接口,然后阻止配置任何不受支持的接口。

开始之前
  • 您必须在要添加到集群中的每台 ASA 虚拟 上分别设置模式。

  • 使用控制台端口(如果可用)或 SSH(如果已配置)连接到 ASA 虚拟 CLI。如果这些选项都不可用,则可以使用 ASDM 配置集群。

过程

步骤 1

显示任何不兼容的配置,以便稍后强制设置接口模式并修复配置;该模式不会随以下命令而更改:

cluster interface-mode individual check-details

示例:

ciscoasa(config)# cluster interface-mode individual check-details

小心 

设置接口模式之后,您可以使用 SSH 继续连接到接口;但是,如果您在配置管理接口使其符合集群要求(例如添加集群 IP 池或从 DHCP 获取 IP 地址)之前重新加载 ASA,则将无法重新连接,因为与集群不兼容的接口配置已删除。在此情况下,您必须连接到控制台端口(如果可用)来修复接口配置。

步骤 2

为集群设置接口模式:

cluster interface-mode individual force

示例:

ciscoasa(config)# cluster interface-mode individual force

不存在默认设置;您必须明确选择模式。如果尚未设置模式,则无法启用集群。

force 选项可直接更改模式而无需检查配置中是否存在不兼容的设置。更改模式后,您需要手动修复任何配置问题。由于任何接口配置都只能在设置完模式后修复,因此我们建议使用 force 选项,这样您至少可以从现有配置着手。设置模式后,您可以重新运行 check-details 选项来获得更多参考信息。

如果不使用 force 选项,当存在任何不兼容的配置时,系统将提示您清除配置并重新加载,从而需要您连接到控制台端口(如果可用)来重新配置管理访问。如果您的配置兼容(极为罕见),则会更改模式并保留配置。如果您不想清除配置,则可以键入 n 退出命令。

要删除接口模式,请输入 no cluster interface-mode 命令。


配置单个接口

启用集群之前,您必须修改所有当前配置了 IP 地址的接口,使其准备好加入集群。在使用静态 IP 地址进行管理时,您可能至少需要修改 SSH 当前连接到的管理接口。至于其他接口,您可以在启用集群之前或之后配置;我们建议预配置所有接口,以便将完整的配置同步到新的集群节点。

本节介绍如何将接口配置为与集群兼容的独立接口。独立接口是正常的路由接口,每个接口都从 IP 地址池获取自己的 IP 地址。集群的主集群 IP 地址是集群的固定地址,始终属于当前的控制节点。所有数据接口都必须是独立接口。

对于管理接口,您可以配置 IP 地址池,也可以使用 DHCP;只有管理接口支持从 DHCP 获取地址。要使用 DHCP,请勿使用此程序;而是照常配置。

开始之前
  • (可选)配置子接口。

  • 对于管理接口,您可以使用静态地址,也可以使用 DHCP。如果使用静态 IP 地址并使用 SSH 远程连接到管理接口,则未来数据节点的当前 IP 地址仅供临时使用。

    • 每个成员都将从控制节点上定义的集群 IP 池中分配到一个 IP 地址。

    • 集群 IP 池不能包含网络中已在使用的地址,包括未来辅助设备的 IP 地址。

      例如:

      1. 将控制节点配置为使用 10.1.1.1。

      2. 其他节点使用 10.1.1.2、10.1.1.3 和 10.1.1.4。

      3. 在控制节点上配置集群 IP 池时,不能在地址池中包含地址 .2、.3 或 .4,因其已在使用中。

      4. 反之,您需要使用该网络中的其他 IP 地址,如 .5、.6、.7 和 .8。



        地址池需要的地址数量与包括控制节点在内的集群成员数相等;原始 .1 地址是属于当前控制节点的主集群 IP 地址。


      5. 加入集群之后,临时使用的旧地址将被弃用并可用于它处。

过程

步骤 1

配置本地 IP 地址池(IPv4 和/或 IPv6),其中一个地址将被分配到每个集群节点作为接口地址:

(IPv4)

ip local pool poolname first-address last-address [mask mask]

(IPv6)

ipv6 local pool poolname ipv6-address/prefix-length number_of_addresses

示例:

ciscoasa(config)# ip local pool ins 192.168.1.2-192.168.1.9
ciscoasa(config-if)# ipv6 local pool insipv6 2001:DB8:45:1003/64 8

至少包含与集群中的节点数量相同的地址。如果计划扩展集群,则应包含更多地址。属于当前控制节点的主集群 IP 地址在此地址池中;请务必在同一个网络中为主集群 IP 地址保留一个 IP 地址。

您无法预先确定分配到每个节点的确切本地地址;要查看每个节点上使用的地址,请输入 show ip[v6] local pool poolname 命令。每个集群成员在加入集群时都会分配到一个成员 ID。此 ID 决定了所用的来自地址池中的本地 IP。

步骤 2

进入接口配置模式:

interface interface_id

示例:

ciscoasa(config)# interface gigabitethernet 0/1

步骤 3

为接口命名:

nameif name

示例:

ciscoasa(config-if)# nameif inside

name 是长度最多为 48 个字符的文本字符串,并且不区分大小写。使用一个新值重新输入此命令可更改名称。

步骤 4

设置主集群 IP 地址并确定集群池:

(IPv4)

ip address ip_address [mask] cluster-pool poolname

(IPv6)

ipv6 address ipv6-address/prefix-length cluster-pool poolname

示例:

ciscoasa(config-if)# ip address 192.168.1.1 255.255.255.0 cluster-pool ins
ciscoasa(config-if)# ipv6 address 2001:DB8:45:1003::99/64 cluster-pool insipv6

此 IP 地址必须与集群池地址属于同一个网络,但不在地址池中。您可以配置 IPv4 和/或 IPv6 地址。

不支持 DHCP、PPPoE 和 IPv6 自动配置;您必须手动配置 IP 地址。

步骤 5

设置安全级别,其中 number 为 0(最低)到 100(最高)之间的整数:

security-level 编号

示例:

ciscoasa(config-if)# security-level 100

步骤 6

启用接口:

no shutdown


示例

以下是将管理接口 0/0、千兆以太网接口 0/0 和千兆以太网接口 0/1 配置为独立接口的示例:


ip local pool mgmt 10.1.1.2-10.1.1.9
ipv6 local pool mgmtipv6 2001:DB8:45:1002/64 8

interface management 0/0
nameif management
ip address 10.1.1.1 255.255.255.0 cluster-pool mgmt
ipv6 address 2001:DB8:45:1001::99/64 cluster-pool mgmtipv6
security-level 100
no shutdown

ip local pool out 209.165.200.225-209.165.200.232
ipv6 local pool outipv6 2001:DB8:45:1002/64 8

interface gigabitethernet 0/0
nameif outside
ip address 209.165.200.233 255.255.255.224 cluster-pool out
ipv6 address 2001:DB8:45:1002::99/64 cluster-pool outipv6
security-level 0
no shutdown

ip local pool ins 192.168.1.2-192.168.1.9
ipv6 local pool insipv6 2001:DB8:45:1003/64 8

interface gigabitethernet 0/1
nameif inside
ip address 192.168.1.1 255.255.255.0 cluster-pool ins
ipv6 address 2001:DB8:45:1003::99/64 cluster-pool insipv6
security-level 100
no shutdown

创建引导程序配置

集群中的每个节点都需要有引导程序配置才能加入集群。

配置控制节点引导程序设置

集群中的每个节点都需要有引导程序配置才能加入集群。通常,您配置为加入集群的第一个节点将是控制节点。启用集群后,集群会在选举时间结束后选举出一个控制节点。最初只有一个节点在集群中,该节点将成为控制节点。添加到集群的后续节点将是数据节点。

开始之前
  • 请备份配置,以防稍后要退出集群而需要恢复配置。

  • 除集群控制链路和管理接口(它可以选择使用 DHCP)外,配置中的任何接口都必须使用集群 IP 池进行配置,然后才能启用集群。如果有以前就存在的接口配置,您可以清除该接口配置 (clear configure interface),也可以将接口转换为集群接口后再启用集群。

  • 将节点添加到正在运行的集群时,可能会有限地暂时丢弃数据包/断开连接;这是预期行为。

  • 启用巨集帧预留以用于集群控制链路,以便您可以将集群控制链路MTU设置为建议值。请参阅 jumbo-frame reservation 命令。启用巨帧会导致 ASA 重新加载,因此您必须在继续此程序之前执行此步骤。

过程

步骤 1

加入集群之前,为集群控制链路接口配置一个 VXLAN 接口。

稍后,您要在启用集群时将此接口确定为集群控制链路。

集群控制链路接口配置不会从控制节点复制到数据节点;但是,必须在每个节点上使用相同的配置。由于此配置不会复制,您必须在每个节点上分别配置集群控制链路接口。

  1. 通过创建网络对象组来识别 VTEP 对等体 IP 地址。

    有关网络对象组的详细信息,请参阅 ASA 防火墙配置指南中的“访问控制对象”一章。

    VTEP 之间的基础 IP 网络独立于 VNI 接口使用的集群控制链路网络。每个 VTEP 源接口在同一子网上都有一个 IP 地址。此子网应与所有其他流量隔离,并且只包括集群控制链路接口。

    示例:

    以下是使用内联定义的主机来创建网络对象组的示例:

    
    ciscoasa(config)# object-group network cluster-peers
    ciscoasa(network-object-group)# network-object host 10.6.6.51
    ciscoasa(network-object-group)# network-object host 10.6.6.52
    ciscoasa(network-object-group)# network-object host 10.6.6.53
    ciscoasa(network-object-group)# network-object host 10.6.6.54
    
    

    以下是创建引用独立网络对象的网络对象组的示例:

    
    ciscoasa(config)# object network xyz
    ciscoasa(config-network-object)# range 10.6.6.51 10.6.6.54
    
    ciscoasa(config)# object-group network cluster-peers
    ciscoasa(network-object-group)# network-object object xyz
    
    
  2. 配置 VTEP 源接口。

    interface interface_id

    nve-only cluster

    nameif name

    ip address ip_address subnet_mask

    no shutdown

    IP 地址应作为对等体之一包含在网络对象组中。

    示例:
    
    ciscoasa(config)# interface gigabitethernet 0/7
    ciscoasa(config-if)# nve-only cluster
    ciscoasa(config-if)# nameif ccl
    ciscoasa(config-if)# ip address 10.6.6.51 255.255.255.0
    ciscoasa(config-if)# no shutdown
    
    
  3. 将 VTEP 源接口与 NVE 实例相关联。

    nve 1

    source-interface interface-name

    peer-group network_object_name

    只能指定一个 NVE 实例,其中 ID 为 1。

    默认情况下,系统会为 NVE 实例添加 encapsulation vxlan 命令;无需显式添加该命令。

    示例:
    
    ciscoasa(config)# nve 1
    ciscoasa(cfg-nve)# source-interface ccl
    ciscoasa(cfg-nve)# peer-group cluster-peers
    
    
  4. 指定 VTEP 接口的最大传输单位至少比数据接口的最高 MTU 高 154 字节。

    mtu interface_name bytes

    由于集群控制链路流量包括数据包转发,因此集群控制链路需要能够容纳完整大小的数据包以及集群流量开销(100 字节)和 VXLAN 开销(54 字节)。将 MTU 设置为 1554 到 9198 字节之间的值。默认 MTU 为 1554 字节。当数据接口设置为 1500 时,我们建议将集群控制链路 MTU 设置为 1654;此值需要巨帧预留(请参阅 jumbo-frame reservation 命令)。

    例如,在使用巨帧时,由于最大 MTU 为 9198 字节,因此最高的数据接口 MTU 可以是 9044,而集群控制链路则可以设置为 9198。

    此命令会被复制到数据节点,但我们建议您将此设置与引导程序设置一起配置。

    示例:
    
    ciscoasa(config)# mtu ccl 1654
    
    
  5. (可选) 设置 VXLAN UDP 端口。

    vxlan 端口号

    默认情况下,VTEP 源接口接收发往 UDP 端口 4789 的 VXLAN 流量。如果网络使用非标准端口,可以对其进行更改。

    示例:
    
    ciscoasa(config)# vxlan port 5678
    
    
  6. 创建 VNI 接口。

    interface vni vni_num

    segment-id id

    vtep-nve 1

    示例:
    
    ciscoasa(config)# interface vni 1
    ciscoasa(config-if)# segment-id 1000
    ciscoasa(config-if)# vtep-nve 1
    
    
    • 将 VNI 数字设置为 1 和 10000 之间的值。此 ID 仅为内部接口标识符。

    • 将网段 ID 设置为 1 和 16777215 之间的值。网段 ID 用于 VXLAN 标记。

    不要为接口配置名称或任何其他参数。

步骤 2

为集群命名并进入集群配置模式:

cluster group 名称

示例:

ciscoasa(config)# cluster group pod1

名称必须是长度为 1 到 38 个字符的 ASCII 字符串。每个节点只能配置一个集群组。集群的所有成员必须使用同一名称。

步骤 3

为此集群成员命名:

local-unit node_name

使用唯一的 ASCII 字符串,长度必须为 1 到 38 个字符。每个节点必须具有唯一的名称。集群中不允许存在名称重复的节点。

示例:

ciscoasa(cfg-cluster)# local-unit node1

步骤 4

指定集群控制链路 VNI 接口:

cluster-interface vni_interface_id ip ip_address mask

示例:

ciscoasa(cfg-cluster)# cluster-interface vni1 ip 192.168.1.1 255.255.255.0
INFO: Non-cluster interface config is cleared on VNI1

指定 IP 地址的 IPv4 地址;此接口不支持 IPv6。对于每个节点,在同一网络上指定不同的 IP 地址。VNI 网络是在物理 VTEP 网络上运行的加密虚拟网络。

步骤 5

设置控制节点选择的此节点的优先级:

priority priority_number

示例:

ciscoasa(cfg-cluster)# priority 1

优先级的值为 1 到 100,其中 1 为最高优先级。

步骤 6

(可选)设置身份验证密钥以便控制集群控制链路上的流量:

key shared_secret

示例:

ciscoasa(cfg-cluster)# key chuntheunavoidable

共享密钥是长度介于 1 和 63 个字符之间的 ASCII 字符串。共享密钥用于生成密钥。此命令不会影响数据路径流量,包括始终以明文发送的连接状态更新和转发数据包。

步骤 7

启用集群:

enable [noconfirm]

示例:

ciscoasa(cfg-cluster)# enable
INFO: Clustering is not compatible with following commands:
policy-map global_policy
 class inspection_default
 inspect skinny
policy-map global_policy
 class inspection_default
  inspect sip
 Would you like to remove these commands? [Y]es/[N]o:Y

INFO: Removing incompatible commands from running configuration...
Cryptochecksum (changed): f16b7fc2 a742727e e40bc0b0 cd169999
INFO: Done

输入 enable 命令时,ASA 将扫描正在运行的配置,查找集群不支持的功能的不兼容命令,包括默认配置中可能存在的命令。系统会提示您删除不兼容命令。如果您选择 No,则不会启用集群。使用 noconfirm 关键字可绕过确认步骤并自动删除不兼容命令。

对于启用的第一个节点,会进行控制节点选择。由于到目前为止第一个节点应该是集群的唯一成员,因此它将成为控制节点。请勿在此期间执行任何配置更改。

要禁用集群,请输入 no enable 命令。

 

如果禁用集群,所有数据接口将关闭,只有管理接口会处于活动状态。


示例

以下是首先配置管理接口,内部和外部接口以及 VXLAN 集群控制链路,然后再为名为“node1”的 ASA 启用集群,由于该设备是第一台添加到集群的设备,因此将成为控制节点。


ip local pool mgmt 10.1.1.2-10.1.1.9
ipv6 local pool mgmtipv6 2001:DB8:45:1002/64 8

interface management 0/0
    nameif management
    ip address 10.1.1.1 255.255.255.0 cluster-pool mgmt
    ipv6 address 2001:DB8:45:1001::99/64 cluster-pool mgmtipv6
    security-level 100
    no shutdown

ip local pool out 209.165.200.225-209.165.200.232
ipv6 local pool outipv6 2001:DB8:45:1002/64 8

interface gigabitethernet 0/0
    nameif outside
    ip address 209.165.200.233 255.255.255.224 cluster-pool out
    ipv6 address 2001:DB8:45:1002::99/64 cluster-pool outipv6
    security-level 0
    no shutdown

ip local pool ins 192.168.1.2-192.168.1.9
ipv6 local pool insipv6 2001:DB8:45:1003/64 8

interface gigabitethernet 0/1
    nameif inside
    ip address 192.168.1.1 255.255.255.0 cluster-pool ins
    ipv6 address 2001:DB8:45:1003::99/64 cluster-pool insipv6
    security-level 100
    no shutdown

object-group network cluster-peers
    network-object host 10.6.6.51
    network-object host 10.6.6.52
    network-object host 10.6.6.53
    network-object host 10.6.6.54

interface gigabitethernet 0/7
    nve-only cluster
    nameif ccl
    ip address 10.6.6.51 255.255.255.0
    no shutdown

nve 1
    source-interface ccl
    peer-group cluster-peers

mtu ccl 1654

interface vni 1
    segment-id 1000
    vtep-nve 1

cluster group pod1
    local-unit node1
    cluster-interface vni1 ip 192.168.1.1 255.255.255.0
    priority 1
    key 67impala
    enable noconfirm

配置数据节点引导程序设置

执行以下程序配置数据节点。

开始之前
  • 请备份配置,以防稍后要退出集群而需要恢复配置。

  • 除集群控制链路和管理接口(它可以选择使用 DHCP)外,配置中的任何接口都必须使用集群 IP 池进行配置,然后才能启用集群。如果有以前就存在的接口配置,您可以清除该接口配置 (clear configure interface),也可以将接口转换为集群接口后再启用集群。

  • 将节点添加到正在运行的集群时,可能会有限地暂时丢弃数据包/断开连接;这是预期行为。

  • 启用巨集帧预留以用于集群控制链路,以便您可以将集群控制链路MTU设置为建议值。请参阅 jumbo-frame reservation 命令。启用巨帧会导致 ASA 重新加载,因此您必须在继续此程序之前执行此步骤。

过程

步骤 1

配置集群控制链路接口,其必须与您为控制节点配置的接口相同。请务必为 VTEP 源接口提供其他 IP 地址(以粗体显示)。

示例:

ciscoasa(config)# object-group network cluster-peers
ciscoasa(network-object-group)# network-object host 10.6.6.51
ciscoasa(network-object-group)# network-object host 10.6.6.52
ciscoasa(network-object-group)# network-object host 10.6.6.53
ciscoasa(network-object-group)# network-object host 10.6.6.54
ciscoasa(config)# interface gigabitethernet 0/7
ciscoasa(config-if)# nve-only cluster
ciscoasa(config-if)# nameif ccl
ciscoasa(config-if)# ip address 10.6.6.52 255.255.255.0
ciscoasa(config-if)# no shutdown
ciscoasa(config)# nve 1
ciscoasa(cfg-nve)# source-interface ccl
ciscoasa(cfg-nve)# peer-group cluster-peers
ciscoasa(config)# mtu ccl 1654
ciscoasa(config)# interface vni 1
ciscoasa(config-if)# segment-id 1000
ciscoasa(config-if)# vtep-nve 1

步骤 2

确定集群名称,其必须与您为控制节点配置的集群名称相同:

示例:

ciscoasa(config)# cluster group pod1

步骤 3

用唯一的字符串为此集群成员命名:

local-unit node_name

示例:

ciscoasa(cfg-cluster)# local-unit node2

指定长度为 1 到 38 个字符的 ASCII 字符串。

每个节点必须具有唯一的名称。集群中不允许存在名称重复的节点。

步骤 4

指定您为控制节点配置的同一集群控制链路接口,但在每个节点的相同网络上指定不同的 IP 地址:

cluster-interface vni_interface_id ip ip_address mask

示例:

ciscoasa(cfg-cluster)# cluster-interface vni1 ip 192.168.1.2 255.255.255.0
INFO: Non-cluster interface config is cleared on VNI1

指定 IP 地址的 IPv4 地址;此接口不支持 IPv6。此接口不能配置 nameif

步骤 5

如果您使用站点间集群,则请为此节点设置站点 ID,以使其能使用站点特定的 MAC 地址:

site-id 编号

示例:

ciscoasa(cfg-cluster)# site-id 2

number 介于 1 到 8 之间。

步骤 6

设置此节点在控制节点选择的优先级,通常设置为高于控制节点的值:

priority priority_number

示例:

ciscoasa(cfg-cluster)# priority 2

设置值为 1 到 100 的优先级,其中 1 为最高优先级。

步骤 7

设置一个身份验证密钥,使其与您为控制节点设置的密钥相同:

示例:

ciscoasa(cfg-cluster)# key chuntheunavoidable

步骤 8

启用集群:

enable as-data-node

使用 enable as-data-node 命令可避免任何配置不兼容(主要是任何尚未进行集群配置的接口的存在)。此命令可确保加入集群的数据节点不可能在任何当前选举中成为控制节点。从属设备的配置将被同步自控制节点的配置覆盖。

要禁用集群,请输入 no enable 命令。

 

如果禁用集群,所有数据接口将关闭,只有管理接口会处于活动状态。


示例

以下示例包括数据节点 node2 的配置:


object-group network cluster-peers
    network-object host 10.6.6.51
    network-object host 10.6.6.52
    network-object host 10.6.6.53
    network-object host 10.6.6.54

interface gigabitethernet 0/7
    nve-only cluster
    nameif ccl
    ip address 10.6.6.52 255.255.255.0
    no shutdown

nve 1
    source-interface ccl
    peer-group cluster-peers

mtu ccl 1654

interface vni 1
    segment-id 1000
    vtep-nve 1

cluster group pod1
    local-unit node2
    cluster-interface vni1 ip 192.168.1.2 255.255.255.0
    priority 2
    key 67impala
    enable noconfirm

自定义集群操作

作为第 0 天配置的一部分,或者在部署集群之后,您可以自定义集群运行状况监控、TCP 连接复制延迟、流移动性和其他优化。

在控制节点上执行这些程序。

配置基本 ASA 集群参数

您可以在控制节点上自定义集群设置。

过程


步骤 1

进入集群配置模式:

cluster group name

步骤 2

(可选) 启用数据节点到控制节点的控制台复制:

console-replicate

默认情况下会禁用此功能。对于特定的重要事件,ASA 可将某些消息直接打印输出到控制台。如果启用了控制台复制,数据节点会将控制台消息发送到控制节点,因此您只需要监控集群的一个控制台端口。

步骤 3

设置集群事件的最低跟踪级别:

trace-level 级别

根据需要设置最低级别:

  • critical - 重要事件(严重性=1)

  • warning - 警告(严重性 = 2)

  • informational - 信息事件(严重性=3)

  • debug - 调试事件(严重性=4)


配置运行状态监控,并自动重新加入设置

此程序可以配置节点和接口运行状态监控。

您可能想禁用不重要的接口(例如管理接口)的运行状况检查。运行状况监控不在 VLAN 子接口上执行。您不能为集群控制链路配置监控;它始终处于被监控状态。

过程


步骤 1

进入集群配置模式。

cluster group name

示例:


ciscoasa(config)# cluster group test
ciscoasa(cfg-cluster)#

步骤 2

自定义集群节点运行状况检查功能。

health-check [holdtime 超时]

为了确定节点运行状况,ASA 集群节点会在集群控制链路上将 heartbeat 消息发送到其他节点。如果节点在保持期内未接收到来自对等节点的任何 heartbeat 消息,则对等节点被视为无响应或无法工作。

  • holdtime 超时 - 用于确定两次设备 heartbeat状态消息之间的时间间隔,其值介于 0.3到 45 秒;默认值为 3 秒。

当拓扑发生任何更改时(例如添加或删除数据接口、启用或禁用 ASA、或交换机上的接口),您应禁用运行状态检查功能,还要禁用对已禁用接口的接口监控 (no health-check monitor-interface )。当拓扑结构更改完成且配置更改已同步到所有节点后,您可以重新启用运行状况检查功能。

示例:


ciscoasa(cfg-cluster)# health-check holdtime 5

步骤 3

在接口上禁用接口运行状况检查。

no health-check monitor-interface interface_id

接口运行状态检查将监控链路故障。ASA 在多长时间后从集群中删除成员取决于该节点是既定成员还是正在加入集群的设备。默认情况下,为所有接口启用运行状况检查。您可以使用此命令的 no 形式逐个接口将其禁用。您可能想禁用不重要的接口(例如管理接口)的运行状况检查。

  • interface_id - 禁用接口监控。运行状况监控不在 VLAN 子接口上执行。您不能为集群控制链路配置监控;它始终处于被监控状态。

当拓扑发生任何更改时(例如添加或删除数据接口、启用或禁用 ASA、或交换机上的接口),您应禁用运行状态检查功能 (no health-check ),还要禁用对已禁用接口的接口监控。当拓扑结构更改完成且配置更改已同步到所有节点后,您可以重新启用运行状况检查功能。

示例:


ciscoasa(cfg-cluster)# no health-check monitor-interface management1/1

步骤 4

自定义在运行状况检查发生故障后的自动重新加入集群设置。

health-check {data-interface | cluster-interface | system} auto-rejoin [unlimited | auto_rejoin_max] auto_rejoin_interval auto_rejoin_interval_variation

  • system - 指定内部错误的自动重新加入设置。内部故障包括:应用程序同步超时、不一致的应用程序状态等。

  • unlimited —(cluster-interface 的默认值)不限制重新加入尝试的次数。

  • auto-rejoin-max — 设置重新加入尝试次数,介于 0 和 65535 之间。0 禁用自动重新加入。data-interface system 的默认值为 3。

  • auto_rejoin_interval - 定义两次重新加入尝试之间的间隔持续时间(以分钟为单位),介于 2 和 60 之间。默认值为 5 分钟。节点尝试重新加入集群的最大总时间限制为自上次失败之时起 14400 分钟(10 天)。

  • Auto_rejoin_interval_variation - 定义是否增加间隔持续时间。设置介于 1 和 3 之间的值:1 (无更改);2 (2 倍于上一次持续时间)或 3 (3 倍于上一次持续时间)。例如,如果您将间隔持续时间设置为 5 分钟,并将变化设置为 2,则在 5 分钟后进行第 1 次尝试;在 10 分钟 (2 x 5) 后进行第 2 次尝试;在 20 分钟 (2 x 10) 后进行第 3 次尝试。对于集群接口,默认值为 1 ,而对于数据接口和系统,默认值为 2

示例:


ciscoasa(cfg-cluster)# health-check data-interface auto-rejoin 10 3 3

步骤 5

配置 ASA 将接口视为发生故障并将节点从集群中删除之前经过的防反跳时间。

health-check monitor-interface debounce-time ms

示例:


ciscoasa(cfg-cluster)# health-check monitor-interface debounce-time 300

将防反跳时间设置为 300 到 9000 毫秒之间。默认值为 500 毫秒。较小的值可以加快检测接口故障的速度。请注意,如果配置的防反跳时间较低,会增加误报几率。在发生接口状态更新时,ASA 会等待指定的毫秒数,然后才将接口标记为发生故障,并将节点从集群中删除。

步骤 6

(可选) 配置流量负载监控。

load-monitor [ frequency seconds] [ intervals intervals]

  • frequency seconds — 设置监控消息之间的时间(以秒为单位),范围介于 10 到 360 秒之间。默认值为 20 秒。

  • intervals intervals — 设置 ASA 维护数据的间隔的数量,该值介于 1 到 60 之间。默认值为 30。

您可以监控集群成员的流量负载,包括总连接计数、CPU 和内存使用情况以及缓冲区丢弃。如果负载过高,且剩余的节点可以处理负载,您可以选择在节点上手动禁用集群,或调整外部交换机上的负载均衡。默认情况下启用此功能。您可以定期监控流量负载。如果负载过高,您可以选择手动禁用节点上的集群。

使用 show cluster info load-monitor 命令查看流量负载。

示例:


ciscoasa(cfg-cluster)# load-monitor frequency 50 intervals 25
ciscoasa(cfg-cluster)# show cluster info load-monitor
ID  Unit Name
0  B
1  A_1
Information from all units with 50 second interval:
Unit     Connections    Buffer Drops   Memory Used   CPU Used
Average from last 1 interval:
   0           0            0            14              25
   1           0            0            16              20
Average from last 25 interval:
   0           0            0            12              28
   1           0            0            13              27


示例

以下示例将 health-check holdtime 配置为 0.3 秒;禁用GUANLI 0/0 接口上的监控;将数据接口的 auto-rejoin 设置为从 2 分钟开始的 4 次尝试,将 duration 增至上一次间隔的 3 倍;以及将集群控制链路的 auto-rejoin 设为 6 次尝试,每隔 2 分钟一次。


ciscoasa(config)# cluster group test
ciscoasa(cfg-cluster)# health-check holdtime .3
ciscoasa(cfg-cluster)# no health-check monitor-interface management0/0
ciscoasa(cfg-cluster)# health-check data-interface auto-rejoin 4 2 3
ciscoasa(cfg-cluster)# health-check cluster-interface auto-rejoin 6 2 1

配置连接再均衡和集群 TCP 复制延迟

可以配置连接再均衡。如果上游或下游路由器的负载均衡功能导致流量分摊不均衡,您可以将过载的节点配置为将新的 TCP 流量重定向到其他节点。现有流量将不会移至其他节点。

为 TCP 连接启用集群复制延迟有助于延迟创建导向器/备份数据流,从而消除与短期数据流相关的“非必要工作”。请注意,如果某个节点在创建导向器/备份数据流前出现故障,则无法恢复这些数据流。同样,如果流量在创建数据流前再均衡到其他节点,则无法恢复该数据流。不应为已对其禁用 TCP 随机化的流量启用 TCP 复制延迟。

过程


步骤 1

为 TCP 连接启用集群复制延迟:

cluster replication delay seconds { http | match tcp {host ip_address | ip_address mask | any | any4 | any6} [{eq | lt | gt} port] { host ip_address | ip_address mask | any | any4 | any6} [{eq | lt | gt} port]}

示例:


ciscoasa(config)# cluster replication delay 15 match tcp any any eq ftp
ciscoasa(config)# cluster replication delay 15 http

seconds 设置为介于 1 到 15 之间的值。默认启用 http 延迟,时间为 5 秒。

步骤 2

进入集群配置模式:

cluster group name

步骤 3

(可选)为 TCP 流量启用连接再均衡:

conn-rebalance [ frequency seconds]

示例:


ciscoasa(cfg-cluster)# conn-rebalance frequency 60

此命令默认禁用。如果已启用,ASA 会定期交换负载信息,并将新连接从负载较高的设备分担给负载较低的设备。此频率的值为 1 到 360 秒,用于指定多长时间交换一次负载信息。默认值为 5 秒。

请勿为站点间拓扑结构配置连接再均衡;您不需要将连接再均衡到位于不同站点的集群成员。


配置站点间功能

对于站点间集群,您可以自定义配置,以提高冗余性和稳定性。

启用导向器本地化

为了提高性能并缩短数据中心的站点间集群的往返时间延迟,您可以启用导向器本地化。新的连接通常实现了负载均衡,并且由特定站点中的集群成员拥有。但是,ASA 会向任意 站点的成员分配导向器角色。导向器本地化支持其他导向器角色:与所有者同一站点的本地导向器和可位于任意站点的全局导向器。将所有者和导向器保留在同一站点可以提高性能。此外,如果原始所有者发生故障,本地导向器将在同一站点选择新的连接所有者。当集群成员收到属于其他站点的连接的数据包时,使用全局导向器。

开始之前
  • 在引导程序配置中为集群成员设置站点 ID。

  • 以下流量类型不支持本地化:NAT 或 PAT 流量;SCTP 检查的流量;分段所有者查询。

过程

步骤 1

进入集群配置模式。

cluster group name

示例:

ciscoasa(config)# cluster group cluster1
ciscoasa(cfg-cluster)# 

步骤 2

启用导向器本地化。

director-localization


启用站点冗余

为保护流量免受站点故障的影响,您可以启用站点冗余。如果连接的备份所有者与所有者位于同一站点,则将从另一个站点选择一个额外的备份所有者来保护流量免受站点故障的影响。

开始之前
  • 在引导程序配置中为集群成员设置站点 ID。

过程

步骤 1

进入集群配置模式。

cluster group name

示例:

ciscoasa(config)# cluster group cluster1
ciscoasa(cfg-cluster)# 

步骤 2

启用站点冗余。

site-redundancy


配置集群流移动性

当服务器在站点之间移动时,您可以检查 LISP 流量以启用流移动性。

关于 LISP 检测

可以检查 LISP 流量,以便在站点间启用流移动性。

关于 LISP

利用数据中心的虚拟机移动性(例如,VMware VMotion),服务器可以在数据中心之间迁移,同时维持与客户端的连接。为了支持此类数据中心服务器移动性,路由器需要能够在服务器移动时更新通往服务器的入口路由。思科定位/ID 分离协议 (LISP) 架构将设备身份或终端标识符 (EID) 与设备位置或路由定位符 (RLOC) 分离开,并分隔到两个不同的编号空间,实现服务器迁移对客户端的透明化。例如,当服务器迁移到新的站点并且客户端向服务器发送流量时,路由器会将流量重定向到新位置。

LISP 需要充当特定角色的路由器和服务器,例如 LISP 出口隧道路由器 (ETR)、入口隧道路由器 (ITR)、第一跳路由器、映射解析器 (MR) 和映射服务器 (MS)。当服务器的第一跳路由器检测到服务器连接了其他路由器时,它会更新所有其他路由器和数据库,以便连接到客户端的 ITR 可以拦截、封装流量并将流量发送到新的服务器位置。

ASA LISP 支持

ASA 本身不运行 LISP;但是,它可以通过检查 LISP 流量确定位置更改,然后使用此信息进行无缝集群操作。如果不使用 LISP 集成,当服务器移动到新站点时,流量将到达位于新站点的 ASA 集群成员,而不是原始的流所有者。新 ASA将流量转发到旧站点的 ASA,然后旧 ASA必须将流量发回新站点,才能到达服务器。此类流量流并未处于最佳状态,称为“长号”或“发夹”。

如果使用 LISP 集成,ASA 集群成员可以检查第一跳路由器与 ETR 或 ITR 之间的 LISP 流量,然后将流所有者位置更改为新站点。

LISP 准则
  • ASA 集群成员必须位于第一跳路由器和该站点的 ITR 或 ETR 之间。ASA 集群本身不能作为扩展网段的第一跳路由器。

  • 仅支持全分布数据流;集中数据流、半分布数据流或属于单个节点的数据流不会移动到新的所有者。半分布数据流包括应用(例如 SIP),其中作为父数据流所有者的同一 ASA 拥有所有子数据流。

  • 集群仅移动第 3 和第 4 层流状态;一些应用数据可能丢失。

  • 对于持续时间极短的数据流或非关键业务数据流,移动所有者可能并非最佳选择。在配置检查策略时,您可以控制该功能支持的流量类型,并应只对必要流量限制流移动性。

ASA LISP 实施

此功能包含多种相互关联的配置(本章将逐一说明):

  1. (可选)基于主机或服务器 IP 地址限制检查的 EID - 第一跳路由器可能会向与 ASA 集群无关的主机或网络发送 EID 通知消息,因此,您可以限制只向与您的集群有关的服务器或网络发送 EID。例如,如果集群仅涉及 2 个站点,但是 LISP 在 3 个站点上运行,应只包括集群涉及的 2 个站点的 EID。

  2. LISP 流量检查 - ASA 检查 UDP 端口 4342 上的 LISP 流量是否包含第一跳路由器与 ITR 或 ETR 之间发送的 EID 通知消息。ASA 维护着一个将 EID 和站点 ID 相关联的 EID 表。例如,您应检查包含第一跳路由器源 IP 地址以及 ITR 或 ETR 目标地址的 LISP 流量。请注意,没有为 LISP 流量分配导向器,并且 LISP 流量本身不参与集群状态共享。

  3. 用于启用指定流量的流移动性的服务策略 - 您应对关键业务流量启用流移动性。例如,您可以只对 HTTPS 流量和/或发送到特定服务器的流量启用流移动性。

  4. 站点 ID - ASA 使用集群中每个节点的站点 ID 确定新的所有者。

  5. 用于启用流移动性的集群级别配置 - 您还必须在集群级别启用流移动性。此开/关切换器允许您轻松地启用或禁用特定流量类或应用类的流移动性。

配置 LISP 检测

当服务器在站点之间移动时,您可以检查 LISP 流量以启用流移动性。

开始之前

SUMMARY STEPS

  1. (可选) 配置 LISP 检测映射以根据 IP 地址限制检测的 EID,并配置 LISP 预共享密钥:
  2. 在端口 4342 上为第一跳路由器与 ITR 或ETR 之间的 UDP 流量配置 LISP检测:
  3. 为流量类启用流移动性:
  4. 进入集群组配置模式,并为集群启用流移动性:

DETAILED STEPS


步骤 1

(可选) 配置 LISP 检测映射以根据 IP 地址限制检测的 EID,并配置 LISP 预共享密钥:

  1. 创建扩展 ACL;仅目标 IP 地址与 EID 嵌入式地址匹配:

    access list eid_acl_name extended permit ip source_address mask destination_address mask

    接受 IPv4 和 IPv6 ACL。有关确切的 access-list extended 语法,请参阅命令参考。

  2. 创建 LISP 检测映射,并进入参数模式:

    policy-map type inspect lisp inspect_map_name

    parameters

  3. 通过识别您创建的 ACL 定义允许的 EID:

    allowed-eid access-list eid_acl_name

    第一跳路由器或 ITR/ETR 可能会向与 ASA 集群无关的主机或网络发送 EID 通知消息,因此,您可以限制只向与您的集群有关的服务器或网络发送 EID。例如,如果集群仅涉及 2 个站点,但是 LISP 在 3 个站点上运行,应只包括集群涉及的 2 个站点的 EID。

  4. 如果需要,请输入预共享密钥:

    validate-key 密钥

示例:

ciscoasa(config)# access-list TRACKED_EID_LISP extended permit ip any 10.10.10.0 255.255.255.0
ciscoasa(config)# policy-map type inspect lisp LISP_EID_INSPECT
ciscoasa(config-pmap)# parameters 
ciscoasa(config-pmap-p)# allowed-eid access-list TRACKED_EID_LISP
ciscoasa(config-pmap-p)# validate-key MadMaxShinyandChrome

步骤 2

在端口 4342 上为第一跳路由器与 ITR 或ETR 之间的 UDP 流量配置 LISP检测:

  1. 配置扩展 ACL 以识别 LISP 流量:

    access list eid_acl_name extended permit udp source_address mask destination_address mask eq 4342

    必须 指定 UDP 端口 4342。接受 IPv4 和 IPv6 ACL。有关确切的 access-list extended 语法,请参阅命令参考。

  2. 为 ACL 创建类映射:

    class-map inspect_class_name

    match access-list inspect_acl_name

  3. 使用可选 LISP 检测映射指定策略映射、类映射以及启用检测,然后将服务策略应用于接口(如果为新接口):

    policy-map policy_map_name

    class inspect_class_name

    inspect lisp [inspect_map_name]

    service-policy policy_map_name {global | interface ifc_name}

    如果您有现有服务策略,请指定现有策略映射名称。默认情况下,ASA 包括称为 global_policy 的全局策略,因此对于全局策略,请指定该名称。如果您希望全局应用该策略,还可以为每个接口创建一个服务策略。LISP 检测会双向应用于流量,因此您无需在源接口和目标接口上应用服务策略;如果流量与两个方向的类映射都匹配,则进入或退出您应用策略映射的接口的所有流量都受影响。

示例:

ciscoasa(config)# access-list LISP_ACL extended permit udp host 192.168.50.89 host 192.168.10.8 eq 4342
ciscoasa(config)# class-map LISP_CLASS
ciscoasa(config-cmap)# match access-list LISP_ACL
ciscoasa(config-cmap)# policy-map INSIDE_POLICY
ciscoasa(config-pmap)# class LISP_CLASS
ciscoasa(config-pmap-c)# inspect lisp LISP_EID_INSPECT
ciscoasa(config)# service-policy INSIDE_POLICY interface inside

ASA 会检测 LISP 流量是否包含第一跳路由器与 ITR 或 ETR 之间发送的 EID 通知消息。ASA 维护着一个关联 EID 和站点 ID 的 EID 表。

步骤 3

为流量类启用流移动性:

  1. 配置扩展 ACL 以在服务器更改站点时确定要重新分配至最佳站点的业务关键流量:

    access list flow_acl_name extended permit udp source_address mask destination_address mask eq port

    接受 IPv4 和 IPv6 ACL。有关确切的 access-list extended 语法,请参阅命令参考。您应对业务关键流量启用流移动性。例如,您可以只对 HTTPS 流量和/或发送到特定服务器的流量启用流移动性。

  2. 为 ACL 创建类映射:

    class-map flow_map_name

    match access-list flow_acl_name

  3. 指定在其上启用了 LISP 检测的同一策略映射,再指定流类映射,然后启用流移动性:

    policy-map policy_map_name

    class flow_map_name

    cluster flow-mobility lisp

示例:

ciscoasa(config)# access-list IMPORTANT-FLOWS extended permit tcp any 10.10.10.0 255.255.255.0 eq https
ciscoasa(config)# class-map IMPORTANT-FLOWS-MAP
ciscoasa(config)# match access-list IMPORTANT-FLOWS
ciscoasa(config-cmap)# policy-map INSIDE_POLICY
ciscoasa(config-pmap)# class IMPORTANT-FLOWS-MAP
ciscoasa(config-pmap-c)# cluster flow-mobility lisp

步骤 4

进入集群组配置模式,并为集群启用流移动性:

cluster group name

flow-mobility lisp

此开/关使您可以轻松地启用或禁用流移动性。


示例

以下示例:

  • 将 EID 限制为 10.10.10.0/24 网络上的 EID

  • 检查位于 192.168.50.89 的 LISP 路由器(内部)与位于 192.168.10.8 的 ITR 或 ETR 路由器(在另一个 ASA 接口上)之间的 LISP 流量 (UDP 4342)

  • 为使用 HTTPS 在 10.10.10.0/24 上进入服务器的所有内部流量启用流移动性。

  • 为集群启用流移动性。


access-list TRACKED_EID_LISP extended permit ip any 10.10.10.0 255.255.255.0
policy-map type inspect lisp LISP_EID_INSPECT
   parameters 
      allowed-eid access-list TRACKED_EID_LISP
      validate-key MadMaxShinyandChrome
!
access-list LISP_ACL extended permit udp host 192.168.50.89 host 192.168.10.8 eq 4342
class-map LISP_CLASS
   match access-list LISP_ACL
policy-map INSIDE_POLICY
   class LISP_CLASS
      inspect lisp LISP_EID_INSPECT
service-policy INSIDE_POLICY interface inside
!
access-list IMPORTANT-FLOWS extended permit tcp any 10.10.10.0 255.255.255.0 eq https
class-map IMPORTANT-FLOWS-MAP
   match access-list IMPORTANT-FLOWS
policy-map INSIDE_POLICY
   class IMPORTANT-FLOWS-MAP
      cluster flow-mobility lisp
!
cluster group cluster1
   flow-mobility lisp

管理集群节点

部署集群后,您可以更改配置和管理集群节点。

成为非活动节点

要成为集群的非活动成员,请在节点上禁用集群,同时保持集群配置不变。



当 ASA 处于非活动状态(以手动方式或因运行状况检查失败)时,所有数据接口都将关闭;只有管理专用接口可以发送和接收流量。要恢复流量传输,请重新启用集群;或者,您也可以从集群中完全删除该节点。管理接口将保持打开,使用节点从集群 IP 池接收的 IP 地址。但如果您重新加载,而节点仍在集群中处于非主用状态(例如,您保存了已禁用集群的配置),则管理接口将被禁用。您必须使用控制台端口来进行任何进一步配置。


过程


步骤 1

进入集群配置模式:

cluster group name

示例:


ciscoasa(config)# cluster group pod1

步骤 2

禁用集群:

no enable

如果此节点是控制节点,则会进行新的控制选择,并且其他成员将成为控制节点。

集群配置保持不变,因此您可于稍后再次启用集群。


从控制节点停用数据节点

要禁用您登录的节点以外的成员,请执行以下步骤。



当 ASA 处于非活动状态时,所有数据接口关闭;只有管理专用接口可以发送和接收流量。要恢复流量流,请重新启用集群。管理接口将保持打开,使用节点从集群 IP 池接收的 IP 地址。但如果您重新加载,而节点仍在集群中处于非主用状态(例如,假设您保存了已禁用集群的配置),管理接口将被禁用。您必须使用控制台端口来进行任何进一步的配置。


过程


从集群中删除该节点:

cluster remove unit node_name

引导程序配置保持不变,从控制节点同步的最新配置也保持不变,因此您可于稍后重新添加该节点而不会丢失配置。如果在数据节点上输入此命令来删除控制节点,则会选择新的控制节点。

要查看成员名称,请输入 cluster remove unit ?,或者输入 show cluster info 命令。

示例:


ciscoasa(config)# cluster remove unit ?

Current active units in the cluster:
asa2

ciscoasa(config)# cluster remove unit asa2
WARNING: Clustering will be disabled on unit asa2. To bring it back
to the cluster please logon to that unit and re-enable clustering


重新加入集群

如果从集群中删除了某个节点(例如针对出现故障的接口),或者如果您手动停用了某个成员,那么您必须手动重新加入集群。

过程


步骤 1

在控制台中,进入集群配置模式:

cluster group name

示例:


ciscoasa(config)# cluster group pod1

步骤 2

启用集群。

enable


退出集群

要完全退出集群,需要删除整个集群引导程序配置。由于每个节点上的当前配置相同(从主用设备同步),因此退出集群就意味着要么从备份恢复集群前的配置,要么清除现有配置并重新开始配置以免 IP 地址冲突。

过程


步骤 1

对于数据节点,禁用集群:

cluster group cluster_name no enable

示例:


ciscoasa(config)# cluster group cluster1
ciscoasa(cfg-cluster)# no enable

在数据节点上启用集群时,您无法进行配置更改。

步骤 2

清除集群配置:

clear configure cluster

ASA 将关闭所有接口,包括管理接口和集群控制链路。

步骤 3

禁用集群接口模式:

no cluster interface-mode

模式并非存储于配置中,因此必须手动重置。

步骤 4

如果有备份配置,可将备份配置复制到正在运行的配置中:

copy backup_cfg running-config

示例:


ciscoasa(config)# copy backup_cluster.cfg running-config

Source filename [backup_cluster.cfg]?

Destination filename [running-config]?
ciscoasa(config)#

步骤 5

将配置保存到启动配置:

write memory

步骤 6

如果没有备份配置,请重新配置管理访问。例如,确保更改接口 IP 地址,并恢复正确的主机名。


更改控制节点


小心

要更改控制节点,最好的方法是在控制节点上禁用集群,等到新的控制选举后再重新启用集群。如果必须指定要成为控制节点的具体节点,请使用本节中的程序。但是请注意,对集中功能而言,如果使用本程序强制更改控制节点,则所有连接都将断开,而您必须在新的控制节点上重新建立连接。


要更改控制节点,请执行以下步骤:

过程


将新节点设置为控制节点:

cluster control-node unitnode_name

示例:


ciscoasa(config)# cluster control-node unit asa2

您需要重新连接到主集群 IP 地址。

要查看成员名称,请输入 cluster control-node unit ? (可查阅除当前节点之外的所有名称),或输入 show cluster info 命令。


在集群范围内执行命令

要向集群中的所有节点或某个特定节点发送命令,请执行以下步骤。向所有节点发送 show 命令以收集所有输出并将其显示在当前节点的控制台上。也可在整个集群范围内执行其他命令(如 capturecopy)。

过程


发送命令到所有节点,或者如果指定了节点名称,则发送到特定节点:

cluster exec [unit node_name] command

示例:


ciscoasa# cluster exec show xlate

要查看节点名称,请输入 cluster exec unit ? (可查阅除当前节点之外的所有名称),或输入 show cluster info 命令。


示例

要同时将同一捕获文件从集群中的所有节点复制到 TFTP 服务器,请在控制节点上输入以下命令:


ciscoasa# cluster exec copy /pcap capture: tftp://10.1.1.56/capture1.pcap

多个 PCAP 文件(一个文件来自一个节点)将复制到 TFTP 服务器。目标捕获文件名会自动附加节点名称,例如 capture1_asa1.pcap、capture1_asa2.pcap 等。在本例中,asa1和asa2是集群节点名称。

监控 ASA 虚拟集群

您可以监控集群状态和连接并排除故障。

监控集群状态

请参阅以下命令来监控集群状态:

  • show cluster info [health [details]]

    如果没有关键字,show cluster info 命令将显示所有集群成员的状态。

    show cluster info health 命令将显示接口、节点和整个集群的当前运行状况。details 关键字显示心跳消息失败的次数。

    请参阅 show cluster info 命令的以下输出:

    
    ciscoasa# show cluster info
    Cluster stbu: On
      This is "C" in state DATA_NODE
          ID        : 0
          Site ID   : 1
                Version   : 9.4(1)
          Serial No.: P3000000025
          CCL IP    : 10.0.0.3
          CCL MAC   : 000b.fcf8.c192
          Last join : 17:08:59 UTC Sep 26 2011
          Last leave: N/A
    Other members in the cluster:
      Unit "D" in state DATA_NODE
          ID        : 1
          Site ID   : 1
                Version   : 9.4(1)
          Serial No.: P3000000001
          CCL IP    : 10.0.0.4
          CCL MAC   : 000b.fcf8.c162
          Last join : 19:13:11 UTC Sep 23 2011
          Last leave: N/A
      Unit "A" in state CONTROL_NODE
          ID        : 2
          Site ID   : 2
                Version   : 9.4(1)
          Serial No.: JAB0815R0JY
          CCL IP    : 10.0.0.1
          CCL MAC   : 000f.f775.541e
          Last join : 19:13:20 UTC Sep 23 2011
          Last leave: N/A
      Unit "B" in state DATA_NODE
          ID        : 3
          Site ID   : 2
                Version   : 9.4(1)
          Serial No.: P3000000191
          CCL IP    : 10.0.0.2
          CCL MAC   : 000b.fcf8.c61e
          Last join : 19:13:50 UTC Sep 23 2011
          Last leave: 19:13:36 UTC Sep 23 2011
    
    
  • show cluster info auto-join

    显示集群节点是否将在一段延迟后自动重新加入集群,以及是否已清除故障条件(例如等待许可证、机箱运行状况检查失败,等等)。如果节点已永久禁用,或节点已在集群中,则此命令将不会显示任何输出。

    请参阅 show cluster info auto-join 命令的以下输出:

    
    ciscoasa(cfg-cluster)# show cluster info auto-join
    Unit will try to join cluster in 253 seconds.
    Quit reason: Received control message DISABLE
     
    ciscoasa(cfg-cluster)# show cluster info auto-join       
    Unit will try to join cluster when quit reason is cleared.
    Quit reason: Control node has application down that data node has up.
     
    ciscoasa(cfg-cluster)# show cluster info auto-join        
    Unit will try to join cluster when quit reason is cleared.
    Quit reason: Chassis-blade health check failed.
     
    ciscoasa(cfg-cluster)# show cluster info auto-join        
    Unit will try to join cluster when quit reason is cleared.
    Quit reason: Service chain application became down.
     
    ciscoasa(cfg-cluster)# show cluster info auto-join
    Unit will try to join cluster when quit reason is cleared.
    Quit reason: Unit is kicked out from cluster because of Application health check failure.
     
    ciscoasa(cfg-cluster)# show cluster info auto-join
    Unit join is pending (waiting for the smart license entitlement: ent1)
     
    ciscoasa(cfg-cluster)# show cluster info auto-join
    Unit join is pending (waiting for the smart license export control flag)
    
    
  • show cluster info transport{asp |cp [detail]}

    显示以下项目传输相关的统计信息:

    • asp — 数据平面传输统计信息。

    • cp — 控制平面传输统计信息。

      如果您输入 detail 关键字,您可以查看集群可靠传输协议的使用情况,以便确定控制平面中的缓冲区已满时的丢包问题。请参阅 show cluster info transport cp detail 命令的以下输出:

      
      ciscoasa# show cluster info transport cp detail
      Member ID to name mapping: 
        0 - unit-1-1   2 - unit-4-1   3 - unit-2-1 
      
      Legend:
        U    - unreliable messages
        UE   - unreliable messages error
        SN   - sequence number
        ESN  - expecting sequence number
        R    - reliable messages
        RE   - reliable messages error
        RDC  - reliable message deliveries confirmed
        RA   - reliable ack packets received
        RFR  - reliable fast retransmits
        RTR  - reliable timer-based retransmits
        RDP  - reliable message dropped
        RDPR - reliable message drops reported
        RI   - reliable message with old sequence number
        RO   - reliable message with out of order sequence number
        ROW  - reliable message with out of window sequence number
        ROB  - out of order reliable messages buffered
        RAS  - reliable ack packets sent
      
      This unit as a sender
      --------------------------
              all       0         2         3         
        U     123301    3867966   3230662   3850381   
        UE    0         0         0         0         
        SN    1656a4ce  acb26fe   5f839f76  7b680831  
        R     733840    1042168   852285    867311    
        RE    0         0         0         0         
        RDC   699789    934969    740874    756490    
        RA    385525    281198    204021    205384    
        RFR   27626     56397     0         0         
        RTR   34051     107199    111411    110821    
        RDP   0         0         0         0         
        RDPR  0         0         0         0         
      
      This unit as a receiver of broadcast messages
      ---------------------------------------------
              0         2         3         
        U     111847    121862    120029    
        R     7503      665700    749288    
        ESN   5d75b4b3  6d81d23   365ddd50  
        RI    630       34278     40291     
        RO    0         582       850       
        ROW   0         566       850       
        ROB   0         16        0         
        RAS   1571      123289    142256    
      
      This unit as a receiver of unicast messages
      ---------------------------------------------
              0         2         3         
        U     1         3308122   4370233   
        R     513846    879979    1009492   
        ESN   4458903a  6d841a84  7b4e7fa7  
        RI    66024     108924    102114    
        RO    0         0         0         
        ROW   0         0         0         
        ROB   0         0         0         
        RAS   130258    218924    228303    
      
      Gated Tx Buffered Message Statistics
      -------------------------------------
          current sequence number: 0
      
          total:                   0
          current:                 0
          high watermark:          0
      
          delivered:               0
          deliver failures:        0
      
          buffer full drops:       0
          message truncate drops:  0
      
          gate close ref count:    0
      
          num of supported clients:45
      
      MRT Tx of broadcast messages
      =============================
      Message high watermark: 3%
        Total messages buffered at high watermark: 5677
        [Per-client message usage at high watermark]
        ---------------------------------------------------------------
        Client name                          Total messages  Percentage  
        Cluster Redirect Client                        4153         73% 
        Route Cluster Client                            419          7% 
        RRI Cluster Client                             1105         19% 
      
      Current MRT buffer usage: 0%
        Total messages buffered in real-time: 1
        [Per-client message usage in real-time]
        Legend:
              F - MRT messages sending when buffer is full
              L - MRT messages sending when cluster node leave
              R - MRT messages sending in Rx thread
        ----------------------------------------------------------------------------
        Client name                          Total messages  Percentage    F   L   R
        VPN Clustering HA Client                          1        100%    0   0   0
      
      MRT Tx of unitcast messages(to member_id:0)
      ============================================
      Message high watermark: 31%
        Total messages buffered at high watermark: 4059
        [Per-client message usage at high watermark]
        ---------------------------------------------------------------
        Client name                          Total messages  Percentage  
        Cluster Redirect Client                        3731         91% 
        RRI Cluster Client                              328          8% 
      
      Current MRT buffer usage: 29%
        Total messages buffered in real-time: 3924
        [Per-client message usage in real-time]
        Legend:
              F - MRT messages sending when buffer is full
              L - MRT messages sending when cluster node leave
              R - MRT messages sending in Rx thread
        ----------------------------------------------------------------------------
        Client name                          Total messages  Percentage    F   L   R
        Cluster Redirect Client                        3607         91%    0   0   0
        RRI Cluster Client                              317          8%    0   0   0
      
      MRT Tx of unitcast messages(to member_id:2)
      ============================================
      Message high watermark: 14%
        Total messages buffered at high watermark: 578
        [Per-client message usage at high watermark]
        ---------------------------------------------------------------
        Client name                          Total messages  Percentage  
        VPN Clustering HA Client                        578        100% 
      
      Current MRT buffer usage: 0%
        Total messages buffered in real-time: 0
      
      MRT Tx of unitcast messages(to member_id:3)
      ============================================
      Message high watermark: 12%
        Total messages buffered at high watermark: 573
        [Per-client message usage at high watermark]
        ---------------------------------------------------------------
        Client name                          Total messages  Percentage  
        VPN Clustering HA Client                        572         99% 
        Cluster VPN Unique ID Client                      1          0% 
                    
      Current MRT buffer usage: 0%
        Total messages buffered in real-time: 0
      
      
  • show cluster history

    显示集群历史记录,以及有关集群节点加入失败的原因或节点离开集群的原因的错误消息。

在集群范围捕获数据包

有关在集群中捕获数据包的信息,请参阅以下命令

cluster exec capture

要支持集群范围的故障排除,您可以使用 cluster exec capture 命令在控制节点上启用捕获集群特定流量的功能,随后集群中的所有数据节点上将自动启用此功能。

监控集群资源

请参阅以下命令以监控集群资源:

show cluster {cpu | memory | resource} [options]

显示整个集群的聚合数据。可用 options 取决于数据类型。

监控集群流量

请参阅以下命令以监控集群流量:

  • show conn [detail], cluster exec show conn

    show conn 命令显示一个传输是导向者、备用还是转发者传输。在任意节点上使用 cluster exec show conn 命令可查看所有连接。此命令可以显示单个流的流量到达集群中不同 ASA 的方式。集群的吞吐量取决于负载均衡的效率和配置。此命令可以让您很方便地查看某个连接的流量如何流经集群,也可以帮助您了解负载均衡器对传输的性能有何影响。

    show conn detail 命令还显示哪些流应 遵守流移动性。

    以下是 show conn detail 命令的输出示例:

    
    ciscoasa/ASA2/data node# show conn detail
    12 in use, 13 most used
    Cluster stub connections: 0 in use, 46 most used
    Flags: A - awaiting inside ACK to SYN, a - awaiting outside ACK to SYN,
           B - initial SYN from outside, b - TCP state-bypass or nailed,
           C - CTIQBE media, c - cluster centralized,
           D - DNS, d - dump, E - outside back connection, e - semi-distributed,
           F - outside FIN, f - inside FIN,
           G - group, g - MGCP, H - H.323, h - H.225.0, I - inbound data,
           i - incomplete, J - GTP, j - GTP data, K - GTP t3-response
           k - Skinny media, L - LISP triggered flow owner mobility,
           M - SMTP data, m - SIP media, n - GUP
           O - outbound data, o - offloaded,
           P - inside back connection,
           Q - Diameter, q - SQL*Net data,
           R - outside acknowledged FIN,
           R - UDP SUNRPC, r - inside acknowledged FIN, S - awaiting inside SYN,
           s - awaiting outside SYN, T - SIP, t - SIP transient, U - up,
           V - VPN orphan, W - WAAS,
           w - secondary domain backup,
           X - inspected by service module,
           x - per session, Y - director stub flow, y - backup stub flow,
           Z - Scansafe redirection, z - forwarding stub flow
    ESP outside: 10.1.227.1/53744 NP Identity Ifc: 10.1.226.1/30604, , flags c, idle 0s, uptime
    1m21s, timeout 30s, bytes 7544, cluster sent/rcvd bytes 0/0, owners (0,255) Traffic received
    at interface outside Locally received: 7544 (93 byte/s) Traffic received at interface NP
    Identity Ifc Locally received: 0 (0 byte/s) UDP outside: 10.1.227.1/500 NP Identity Ifc:
    10.1.226.1/500, flags -c, idle 1m22s, uptime 1m22s, timeout 2m0s, bytes 1580, cluster
    sent/rcvd bytes 0/0, cluster sent/rcvd total bytes 0/0, owners (0,255) Traffic received at
    interface outside Locally received: 864 (10 byte/s) Traffic received at interface NP Identity
    Ifc Locally received: 716 (8 byte/s)
    
    

    要对连接流进行故障排除,请先在任意节点上输入 cluster exec show conn 命令查看所有节点上的连接。寻找具有以下标志的流:导向者 (Y)、备用 (y) 和转发者 (z)。下例显示了三台 ASA 上的一条从 172.18.124.187:22 到 192.168.103.131:44727 的 SSH 连接;ASA 1 带有 z 标志,表示其是该连接的转发者;ASA3 带有 Y 标志,表示其是该连接的导向者;而 ASA2 则没有特殊的标志,表示其是所有者。在出站方向,此连接的数据包进入 ASA2 上的内部接口并从外部接口流出。在入站方向,此连接的数据包进入 ASA 1 和 ASA3 上的外部接口,通过集群控制链路被转发到 ASA2,然后流出 ASA2 上的内部接口。

    
    ciscoasa/ASA1/control node# cluster exec show conn
    ASA1(LOCAL):**********************************************************
    18 in use, 22 most used
    Cluster stub connections: 0 in use, 5 most used
    TCP outside  172.18.124.187:22 inside  192.168.103.131:44727, idle 0:00:00, bytes 37240828, flags z
    
    
    ASA2:*****************************************************************
    12 in use, 13 most used
    Cluster stub connections: 0 in use, 46 most used
    TCP outside  172.18.124.187:22 inside  192.168.103.131:44727, idle 0:00:00, bytes 37240828, flags UIO
    
    
    ASA3:*****************************************************************
    10 in use, 12 most used
    Cluster stub connections: 2 in use, 29 most used
    TCP outside  172.18.124.187:22 inside  192.168.103.131:44727, idle 0:00:03, bytes 0, flags  Y
    
  • show cluster info [conn-distribution | packet-distribution | loadbalance | flow-mobility counters]

    show cluster info conn-distributionshow cluster info packet-distribution 命令显示流量在所有集群节点上的分布。这些命令可以帮助您评估和调整外部负载均衡器。

    show cluster info loadbalance 命令显示连接再均衡统计信息。

    The show cluster info flow-mobility counters 命令显示 EID 移动和流所有者移动信息。请参阅 show cluster info flow-mobility counters 的以下输出:

    
    ciscoasa# show cluster info flow-mobility counters
    EID movement notification received  : 4
    EID movement notification processed : 4
    Flow owner moving requested         : 2
    
    
  • show cluster info load-monitor [details]

    show cluster info load-monitor 命令显示最后一个间隔的集群成员的流量负载,以及已配置的总间隔数(默认情况下为 30)。使用 details 关键字查看每个时间间隔的每个度量值。

    
    ciscoasa(cfg-cluster)# show cluster info load-monitor
    ID  Unit Name
    0  B
    1  A_1
    Information from all units with 20 second interval:
    Unit     Connections    Buffer Drops   Memory Used   CPU Used
    Average from last 1 interval:
       0           0            0            14              25
       1           0            0            16              20
    Average from last 30 interval:
       0           0            0            12              28
       1           0            0            13              27
    
    
    ciscoasa(cfg-cluster)# show cluster info load-monitor details              
                                                                                               
    ID  Unit Name                                                                              
     0  B                                                                                      
     1  A_1                                                                                    
    Information from all units with 20 second interval                                         
                                                                                               
    Connection count captured over 30 intervals:                                               
    Unit ID  0                                                                                 
             0          0          0          0          0          0                          
             0          0          0          0          0          0                          
             0          0          0          0          0          0                          
             0          0          0          0          0          0                          
             0          0          0          0          0          0                          
    Unit ID  1                                                                                 
             0          0          0          0          0          0                          
             0          0          0          0          0          0                          
             0          0          0          0          0          0                          
             0          0          0          0          0          0                          
             0          0          0          0          0          0                          
                                                                                               
    Buffer drops captured over 30 intervals:                                                   
    Unit ID  0                                                                                 
             0          0          0          0          0          0                          
             0          0          0          0          0          0                          
             0          0          0          0          0          0                          
             0          0          0          0          0          0                          
             0          0          0          0          0          0                          
    Unit ID  1                                                                                 
             0          0          0          0          0          0                          
             0          0          0          0          0          0                          
             0          0          0          0          0          0                          
             0          0          0          0          0          0                          
             0          0          0          0          0          0                          
                                                                                               
    Memory usage(%) captured over 30 intervals:                                                   
    Unit ID  0                                                                                 
            25         25         30         30         30         35                          
            25         25         35         30         30         30                          
            25         25         30         25         25         35                          
            30         30         30         25         25         25                          
            25         20         30         30         30         30                          
    Unit ID  1                                                                                 
            30         25         35         25         30         30                          
            25         25         35         25         30         35                          
            30         30         35         30         30         30                          
            25         20         30         25         25         30                          
            20         30         35         30         30         35                            
                                                                                               
    CPU usage(%) captured over 30 intervals:                                                      
    Unit ID  0                                                                                 
            25         25         30         30         30         35                          
            25         25         35         30         30         30                          
            25         25         30         25         25         35                          
            30         30         30         25         25         25                          
            25         20         30         30         30         30                          
    Unit ID  1                                                                                 
            30         25         35         25         30         30                          
            25         25         35         25         30         35                          
            30         30         35         30         30         30                          
            25         20         30         25         25         30                          
            20         30         35         30         30         35       
    
    
  • show cluster {access-list | conn | traffic | user-identity | xlate} [options]

    显示整个集群的聚合数据。可用 options 取决于数据类型。

    请参阅 show cluster access-list 命令的以下输出:

    
    ciscoasa# show cluster access-list
    hitcnt display order: cluster-wide aggregated result, unit-A, unit-B,  unit-C, unit-D
    access-list cached ACL log flows: total 0, denied 0 (deny-flow-max 4096) alert-interval 300
    access-list 101; 122 elements; name hash: 0xe7d586b5
    access-list 101 line 1 extended permit tcp 192.168.143.0 255.255.255.0 any eq www (hitcnt=0, 0, 0, 0, 0) 0x207a2b7d
    access-list 101 line 2 extended permit tcp any 192.168.143.0 255.255.255.0 (hitcnt=0, 0, 0, 0, 0) 0xfe4f4947
    access-list  101 line 3 extended permit tcp host 192.168.1.183 host 192.168.43.238 (hitcnt=1, 0, 0, 0, 1) 0x7b521307
    access-list 101 line 4 extended permit tcp host 192.168.1.116 host 192.168.43.238 (hitcnt=0, 0, 0, 0, 0) 0x5795c069
    access-list 101 line 5 extended permit tcp host 192.168.1.177 host 192.168.43.238 (hitcnt=1, 0, 0, 1, 0) 0x51bde7ee
    access list 101 line 6 extended permit tcp host 192.168.1.177 host 192.168.43.13 (hitcnt=0, 0, 0, 0, 0) 0x1e68697c
    access-list 101 line 7 extended permit tcp host 192.168.1.177 host 192.168.43.132 (hitcnt=2, 0, 0, 1, 1) 0xc1ce5c49
    access-list 101 line 8 extended permit tcp host 192.168.1.177 host 192.168.43.192 (hitcnt=3, 0, 1, 1, 1) 0xb6f59512
    access-list 101 line 9 extended permit tcp host 192.168.1.177 host 192.168.43.44 (hitcnt=0, 0, 0, 0, 0) 0xdc104200
    access-list 101 line 10 extended permit tcp host 192.168.1.112 host 192.168.43.44 (hitcnt=429, 109, 107, 109, 104)
    0xce4f281d
    access-list 101 line 11 extended permit tcp host 192.168.1.170 host 192.168.43.238 (hitcnt=3, 1, 0, 0, 2) 0x4143a818
    access-list 101 line 12 extended permit tcp host 192.168.1.170 host 192.168.43.169 (hitcnt=2, 0, 1, 0, 1) 0xb18dfea4
    access-list 101 line 13 extended permit tcp host 192.168.1.170 host 192.168.43.229 (hitcnt=1, 1, 0, 0, 0) 0x21557d71
    access-list 101 line 14 extended permit tcp host 192.168.1.170 host 192.168.43.106 (hitcnt=0, 0, 0, 0, 0) 0x7316e016
    access-list 101 line 15 extended permit tcp host 192.168.1.170 host 192.168.43.196 (hitcnt=0, 0, 0, 0, 0) 0x013fd5b8
    access-list 101 line 16 extended permit tcp host 192.168.1.170 host 192.168.43.75 (hitcnt=0, 0, 0, 0, 0) 0x2c7dba0d
    
    

    要显示所有节点在用连接的汇聚计数,请输入:

    
    ciscoasa# show cluster conn count
    Usage Summary In Cluster:*********************************************
      200 in use (cluster-wide aggregated)
         cl2(LOCAL):***********************************************************
      100 in use, 100 most used
    
      cl1:******************************************************************
      100 in use, 100 most used
    
    
  • show asp cluster counter

    此命令对于数据路径故障排除非常有用。

监控集群路由

有关集群路由的信息,请参阅以下命令

  • show route cluster

  • debug route cluster

    显示集群的路由信息。

  • show lisp eid

    显示 ASA EID 表,表中显示了 EID 和站点 ID。

    请参阅 cluster exec show lisp eid 命令的以下输出。

    
    ciscoasa# cluster exec show lisp eid
    L1(LOCAL):************************************************************
         LISP EID       Site ID
        33.44.33.105        2
        33.44.33.201        2
        11.22.11.1             4
        11.22.11.2             4
    L2:*******************************************************************
         LISP EID       Site ID
        33.44.33.105        2
        33.44.33.201        2
        11.22.11.1 	 4
        11.22.11.2	 4
    
    
  • show asp table classify domain inspect-lisp

    该命令对于故障排除非常有用。

配置集群日志记录

有关为集群配置日志记录的信息,请参阅以下命令

logging device-id

集群中的每个节点将独立生成系统日志消息。您可以使用 logging device-id 命令来生成具有相同或不同设备 ID 的系统日志消息,以使消息看上去是来自集群中的相同或不同节点。

监控集群接口

请参阅以下用于监控集群接口的命令:

  • show cluster interface-mode

    显示集群接口模式。

调试集群

请参阅以下用于调试集群的命令:

  • debug cluster [ccp | datapath | fsm | general | hc | license | rpc | transport]

    显示集群的调试消息。

  • debug cluster flow-mobility

    显示与集群流移动性相关的事件。

  • debug lisp eid-notify-intercept

    当 eid-notify 被拦截时显示事件。

  • show cluster info trace

    show cluster info trace 命令显示调试信息,供进一步排除故障之用。

    请参阅 show cluster info trace 命令的以下输出:

    
    ciscoasa# show cluster info trace
     Feb 02 14:19:47.456 [DBUG]Receive CCP message: CCP_MSG_LOAD_BALANCE
     Feb 02 14:19:47.456 [DBUG]Receive CCP message: CCP_MSG_LOAD_BALANCE
     Feb 02 14:19:47.456 [DBUG]Send CCP message to all: CCP_MSG_KEEPALIVE from 80-1 at CONTROL_NODE
    
    

ASA 虚拟集群示例

这些示例包括典型部署中所有与集群相关的 ASA 配置。

独立接口路由模式南北站点间集群示例

以下示例显示的 2 个 ASA 集群节点分别位于 2 个部署在内部和外部路由器之间(南北插入)的数据中心。集群节点由集群控制链路通过 DCI 连接。位于每个数据中心的内部和外部路由器使用 OSPF 和 PBR 或 ECMP 在集群成员之间对流量执行负载均衡。通过指定 DCI 中开销较高的路由可将流量保持在每个数据中心内(除非给定站点上的所有 ASA 集群节点都中断连接)。如果一个站点上的所有集群节点都发生故障,流量将从每台路由器通过 DCI 发往另一个站点上的 ASA 集群节点。

集群参考

本部分包括有关集群工作原理的详细信息。

ASA 功能和集群

部分 ASA 功能不受 ASA 集群支持,还有部分功能仅在控制节点上受支持。其他功能可能对如何正确使用规定了注意事项。

集群不支持的功能

以下功能在启用集群的情况下无法配置,相关命令会被拒绝。

  • 依靠 TLS 代理实现的统一通信功能

  • 远程接入 VPN(SSL VPN 和 IPsec VPN)

  • 虚拟隧道接口 (VTI)

  • 以下应用检查:

    • CTIQBE

    • H323、H225 和 RAS

    • IPsec 穿透

    • MGCP

    • MMP

    • RTSP

    • SCCP(瘦客户端)

    • WAAS

    • WCCP

  • 僵尸网络流量过滤器

  • 自动更新服务器

  • DHCP 客户端、服务器和代理。支持 DHCP 中继。

  • VPN 负载均衡

  • 故障切换

  • 集成路由和桥接

  • FIPS 型号

集群集中化功能

以下功能只有在控制节点上才受支持,且无法为集群扩展。



集中功能的流量从成员节点通过集群控制链路转发到控制节点。

如果使用再均衡功能,则会先将集中功能的流量再均衡到非控制节点的设备,然后再将该流量归类为集中功能;如果发生此情况,该流量随后将被发送回控制节点。

对集中功能而言,如果控制节点发生故障,则所有连接都将断开,而您必须在新的控制节点上重新建立连接。


  • 以下应用检查:

    • DCERPC

    • ESMTP

    • IM

    • NetBIOS

    • PPTP

    • RADIUS

    • RSH

    • SNMP

    • SQLNET

    • SUNRPC

    • TFTP

    • XDMCP

  • 静态路由监控

  • 网络访问的身份验证和授权。记帐被分散。

  • 筛选服务

  • 站点到站点 VPN

  • 组播路由

应用到单个节点的功能

这些功能将应用到每个 ASA 节点而非整个集群或控制节点。

  • QoS - QoS 策略将于配置复制过程中在集群中同步。但是,该策略是在每个节点上独立执行。例如,如果对输出配置管制,则要对流出特定 ASA 的流量应用符合规则的速率和符合规则的突发量值。在包含 3 个节点且流量均衡分布的集群中,符合规则的速率实际上变成了集群速率的 3 倍。

  • 威胁检测 - 威胁检测在各节点上独立工作;例如,排名统计信息就要视具体节点而定。以端口扫描检测为例,由于扫描的流量将在所有节点间进行负载均衡,而一个节点无法看到所有流量,因此端口扫描检测无法工作。

  • 资源管理 - 多情景模式下的资源管理根据本地使用情况在每个节点上分别执行。

  • LISP 流量 - UDP 端口 4342 上的 LISP 流量由每个接收节点进行检查,但是没有为其分配导向器。每个节点都会添加到集群共享的 EID 表,但是 LISP 流量本身并不参与集群状态共享。

用于网络访问的 AAA 和集群

用于网络访问的 AAA 由三部分组成:身份验证、授权和记账。身份验证和授权作为集中功能在集群控制节点上实施,且数据结构复制到集群数据节点。如果选举出控制节点,新的控制节点将拥有所需的所有信息,以继续不间断运行经过验证的既有用户及其相关授权。当控制节点发生变化时,用户身份验证的空闲和绝对超时将保留。

记账作为分散的功能在集群中实施。记账按每次流量完成,因此在为流量配置记账时,作为流量所有者的集群节点会将记账开始和停止消息发送到 AAA 服务器。

连接设置和集群

连接限制在集群范围强制实施(请参阅 set connection conn-max set connection embryonic-conn-max set connection per-client-embryonic-max set connection per-client-max 命令。每个节点都有根据广播消息估计的集群范围的计数器值。出于效率考虑,在集群中配置的连接限制可能不会严格按限制数量实施。每个节点在任何指定时间都可能高估或低估集群范围内的计数器值。不过,在负载均衡的集群中,该信息将随时间而更新。

动态路由和集群

在独立接口模式下,每个节点作为独立的路由器运行路由协议,且每个节点独立获知路由。

图 1. 独立接口模式下的动态路由

在上图中,路由器 A 获知有 4 条等价路径通往路由器 B,每条路径都要经过一台 ASA。ECMP 用于在这 4 条路径之间对流量执行负载均衡。每台 ASA 在与外部路由器通信时,会挑选不同的路由器 ID。

您必须为路由器 ID 配置一个集群池,使每个节点都有单独的路由器 ID。

EIGRP 与单个接口模式下的集群对等体不构成邻居关系。



如果该集群为实现冗余有多个设备与同一个路由器相邻,则非对称路由可能会造成不可接受的流量损失。要避免非对称路由,请将所有这些 ASA 接口分组到同一流量区域中。


FTP 和集群

  • 如果 FTP 数据通道和控制通道流量由不同的集群成员所有,则数据通道所有者会将空闲超时更新定期发送到控制通道所有者并更新空闲超时值。但是,如果重新加载控制流量所有者并重新托管控制流量,则不会再保持父/子流量关系;控制流量空闲超时不会更新。

  • 如果您将 AAA 用于 FTP 访问,则控制通道流集中在控制节点上。

ICMP检测和集群

ICMP 和 ICMP 错误数据包通过集群的流取决于是否启用 ICMP/ICMP 错误检查。不启用 ICMP 检查时,ICMP 是单向流,并且不支持导向器流。启用 ICMP 检查时,ICMP 流变为双向流,并由导向器/备份流支持。被检查的 ICMP 流的一个不同之处在于导向器对转发数据包的处理:导向器会将 ICMP 回应应答数据包转发给流所有者,而不是将数据包返回给转发器。

组播路由和集群

在独立接口模式下,设备并不单独处理组播。所有数据和路由数据包都由控制设备进行处理和转发,从而避免数据包复制。

NAT 和集群

NAT 可能会影响集群的总吞吐量。入站和出站 NAT 数据包可被发送到集群中不同的 ASA,因为负载均衡算法取决于 IP 地址和端口,NAT 会导致入站和出站数据包具有不同的 IP 地址和/或端口。当数据包到达并非 NAT 所有者的 ASA时,会通过集群控制链路转发到所有者,导致集群控制链路上存在大量流量。请注意,接收节点不会创建流向所有者的转发流量,因为 NAT 所有者最终可能不会根据安全和策略检查结果为数据包创建连接。

如果您仍想在集群中使用 NAT,请考虑以下准则:

  • 不使用代理 ARP - 对于独立接口,切勿为映射的地址发送代理 ARP 回复。这可以防止邻接路由器与可能已经不在集群中的 ASA 保持对等关系。对于指向主集群 IP 地址的映射地址,上游路由器需要静态路由或带对象跟踪的 PBR。这对跨网络 EtherChannel 来说不是问题,因为只有一个 IP 地址与集群接口关联。

  • 不对独立接口使用接口 PAT - 独立接口不支持接口 PAT。

  • PAT 采用端口块分配 - 请参阅该功能的以下准则:

    • 每主机最大流量限制并不针对整个集群,而是单独应用于每个节点。因此,在每主机最大流量限制配置为 1 的包含 3 个节点的集群中,如果在全部 3 个节点上对来自主机的流量实行负载均衡,则可以分配 3 个端口块,每个节点 1 个。

    • 在执行每主机最大流量限制时,在备份池中的备份节点上创建的端口块不计算在内。

    • 如果进行即时 PAT 规则修改(对 PAT 池改用全新的 IP 地址范围),会导致在新的池生效时仍在传输的转换项备份请求的转换项备份创建失败。此行为并非端口块分配功能所特有,它是一个暂时性 PAT 池问题,只发现于在集群节点之间分配池并执行流量负载均衡的集群部署。

    • 在集群中操作时,不能直接更改块分配大小。只有在集群中重新加载每个设备后,新的大小才会生效。为避免重新加载每个设备,我们建议您删除所有块分配规则并清除与这些规则相关的所有转换。然后,您可以更改块大小并重新创建块分配规则。

  • 对动态 PAT 使用 NAT 池地址分配 - 配置 PAT 池时,集群将池中的每个 IP 地址划分为端口块。默认情况下,每个块都是 512 个端口,但如果配置端口块分配规则,则使用块设置。这些块在集群中的各个节点之间均匀分配,因此每个节点都有一个或多个块对应 PAT 池中的每个 IP 地址。因此,在一个集群的 PAT 池中可以最少拥有一个 IP 地址,只要这足以支持您预期的 PAT 连接数即可。端口块覆盖的端口范围为 1024-65535,除非您在 PAT 池 NAT 规则中配置该选项以包含保留的端口 1-1023。

  • 在多个规则中重复使用 PAT 池 - 要在多条规则中使用同一 PAT 池,必须注意规则中的接口选择。必须在所有规则中使用特定接口,或者在所有规则中使用“任意”接口。不能在规则中混合使用特定接口和“任意”接口,否则系统可能无法将返回流量与集群中的正确节点进行匹配。每条规则使用唯一的 PAT 池是最可靠的方案。

  • 不使用轮询 - 集群不支持 PAT 池轮询。

  • 无扩展 PAT - 集群不支持扩展 PAT。

  • 控制节点管理的动态 NAT 转换 - 控制节点保留转换表并复制到数据节点。当数据节点收到需要动态 NAT 的连接并且转换不在表中时,它将请求从控制节点转换。数据节点拥有该连接。

  • 过时 xlate - 连接所有者上的 xlate 空闲时间不会更新。因此,空闲时间值可能会超过空闲超时值。如果空闲计时器值高于配置的超时值(refcnt 为 0),则表示 xlate 过时。

  • 每会话 PAT 功能 - 每会话 PAT 功能并非集群专用功能,但它能提高 PAT 的可扩展性,而且对集群而言,它允许每个数据节点成为 PAT 连接的所有者;相比之下,多会话 PAT 连接则必须转发到控制节点并由控制节点所有。默认情况下,所有 TCP 流量和 UDP DNS 流量均使用每会话 PAT 转换,而 ICMP 和所有其他 UDP 流量均使用多会话。您可以为 TCP 和 UDP 配置每会话 NAT 规则以更改这些默认设置,但是,您不能为 ICMP 配置每会话 PAT。对于使用多会话 PAT 的流量(例如 H.323、SIP 或 Skinny),您可以禁用关联 TCP 端口的每会话 PAT(这些 H.323 和 SIP 的 UDP 端口已默认为多会话)。有关每会话 PAT 的详细信息,请参阅防火墙配置指南。

  • 对以下检查不使用静态 PAT:

    • FTP

    • PPTP

    • RSH

    • SQLNET

    • TFTP

    • XDMCP

    • SIP

  • 如果您有大量 NAT 规则(超过一万条),则应使用设备 CLI 中的 asp rule-engine transactional-commit nat 命令启用事务提交模型。否则,节点可能无法加入集群。

SCTP 和集群

SCTP 关联可以在任何节点上创建(由于负载均衡),但其多宿主连接必须位于同一节点上。

SIP 检测和集群

控制流可以在任何节点上创建(由于负载均衡),但其子数据流必须位于同一节点上。

不支持 TLS 代理配置。

SNMP 和集群

SNMP 代理按照本地 IP 地址轮询每一个ASA。您无法轮询集群的合并数据。

您应始终使用本地地址而非主集群 IP 地址进行 SNMP 轮询。如果 SNMP 代理轮询主集群 IP 地址,则当选举出新的控制节点时,对新控制节点的轮询将失败。

当使用 SNMPv3 进行集群时,如果您在初始集群形成后添加新的集群节点,则 SNMPv3 用户不会复制到新节点。您必须在控制节点上重新添加它们以强制用户复制到新节点,或者直接在数据节点上复制。

STUN 和集群

故障转移和集群模式支持 STUN 检查,因为针孔被复制。但是,节点之间不进行事务 ID 的复制。如果节点在收到 STUN 请求后发生故障,并且另一个节点收到 STUN 响应,则该 STUN 响应将被丢弃。

系统日志与 NetFlow 和集群

  • 系统日志 - 集群中的每个节点都会生成自己的系统日志消息。您可以配置日志记录,使每个节点在系统日志消息的报头字段中使用相同或不同的设备 ID。例如,集群中的所有节点都会复制和共享主机名配置。如果将日志记录配置为使用主机名作为设备 ID,则所有节点生成的系统日志消息都会看似来自一个节点。如果将日志记录配置为使用集群引导程序配置中指定的本地节点名称作为设备 ID,系统日志消息就会看似来自不同节点。

  • NetFlow - 集群中的每个节点都会生成自己的 NetFlow 数据流。NetFlow 收集器只能将每台 ASA 视为单独的 NetFlow 导出器。

思科 TrustSec 和集群

只有控制节点学习安全组标记 (SGT) 信息。然后,控制节点将 SGT 填充到数据节点,数据节点可以根据安全策略对 SGT 做出匹配决策。

VPN 和集群

站点到站点 VPN 是集中功能;只有控制节点支持 VPN 连接。



集群不支持远程接入 VPN。


VPN 功能仅限控制节点使用,且不能利用集群的高可用性功能。如果控制节点发生故障,所有现有的 VPN 连接都将断开,VPN 用户将遇到服务中断。选择新的控制节点后,必须重新建立 VPN 连接。

对于使用 PBR 或 ECMP 时与独立接口的连接,您必须始终连接到主集群 IP 地址而非本地地址。

与 VPN 相关的密钥和证书将被复制到所有节点。

性能换算系数

将多台设备组成一个集群时,预计可以达到近似 80% 最大组合吞吐量的集群总体性能。

例如,如果您的型号在单独运行时可以处理大约 10 Gbps 的流量,则对于 8 台设备的集群,最大组合吞吐量约为 80 Gbps(8 台设备 x 10 Gbps)的 80%:64 Gbps。

控制节点选择

集群节点通过集群控制链路通信,如下选举控制节点:

  1. 当为节点启用集群(或当节点首次启动时已启用集群)时,设备会每 3 秒广播一个选举请求。

  2. 具有较高优先级的任何其他设备都会响应选举请求;优先级设置在 1 和 100 之间,其中 1 为最高优先级。

  3. 如果某节点在 45 秒后未收到另一个具有较高优先级的节点的响应,则该设备会成为控制节点。



    如果多个节点并列获得最高优先级,则使用集群节点名称和序列号确定控制节点。


  4. 如果节点稍后加入具有更高优先级的集群,它不会自动成为控制节点;现有控制节点始终保持为控制节点,除非它停止响应,此时会选择新的控制节点。

  5. 在“裂脑”场景中,当临时存在多个控制节点时,具有最高优先级的节点将会保留角色,而其他节点则恢复为数据节点角色。



您可以手动强制节点成为控制节点。对集中功能而言,如果强制更改控制节点,则所有连接都将断开,而您必须在新的控制节点上重新建立连接。


ASA 虚拟 集群中的高可用性

ASA 虚拟 集群通过监控节点和接口的运行状况并在节点之间复制连接状态来提供高可用性。

节点运行状况监控

每个节点通过集群控制链路定期发送广播保持连接心跳数据包。如果控制节点在可配置的超时期限内未从数据节点接收任何keepalive心跳数据包或其他数据包,则控制节点会从集群中删除该数据节点。如果数据节点未从控制节点接收数据包,则从其余节点中选择新的控制节点。

如果节点因为网络故障而不是因为节点实际故障而无法通过集群控制链路相互访问,则集群可能会进入“裂脑”场景,其中隔离的数据节点将选择自己的控制节点。例如,如果路由器在两个集群位置之间发生故障,则位于位置1的原始控制节点将从集群中删除位置2数据节点。同时,位置2的节点将选择自己的控制节点并形成自己的集群。请注意,在这种情况下,非对称流量可能会失败。恢复集群控制链路后,优先级较高的控制节点将保留控制节点的角色。

有关详细信息,请参阅控制节点选择

接口监控

每个节点都会监控使用中的所有已命名的硬件接口的链路状态,并向控制节点报告状态更改。

当您启用运行状况监控时,默认情况下会监控所有物理接口;您可以选择按接口禁用监控。只能监控已命名接口。

如果某个节点被监控的接口发生故障,则将从集群中删除该设备。ASA 在多长时间后从集群中删除成员取决于该节点是既定成员还是正在加入集群的设备。ASA 在节点加入集群后的最初 90 秒不监控接口。在此期间的接口状态更改不会导致 ASA 从集群中删除。无论状态如何,节点都会在 500 毫秒后被删除。

发生故障后的状态

当集群中的节点发生故障时,该节点承载的连接将无缝转移到其他节点;流量的状态信息将通过控制节点的集群控制链路共享。

如果控制节点发生故障,则优先级最高(数字最小)的另一个集群成员将成为控制节点。

ASA将自动尝试重新加入集群,具体取决于故障事件。



ASA 变成不活动状态且无法自动重新加入集群时,所有数据接口都会关闭,仅管理专用接口可以发送和接收流量。管理接口将保持打开,使用节点从集群 IP 池接收的 IP 地址。但是,如果您重新加载而节点在集群中仍然处于非活动状态,管理接口将被禁用。您必须使用控制台端口来进行任何进一步配置。


重新加入集群

当集群节点从集群中删除之后,如何才能重新加入集群取决于其被删除的原因:

  • 集群控制链路在最初加入时出现故障 - 在解决集群控制链路存在的问题后,您必须通过在 CLI 输入 cluster groupname ,然后输入 enable 来重新启用集群 ,以手动重新加入集群。

  • 加入集群后出现故障的集群控制链路 - ASA 无限期地每 5 分钟自动尝试重新加入。此行为是可配置的。

  • 出现故障的数据接口 - ASA 尝试在 5 分钟时、然后在 10 分钟时、最后在 20 分钟时重新加入。如果 20 分钟后仍加入失败,ASA 将禁用集群。解决数据接口问题之后,您必须在 CLI 上通过输入cluster group name ,然后输入enable 来手动启用集群。此行为是可配置的。

  • 节点存在故障 - 如果节点因节点运行状况检查失败而从集群中删除,则如何重新加入集群取决于失败的原因。例如,临时电源故障意味节点将在重新启动时重新加入集群,只要集群控制链路打开并且仍然使用 enable 命令启用集群。ASA 每 5 秒钟尝试重新加入集群。

  • 内部错误 - 内部故障包括:应用同步超时;应用状态不一致等。节点将尝试以下列间隔自动重新加入集群:5 分钟,10 分钟,然后是 20 分钟。此行为是可配置的。

数据路径连接状态复制

每个连接在集群中都有一个所有者和至少一个备用所有者。备用所有者在发生故障时不会接管连接;而是存储 TCP/UDP 状态信息,使连接在发生故障时可以无缝转移到新的所有者。备用所有者通常也是导向器。

有些流量需要 TCP 或 UDP 层以上的状态信息。请参阅下表了解支持或不支持此类流量的集群。

表 1. 在集群中复制的功能

流量

状态支持

备注

运行时间

跟踪系统运行时间。

ARP 表

-

MAC 地址表

-

用户标识

包括 AAA 规则 (uauth) 。

IPv6 邻居数据库

动态路由

SNMP 引擎 ID

-

适用于 Firepower 4100/9300的分布式 VPN(站点间)

备用会话成为主用会话,并创建一个新的备用会话。

ASA 虚拟集群管理连接的方式

连接可以负载平衡到集群的多个节点。连接角色决定了在正常操作中和高可用性情况下处理连接的方式。

连接角色

请参阅为每个连接定义的下列角色:

  • 所有者 - 通常为最初接收连接的节点。所有者负责维护 TCP 状态并处理数据包。一个连接只有一个所有者。如果原始所有者发生故障,则当新节点从连接接收到数据包时,导向器会从这些节点中选择新的所有者。

  • 备用所有者 - 存储从所有者接收的 TCP/UDP 状态信息的节点,以便在出现故障时可以无缝地将连接转移到新的所有者。在发生故障时,备用所有者不会接管连接。如果所有者处于不可用状态,从该连接接收数据包的第一个节点(根据负载均衡而定)联系备用所有者获取相关的状态信息,以便成为新的所有者。

    只要导向器(见下文)与所有者不是同一节点,导向器也可以是备用所有者。如果所有者选择自己作为导向器,则选择一个单独的备用所有者。

    对于 Firepower 9300 上的在一个机箱中包括多达 3 个集群节点的集群,如果备用所有者与所有者在同一机箱上,则将从另一个机箱中选择一个额外的备用所有者来保护流量免受机箱故障的影响。

    如果您对站点间集群启用导向器本地化,则有两个备用所有者角色:本地备用和全局备用。所有者始终选择与自身位于同一站点(基于站点 ID)的本地备用。全局备用可以位于任何站点,甚至可以与本地备用是同一个节点。所有者向两个备用所有者发送连接状态信息。

    如果启用站点冗余,并且备用所有者与所有者位于同一站点,则将从另一个站点选择一个额外的备用所有者来保护流量免受站点故障的影响。机箱备份和站点备份是独立的,因此流量在某些情况将同时具有机箱备份和站点备份。

  • 导向器 - 处理来自转发器的所有者查找请求的节点。当所有者收到新连接时,会根据源/目的 IP 地址和端口的散列值(有关 ICMP 散列详细信息,请参见下文)选择导向器,然后向导向器发送消息来注册该新连接。如果数据包到达除所有者以外的任何其他节点,该节点会向导向器查询哪一个节点是所有者,以便转发数据包。一个连接只有一个导向器。如果导向器发生故障,所有者会选择一个新的导向器。

    只要导向器与所有者不是同一节点,导向器也可以是备用所有者(见上文)。如果所有者选择自己作为导向器,则选择一个单独的备用所有者。

    如果您对站点间集群启用导向器本地化,则有两个导向器角色:本地导向器和全局导向器。所有者始终选择与它自身位于同一站点(基于站点 ID)的本地导向器。全局导向器可以位于任何站点,甚至可以与本地导向器是同一节点。如果原始所有者发生故障,本地导向器将在同一站点选择新的连接所有者。

    ICMP/ICMPv6 散列详细信息:

    • 对于 Echo 数据包,源端口为 ICMP 标识符,目的端口为 0。

    • 对于 Reply 数据包,源端口为 0,目的端口为 ICMP 标识符。

    • 对于其他数据包,源端口和目的端口均为 0。

  • 转发器 - 向所有者转发数据包的节点。如果转发者收到并非其所有的连接的数据包,则会向导向器查询所有者,然后为其收到的此连接的任何其他数据包建立发往所有者的流量。导向器也可以是转发者。如果启用导向器本地化,转发器将始终向本地导向器查询。如果本地导向器未获知所有者,例如,当集群成员收到所有者位于其他站点上的连接的数据包时,转发者将仅查询全局导向器。请注意,如果转发者收到 SYN-ACK 数据包,它可以从数据包的 SYN Cookie 直接获知所有者,因此无需向导向器查询。(如果禁用 TCP 序列随机化,则不会使用 SYN Cookie;必须向导向器查询。)对于 DNS 和 ICMP 等持续时间极短的流量,转发者不会查询,而是立即将数据包发送到导向器,然后由其发送到所有者。一个连接了可以有多个转发器;采用良好的负载均衡方法可以做到没有转发器,让一个连接的所有数据包都由所有者接收,从而实现最高效率的吞吐量。



    不建议您在使用集群时禁用 TCP 序列随机化。由于 SYN/ACK 数据包可能会被丢弃,因此少数情况下可能无法建立某些 TCP 会话。


  • 分段所有者 - 对于分段的数据包,接收分段的集群节点使用分段源 IP 地址、目的 IP 地址和数据包 ID 的散列确定分段所有者。然后,所有片段都通过集群控制链路转发给片段所有者。片段可能均衡分发给不同的集群节点,因为只有第一个分段包含交换机负载均衡散列中使用的 5 元组。其他片段不包含源端口和目的端口,可能会均衡分发给其他集群节点。片段所有者临时重组数据包,以便根据源/目标 IP 地址和端口的散列来确定导向器。如果是新连接,则片段所有者将注册为连接所有者。如果是现有连接,则片段所有者将所有片段转发给集群控制链路上提供的连接所有者。然后,连接所有者将重组所有片段。

当连接使用端口地址转换 (PAT) 时,PAT 类型(每会话或多会话)会对哪个集群成员将成为新连接的所有者产生影响:

  • 每会话 PAT - 所有者是接收连接中的初始数据包的节点。

    默认情况下,TCP 和 DNS UDP 流量均使用每会话 PAT。

  • 多会话 PAT - 所有者始终是控制节点。如果多会话 PAT 连接最初由数据节点接收,则数据节点会将连接转发给控制节点。

    默认情况下,UDP(DNS UDP 除外)和 ICMP 流量使用多会话 PAT,因此这些连接始终归控制节点所有。

您可以更改 TCP 和 UDP 的每会话 PAT 默认设置,以便根据配置按每会话或多会话处理这些协议的连接。对于 ICMP,您不能更改默认的多会话 PAT。有关每会话 PAT 的详细信息,请参阅防火墙配置指南。

新连接所有权

通过负载均衡将新连接定向到集群节点时,该连接的两个方向都由此节点所有。如果该连接有任何数据包到达其他节点,这些数据包都会通过集群控制链路被转发到所有者节点。为了获得最佳性能,对于要到达同一个节点的流量的两个方向以及要在节点之间均摊的流量,都需要执行适当的外部负载均衡。如果反向流量到达其他节点,会被重定向回原始节点。

TCP 的数据流示例

以下图例显示了新连接的建立。

  1. SYN 数据包从客户端发出,被传送到一台 ASA(基于负载均衡方法),该设备将成为所有者。所有者创建一个流量,将所有者信息编码为 SYN Cookie,然后将数据包转发到服务器。

  2. SYN-ACK 数据包从服务器发出,被传送到一台不同的 ASA(基于负载均衡方法)。此 ASA是转发者。

  3. 由于转发器不是该连接的所有者,因此它将解码 SYN Cookie 中的所有者信息,然后创建发往所有者的转发流量,并将 SYN-ACK 数据包转发到所有者。

  4. 所有者将状态更新发送到导向器,然后将 SYN-ACK 数据包转发到客户端。

  5. 导向器接收来自所有者的状态更新,创建发往所有者的流量,并记录 TCP 状态信息以及所有者。导向器将充当该连接的备用所有者。

  6. 传送到转发器的任何后续数据包都会被转发到所有者。

  7. 如果数据包被传送到任何其他节点,它将向导向器查询所有者并建立一个流量。

  8. 该流量的任何状态更改都会导致所有者向导向器发送状态更新。

ICMP 和 UDP 的数据流示例

以下图例显示了新连接的建立。

  1. 图 2. ICMP 和 UDP 数据流
    ICMP 和 UDP 数据流
    第一个 UDP 数据包从客户端发出,被传送到一个ASA(基于负载均衡方法)。
  2. 收到第一个数据包的节点查询基于源/目的 IP 地址和端口的散列值选择的导向器节点。

  3. 导向器找不到现有流,创建导向器流并将数据包转发回前一个节点。换句话说,导向器已为此流选择了所有者。

  4. 所有者创建流,向导向器发送状态更新,然后将数据包转发到服务器。

  5. 第二个 UDP 数据包从服务器发出,并被传送到转发器。

  6. 转发器向导向器查询所有权信息。对于 DNS 等持续时间极短的流量,转发者不会查询,而是立即将数据包发送到导向器,然后由其发送到所有者。

  7. 导向器向转发器回复所有权信息。

  8. 转发器创建转发流以记录所有者信息,并将数据包转发给所有者。

  9. 所有者将数据包转发到客户端。

跨集群实现新 TCP 连接再均衡

如果上游或下游路由器的负载均衡功能导致流量分摊不均衡,您可以将过载的节点配置为将新的 TCP 流量重定向到其他节点。现有流量将不会移至其他节点。

ASA 虚拟集群历史记录

功能名称

版本

功能信息

删除偏差语言

9.19(1)

包含术语“主”和“从”的命令、命令输出和系统日志消息已被更改为“控制”和“数据”。

新增/修改的命令:cluster control-node enable as-data-node prompt show cluster history show cluster info

适用于 VMware 和 KVM 的 ASAv30、ASAv50 和 ASAv100 集群

9.17(1)

通过 ASA 虚拟 集群,您可以将最多 16 个 ASA 虚拟 组合成单个逻辑设备。集群具有单个设备的全部便捷性(管理、集成到一个网络中),同时还能实现吞吐量增加和多个设备的冗余性。ASA 虚拟 集群支持在路由防火墙模式下使用“单个接口”模式;不支持跨区以太网通道。ASA 虚拟 将 VXLAN 虚拟接口 (VNI) 用于集群控制链路。

新增/修改的命令:cluster-interface vninve-only clusterpeer-groupshow cluster infoshow cluster info instance-typeshow nve 1