安全 : Cisco PIX 500 系列安全设备

Cisco Secure PIX 防火墙故障切换的工作原理

2015 年 8 月 28 日 - 机器翻译
其他版本: PDFpdf | 英语 (2015 年 4 月 22 日) | 反馈


交互:本文档对您的 Cisco 设备进行自定义分析。


目录


简介

使用一对相同的 PIX 设备(型号、内存、网络接口卡 (NIC) 和操作系统版本)可以提供高可用性,并且无需操作员介入。

先决条件

要求

本文档没有任何特定的要求。

使用的组件

本文档不限于特定的软件版本。除 501 和 506E 型号以外,其他所有 PIX 型号都支持故障切换。

注意: 本文档不涵盖 Cisco PIX 500 系列安全设备上运行的软件版本 7.0 及更高版本。请参阅《Cisco 安全设备 CLI 配置指南 7.0 版》中“配置故障切换”一章

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。

规则

有关文档规则的详细信息,请参阅 Cisco 技术提示规则

背景信息

一个 PIX 被视为“活动”单元,另一个则视为“备用”单元。顾名思义,活动单元执行正常的网络功能,备用单元则负责监控,以便在活动单元不能执行其功能时立即接管控制权。如果 show version 命令显示故障切换未启用,并且您尝试执行故障切换,请与当地 Cisco 客户团队联系以购买许可证升级。

关于许可证升级的更多信息,参考在故障切换对的许可证密钥升级

这两个单元在网络上分别都有一个位置。活动单元使用主单元的系统 IP 地址和 MAC 地址。通过判断设备中插入的故障转移电缆末端是否标有“Primary”,或者 PIX 设备是否是采用 failover lan unit primary 命令配置的,即可确定主单元。PIX OS 6.2 版中引入了此命令。备用单元使用辅助单元的故障切换 IP 地址和 MAC 地址。进行切换时,两个单元会交换所使用的 IP 地址和 MAC 地址,以更换各自在网络上的位置。此操作在网络中不可见。IP 与 MAC 地址的关系保持不变。所以,网络中的 ARP 表都无需超时或更改。网络设备的其它部分不需要知道关于冗余或切换发生了。请注意,系统 IP 和故障切换 IP 地址必须处于相同的子网中,这样才有可能不需要在两个单元之间使用路由器。

故障切换电缆

故障切换电缆是支持 PIX 故障切换所需的唯一额外硬件。在 PIX 6.2 及更高版本中,没有故障切换电缆也可以完成故障切换。故障切换电缆是经过修改的 RS-232 串行链接电缆,速度设置为 9600 波特。

注意: 在 PIX 软件版本 5.2 (5.1.2.201) 中,速度已更改为 115.2 K 波特。并且,故障切换电缆不可以延长。

基本故障切换通信是通过故障切换电缆,或者通过PIX OS6.2和以上版本中配有failover lan interface interface_name命令的LAN接口。通过故障切换电缆进行的故障切换通信是基于消息的,因此需要具备一定的可靠性。发送的每一条消息都需要经过确认 (Acked)。如果另一个 PIX 在 3 秒之内没有确认某一条消息,该消息就会重新传送。如果重传 5 次后仍然没有 ACK(总共 15 秒),备用 PIX 将触发故障切换条件。

通过故障切换电缆进行的典型故障切换通信包括:

  • MAC 地址交换

  • hello(保活)

  • 状态(活动/备用)

  • 网络链路状态

  • 配置复制

复制 PIX 配置

两个单元必须采用完全相同的配置,并且必须运行同一个软件版本。这一点很容易实现,因为可以采用以下方式通过故障转移电缆或者使用 failover lan interface interface_name 命令配置的 LAN 接口将配置从活动单元复制到备用单元:

  • 当备用单元完成其初始引导后,活动单元将其整个配置复制到备用单元。如果使用故障切换电缆,就会发生这种情况,因为您需要使用主单元和辅助单元上的初始配置,以便确定哪一个是主单元、哪一个是辅助单元。为了解决串行电缆的长度和速度问题,我们引入了此功能。

  • 命令输入到激活单元的同时,它们将发送到备用单元。

  • 当您在激活单元上输入write standby命令时,会将整个配置加载到备用单元的内存中。

配置复制将执行一种“内存到内存”的复制。完成后,您需要在活动单元上发出 write memory 命令,以便将配置写入到备用单元的闪存中。在此操作期间,将显示“sync started”和“sync completed”控制台消息。大型配置可能会花较长时间才能完成传输。如果在复制过程中发生切换,新的活动 PIX 将仅获得部分配置。然后单元自己重新引导,从闪存恢复配置,或者从其他单元重新同步。

配置信息只能从活动单元复制到备用单元。对备用单元所做的更改不会传递到活动单元。

故障切换监视

有15秒的故障切换轮询间隔(在5.0以后的版本中,间隔是可配置的),以监控网络活动、故障切换通信和电源状态。活动单元上出现任何此类参数故障,都会导致备用单元接管主动控制。一旦某个单元确定出现故障,就会关闭其网络接口。

每隔 15 秒,这两个单元就会通过故障切换电缆和所有接口(以管理方式关闭的接口除外)相互发送特殊的故障切换“hello”数据包。如果任何一个单元在连续两次轮询检查中没有在某个接口上监听到“hello”数据包,PIX 就会将该 LAN 接口置于测试模式,以确定故障位置。如果备用 PIX 在连续两次轮询检查中没有接收到来自故障切换电缆的“hello”数据包,备用 PIX 就会启动故障切换,向另一个 PIX 声明故障情况。如果激活的PIX没有听到"Hello"消息,它保持激活并且将另一个PIX设置为故障。

