此产品的文档集力求使用非歧视性语言。在本文档集中,非歧视性语言是指不隐含针对年龄、残障、性别、种族身份、族群身份、性取向、社会经济地位和交叉性的歧视的语言。由于产品软件的用户界面中使用的硬编码语言、基于 RFP 文档使用的语言或引用的第三方产品使用的语言,文档中可能无法确保完全使用非歧视性语言。 深入了解思科如何使用包容性语言。
思科采用人工翻译与机器翻译相结合的方式将此文档翻译成不同语言,希望全球的用户都能通过各自的语言得到支持性的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 Cisco Systems, Inc. 对于翻译的准确性不承担任何责任,并建议您总是参考英文原始文档(已提供链接)。
本文档介绍用于监控思科自适应安全设备(ASA)的性能并对其进行故障排除的命令。
本文档没有任何特定的要求。
本文档中的信息基于运行 8.3 及以上版本的 Cisco 自适应安全设备 (ASA).
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
有关文档规则的详细信息,请参阅 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。
注意:思科建议您启用 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及更高版本包括 set port host
命令允许您使用单个命令来禁用信道、禁用中继和启用PortFast。
每个 NAT 或 NAT 过载 (PAT) 会话会被分配一个称为 xlate 的转换插槽。即使您对影响这些 xlate 的 NAT 规则进行了更改,这些 xlate 仍然会存在。在此情况下,进行转换所使用的流量会导致转换插槽耗尽或意外行为的发生,或者两者皆有。本部分说明如何查看和清除安全设备上的 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的转换的输出:
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 2000和Windows XP为各种Windows平台提供系统日志服务器。默认情况下,多数 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立即重置安全策略拒绝的任何入站连接。服务器不会等待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记录,请发出 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 资源耗尽时,您应禁用它们。此外,建议系统日志或简单网络管理协议(SNMP)日志记录(日志记录)必须设置为级别5(通知)或更低。此外,您可以禁用特定系统日志消息ID no logging message
命令。
思科自适应安全设备管理器(ASDM)还提供了一个图表, Monitoring
选项卡允许您查看ASA随时间变化的CPU使用情况。您可使用此图表来确定 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
在ASDM中,选择Graph Window Title。然后,从可用的图形列表中选择所需的图表并点击添加,如图所示。
输出说明
此表描述了 show cpu usage
输出。
字段 |
描述 |
---|---|
CPU 5 秒内的利用率 |
过去五秒钟内的 CPU 利用率 |
1 分钟 |
过去一分钟内,以 5 秒钟为样本的平均 CPU 利用率 |
5 分钟 |
过去五分钟内,以 5 秒钟为样本的平均 CPU 利用率 |
此 show traffic
命令显示给定时间段内通过ASA的流量数量。结果根据自上次发出命令至现在的时间间隔而得出。要获得准确的结果,请发出 clear traffic
命令,然后等待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 列中的零表示内存现在已满。 |
此表说明了 show blocks
输出。
SIZE 值 |
描述 |
---|---|
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 |
用于控制更新的控制帧或指导帧。 |
此 show memory
命令显示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通电以来在ASA上看到的最大转换数。
注意:单个主机可以有多个到不同目标的连接,但只能有一个转换。如果 xlate 计数远大于内部网络上的主机数量,则可能您的某台内部主机被侵入。如果您的内部主机被入侵,它会伪造源地址并从 ASA 发送数据包。
注:启用vpnclient配置且内部主机发出DNS请求时, show xlate
命令可以列出多个用于静态转换的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 字节块。) 另一个指示是接口上的“no buffers”计数的增加。没有缓冲区消息表明接口无法将数据包发送到 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%;必须重新传输每个数据包。
请参阅 interface
命令,请参阅Cisco ASA 5500系列自适应安全设备命令参考,了解有关接口计数器的详细信息。
此 show processes
asa上的命令显示执行命令时在ASA上运行的所有活动进程。此信息在确定哪些进程占用了过多的 CPU 时间以及哪些进程没有占用任何 CPU 时间时非常有用。要获取此信息,请发出 show processes
命令两次;每个实例之间等待约1分钟。对于相关进程,请将第一次输出的 Runtime 值减去第二次输出的 Runtime 值。此结果为您显示了此进程在此时间间隔中收到了多少 CPU 时间(毫秒)。请注意,一些进程被安排为以特定间隔运行,而有些进程则在有信息处理时才会运行。577poll 进程很可能是所有进程中拥有最大 Runtime 值的进程。这是正常的,因为 577poll 进程会对以太网接口进行轮询,以查明它们是否有任何需要处理的数据。
注意:对每个ASA进程的检查不在本文档的讨论范围之内,但为了完整起见,本文档中会简要提及这些检查。有关ASA进程的详细信息,请参阅ASA 8.3及更高版本:监控和排除性能问题。
总之,使用 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 使用率并不低,则表明接口无法支持流经它的流量。
如果缓冲区情况良好,则请检查块。如果当前的CNT列 show blocks
在1550字节块(66 MHz千兆卡的16384字节块)上,输出接近0,ASA很可能丢弃以太网数据包,因为它太忙。在这种情况下,CPU 使用率会达到较高的峰值。
如果您在通过ASA建立新连接时遇到问题,请使用 show conn count
命令,检查通过ASA的当前连接数。
如果当前计数很高,请检查 show memory
输出以确保ASA不会耗尽内存。如果内存不足,请调查与 show conn
或 show local-host
命令,以验证您的网络是否未遇到拒绝服务攻击。
您可使用其他命令来测量通过 ASA 的流量数量。此 show traffic
命令显示每个接口的汇聚数据包和字节数,以及 show perfmon
将流量划分为ASA检查的不同类型。
版本 | 发布日期 | 备注 |
---|---|---|
2.0 |
24-Mar-2023 |
更新的链接和格式。已更正CCW警报。重新认证。 |
1.0 |
09-Aug-2011 |
初始版本 |