此产品的文档集力求使用非歧视性语言。在本文档集中,非歧视性语言是指不隐含针对年龄、残障、性别、种族身份、族群身份、性取向、社会经济地位和交叉性的歧视的语言。由于产品软件的用户界面中使用的硬编码语言、基于 RFP 文档使用的语言或引用的第三方产品使用的语言,文档中可能无法确保完全使用非歧视性语言。 深入了解思科如何使用包容性语言。
思科采用人工翻译与机器翻译相结合的方式将此文档翻译成不同语言,希望全球的用户都能通过各自的语言得到支持性的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 Cisco Systems, Inc. 对于翻译的准确性不承担任何责任,并建议您总是参考英文原始文档(已提供链接)。
本文档介绍用于监控思科自适应安全设备(ASA)的性能并对其进行故障排除的命令。
本文档没有任何特定的要求。
本文档中的信息基于运行 8.3 及以上版本的 Cisco 自适应安全设备 (ASA).
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
为了排除性能故障问题,请检查本部分所述的基本区域。
注意:如果您有来自Cisco设备的show
命令输出,可以使用Cisco CLI分析器显示潜在问题和解决方法。Cisco CLI分析器支持特定命show
令。如果您使用思科CLI分析器,您必须是注册的思科用户,必须登录到您的思科帐户,并且必须在浏览器中启用JavaScript。
安全设备已预配置为自动检测接口上的速度和双工设置。但是,存在多种情况可能导致自动协商过程失败,从而导致速度或双工不匹配(以及性能问题)。 对于任务关键型网络基础架构,Cisco 对于每个接口的速度和双工采用手动硬编码,这样就避免了发生错误的机会。这些设备通常不会移动,因此,如果您正确配置它们,则不需要更改它们。
在所有网络设备上,可以检测链路速度,但是必须协商双工。如果两台网络设备配置为自动协商速度和双工,它们会交换帧(称为快速链路脉冲,或FLP),通告其速度和双工功能。为了连接不知道的合作伙伴,这些脉冲类似于常规的10 Mbps帧。为了链接可以解码脉冲的伙伴,FLP包含链路伙伴可以提供的所有速度和双工设置。接收 FLP 的站点对帧进行确认,设备双方就彼此都能达到的最高速度和双工设置达成一致。如果一台设备不支持自动协商,则另一台设备接收FLP并转换到并行检测模式。为了检测对方的速度,设备会侦听脉冲长度,然后根据长度设置速度。问题通常发生在双工设置上。由于必须协商双工,因此设置为自动协商的设备无法确定其他设备上的设置,因此它默认为半双工,如IEEE 802.3u标准所述。
例如,如果将ASA接口配置为自动协商并将其连接到硬编码为100 Mbps和全双工的交换机,则ASA会发出FLP。但是,交换机不响应,因为交换机为速度和双工进行了硬编码,并且不参与自动协商。由于它未收到来自交换机的响应,因此ASA转换到并行检测模式,并检测交换机发出的帧中的脉冲长度。即,ASA检测到交换机设置为100 Mbps,因此它基于此设置接口速度。但是,由于交换机不会交换 FLP,ASA 无法检测交换机是否能运行全双工,因此 ASA 会将接口双工设置为半双工,如 IEEE 803.2u 标准中所述。由于交换机硬编码为100 Mbps和全双工,而ASA刚刚自动协商为100 Mbps和半双工(事实正是如此),因此会导致双工不匹配而导致严重的性能问题。
速度或双工不匹配主要表现在相关端口上的错误计数器的计数增加。最常见的错误是帧、循环冗余校验 (CRCs) 和残帧。如果接口上的这些值增加,则表明发生了速度/双工不匹配或电缆连接问题。在您继续前,您必须解决此问题。
示例
Interface GigabitEthernet0/0 "outside", is up, line protocol is up Hardware is i82546GB rev03, BW 1000 Mbps, DLY 10 usec Auto-Duplex(Full-duplex), Auto-Speed(100 Mbps) Input flow control is unsupported, output flow control is unsupported MAC address 0013.c480.b2b8, MTU 1500 IP address 192.168.17.4, subnet mask 255.255.255.0 311981 packets input, 20497296 bytes, 0 no buffer Received 311981 broadcasts, 157 runts, 0 giants 379 input errors, 107 CRC, 273 frame, 0 overrun, 0 ignored, 0 abort 0 pause input, 0 resume input 0 L2 decode drops 121 packets output, 7744 bytes, 0 underruns 0 pause output, 0 resume output 0 output errors, 0 collisions, 1 interface resets 0 late collisions, 0 deferred 0 input reset drops, 0 output reset drops, 0 tx hangs input queue (blocks free curr/low): hardware (255/249) output queue (blocks free curr/low): hardware (255/254)
如果您发现CPU使用率较高,请完成以下步骤进行故障排除:
show xlate count
数是否较低。show memory detail
,并验证ASA使用的内存是否正常使用。show processes cpu-hog
是show processes memory
正常的。show interface
命令验证错误:Ciscoasa#sh int GigabitEthernet0/1 Interface GigabitEthernet0/1 "inside", is up, line protocol is up Hardware is i82546GB rev03, BW 1000 Mbps, DLY 10 usec Auto-Duplex(Full-duplex), Auto-Speed(100 Mbps) Input flow control is unsupported, output flow control is unsupported MAC address 0013.c480.b2b8, MTU 1500 IP address 192.168.17.4, subnet mask 255.255.255.0 311981 packets input, 20497296 bytes, 0 no buffer Received 311981 broadcasts, 157 runts, 0 giants 7186 input errors, 0 CRC, 0 frame, 7186 overrun, 0 ignored, 0 abort 0 pause input, 0 resume input 0 L2 decode drops 121 packets output, 7744 bytes, 0 underruns 0 pause output, 0 resume output 0 output errors, 0 collisions, 1 interface resets 0 late collisions, 0 deferred 0 input reset drops, 0 output reset drops, 0 tx hangs input queue (blocks free curr/low): hardware (255/249) output queue (blocks free curr/low): hardware (255/254)为了解决此问题,请将相应接口的速度设置为 auto。
注意:Cisco建议您在所有接口ip verify reverse-path interface
上启用该命令。这会导致没有有效源地址的数据包被丢弃,从而减少CPU使用率。这适用于FWSM面临高CPU问题时的情况。
show mroute
命令以检查ASA是否收到过多的组播路由。show local-host
命令查看网络是否遭受拒绝服务攻击,这表示网络中存在病毒攻击。注意:只有注册的思科用户才能访问内部思科工具和漏洞信息。
注意:如果之前提供的解决方案不能解决问题,请根据要求升级ASA平台。有关自适应安全设备平台功能和容量的详细信息,请参阅安全设备的思科安全模块。请联系TAC(思科技术支持)了解更多信息。
以下是造成高内存利用率的可能原因以及相应解决方法:
默认情况下,许多交换机(例如运行 Catalyst 操作系统 (OS) 的 Cisco 交换机)都被设计为即插即用设备。因此,当ASA插入交换机时,许多默认端口参数是不可取的。例如,在运行 Catalyst OS 的交换机上,默认情况下,信道和中继设置为自动,而 PortFast 设置为禁用。如果将ASA连接到运行Catalyst OS的交换机,请禁用信道、禁用中继并启用PortFast。
信道也称为 Fast EtherChannel 或 Giga EtherChannel,用于将两个或更多物理端口捆绑到一个逻辑组中,以增加链路上的总吞吐量。如果端口配置为自动建立信道,它会在链路接通时发出端口聚合协议 (PAgP) 帧,以确定它是否是信道的一部分。如果另一设备尝试自动协商链路的速度和双工设置,这些帧可能会出现问题。如果端口上的信道设置为自动,则在链路接通、端口开始转发数据流之前,它将导致大约 3 秒的额外延迟。
注意:在 Catalyst XL 系列交换机上,默认情况下信道没有设置为自动。因此,必须在连接到ASA的所有交换机端口上禁用信道。
中继也称为交换机间链路 (ISL) 或 Dot1q(通用的中继协议),它将多个虚拟 LAN (VLAN) 结合到单个端口(或链路)上。 当两台交换机上定义的 VLAN 都超过一个时,这二台交换机之间通常使用中继。如果端口配置为自动中继,它会在链路接通时发出动态中继协议 (DTP) 帧,以确定它所连接的端口是否想要中继。这些DTP帧可能导致链路自动协商出现问题。如果交换机端口上的中继设置为自动,则在链路接通、端口开始转发数据流之前,它将导致大约 15 秒的额外延迟。
PortFast(也称为快速启动)选项可以告诉交换机,有一个第 3 层设备通过交换机端口与外部连接。端口并不会等待默认的 30 秒(15 秒监听,15 秒学习);相反,这一操作会使交换机在链路接通后立即将端口置于转发状态。重要的是要了解,当您启用 PortFast 时,生成树并没有被禁用。生成树在该端口上仍然处于活动状态。当您启用 PortFast 时,交换机仅仅被通知没有另一台交换机或集线器(只在第 2 层工作的设备)连接到链路的另一端。交换机会绕过正常的 30 秒延迟,同时设法确定是否会让那个端口产生第二层环路。在链路启动后,它仍然参与生成树。该端口会发出网桥数据包数据单元 (BPDU),并且交换机仍然会在该端口监听 BPDU。出于这些原因,建议您在连接到ASA的所有交换机端口上启用PortFast。
注意:Catalyst OS版本5.4及更高版本包含允许您使用单个命令禁用信道、禁用中继和启用PortFastset port host
。
每个 NAT 或 NAT 过载 (PAT) 会话会被分配一个称为 xlate 的转换插槽。即使您对影响这些 xlate 的 NAT 规则进行了更改,这些 xlate 仍然会存在。在此情况下,进行转换所使用的流量会导致转换插槽耗尽或意外行为的发生,或者两者皆有。本部分说明如何查看和清除安全设备上的 xlate。
警告:当您在安全设备上全局清除转换项时,流经此设备的所有流量可能会短暂中断。
使用外部接口 IP 地址的 PAT 的 ASA 配置示例:
object network OBJ_GENERIC_ALL subnet 0.0.0.0 0.0.0.0 nat (inside,outside) source dynamic OBJ_GENERIC_ALL interface
流经安全设备的数据流很可能经过 NAT。要查看安全设备上正在使用的转换,请发出以下show xlate
命令:
Ciscoasa#show xlate 5 in use, 5 most used Flags: D - DNS, i - dynamic, r - portmap, s - static, I - identity, T - twice NAT from any:192.168.1.10 to any:172.16.1.1/24 flags s idle 277:05:26 timeout 0:00:00
即使进行了关键的更改,转换插槽仍然可存在。要清除安全设备上的当前转换插槽,请发出以下clear xlate
命令:
Ciscoasa#clear xlate
Ciscoasa#show xlate 0 in use, 1 most used
该命令clear xlate
会清除xlate表中的所有当前动态转换。要清除特定IP转换,您可以使用带有clear xlate
关键字的global [ip address]
命令。
以下是 NAT 的一个 ASA 配置示例:
object network inside-net subnet 0.0.0.0 0.0.0.0 object network outside-pat-pool range 10.10.10.10 10.10.10.100 nat (inside,outside) source dynamic inside-net outside-pat-pool
观察内部show xlate
10.2.2.2到外部全局10.10.10.10的转换输出:
Ciscoasa#show xlate 2 in use, 2 most used Flags: D - DNS, i - dynamic, r - portmap, s - static, I - identity, T - twice TCP PAT from inside:10.2.2.2/1429 to any:10.10.10.10/64768 flags ri idle 62:33:57 timeout 0:00:30 TCP PAT from inside:10.5.5.5/1429 to any:10.10.10.11/64768 flags ri idle 62:33:57 timeout 0:00:30
清除 10.10.10.10 全局 IP 地址的转换:
Ciscoasa# clear xlate global 10.10.10.10
在本示例中,从内部 10.2.2.2 到外部全局 10.10.10.10 的转换已经被清除:
Ciscoasa#show xlate 1 in use, 2 most used Flags: D - DNS, i - dynamic, r - portmap, s - static, I - identity, T - twice TCP PAT from inside:10.5.5.5/1429 to any:10.10.10.11/64768 flags ri idle 62:33:57 timeout 0:00:30
系统日志允许您排除 ASA 上的故障。思科为 Windows NT 提供了一个名为 ASA 防火墙系统日志服务器 (PFSS) 的免费系统日志服务器。 您可以从Cisco Technical Support & Downloads下载PFSS。
其他多家供应商为各种Windows平台(如Windows 2000和Windows XP)提供系统日志服务器。默认情况下,多数 UNIX 和 Linux 计算机都安装了 Syslog 服务器。
当设置系统日志服务器时,请配置 ASA 以便向其发送日志。
例如:
logging on
logging host <ip_address_of_syslog_server>
logging trap debugging
注意:此示例将 ASA 配置为将调试(级别 7)及更多关键系统日志发送到系统日志服务器。由于这些 ASA 日志是最详细的,因此只在排除故障时使用它们。为确保正常运行,请将日志记录级别配置为警告(第 4 级)或错误(第 3 级)。
如果您遇到性能下降的问题,请在文本文件中打开 Syslog,搜索与性能问题有关的源 IP 地址。(如果您使用的是 UNIX,您也可以在 Syslog 中以查找字符串的形式查找源 IP 地址。) 检查指示外部服务器曾经尝试访问 TCP 端口 113 上的内部 IP 地址(适用于识别协议或 Ident),但 ASA 拒绝了数据包的消息。消息必须与以下示例类似:
%ASA-2-106001: Inbound TCP connection denied from 10.64.10.2/35969 to 192.168.110.179/113 flags SYN
如果您收到此消息,请向service resetinbound
ASA发出命令。ASA 不会静默地丢弃数据包;反而,此命令会让 ASA 立即重置被安全策略拒绝的所有入站连接。服务器无需等到 Ident 数据包的 TCP 连接超时;相反,它会立即收到一个重置数据包。
建议用于企业部署的方法是监控带SNMP的Cisco ASA的性能。Cisco ASA通过SNMP版本1、2c和3支持此功能。
您可将安全设备配置为向网络管理服务器 (NMS) 发送陷阱,或者可使用 NMS 在安全设备上浏览 MIB。MIB 是一个定义集合,安全设备为每个定义维护一个值数据库。有关此问题的详细信息,请参阅使用CLI 8.4和8.6的Cisco ASA 5500系列配置指南。
有关 Cisco ASA 支持的所有 MIB,请参阅 ASA MIB 支持列表。从此列表中,当您监控性能时,以下MIB非常有用:
如果您发现 ASA 性能下降,请验证在 ASA 使用的外部地址的授权 DNS 服务器中是否有域名系统指针 (DNS PTR) 记录(也称为反向 DNS 查找记录)。这包括全局网络地址转换 (NAT) 池(或如果接口过载,则为 ASA 外部接口)中的任何地址、任何静态地址和内部地址(如果未对其使用 NAT)。 某些应用程序(如文件传输协议[FTP]和Telnet服务器)可以使用反向DNS查找来确定用户来自何处以及它是否是有效主机。如果逆向 DNS 查找没有得到解析,那么性能就会在请求超时时下降。
为了确保这些主机存在PTR记录,请从您的PC或UNIX计算机发出nslookup
命令;加上您连接到互联网时使用的全局 IP 地址。
示例
% nslookup 192.168.219.25 10.219.133.198.in-addr.arpa name = www.cisco.com.
您必须收到包含分配给该IP地址的设备的DNS名称的响应。如果没有收到响应,请联系控制 DNS 的人员,请求为每个全局 IP 地址添加 PTR 记录。
在接口上溢出
如果流量突发,在突发流量超出 NIC 上的 FIFO 缓冲区和接收环形缓冲区的缓冲量时,可能会出现丢弃数据包的情况。如果为流量控制启用暂停帧,可以缓解此问题。暂停 (XOFF) 和 XON 帧由基于 FIFO 缓冲区使用情况的 NIC 硬件自动生成。当缓冲用量超出高水位线标记时,会发送暂停帧。为了启用暂停 (XOFF) 帧进行流量控制,请使用以下命令:
hostname(config)#interface tengigabitethernet 1/0 hostname(config-if)#
flowcontrol send on
此show cpu usage
命令用于确定放置在ASA CPU上的流量负载。在流量峰值期间、网络高峰期间或者遭受攻击期间,CPU 的使用率会达到峰值。
ASA 有一个用于处理各种任务的 CPU;例如,它可以处理数据包,并可以将调试消息打印到控制台。每个进程都有各自的目的,其中一些进程比其他进程需要占用更多的 CPU 时间。加密可能是CPU最密集的过程,因此,如果您的ASA通过加密隧道传送大量流量,则必须考虑速度更快的ASA,专用的VPN集中器,例如VPN 3000。VAC 从 ASA CPU 卸载加密和解密,并在卡上的硬件中执行此操作。这样 ASA 即可使用 3DES(168 位加密)加密和解密 100 Mbps 的流量。
日志记录是另一个会消耗大量系统资源的进程。因此,建议您在 ASA 上禁用控制台、监视器和缓冲区日志记录。在进行故障排除时,您可以启用这些进程,但是在日常操作中,特别是当您的 CPU 资源耗尽时,您应禁用它们。此外,建议系统日志或简单网络管理协议日志记录(日志记录历史记录)必须设置为级别5(通知)或更低。此外,您可以使用命令禁用特定系统日志消息no logging message
ID。
Cisco Adaptive Security Device Manager(ASDM)还在选项卡上提供图形,使您可以查看ASA随时间变化的CPU使用情况Monitoring
。您可使用此图表来确定 ASA 上的负载。
该命show cpu usage
令可用于显示CPU使用率统计信息。
示例
Ciscoasa#show cpu usage CPU utilization for 5 seconds = 1%; 1 minute: 2%; 5 minutes: 1%
查看ASDM上的CPU使用情况
完成以下步骤以查看 ASDM 上的 CPU 使用情况:
Monitoring > Properties > System Resources Graphics > CPU
,然后选择Graph Window Title。然后,从可用的图形列表中选择所需的图表并点击添加,如图所示。
输出说明
此表对输出中的字段进行了 show cpu usage
说明。
字段 |
描述 |
---|---|
CPU 5 秒内的利用率 |
过去五秒内的 CPU 使用率。 |
1 分钟 |
过去一分钟内,以 5 秒钟为样本的平均 CPU 利用率. |
5 分钟 |
过去五分钟内,以 5 秒钟为样本的平均 CPU 利用率. |
此show traffic
命令显示给定时间段内通过ASA的流量数量。结果根据自上次发出命令至现在的时间间隔而得出。要获得准确的结果,请先发出命令,然后等待1-10分钟,再发出该show traffic
命令。也可以发出该命令show traffic
,然后等待1-10分钟,然后再再次发出该命令,但只有来自第二个实例的输出有效。
您可以使用show traffic
命令来确定有多少流量通过ASA。如果有多个接口,该命令可帮助您确定哪些接口发送及接收的数据最多。对于具有两个接口的ASA设备,外部接口上的入站和出站流量的总和必须等于内部接口上的入站和出站流量的总和。
示例
Ciscoasa#show traffic outside: received (in 124.650 secs): 295468 packets 167218253 bytes 2370 pkts/sec 1341502 bytes/sec transmitted (in 124.650 secs): 260901 packets 120467981 bytes 2093 pkts/sec 966449 bytes/sec inside: received (in 124.650 secs): 261478 packets 120145678 bytes 2097 pkts/sec 963864 bytes/sec transmitted (in 124.650 secs): 294649 packets 167380042 bytes 2363 pkts/sec 1342800 bytes/sec
如果您的一个接口上的吞吐量接近或达到了额定吞吐量,则您需要将其升级为一个更快的接口,或者限制进出该接口的流量。不这样做的话,会导致数据包被丢弃。如一节所述show interface
,您可以检查接口计数器以找出有关吞吐量的信息。
命令show perfmon
,用于监控ASA检查的流量数量和类型。此命令是确定每秒的转换 (xlate) 和连接 (conn) 数量的唯一方式。连接可进一步划分为 TCP 连接和用户数据报协议 (UDP) 连接。有关此命令生成的输出的说明,请参阅输出说明。
示例
PERFMON STATS Current Average Xlates 18/s 19/s Connections 75/s 79/s TCP Conns 44/s 49/s UDP Conns 31/s 30/s URL Access 27/s 30/s URL Server Req 0/s 0/s TCP Fixup 1323/s 1413/s TCPIntercept 0/s 0/s HTTP Fixup 923/s 935/s FTP Fixup 4/s 2/s AAA Authen 0/s 0/s AAA Author 0/s 0/s AAA Account 0/s 0/s
输出说明
此表对输出中的字段进行了说show perfmon
明。
字段 | 描述 |
---|---|
转换 |
每秒建立的转换数. |
连接 |
每秒建立的连接数. |
TCP Conns |
每秒的 TCP 连接数. |
UDP Conns |
每秒的 UDP 连接数. |
URL Access |
每秒访问的 URL(网站)数 |
URL Server Req |
每秒发送到Websense和N2H2的请求(需要命 |
TCP Fixup |
ASA 每秒转发的 TCP 数据包数量. |
TCP 拦截 |
每秒超出静态转换的初期限额的 SYN 数据包数. |
HTTP Fixup |
每秒发往端口80的数据包数(需要 |
FTP Fixup |
每秒检查的 FTP 命令数 |
AAA Authen |
每秒的认证请求数. |
AAA Author |
每秒的授权请求数. |
AAA Account |
每秒的记帐请求数. |
除了命令show cpu usage
,您还可以使用show blocks
命令来确定ASA是否过载。
数据包块(1550和16384字节)
当数据包进入 ASA 接口时,它会放置在输入接口队列上,向上传递到操作系统并放在一个块中。对于以太网数据包,将使用 1550 字节块;如果数据包传入 66 MHz 千兆以太网卡,则使用 16384 字节块。ASA 会根据自适应安全算法 (ASA) 确定是允许还是拒绝数据包,并将数据包处理到出站接口上的输出队列。如果 ASA 无法支持流量负载,则可用的 1550 字节块(或 66 MHz 千兆以太网的 16384 字节块)数量将接近于 0(如命令输出的 CNT 列中所示)。 当 CNT 列达到零时,ASA 会尝试分配更多块,最多 8192 块。如果没有其他可用块,ASA 会丢弃数据包。
故障切换和 Syslog 块(256 字节)
256 字节块主要用于有状态故障切换消息。活动 ASA 会生成数据包并将其发送到待机 ASA,以便更新转换和连接表。在突发流量期间创建或断开高速率连接时,可用256字节块的数量可以降为0。此降级表示一个或多个连接未更新到备用ASA。这通常是可接受的,因为有状态故障切换协议会在下次捕获丢失的 xlate 或连接。但是,如果 256 字节块的 CNT 列长时间保持为或接近 0,则 ASA 会由于其处理的每秒连接数而无法让转换和连接表保持同步。如果不断出现此情况,请将 ASA 升级到速度更快的型号。
从 ASA 发出的系统日志消息也使用 256 字节块,但它们的发布量通常不会导致耗尽 256 字节块池。如果 CNT 列显示 256 字节块的数量接近于 0,请确保在配置要发送到 Syslog 服务器的 Syslog 时,未将 Syslog 级别设置为调试(第 7 级)。此功能通过 ASA 配置中的日志记录陷阱线指示。建议您将logging(日志记录)设置为Notification(通知)(级别5)或更低,除非您需要更多信息来进行调试。
示例
Ciscoasa#show blocks SIZE MAX LOW CNT 4 1600 1597 1600 80 400 399 400 256 500 495 499 1550 1444 1170 1188 16384 2048 1532 1538
输出说明
此表介绍了输出中的show blocks
列。
列 |
描述 |
---|---|
大小 |
块池的 E 大小(字节)。每个大小代表一个特定类型 |
最大 |
指定字节块池的最大可用块数。启动时从内存切出的最大块数。一般来说,最大可用块数不会改变。例外情况适用于 256 字节和 1550 字节块,其中自适应安全设备可在需要时动态地创建更多块,最多 8192 块。 |
低 |
低水位线标记。此数字指示自启动自适应安全设备或自上次清除块(使用清除块命令)以来此大小的块的最低可用数量。LOW 列中的零指示内存已满的上一个事件。 |
CNT |
该特定大小的块池的当前可用块数。CNT 列中的零表示内存现在已满。 |
此表介绍了输出中的SIZE行show blocks
值。
大小 价值 |
描述 |
---|---|
0 |
被 dupb 块使用。 |
4 |
在应用中复制现有块,例如 DNS、ISAKMP、URL 过滤、uauth、TFTP 和 TCP 模块。此外,代码通常可以使用这种大小的块将数据包发送到驱动程序,以此类推。 |
80 |
在 TCP 拦截中用于生成确认数据包和用于故障转移 hello 消息。 |
256 |
用于状态故障切换更新、系统日志记录和其他TCP功能。这些块主要用于有状态故障转移消息。此活动自适应安全设备会生成数据包并将其发送到待机自适应安全设备以更新转换和连接表。在突发流量中,高连接率被创建或断开,可用块的数量可降至0。此情况表示一个或多个连接未更新到备用自适应安全设备。有状态故障切换协议会在下次捕获丢失的转换或连接。如果用于256字节块的CNT列长时间保持为或接近0,则自适应安全设备会因为自适应安全设备每秒处理的连接数而努力保持转换和连接表同步。从自适应安全设备发出的系统日志消息也使用 256 字节块,但它们的发布量通常不会导致耗尽 256 字节块池。如果CNT列显示256字节块的数量接近于0,请确保您不是在调试级(第7级)登录到系统日志服务器的。此功能通过自适应安全设备配置中的日志记录陷阱线指示。我们建议您将日志记录设置为通知(级别5)或更低级别,除非您需要更多信息用于调试目的。 |
1550 |
用于存储通过自适应安全设备处理的以太网数据包。当数据包进入自适应安全设备接口时,它将被置于输入接口队列上,传递到操作系统,然后置于块中。自适应安全设备根据安全策略确定必须允许还是拒绝数据包,并将数据包处理到出站接口上的输出队列。如果自适应安全设备努力跟上流量负载,可用块的数量可以悬停在接近0处(如命令输出的CNT列所示)。 当 CNT 列为零时,自适应安全设备会尝试分配更多块,最多 8192 块。如果没有其他可用块,自适应安全设备会丢弃数据包。 |
16384 |
只用于 64 位 66 MHz 千兆以太网卡 (i82543)。 有关以太网数据包的更多信息,请参阅 1550 的说明。 |
2048 |
用于控制更新的控制帧或指导帧。 |
命令,显示ASA的总物理内存(或RAM)以及当前可用的字节数。为了使用此信息,您必须先了解 ASA 如何使用内存。当 ASA 启动时,它会将操作系统从闪存复制到 RAM 并从 RAM 运行操作系统(就像路由器一样)。 接下来,ASA 会从闪存复制启动配置并将其放置到 RAM 中。最后,ASA分配RAM以创建本节中讨论的块show blocks
池。此分配完成后,ASA 只在配置大小增加时需要额外 RAM。此外,ASA 会在 RAM 中存储转换和连接条目。
在正常操作期间,ASA上的可用内存必须更改很少(如果有的话)。通常,只有当您受到攻击,数十万个连接通过ASA时,您才会运行内存不足的情况。要检查连接,请发出show conn count
命令,该命令显示通过ASA的当前和最大连接数。如果 ASA 耗尽内存,最终会崩溃。在崩溃之前,您可以注意到系统日志(%ASA-3-211001)中的内存分配失败消息。
如果您因受到攻击而耗尽内存,请联系Cisco技术支持团队。
示例
Ciscoasa# show memory Free memory: 845044716 bytes (79%) Used memory: 228697108 bytes (21%) ------------- ---------------- Total memory: 1073741824 bytes (100%)
命令show xlate count
,显示通过ASA的当前和最大转换数。转换就是将内部地址映射到外部地址,它可以是一对一的映射,例如网络地址转换 (NAT),或者是多对一的映射,例如端口地址转换 (PAT)。 此命令是命令的子集show xlate
,它输出通过ASA的每个转换。命令输出显示正在使用的转换,这是指发出命令时ASA中的活动转换数;最常使用的,是指自ASA启动以来所看到的最大转换数。
注意:单个主机可以与不同的目标之间有多个连接,但是只能有一个转换。如果 xlate 计数远大于内部网络上的主机数量,则可能您的某台内部主机被侵入。如果您的内部主机被入侵,它会伪造源地址并从 ASA 发送数据包。
注意:当vpnclient配置已启用且内部主机发出DNS请求时show xlate
,该命令可以列出用于静态转换的多个转换。
示例
Ciscoasa#
show xlate count 84 in use, 218 most used
Ciscoasa(config)#show xlate 3 in use, 3 most used Flags: D - DNS, d - dump, I - identity, i - inside, n - no random, o - outside, r - portmap, s - static TCP PAT from inside:10.1.1.15/1026 to outside:192.168.49.1/1024 flags ri idle 62:33:57 timeout 0:00:30 UDP PAT from 10.1.1.15/1028 to outside:192.168.49.1/1024 flags ri idle 62:33:57 timeout 0:00:30 ICMP PAT from inside:10.1.1.15/21505 to outside:192.168.49.1/0 flags ri idle 62:33:57 timeout 0:00:30
第一个条目是内部网络上的主机端口(10.1.1.15, 1026)到外部网络上的主机端口(192.168.49.1, 1024)的TCP端口地址转换。r标志表示转换是端口地址转换。i标志表示转换适用于内部地址端口。
第二个条目是内部网络上的主机端口(10.1.1.15、1028)到外部网络上的主机端口(192.168.49.1、1024)的UDP端口地址转换。r标志表示转换是端口地址转换。i标志表示转换适用于内部地址端口。
第三个条目是内部网络上的主机ICMP-id(10.1.1.15, 21505)到外部网络上的主机ICMP-id(192.168.49.1, 0)的ICMP端口地址转换。r标志表示转换是端口地址转换。i标志表示转换适用于内部地址 — ICMP-id。
在从较安全的接口传输至不太安全的接口的数据包中,内部地址字段显示为源地址。反之,在从不太安全的接口传输至较安全的接口的数据包中,内部地址字段显示为目标地址。
命令show conn count
,显示通过ASA的当前和最大连接数。连接就是将第 4 层信息从内部地址映射到外部地址。当 ASA 收到 TCP 会话的一个 SYN 数据包或者当 UDP 会话中的第一个数据包到达时,会建立连接。当 ASA 收到最后一个 ACK 数据包(此情况在 TCP 会话握手关闭或 UDP 会话超时过期时发生)时,连接会被切断。
极高的连接计数(50-100倍于正常值)可能表示您受到攻击。发出show memory
命令以确保高连接计数不会导致ASA内存耗尽。如果受到攻击,您可以限制每个静态条目的最大连接数,也可以限制初期连接的最大数量。这一操作可保护您的内部服务器,使它们不会发生过载。有关详细信息,请参阅使用CLI 8.4和8.6的Cisco ASA 5500系列配置指南。
示例
Ciscoasa#show conn count 2289 in use, 44729 most used
show interface 命令可帮助确定双工不匹配问题和电缆问题。它也可以进一步提供有关接口是否超负荷运行的信息。如果 ASA 耗尽 CPU 容量,1550 字节块的数量将接近于 0。(请查看 66 MHz 千兆卡上的 16384 字节块。) 另一个指示是接口上无缓冲区增加。没有缓冲区消息表明接口无法将数据包发送到 ASA 操作系统,因为此数据包没有可用块,且数据包会被丢弃。如果未定期增加缓冲区级别show proc cpu
,请发出命令以检查ASA上的CPU使用情况。如果 CPU 使用率高是因为流量负载大,请升级到可处理该负载的更为强大的 ASA。
数据包进入接口时,它将被放置在输入硬件队列中。如果输入硬件队列已满,则数据包将被放置在输入软件队列中。数据包从其输入队列传递并被放置在 1550 字节块(或在 66 MHz 千兆以太网接口上的 16384 字节块)中。 ASA 之后会确定数据包的输出接口并将数据包放入适当的硬件队列。如果硬件队列已满,则数据包将被放置在输出软件队列中。如果两个软件队列中任何一个队列中的最大块数过大,则接口将处于超负荷运行状态。例如,如果 200 Mbps 的流量进入 ASA 并且全部从单个 100 Mbps 接口输出,则输出软件队列会在出站接口上指示较高数字,这表明此接口不能处理该流量。如果遇到这种情况,请将您的接口升级到一个更快的接口。
示例
Ciscoasa#show interface Interface GigabitEthernet0/1 "inside", is up, line protocol is up Hardware is i82546GB rev03, BW 1000 Mbps, DLY 10 usec Auto-Duplex(Full-duplex), Auto-Speed(100 Mbps) Input flow control is unsupported, output flow control is unsupported MAC address 0013.c480.b2b8, MTU 1500 IP address 192.168.17.4, subnet mask 255.255.255.0 311981 packets input, 20497296 bytes, 0 no buffer Received 311981 broadcasts, 157 runts, 0 giants 379 input errors, 107 CRC, 273 frame, 0 overrun, 0 ignored, 0 abort 0 pause input, 0 resume input 0 L2 decode drops 121 packets output, 7744 bytes, 0 underruns 0 pause output, 0 resume output 0 output errors, 0 collisions, 1 interface resets 0 late collisions, 0 deferred 0 input reset drops, 0 output reset drops, 0 tx hangs input queue (blocks free curr/low): hardware (255/249) output queue (blocks free curr/low): hardware (255/254)
您还必须检查接口是否存在错误。如果接收到残帧、输入错误、CRC 或者帧错误,则很可能是因为双工不匹配电缆也可能有故障。有关双工问题的详细信息,请参阅速度和双工设置。请记住,每个错误计数器代表因为该特定错误所丢弃的数据包的数量。如果看到一个有规律增加的特定计数器,则表示您的 ASA 的性能很可能不佳,您必须找到问题的根本原因。
检查接口计数器时,请注意,如果接口设置为全双工,则不能遇到任何冲突、延迟冲突或延迟数据包。反之,如果接口设置为半双工,您必须接收冲突、一些延迟冲突,可能还会接收一些延迟的数据包。冲突、延迟冲突和延迟数据包的总数不能超过输入和输出数据包计数器总和的10%。如果冲突数量超过了总流量的 10%,则表明链路使用过度,您必须升级到全双工或更快的速度(10 Mbps 到 100 Mbps)。 请记住,冲突 10% 意味着 ASA 会丢弃通过该接口的 10% 的数据包;这些被丢弃的数据包必须重新传输。
有关接口计数器的详细信息,请参阅Cisco ASA 5500系列自适应安全设备命令参考中的interface
命令。
ASA上的命令显示执行命令时在ASA上运行的所有活动进程。此信息在确定哪些进程占用了过多的 CPU 时间以及哪些进程没有占用任何 CPU 时间时非常有用。要获取此信息,请发出两次show processes
命令;两次发出命令之间等待大约 1 分钟。对于相关进程,请将第一次输出的 Runtime 值减去第二次输出的 Runtime 值。此结果为您显示了此进程在此时间间隔中收到了多少 CPU 时间(毫秒)。请注意,一些进程被安排为以特定间隔运行,而有些进程则在有信息处理时才会运行。577poll 进程很可能是所有进程中拥有最大 Runtime 值的进程。这是正常的,因为 577poll 进程会对以太网接口进行轮询,以查明它们是否有任何需要处理的数据。
注意:对每个ASA流程的检查不在本文档的讨论范围之内,但为了完整起见我们简要地提到它。请参阅 ASA 8.3 及更高版本:监控和排除性能问题以了解有关ASA进程的更多信息。
总之,使用show cpu usage
命令可以确定ASA所承受的负载。请记住,输出的值是运行平均值;ASA 可以具有被运行平均值屏蔽的更高 CPU 使用率峰值。ASA 到达 80% 的 CPU 使用率后,通过 ASA 的延迟会缓慢增加到大约 90% 的 CPU 使用率。当 CPU 使用率超过 90% 时,ASA 会开始丢弃数据包。
如果CPU使用率较高,请使用show processes
命令来标识占用大量CPU时间的进程。请使用此信息来减少部分由密集进程(例如日志记录)消耗的时间。
如果CPU未运行过热,但您认为数据包仍然被丢弃,请使用show interface
命令检查ASA接口是否不存在缓冲区和冲突(可能由双工不匹配导致)。如果 no buffer 计数增加,但是 CPU 使用率并不低,则表明接口无法支持流经它的流量。
如果缓冲区情况良好,则请检查块。show blocks
如果输出中的当前CNT列在1550字节块(16384字节块用于66 MHz千兆卡)上接近0,则ASA很可能丢弃以太网数据包,因为它太忙。在这种情况下,CPU 使用率会达到较高的峰值。
如果通过ASA建立新连接时遇到问题,请使用show conn count
命令检查通过ASA的当前连接数。
如果当前计数很高show memory
,请检查输出以确保ASA不会耗尽内存。如果内存不足,请使用show conn
show local-host
命令调查连接来源,以验证您的网络是否未遇到拒绝服务攻击。
您可使用其他命令来测量通过 ASA 的流量数量。命令show traffic
显示每个接口的汇聚数据包和字节数show perfmon
,并将流量划分为ASA检查的不同类型。
版本 | 发布日期 | 备注 |
---|---|---|
4.0 |
09-Jun-2025
|
更新的SEO、语法和格式。 |
3.0 |
24-May-2024
|
更新的链接和格式。已更正CCW警报。重新认证。 |
1.0 |
09-Aug-2011
|
初始版本 |