如果没有收到“hello”数据包,网络接口将处于测试模式。网络接口测试不会产生干扰。这表示,处于测试模式时,网络接口仍将尝试传递正常数据流。测试过程包括四项单独的测试,即 NIC 状态测试、网络活动测试、地址解析协议 (ARP) 测试和 Ping 测试,这些测试都专为促进网络数据流而调整。如果处于测试模式的接口可接收数据流,则视为能够正常运行。如果此单元能监听到其他网络数据流,则认为故障必定存在于另一单元中,即另一单元无法发送“hello”数据包。这就导致了另一单元发生故障。如果已经确定测试部件不能接收网络流量,而其它测试部件能接收网络流量,则测试单元存在故障。

除监控所有网络接口外,故障切换也监控另一单元的电源状态和故障切换电缆的状态。故障切换电缆能够发现是否插入另一个单元并且接通了电源。如果从任一单元拔掉电缆,就会禁用切换。如果活动单元断电,备用单元将在 15 秒内接管。一个处于"failed"状态的单元等待15秒,然后尝试转换为"standby"状态。如果转换过程中触发了故障,该单元将再次发生故障。可以使用 failover reset 命令,手动将 PIX 从故障状态重置为备用状态。如果转换过程中触发了故障,该单元将再次发生故障。处于故障状态的 PIX 不能切换到活动状态。

如果故障原因是接口上的“link down(链路断开)”,“link up(链路接通)”表示故障状态清除(例如接口被拔走,然后被插入)。

注意: 有关 PIX 版本 7.0 故障切换功能的详细信息,请参阅配置故障切换

故障回退

每当发生故障或切换,都会生成 syslog 消息指示所发生的情况。并不对主单元强制执行故障回退。尽管没有理由交换主动/备用的作用,失败不是强制的活动。所以,当发生故障的主要单元得到修复,并重新上线时,它没有自动地恢复为激活单元。要强制某个单元成为活动单元,请对备用单元发出 failover active 命令,或对活动单元发出 no failover active 命令。如果使用了有状态故障切换,那么连接状态信息将从活动单元传递到备用单元。否则,将不跟踪状态信息,并且必须由应用程序重建会话。这意味着在故障转移后将断开所有活动连接。因为新活动单元呈现与之前的活动单元相同的IP和MAC地址,因而所有ARP条目都无需在网络任何地方变更或超时。

在 EFT 5.0 及更高版本中,15 秒的故障切换轮询间隔更改为可进行配置。间隔可能设置在3秒到15秒之间,在测试不同接口卡故障的过程中识别差异。

接口测试

如果在某个接口上没有收到“hello”数据包,或者一个接口在另一接口进入正常状态后等待“hello”的时间超过 2.5 分钟,该接口就会进入“测试”模式(条件是该接口未关闭且链路状态为打开)。当发生这种情况时,会通过故障切换电缆,通知另一个单元接口接口处于测试模式。当接口处于测试模式时,如果此接口正常运行,则正常数据流能够通过此进口进行传输。仅当发生错误条件时才开始测试,并且测试会基于一定的原理,即“如果一方正常,则另一方一定发生了故障”。整个测试过程包括四项连续的测试:

  1. NIC 状态测试

    此测试是 NIC 自身的链路打开/关闭检查。如果接口卡没有插入正常运行的网络,则被认为发生了故障。

  2. 网络活动测试

    此测试是“接收的网络活动”测试。每个单元都会对收到的所有数据包进行计数,持续时间最长为 5 秒。如果任何信息包在此间隔期间的任何时间里收到,接口被认为操作和测试终止。如果没有收到数据流,该单元将执行 ARP 测试。

  3. ARP 测试

    在 ARP 测试中,将从单元的 ARP 缓存中读取最近获取的 10 个条目。然后,单元一个一个地向这些机器中发送 ARP 请求,以尝试促进网络数据流。在每个请求之后,单元将对收到的所有数据流进行计数,持续时间最长为 5 秒。如果收到数据流,则认为该接口可以正常运行。如果没有收到数据流,则向下一个机器发送 ARP 请求。如果在列表的结尾没有收到数据流,单元会进行Ping测试。

  4. Ping 测试

    为了执行 Ping 测试,单元将发出广播 Ping 请求。然后,单元将对收到的所有数据包进行计数,持续时间最长为 5 秒。如果任何信息包在此间隔期间的任何时间里收到,接口被认为操作和测试终止。如果没有收到数据流,将从 ARP 测试开始再次执行整个测试。

在每项测试开始时,两个单元都将清除接口的接收计数。在每个测试的结尾,测试单元首先检查是否收到了任何数据流。如果收到了数据流,该单元就会认为自己可以正常运行并断定另一个单元发生故障。反之,它将询问另一个单元是否收到了数据流。如果另一个单元收到了数据流,测试单元就会认为自己发生了故障。如果两个单元未收到任何数据流,进行下一个测试。如果在任何时间请求单元没有听到其他装置的测试结果,则认为其他装置出现故障,就好象它没有听到故障切换电缆的“Hello”消息。如果确定活动单元发生故障,则执行故障转移。如果备用设备确定出现故障,不允许采取有效控制。这些测试的结果由活动和备用单元通过 syslog 发送。

硬件决策表

在每个 PIX 上,故障切换将保留两个 PIX 设备的硬件决策表 (HDT),以便确定哪个 PIX 是适当的活动设备。当发生NIC接口状态更改时,故障切换会轮询设备驱动程序,本地HDT会被更新,所作更改会被发送到另一个PIX。虽然在每个轮询周期都会进行 HDT 表的比较,但只有在第二次轮询时才能导致备用单元通过启动故障转移从活动单元那里接过控制权。

在交换环境中进行故障切换

在交换环境中需要解决两个问题。首先,交换机需要了解特定的MAC地址已经从一端口移动到另一个端口。每个单元(除非单元发生故障)都将使用新的 MAC 和 IP 地址在每个接口上传输一系列切换转移消息。这将使交换机能够更新其内部 MAC 表。Cisco强烈建议用户在连接到PIX接口的所有交换端口上启用portfast。此外还需要在这些端口上禁用信道和中继的建立。因此,如果 PIX 的接口在故障转移过程中发生故障,交换机不必在端口从监听状态转换为学习状态再转换为转发状态这 30 秒的时间里一直等待着。

网络数据流的阻塞带来了第二个问题。如果故障转移发送的“hello”数据包未得到转发,每个单元都会认为出现了问题并开始测试其接口。这将导致其中一个单元出现故障,因为测试结果是“如果一方正常,则另一方一定发生了故障”。为避免出现此问题,每次发生故障转移时,各单元都会进入一个“等待”状态。在此状态下,网络数据流可以自由通过活动单元,但在再次监控接口之前,故障切换将等待接收两个“hello”消息。这将使交换机能够在不中断故障切换的情况下进入阻塞状态。监听到第二个“hello”消息后,故障切换将恢复对接口的正常监控。

对于PIX软件5.2和以上版本,当设备从备用状态改变为活动状态时,或者从活动状态改变为备用状态,将为每个网络接口设置免费ARP,以便重播新的IP和MAC地址。

有状态故障切换

如果不保留 PIX 有状态信息,在故障转移后,所有现有连接都会断开,并且应用程序必须重新启动。在 PIX 软件 5.0 版中,PIX 提供有状态故障切换,以便现有连接可以在切换之后保持通畅。

为了支持有状态故障切换,两个 PIX 设备之间需要专用 LAN 接口。逻辑更新 (LU) 软件模块向支持有状态故障切换的 PIX 应用程序提供传输。状态更新通过 LAN 接口在从活动单元到备用单元的方向上进行。发送到备用 PIX 的状态更新由应用程序触发。LU传输类似于UDP,不会重发和阻塞应用程序,延迟正常信息包处理。状态更新数据包在后台异步传输。然而,LU协议是实时的,并提供错误通知,报告缺失的状态更新,以进行监控。

初始状态同步在配置复制后执行。这将通过逐步浏览转换和连接表记录完成。完成之后,即可触发状态更新。

PIX地址转换(xlate,静态和动态)和连接(conn)记录是基本状态数据,连同其他状态信息,从活动装置传输到备用装置。因为故障切换无法预先计划,所以连接的状态更新是基于数据包的。这意味着每个数据包都将经过 PIX 并更改连接状态,从而会触发状态更新。

然后将传输 TCP 状态表。然而,默认情况下不复制 HTTP(TCP 端口 80)。在 6.0 版及更高版本中,可以使用 failover replicate http 命令强制 TCP 端口 80 的状态复制。除动态打开的对应于多信道协议(例如 H.323 和 VoIP)的端口以外,大多数 UDP 状态表都不会进行传输。因此,由于 DNS 解析是单信道端口,所以也不会传输。

有一些对延迟非常敏感的的应用,在某些情况下,这些应用会在故障切换过程完成前超时。在这些情况下,应用程序必须重建会话。

注意: 没有综合全面的列表可以表明哪些应用程序因为需要备用单元花较长的时间才能接管而予以丢弃。实际经验证明,如果使用有状态故障切换,可以期望备用单元将花费 10 秒钟的时间完成接管。如果不使用有状态故障切换,可能需要花长达一分钟的时间重建连接。

注意: 关于有状态故障切换的唯一警告是导致故障切换的原因。如果将 failover hello 设置为最大值 15 秒,当内部接口出现故障时,备用单元需要在至少错失两个 hello 数据包(30 秒)后才会声明主单元发生了故障。有些人将 failover hello 设置为最小值 3 秒,这样,PIX 在不必要的情况下也会进行故障转移。Cisco 建议您将 hello 设置为最大值 15 秒。

故障切换命令

  • [[no] failover - 启用或禁用故障转移。

  • [[no] failover active - 使某个单元成为活动/备用单元。

  • failover ip address #.#.#.# - 设置故障转移 IP 地址。

  • failover reset - 清除两个单元的故障状态并重新启动故障转移。

  • [no] failover link interface-指定在有状态故障切换中,哪个接口用于将状态更新从激活PIX转换到备用PIX

  • failover poll seconds - 指定故障转移轮询间隔(PIX 软件版本 5.2 及更高版本)。

  • failover lan unit primary|secondary - 用于在基于 LAN 的故障切换中定义主/辅助单元(PIX 版本 6.2 及更高版本)。

  • failover lan enable - 指定基于 LAN 的故障转移(PIX 版本 6.2 及更高版本)。

  • failover lan interface lan_if_name - 基于 LAN 的故障转移中专用的防火墙接口名称(PIX 版本 6.2 及更高版本)。

  • failover lan key key_secret -使用密钥(PIX版本6.2以上),在PIX防火墙之间启用基于LAN的故障切换消息的加密和认证。

  • failover mac address mif_name act_mac stn_mac -使您能够配置一个用于PIX防火墙故障切换对的虚拟MAC地址,而不是与另一个对等体联系获得MAC地址(PIX 6.2版本以及更新版本)。

show failover 命令示例输出

以下示例假定故障切换电缆已安装并且可以正常使用。他们还假设,装置已经配置了192.168.89.1系统IP地址和192.168.89.2故障切换IP地址。

示例:正常故障切换

本示例是 show failover 命令的正常输出。请注意,其中显示了每个单元的 IP 地址。如果没有输入故障切换IP地址,则显示0.0.0.0,接口的监控保持在"waiting"状态。有关“等待”状态的解释,请参阅示例:故障切换监控尚未开始部分。

Failover On
	Cable status: Normal
	Reconnect timeout 0:00:00
		This host: Primary - Active 
			Active time: 6885 (sec)
			Interface 0 (192.168.89.1): Normal 
			Interface 1 (192.168.89.1): Normal 
		Other host: Secondary - Standby 
			Active time: 0 (sec)
			Interface 0 (192.168.89.2): Normal 
			Interface 1 (192.168.89.2): Normal 

示例:故障切换监控尚未开始

本示例展示了故障切换尚未开始监控网络接口时发生的情况。故障切换在网络接口上收到来自另一个单元的第二个“hello”数据包后,才会开始监视该接口。这需要大约 30 秒时间。如果该单元连接到运行生成树协议 (STP) 的网络交换机,则花费的时间将是交换机上配置的“forward delay”时间(通常配置为 15 秒)的两倍再加上这个 30 秒的延迟时间。这是因为在PIX启动和在故障切换事件后,网络交换机检测到了一条临时网桥环路。检测此环路时,由于存在“forward delay”时间,它将停止在这些接口上转发数据包。然后它将进入“监听”模式以等待另一段“转发延迟”时间;在此期间,交换机将监听网桥环路,但不转发数据流(因此也不转发故障切换“hello”数据包)。在两倍的转发延迟时间(30 秒)之后,将继续传送数据流。"各PIX都保持在""waiting""模式,直到从其他单元听到30秒的""hello""信息包。"在PIX通过数据流时候,它不会由于没有听到"Hello"信息包而使另一个单元发生故障。其他所有故障切换监视仍然进行(即电源、链路接口丢失和故障切换电缆“hello”)。

Failover On
	Cable status: Normal
	Reconnect timeout 0:00:00
		This host: Primary - Active 
			Active time: 6930 (sec)
			Interface 0 (192.168.89.1): Normal (Waiting)
			Interface 1 (192.168.89.1): Normal (Waiting)
		Other host: Secondary - Standby 
			Active time: 15 (sec)
			Interface 0 (192.168.89.2): Normal (Waiting)
			Interface 1 (192.168.89.2): Normal (Waiting)

示例:单元故障

在本示例中,故障切换检测到一个故障。请注意,主要单元上的 Interface 1 是故障的来源。由于该故障,这些单元退回“waiting”模式。故障单元已从网络中自行移除(接口关闭),不再在网络中发送“hello”数据包。活动单元将保持“等待”状态,直到故障单元已更换且故障切换通信重新开始。

Failover On
	Cable status: Normal
	Reconnect timeout 0:00:00
		This host: Primary - Standby (Failed)
			Active time: 7140 (sec)
			Interface 0 (192.168.89.2): Normal (Waiting)
			Interface 1 (192.168.89.2): Failed (Waiting)
		Other host: Secondary - Active 
			Active time: 30 (sec)
			Interface 0 (192.168.89.1): Normal (Waiting)
			Interface 1 (192.168.89.1): Normal (Waiting)

示例:有状态故障切换

本示例显示了有状态故障转移已启用的情况下 show failover 命令的输出。请注意,其中显示了“Poll frequency 4 seconds”。第 4 个网络接口已经以管理方式关闭。网络接口 FailLink 是有状态故障切换链路。

Failover On
Cable status: Normal
Reconnect timeout 0:00:00
Poll frequency 4 seconds
        This host: Secondary - Active 
                Active time: 167464 (sec)
                Interface gb (7.7.7.1): Normal 
                Interface 4th (172.1.1.3): Link Down (Shutdown)
                Interface FailLink (8.8.8.1): Normal 
                Interface pix/intf2 (100.2.1.3): Normal 
                Interface outside (100.1.1.3): Normal 
                Interface inside (10.1.1.3): Normal 
        Other host: Primary - Standby 
                Active time: 0 (sec)
                Interface gb (7.7.7.2): Normal 
                Interface 4th (172.1.1.4): Link Down (Shutdown)
                Interface FailLink (8.8.8.2): Normal 
                Interface pix/intf2 (100.2.1.4): Normal 
                Interface outside (100.1.1.4): Normal 
                Interface inside (10.1.1.4): Normal 


Stateful Failover Logical Update Statistics
     Link : FailLink
     Stateful Obj    xmit       xerr       rcv        rerr 
     General        22501          0     34259           0 
     sys cmd        16007          0     33961          13 
     up time            4          0         2           0 
     xlate           5094          0         6           0 
     tcp conn         514          0       290           0 
     udp conn           0          0         0           0 
     ARP tbl          882          0         0           0 
     RIP Tbl            0          0         0           0 
     Logical Update Queue Information
              Cur   Max    Total
     Recv Q:    0     3    34259
     Xmit Q:    0     7    22504

有关其他故障切换信息,请参阅 PIX 防火墙配置指南

如果您具有您的思科设备发出的show failover命令,您可以使用Output Interpreter(仅限于注册用户),显示潜在问题和问题修复。

基于 LAN 的故障切换

基于 LAN 的故障切换图

/image/gif/paws/5220/failover_01.gif

建议您使用专用交换机连接主 PIX 和辅助 PIX。请勿使用交叉电缆。上图中使用了 Cisco Catalyst 3500 交换机连接主 PIX 和辅助 PIX。LAN 故障切换和有状态故障切换链路分别位于不同的 VLAN 中:VLAN 10 和 VLAN 20。内部路由器和外部路由器仅用于测试连接。

主 PIX 上的最低初始配置

以下是主 PIX 上至少要配置的几项命令:

基本命令

pixfirewall(config)#hostname PIX                                

!--- Naming the PIX is optional.

PIX(config)#nameif ethernet2 fo security20                 

!--- Naming the interface is optional. It is recommended that you
!--- hardcode the speed/duplex.
 
PIX(config)#interface ethernet2 100full                            

!--- Bring up the interface.
 
PIX(config)#ip address fo 192.168.1.1 255.255.255.0  

!--- Assign an IP address.

故障切换命令

PIX(config)#failover ip address fo 192.168.1.2

!--- IP address for the failover link.

PIX(config)#failover lan unit primary                

!--- This unit is primary
. 
PIX(config)#failover lan interface fo                 

!--- The 'fo' interface is used for LAN failover. 

PIX(config)#failover lan key cisco                     

!--- The Pre-shared key.

PIX(config)#failover lan enable                          

!--- Enables failover.

PIX(config)#failover                                 

!--- Start the failover process.

控制台上将出现此消息:

LAN-based Failover: trying to contact peer 
LAN-based Failover: Send hello msg and start failover monitoring 

备用 PIX 上的最低初始配置

以下是辅助 PIX 上至少要配置的几项命令:

基本命令

pixfirewall(config)#hostname PIX 
PIX(config)#nameif ethernet2 fo security20

!--- It is recommended that you hardcode the speed/duplex. 
 
PIX(config)#interface ethernet2 100full
PIX(config)#ip address fo 192.168.1.1 255.255.255.0 

故障切换命令

PIX(config)#failover ip address fo 192.168.1.2 
PIX(config)#failover lan unit secondary                    

!--- This unit is secondary. 

PIX(config)#failover lan interface fo 
PIX(config)#failover lan key cisco 
PIX(config)#failover lan enable 
PIX(config)#failover

!--- This unit is secondary because the "active" keyword is not used.

在辅助 PIX 上发出这些命令之后,控制台上将出现以下消息:

LAN-based Failover: trying to contact peer?? 
LAN-based Failover: Send hello msg and start failover monitoring 

然后,在主 PIX 的控制台上将出现以下消息:

LAN-based Failover: Peer is UP
Sync Started
Sync Completed

注意: 如果看不到这些消息,则表明存在问题。为了快速排除此问题,请在辅助单元上使用 debug icmp trace 命令开启 ICMP 跟踪调试,并从主单元对故障切换 IP 地址执行 ping 操作。

注意: 在主 PIX 上:

PIX(config)#ping 192.168.1.2 
        192.168.1.2 response received -- 0ms 
        192.168.1.2 response received -- 0ms 
        192.168.1.2 response received -- 0ms 
PIX(config)# 

On Secondary Unit 
PIX(config)#debug icmp trace    

!--- Configure this command before you initiate ping. 

ICMP trace on 
Warning: this may cause problems on busy networks 
PIX(config)# 1: ICMP echo request (len 32 id 9233 seq 0) 
   192.168.1.1 > 192.168.1.2 
2: ICMP echo reply (len 32 id 9233 seq 0) 192.168.1.2 > 192.168.1.1 
3: ICMP echo request (len 32 id 9233 seq 1) 192.168.1.1 > 192.168.1.2 
4: ICMP echo reply (len 32 id 9233 seq 1) 192.168.1.2 > 192.168.1.1 
5: ICMP echo request (len 32 id 9233 seq 2) 192.168.1.1 > 192.168.1.2 
6: ICMP echo reply (len 32 id 9233 seq 2) 192.168.1.2 > 192.168.1.1 

注意: 完成后,请使用 no debug icmp trace 命令关闭这些调试。

如果不能成功完成 ping 操作,请检查中间交换机上的 VLAN 及端口配置。并且请确保使用了可靠的 Cat 5 电缆。

主 PIX 输出:

PIX(config)#show failover lan 

LAN-based Failover is Active 
        interface fo (192.168.1.1): Normal, peer (192.168.1.2): Normal 

PIX(config)#show failover 
Failover On 
Cable status: My side not connected   

!--- The failover serial cable is not used.
  
Reconnect timeout 0:00:00 
Poll frequency 15 seconds 
        This host: Primary - Active 
                Active time: 4335 (sec) 
                Interface intf5 (0.0.0.0): Link Down (Shutdown) 
                Interface intf4 (0.0.0.0): Link Down (Shutdown) 
                Interface intf3 (0.0.0.0): Link Down (Shutdown) 
                Interface outside (0.0.0.0): Link Down (Shutdown) 
                Interface inside (0.0.0.0): Link Down (Shutdown) 
        Other host: Secondary - Standby 
                Active time: 30 (sec) 
                Interface intf5 (0.0.0.0): Link Down (Shutdown) 
                Interface intf4 (0.0.0.0): Link Down (Shutdown) 
                Interface intf3 (0.0.0.0): Link Down (Shutdown) 
                Interface outside (0.0.0.0): Link Down (Shutdown) 
                Interface inside (0.0.0.0): Link Down (Shutdown) 

Stateful Failover Logical Update Statistics 
        Link : Unconfigured.

!--- Stateful failover is not configured yet. 

  

LAN-based Failover is Active 
        interface fo (192.168.1.1): Normal, peer (192.168.1.2): Normal

辅助 PIX 输出:

PIX(config)#show failover lan 

LAN-based Failover is Active 
        interface fo (192.168.1.2): Normal, peer (192.168.1.1): Normal 
  

PIX(config)#show failover 
Failover On 
Cable status: My side not connected           

!--- A failover serial cable is not used. 

Reconnect timeout 0:00:00 
Poll frequency 15 seconds 
        This host: Secondary - Standby 
                Active time: 30 (sec) 
                Interface intf5 (0.0.0.0): Link Down (Shutdown) 
                Interface intf4 (0.0.0.0): Link Down (Shutdown) 
                Interface intf3 (0.0.0.0): Link Down (Shutdown) 
                Interface outside (0.0.0.0): Link Down (Shutdown) 
                Interface inside (0.0.0.0): Link Down (Shutdown) 
        Other host: Primary - Active 
                Active time: 4485 (sec) 
                Interface intf5 (127.0.0.1): Link Down (Shutdown) 
                Interface intf4 (127.0.0.1): Link Down (Shutdown) 
                Interface intf3 (127.0.0.1): Link Down (Shutdown) 
                Interface outside (127.0.0.1): Link Down (Shutdown) 
                Interface inside (127.0.0.1): Link Down (Shutdown) 

Stateful Failover Logical Update Statistics 
        Link : Unconfigured. 

!--- Stateful failover is not configured yet. 

  

LAN-based Failover is Active 
        interface fo (192.168.1.2): Normal, peer (192.168.1.1): Normal 

剩余配置 - 状态故障切换

主 PIX 和辅助 PIX 上的基本工作已完成。

在本示例中,接口 E3 用于在两个单元之间传送状态信息。如果您的 PIX 负载不重,也可以使用接口 E2(用于执行运行状况检查和配置复制)来完成此操作。建议使用单独的接口来完成此操作。

在主 PIX 上,配置以下命令:

ip address stateful-fo 172.16.1.1 255.255.255.0 
interface ethernet3 100full
failover ip address stateful-fo 172.16.1.2 
failover link stateful-fo 

在辅助 PIX 上,配置以下命令:

ip address stateful-fo 172.16.1.2 255.255.255.0
nameif ethernet3 stateful-fo security30
interface ethernet3 100full

检查状态。

PIX(config)#show failover 
Failover On 
Cable status: My side not connected 
Reconnect timeout 0:00:00 
Poll frequency 15 seconds 
        This host: Primary - Active 
                Active time: 3945 (sec) 
                Interface intf5 (0.0.0.0): Link Down (Shutdown) 
                Interface intf4 (0.0.0.0): Link Down (Shutdown) 
                Interface stateful-fo (172.16.1.1): Normal 
                Interface outside (0.0.0.0): Link Down (Shutdown) 
                Interface inside (0.0.0.0): Link Down (Shutdown) 
        Other host: Secondary - Standby 
                Active time: 30 (sec) 
                Interface intf5 (0.0.0.0): Link Down (Shutdown) 
                Interface intf4 (0.0.0.0): Link Down (Shutdown) 
                Interface stateful-fo (172.16.1.2): Normal 
                Interface outside (0.0.0.0): Link Down (Shutdown) 
                Interface inside (0.0.0.0): Link Down (Shutdown) 

有状态故障切换逻辑更新统计数据

 
Link : stateful-fo

!--- Interface stateful-fo is used for stateful failover
. 
Stateful Obj    xmit       xerr       rcv        rerr 
General         40         0          40         0 
sys cmd         40         0          40         0 
up time         0          0          0          0 
xlate           0          0          0          0 
tcp conn        0          0          0          0 
udp conn        0          0          0          0 
ARP tbl         0          0          0          0 
RIP Tbl         0          0          0          0 

Logical Update Queue Information 
                        Cur     Max     Total 
Recv Q:         0       1       41 
Xmit Q:         0       1       41 

LAN-based Failover is Active 
        interface fo (192.168.1.1): Normal, peer (192.168.1.2): Normal 
  

PIX(config)#show failover lan detail 

LAN-based Failover is Active 
This PIX is Primary 
Command Interface is fo 
My Command Interface IP is 192.168.1.1 
Peer Command Interface IP is 192.168.1.2 
My interface status is Normal 
Peer interface status is Normal 
Peer interface down time is 0x0

!--- This is good. 


Total cmd msgs sent: 2579, rcvd: 2241, dropped: 2, retrans: 19, send_err: 0 
Total secure msgs sent: 2760, rcvd: 2383 
bad_signature: 0, bad_authen: 0, bad_hdr: 0, bad_osversion: 0, bad_length: 0 
Total failed retx lck cnt: 0 
Total/Cur/Max of 1245:0:1 msgs on retransQ, 1239 ack msgs 
Cur/Max of 0:21 msgs on txq 
Number of blk allocation failure: 0, cmd failure: 0, Flapping: 0 

Current cmd window: 1, Slow cmd Ifc cnt: 0 
Cmd Link down: 0, down and up: 0, Window Limit: 4301 
Number of fmsg allocation failure: 0 
Cmd Response Time History stat: 
< 100ms:         1237 
100 - 250ms:     0 
250 - 500ms:     0 
500 - 750ms:     0 
750 - 1000ms:    0 
1000 - 2000ms:   7 
2000 - 4000ms:   5 
> 4000ms:        9 
Cmd Response Retry History stat: 
Retry 0 = 1242, 1 = 5, 2 = 5, 3 = 3, 4 = 3 
Failover enable state is 0x1 
Failover state is 0x7d 
Failover peer state is 0x58 
Failover switching state is 0x0 
Failover config syncing is not in progress 
Failover poll cnt is 0 
Failover Fmsg cnt is 0 
Failover OS version is 6.2(0)243 
failover interface 0, tst_mystat = 0x3, tst_peerstat = 0x3 
    zcnt = 0, hcnt = 0, my_rcnt = 0, peer_rcnt = 0 
    myflag = 0x0, peer_flag=0x0, dchp = 0x807696d8 
    act_ip: 0.0.0.0, stn_ip:0.0.0.0 
    act_mac: 00d0.b71d.2b4d, stb_mac: 00d0.b780.574f 
failover interface 1, tst_mystat = 0x3, tst_peerstat = 0x3 
    zcnt = 0, hcnt = 0, my_rcnt = 0, peer_rcnt = 0 
    myflag = 0x0, peer_flag=0x0, dchp = 0x80769738 
    act_ip: 0.0.0.0, stn_ip:0.0.0.0 
    act_mac: 00d0.b71a.e6fb, stb_mac: 00e0.b600.8673 
failover interface 2, tst_mystat = 0x0, tst_peerstat = 0x2 
    zcnt = 0, hcnt = 0, my_rcnt = 2271, peer_rcnt = 0 
    myflag = 0x0, peer_flag=0x0, dchp = 0x80769618 
    act_ip: 192.168.1.1, stn_ip:192.168.1.2 
    act_mac: 00e0.b600.a931, stb_mac: 00e0.b600.a931 
LAN-based Failover command link 
failover interface 3, tst_mystat = 0x0, tst_peerstat = 0x0 
    zcnt = 0, hcnt = 0, my_rcnt = 88, peer_rcnt = 54 
    myflag = 0x1, peer_flag=0x1, dchp = 0x80769558 
    act_ip: 172.16.1.1, stn_ip:172.16.1.2 
    act_mac: 00e0.b600.a930, stb_mac: 00e0.b600.8671 
failover interface 4, tst_mystat = 0x3, tst_peerstat = 0x3 
    zcnt = 0, hcnt = 0, my_rcnt = 0, peer_rcnt = 0 
    myflag = 0x0, peer_flag=0x0, dchp = 0x80769498 
act_ip: 0.0.0.0, stn_ip:0.0.0.0 
    act_mac: 00e0.b600.a92f, stb_mac: 00e0.b600.8670 
failover interface 5, tst_mystat = 0x3, tst_peerstat = 0x3 
    zcnt = 0, hcnt = 0, my_rcnt = 0, peer_rcnt = 0 
    myflag = 0x0, peer_flag=0x0, dchp = 0x807693d8 
    act_ip: 0.0.0.0, stn_ip:0.0.0.0 
    act_mac: 00e0.b600.a92e, stb_mac: 00d0.b780.564f 

主 PIX 上的其他配置

以下是主 PIX 的另一项配置。

  1. 为其他接口进行速度/双工的硬编码。可以使用“自动”,但是建议您对速度或双工进行硬编码。

    interface ethernet0 100full 
    interface ethernet1 100full
    
  2. 为其他接口分配 IP 地址。

    ip address outside 1.1.1.1 255.255.255.0 
    ip address inside 10.10.10.1 255.255.255.0
    
  3. 为所有接口(已关闭的接口除外)添加 failover ip address 命令:

    failover ip address outside 1.1.1.2
    failover ip address inside 10.10.10.2
    

辅助 PIX 上的其他配置

以下是配置辅助 PIX 的方法。

  1. 为其他接口进行速度/双工的硬编码。可以使用“自动”,但是建议您对速度或双工进行硬编码。

    interface ethernet0 100full 
    interface ethernet1 100full
    
  2. 为其他接口分配 IP 地址。

    ip address outside 1.1.1.2 255.255.255.0 
    ip address inside 10.10.10.1 255.255.255.0 
    

以下是故障切换发生后辅助 PIX 的输出。

PIX(config)#show failover 
Failover On
Cable status: My side not connected
Reconnect timeout 0:00:00
Poll frequency 15 seconds
        This host: Secondary - Active 
                Active time: 315 (sec)
                Interface intf5 (127.0.0.1): Link Down (Shutdown)
                Interface intf4 (127.0.0.1): Link Down (Shutdown)
                Interface stateful-fo (172.16.1.2): Normal (Waiting)
                Interface outside (1.1.1.2): Normal (Waiting)
                Interface inside (10.10.10.2): Normal (Waiting)
        Other host: Primary - Standby 
                Active time: 8025 (sec)
                Interface intf5 (0.0.0.0): Link Down (Shutdown)
                Interface intf4 (0.0.0.0): Link Down (Shutdown)
                Interface stateful-fo (172.16.1.2): Normal (Waiting)
                Interface outside (1.1.1.2): Normal (Waiting)
                Interface inside (10.1.1.2): Link Down (Waiting)

Stateful Failover Logical Update Statistics
        Link : stateful-fo
        Stateful Obj    xmit       xerr       rcv        rerr      
        General         146        0          0          0         
        sys cmd         146        0          0          0         
        up time         0          0          0          0         
        xlate           0          0          0          0         
        tcp conn        0          0          0          0         
        udp conn        0          0          0          0         
        ARP tbl         0          0          0          0         
        RIP Tbl         0          0          0          0         

        Logical Update Queue Information
                        Cur     Max     Total
        Recv Q:         0       0       0
        Xmit Q:         0       1       146

LAN-based Failover is Active
        interface fo (192.168.1.2): Normal, peer (192.168.1.1): Normal

可以在 PIX 上配置的其他故障切换命令:

failover mac address <ifc_name> <act_mac> <stn_mac>
failover poll <seconds>
failover replication http
outside-router#write  terminal

interface FastEthernet3/1 
 ip address 1.1.1.200 255.255.255.0 
 duplex auto 
 speed auto 
  
  
inside-router#write  terminal
interface FastEthernet2/1 
 ip address 10.10.10.200 255.255.255.0 
 duplex auto 
 speed auto 
! 
ip route 0.0.0.0 0.0.0.0 10.10.10.1 

继续配置主单元,这些配置将自动复制到辅助单元。

常见问题

  1. 两个单元之间的启动初始化是如何完成的?

    故障切换的默认设置为关闭(没有故障切换)。然而,如果故障切换电缆在引导时间插入某个装置,故障切换将自动检测电缆,然后开始故障切换,并将单元的状态设置为Primary或Secondary。在引导时将出现上述情况,即使没有正确配置故障切换 IP 地址。

    注意: 如果电缆安装用来运行PIX,您必须发出failover命令开始故障切换。对于高于 4.4.3 版的 PIX 软件,这种情况可以更改。这是因为配置复制过程中可能会使用 clear config 命令意外地禁用了故障切换。如果引导时未出现故障切换电缆,该单元将立即成为活动单元。然而,该单元将显示为“Secondary”。

    这些讨论假定已启用故障切换并且两个单元都已连接故障切换电缆。当装置第一次启动时,如果从其他单元检测到功率,便能够执行故障切换,并默认为备用。单元发送运行时状态(备用)并从另一个单元请求 MAC 地址。如果没有单元在故障切换轮询时间内采取主动控制,该单元将切换到活动状态。

    注意: 对于低于 5.2.1 的 PIX 软件版本,故障切换轮询时间硬编码为 15 秒。

    在正常情况下,是另一个单元为每故障切换轮询回应请求或派出故障切换Hello消息。故障切换电缆通信开始后,两个单元都会检查活动/备用状态。如果辅助单元处于备用状态,则主单元切换到活动状态。这意味着,如果主单元和备用单元都在第一次相互故障切换轮询检查中完成启动,主单元将会激活。如果辅助单元已经处于活动状态,主单元就保持备用状态(假定辅助单元已了解主 MAC 地址)。主单元并不 自动执行主动控制。如果启用了故障切换,而没有首次引导主单元,请不要引导备用单元,因为使用的MAC地址来自主单元。如果某个单元在没有使用故障切换电缆的情况下引导,或者没有故障切换通信通过故障切换电缆而进行,则两个单元都可能成为活动单元,并将中断网络数据流。

    由于支持故障切换,当备用单元首先启动时,就会发生从激活单元到备用单元的完全配置复制。从那点上看,命令在输入的时候,从主设备传输到备用设备。要强制执行完整的配置复制,请使用 write standby 命令。配置信息只能从活动单元复制到备用单元。在备用单元上输入的更改不会复制到活动单元。当您在备用单元中输入命令时,将显示警告消息,告诉您配置不再同步。

  2. 什么情况会构成故障?

    故障检测依据:

    1. 网络接口卡 (NIC) 状态如果 NIC 的链接状态为关闭,则单元发生故障。“关闭”意味着 NIC 没有插入操作端口。如果NIC配置为"关闭",不会使此测试失败。

    2. 故障切换网络通信两个单元通过所有网络接口相互发送“hello”数据包。如果在 30 秒内没有监听到“hello”数据包,冲突接口会进入测试模式,以确定是哪个接口发生了故障。

    3. 故障切换电缆通信。两个单元通过故障切换电缆相互发送“hello”消息。如果在 30 秒内备用单元没有监听到来自活动单元的数据包,并且电缆状态正常,则备用单元将接替为活动单元。

      并且,如果在故障切换电缆上发送的故障切换命令没有在15秒内确认,暂挂将转换为激活。

    4. 电缆错误连接故障切换电缆是为了让每个单元都能够区分以下情况:

      • 另一个单元发生电源故障。

      • 此单元未插入电缆。

      • 另一个单元未插入电缆。

      如果备用单元检测到活动单元断电(或重新加载/重新设置),它就会进行有效的控制。如果拔去故障切换电缆,就生产系统日志,但不会发生交换。拔去插头的电缆强制单元变为激活时,例外情况是启动。如果在没有安装故障切换电缆的情况下,给两个单元加电,它们将被激活,并创建重复IP地址,而使用不同的MAC地址,导致网络上的冲突。必须安装故障切换电缆才能使故障切换正常工作。

  3. 采用默认轮询间隔值检测故障需要多长时间?

    • 网络通信错误的检测在 30 秒以内。

    • 故障切换通信错误的检测为 30 秒。

    • 电源故障(和电缆故障)的检测在 15 秒以内。

  4. 触发故障切换时,将发生什么情况?

    任一单元都可以发起故障转移。进行切换时,两个单元会更改各自的状态以及所使用的 IP 地址和 MAC 地址。从网络的角度来看,备用单元将以透明方式取代先前的活动单元。由于配置已经在备份中完成,无需进行更新。因为两个单元不共享动态连接状态。发生故障切换时,所有活动连接都将断开。除非正在使用有状态故障切换,否则客户端必须通过新的活动单元重建连接。每次故障转移时,新的活动单元都将发送有关原因的 syslog。

    例如:

    Switching to ACTIVE (cause: no power detected from other side).

    其他原因:

    • “normal master”

    • “no failover cable”

    • “no power detected from other side”

    • “unable to talk to the other side”

    • “line interface failed at other side”

    • “do not see traffic count change”

    • “the other side wants me to take over”

    • “fail reported by the other side”

    • “state check”

    • “set by the ioctl cmd”

  5. 需要进行哪些维护?

    使用 show fail 命令监控两个单元的状态。发生错误和切换时,将生成 syslog。

  6. 如何禁用故障切换?

    从单元中拔出故障转移电缆,然后使用 no failover 命令对此单元进行配置。故障转移软件检测到没有电缆,将自动关闭故障切换。

  7. 什么是故障切换套件?

    PIX-5XX-FO-BUN,包括机箱、软件和两个 10/100 端口。客户 需要购买 PIX 515 的配套软件。此套件中包含不受限制的 PIX 软件。此单元只能用于故障切换。请确保在故障切换单元上使用 write memory 命令保存信息。如果没有保存配置,且备用单元没有重新加载,它就会丢失从主要部件复制的配置。

建立技术支持请求时应收集的信息

执行上述故障排除步骤后,如果您还需要援助,并需要建立技术支持案例,请确保提供以下信息供PIX防火墙故障排除只用。
  • 问题说明和相关拓扑详细信息
  • 在建立案例前所执行的故障诊断及处理措施
  • show tech-support 命令的输出(来自主防火墙和辅助防火墙)
  • 运行 logging buffered debugging 命令show log 命令的输出,或演示问题的控制台捕获信息(如果可用)
请将您所收集到的上述数据附加在一个非压缩的、纯文本格式(.txt)文件中。通过使用 Case Query 工具进行上载,您可以将此信息附加到您的案例(仅限于注册用户)。如果您不能使用案例查询工具,请将信息以电子邮件附件的形式发送到attach@cisco.com,并在标题栏中注明您的案例编号。

相关的思科支持社区讨论

思科支持社区是您提问、解答问题、分享建议以及与工作伙伴协作的论坛。


相关信息


Document ID: 5220