在本课中,你将了解FortiGate上可用的路由功能和特性。
本节课,你将学习上图显示的主题。
通过在FortiGate上展示路由能力,你应该能够实现静态路由和策略路由。你还可以控制知名互联网服务的流量路由。
路由是什么?
路由是FortiGate在NAT模式下如何决定将它接收到的包发送到哪里以及生成的包发送到哪里。
所有执行路由的网络设备都有一个路由表。路由表包含一系列规则。每条规则指定下一跳,它可能是也可能不是数据包的最终目的地。路由路径中的每个路由跳都需要查找路由表,以便将包传递到最终目的地。
当路由数据包时,FortiGate将首先根据数据包的目的地址在它的路由列表中找到匹配的路由。在执行此匹配时,FortiGate将评估整个路由表,在选择路由之前找到最具体的匹配。如果FortiGate发现多个匹配项,它会使用各种路由属性来确定最佳路由。
正确的路由配置非常重要。如果路由配置错误,报文将无法到达目的地而丢失。
默认情况下,FortiGate的许多方面都是有状态的。也就是说,FortiGate在会话开始时接收第一个数据包时决定许多事情。
对于每个会话,FortiGate执行两个路由查找:
● 对于发起方发送的第一个报文
● 对于来自响应方的第一个应答包
在完成这两个查找之后,FortiGate将路由信息写入它的会话表。后续报文将根据会话表而不是路由表进行路由。因此,属于同一会话的所有报文都遵循相同的路径,即使静态路由发生了变化。但是,这条规则有一个例外:如果路由表中有变化,FortiGate会删除会话表的路由信息,然后进行额外的路由表查找来重新构建该信息。
其中一种类型的手工配置路由称为静态路由。当你配置静态路由时,你就是在告诉FortiGate:“当你看到目的地在特定范围内的数据包时,请将它通过特定的网络接口发送到特定的路由器。”你还可以配置距离和优先级,以便FortiGate能够识别到匹配多条路由的任何目的地的最佳路由。你将在本课的后面学习距离和优先级。
例如,在简单的家庭网络中,DHCP会自动检索并配置路由。然后,你的调制解调器通过ISP网络路由器发送所有传出的流量,该路由器可以将数据包转发到目的地。这通常被称为缺省路由,因为在缺省情况下,所有不匹配任何其他路由的流量都将使用这条路由进行路由。上图显示的例子是一个默认路由。目的子网0.0.0.0/0.0.0.0匹配任意子网内的所有地址。大多数部署在网络边缘的FortiGate设备都至少有一条这样的缺省路由,以确保internet流量被转发到ISP网络。
对于FortiGate具有直接二层连通性的子网,不需要静态路由。
如果创建的防火墙地址类型为子网或FQDN,则可以使用该防火墙地址作为一条或多条静态路由的目的地址。
首先,启用防火墙地址配置中的静态路由配置。启用后,对于指定地址的静态路由,目的地址下拉列表中可以使用该防火墙地址对象。
对于大型网络,手工配置数百条静态路由可能不太现实。你的FortiGate可以帮助你自动学习路线。FortiGate支持RIP、OSPF、BGP、IS-IS等多种动态路由协议。
在动态路由中,FortiGate与附近的路由器通信,以发现它们的路径,并发布自己的直连子网。发现的路径会自动添加到FortiGate路由表中。因此,请验证你的邻居路由器是可信的和安全的!
更大的网络也可能需要在多条有效路径之间平衡路由负载,并检测和避免路由器宕机。这节课后面你会学到更多。
静态路由比较简单,通常用于小型网络中。然而,基于策略的路由更加灵活。它们可以匹配的不仅仅是目的IP地址。例如,如果有两条链路,一条是慢链路,一条是快链路,可以将低优先级源IP的数据包路由到慢链路上。
动作为转发的策略路由优先级高于静态路由和动态路由。因此,如果一个数据包匹配策略路由,FortiGate将绕过任何路由表查找。
与静态路由一样,策略路由也必须是有效的:需要有目的地址和网关,不能使用断开连接(down)接口。对于策略路由,报文也必须匹配所有指定的子网、ToS位和端口号。因此,如果你不希望某个设置包含在匹配条件中,则将其留空。
FortiGate将策略路由保存在单独的路由表中,且优先级高于常规路由表。
当数据包命中一条策略路由时,FortiGate会采取两种动作之一。要么直接将数据包发送到配置的接口和网关,跳过路由表,要么停止对策略路由的检查,根据路由表进行路由。
记住,对于将流量转发到特定接口的策略路由,在路由表中应该有一个使用该接口的目的地活动路由。否则,策略路由不能正常工作。
如果你需要通过特定的WAN链接将流量路由到公共互联网服务(如Amazon-AWS或Apple Store),会发生什么情况?假设你有两个ISP,你想通过一个ISP路由Netflix流量,而你所有的其他互联网流量都通过另一个ISP。为此,需要了解Netflix的IP地址,并配置静态路由。在此之后,必须经常检查IP地址是否有变化。
互联网服务数据库(ISDB)有助于使这种类型的路由更容易和更简单。ISDB表项应用于静态路由,有选择地通过特定的WAN接口将流量路由出去。
尽管ISDB路由被配置为静态路由,但它们实际上是策略路由,在路由表中优先于任何其他路由。因此,ISDB路由被添加到策略路由表中。
通过图形界面开启IPv6地址的路由配置,必须在可见功能菜单中开启IPv6,然后你才能创建IPv6地址的静态路由和策略路由。
启用IPv6功能还可以为动态路由协议的IPv6版本启用GUI配置选项。
答案:A
答案:B
现在你了解了FortiGate上的路由。接下来,你将了解路由监视器和路由属性。
完成本节后,你应该能够实现上图显示的目标。
FortiGate GUI上的路由表监视器显示了活动的路由。
除了静态路由,还有哪些路由显示在这里?
● 直连子网:为FortiGate接口分配子网时,类型列会自动添加到该子网的已连接路由。若要显示已连接的路由,则各接口链路必须处于up状态。也就是说,如果某个接口down,或者没有建立链路,则不添加路由。
● 动态路由:在较大的网络中,FortiGate可以通过BGP或OSPF等协议从其他路由器接收路由。FortiGate用类型列下的路由协议名称将这些路由添加到路由表中。
哪些配置的路由没有显示在路由表监视器中?
● 不活跃路由:如果一个接口在管理上是down的,它的链路是down的,或者它的网关已经被链路监视器检测到死亡,那么这条路由就被认为是不活动的,不会被添加到路由表中。
● 备用路由:这些是有效的重复路线,有更高的距离。例如:第二个默认静态路由具有较高的距离;与另一条静态路由到达同一目的地的动态路由,如BGP、RIP或OSPF。但由于静态路由的距离较短,因此在路由表中不显示动态路由。
策略路由在单独的表中查看。ISDB路由也作为策略路由添加到策略路由监视器中。
路由监控器为路由监控器提供扩展的路由查找。该功能既检查策略路由,也检查常规路由表。如果路由匹配策略路由,则会重定向到GUI上的策略路由页面。
在路由查找中,你可以指定目的地址,也可以指定目的端口、源IP、协议和源接口,以便根据这些条件搜索路由。
路由表中列出的每条路由都包含几个具有关联值的属性。
网络列列出要匹配的目的IP地址和子网掩码。接口列列出了将用于发送报文的接口。
FortiGate使用距离、度量和优先级属性来做出各种路线选择决策。你将在本节课的后面学习这些。
距离,或管理距离,是一个数字,路由器使用它来确定哪个路由是一个特定目的地的首选。如果有两条到同一目的地的路由,则认为距离较短的那条更好(活动),用于路由。距离较大(备用)的路由没有安装到路由表中。
缺省情况下,RIP协议学习到的路由的距离值大于OSPF协议学习到的路由的距离值。OSPF被认为比RIP更精确。
以下是FortiGate上的默认距离:
● 0 - 直接连接
● 5 - DHCP网关
● 20 - 外部BGP (EBGP) 路由
● 200 - 内部BGP (IBGP) 路由
● 110 - OSPF路由
● 120 - RIP路由
● 10 - 静态路由
在处理通过动态路由协议学习到的路由时,metric属性用于确定到达目的地的最佳路由。如果两条路由的距离相同,则使用度量值打破平局。选择度量值最低的路由进行路由。
度量值的度量方式取决于路由协议。例如,RIP使用跳数,即数据包到达目的地址所必须经过的路由器数。OSPF使用cost, cost由链路的带宽大小决定。
当多条静态路由的距离值相同时,它们都被安装在路由表中。那么将使用哪条路由来路由匹配的数据包呢?在上图所示的场景中,FortiGate使用优先级值作为决胜局来确定最佳路线。优先级低的路由总是优先。
优先级属性只适用于静态路由,在GUI界面的高级选项中配置。缺省情况下,所有静态路由的优先级为0。
优先级值可以在静态路由配置中查看,也可以在CLI的路由表中查看,本节将详细介绍。它们不会显示在GUI路由表中。
答案:A
答案:B
答案:B
现在你了解了路由监视器和路由属性。接下来,你将了解ECMP路由。
通过在ECMP中展示能力,你应该能够识别实现ECMP的需求,并实现ECMP负载均衡。
到目前为止,你已经了解了路由器用来识别到目的地的最佳路由的不同路由属性。那么,当到达相同目的地的两个或多个相同类型的路由共享所有属性的相同值时,会发生什么呢?
所有路由都安装在路由表中,FortiGate将在所有路由之间对流量进行负载平衡。这被称为等价多路径(ECMP)。
ECMP支持以下四种负载均衡方式:根据源IP地址、源和目的IP地址、路由或接口权重、接口卷阈值在相同的路由之间进行会话负载均衡。
使用源IP方式时,希望所有来自同一源IP的流量都使用相同的路径。源-目的IP方法的工作原理与此类似,但它也考虑了目的IP。因此,从特定源到特定目标的会话应该使用相同的路径。
在ECMP负载均衡方式设置为权重的情况下,FortiGate通过生成一个随机值来分配不同目的IP的会话,以识别需要选择的路由。选择一条路由而不是另一条路由的概率是基于每个路由或接口的权重值。权重越大,被选中的可能性越大。
还有一种额外的方法称为基于使用(或溢出)。在基于使用的负载均衡中,FortiGate使用一条主路由,直到达到流量阈值之后,它使用下一个可用的路由。
如果其中一条ECMP路由发生故障并从路由表中删除,流量将通过剩余的路由进行路由。路由故障转移不需要特定的配置。
FortiGate使用source-ip-based作为默认的ECMP方法。你可以使用上图显示的命令在CLI中更改此设置。
对于基于溢出ECMP,你必须在接口级别配置额外的设置。对于基于权重的ECMP,必须为接口或路由分配权重值。你可以在CLI中使用上图显示的命令来完成这一操作。
在上图所示的场景中,FortiGate为10.0.4.0/24子网提供了两个相等的候选路由,分别使用port1和port2。FortiGate采用默认的基于源的ECMP方式,可以使用任意一条路由从用户A和用户B下发到10.0.4.0/24子网的流量。如果port1丢失,FortiGate会自动使用port2下发到10.0.4.0/24子网的所有流量。
ECMP允许你为同一目的地维护多个链路,并提供内置的故障转移。你可以将其部署到任何具有高带宽需求和关键任务的网络资源。对这些资源使用ECMP允许你聚合多个链路的可用带宽,并在这些链路上负载均衡流量。
使用ECMP时,必须有正确的防火墙策略,以允许流量从参与ECMP的所有接口出口。
虽然你可以使用ECMP来维护FortiGate上的多个internet (WAN)连接,但使用软件定义的WAN (SD-WAN)特性来实现这一点会更有效。你仍然可以对内部资源使用ECMP。
答案:B
答案:A
现在你了解了ECMP路由。接下来,你将了解反向路径转发。
通过展示RPF的能力,你应该能够识别和阻止网络中的IP欺骗攻击。
出于路由和安全原因,有时会丢弃数据包。RPF是一种保护FortiGate和你的网络免受IP欺骗攻击的机制。它检查是否有返回数据包源的路由。这个检查在任何新会话的第一个数据包上运行。
RPF的方法有两种:宽松和严格。
在上图所示的场景中,到达wan1的传入互联网流量被接受,因为默认路由是返回源的有效路由。
但是,有两个接口不路由一些传入流量:port1和wan2。port1不能路由流量,因为用户C的子网是10.0.4.0/24。该子网没有通过port1的活动路由。因此,从10.0.4.0/24到port1的流量由于RPF检查失败而被丢弃。
另一个没有路由流量的接口是wan2。虽然wan2在物理上与internet相连,但对于wan2来说,只有10.0.2.0/24子网内的IP地址才是有效的源地址或目的地址。因此,来自任何其他来源的流量都没有通过RPF检查,并被丢弃。
那么,如何解决这个问题呢?
第一个问题通过通过port1添加到10.0.4.0/24的静态路由来解决。现在,当FortiGate运行RPF检查用户C的包时,它会通过port1找到一个到子网的活动路由,然后数据包就被接受了。
第二个问题也可以通过添加静态路由来解决。在本例中,它是wan2的缺省路由。第二条缺省路由必须与wan1的缺省路由具有相同的距离。这确保了这两条路由在路由表中都是活动的。它们可以有不同的优先级,但它们必须有相同的距离才能活跃。
上图展示了一个例子,当两条相同距离,但不同优先级的路线被要求时。其中一条路由是最好的(具有最低优先级的那条),但这两条路由都是活动的。最佳路由用于出站流量,但两者都可以在RPF检查不失败的情况下接收到入站连接。
FortiGate可以严格或宽松地执行RPF。
宽松模式下,只要数据包的入接口有一条到源IP地址的主路由,数据包就会被接收。它不必是最好的路线,只要是一个活跃的路线。
严格模式下,FortiGate检查到源IP地址的最佳路由是通过入接口。该路由不仅必须是活动的(在宽松模式的情况下),而且必须是最好的。
你可以通过两种方式禁用RPF检查。启用非对称路由后,将关闭系统范围的RPF检测功能。然而,这降低了网络的安全性。反病毒、IPS等功能失效。
因此,如果需要禁用RPF检查,可以在接口级别使用上图中显示的命令来禁用RPF检查。
在上图所示的示例中,10.0.4.1向10.0.1.2发送SYN包,但欺骗10.0.1.1的源IP。这使得数据包看起来像是从port1后面的内部网络发起的。宽松RPF允许这种流量,因为wan1上的主路由是缺省路由(0.0.0.0/0)。
接着,10.0.1.2(用户B)向IP地址为10.0.1.1(用户A)的真实设备发送SYN/ACK报文。
因为10.0.1.1(用户A)不期待任何SYN/ACK报文(因为它之前没有向10.0.1.2发送任何SYN报文),所以它用一个RST (reset)报文作为回应。
那么,在使用严格RPF的相同场景中会发生什么呢?
严格RPF丢弃SYN报文。即使wan1默认路由是10.0.1.0/24子网的活动路由,它也不是最好的路由。最好的路由是通过port1接口,因为它具有较低的距离值。请记住,直连路由的缺省距离值是0,小于缺省路由的距离值10。
虽然严格RPF更安全,但如果使用动态路由,它可能会导致误报。动态路由变化很快,每次首选路由变化时,FortiGate都会丢弃合法数据包。一般情况下,建议将宽松RPF与阻断欺骗流量的防火墙策略结合使用,而不是为此目的使用严格RPF。
答案:A
答案:B
现在你了解RPF了。接下来,你将了解路由最佳实践。
通过展示路由最佳实践的能力,你应该能够在自己的网络和路由设计中应用它们,以维护有效和高效的路由配置。
当使用ECMP路由时,你不需要为路由故障转移实现任何额外的东西。由于ECMP的设计,路由故障后自动应用。当你不使用ECMP时,如何实现路由故障转移?
链路健康监控是一种用于检测路径上的路由器何时故障的机制。它经常用于现场有冗余路由器的地方,如双ISP链路。配置后,FortiGate会周期性地通过其中一个网关向充当信标的服务器发送探测信号。服务器可以是正常情况下可以通过该路径访问的任何主机。通常,最好选择具有健壮基础设施的稳定服务器,并选择服务器通常响应的协议。
如果FortiGate停止接收来自服务器的回复,那么使用该网关的所有路由都将从路由表中删除。也可以通过管理方式使接口down,删除使用该接口的所有路由。当被监视的路由被删除时,FortiGate继续发送链路健康监控信号。一旦FortiGate收到回复,它就会重新激活相关的路由。
选择一个间接连接的服务器可能很有用,它位于FortiGate网关之外的一个或两个跃点。这并不完全测试一个网关的可用性,而是测试多个网关的可用性。这样,FortiGate将准确地指示服务和后续跳的可用性。
通过命令行配置链路健康监控。
必须配置出接口、网关路由器的IP地址、IP地址和协议(http、ping、udp-echo、tcp-echo或twamp)。
必须启用update-static-route设置,以确保在链路健康监控检测到中断的情况下,FortiGate删除任何匹配的静态路由。这允许任何配置了更高距离的辅助路由被激活。
可以配置多个链路健康监控,例如为每个ISP配置一个。
在上图的例子中,FortiGate有两个ISP连接:ISP1和ISP2。在每个ISP的网络中,都有FortiGate正在探测的服务器。
在故障切换前,由于距离较低,wan1缺省路由在路由表中是活跃的。wan2缺省路由配置了更高的距离,因此为备用路由。链路健康监控通过wan1接口探测ISP1网络内的ISP1- server。当ISP1-Server不响应探测请求时,FortiGate会将主路由从路由表中删除,并且由于存在第二条通过wan2的缺省路由,因此激活这条缺省路由将流量路由到internet。
在这个双ISP场景中,你的第一反应可能是实现ECMP路由。毕竟,ECMP将允许你同时利用这两个ISP链路,这增加了互联网流量的可用带宽。然而,实现ECMP并不总是可行的。大多数情况下,这与成本有关——第二条ISP可能是根据带宽或数据使用情况收费的。在这里,你可以使用距离属性并结合链接健康监控来实现路由故障转移。
路由最佳实践始于网络设计阶段。静态路由最大的挑战之一是如何处理不连续的网络。虽然动态路由协议能够更好地处理这些问题,但它们仍然会在使用大型路由表和路由汇总时产生问题。在某些情况下,你不能单独使用静态路由来处理不连续的网络,可能需要使用NAT来允许流量。
另一个需要考虑的挑战是非对称路由。非对称路由是指在同一会话中,数据包可能通过不同的路由到达目的地址。因此,如果你的网络中有多条路径用于相同的目的地,请考虑使用距离属性来确保一次只有一条路由是活动的。你也可以考虑使用ECMP;然而,这种方法的有效性还取决于远程端路由器是否也能够实现ECMP,或者某种形式的会话持久性。换句话说,远程端路由器也必须通过相同的路径发送回应答包。
虽然你可以配置FortiGate以允许非对称路由,但非常不鼓励这样做。启用非对称路由将禁用FortiGate状态检测功能。反病毒和入侵防御将无效,因为FortiGate不知道会话,并单独处理每个包。在接口层禁用RPF检查。
如果你发现自己创建了多个主机路由(/32子网掩码),请研究是否可以将它们汇总到一个超级网络中。动态路由协议被设计用来聚合连续的网络以保持路由表的小,从而减少路由更新的规模和路由查找所需的时间。在创建静态路由时,应该采用相同的方法。
在配置策略路由时,将其视为路由表的异常。如果你发现自己必须不断地创建策略路由,那么你应该重新评估静态路由配置,看看是否可以首先对其进行调整。记住,策略路由覆盖路由表。因此,覆盖策略路由的唯一方法是配置另一个策略路由。如果你不计划你的策略路由配置,它很快就会成为一个问题。此外,大型策略路由表也很难排除故障。
最后,如果多个路由无法进行ECMP路由,请将链路健康监控与距离属性结合使用,以确保有路由故障转移。
如果在转发流量日志中启用目的接口列,则可以看到经过FortiGate设备的流量的出接口。你可以使用此信息来确定哪个路由应用到哪个流量流,以及确定任何路由配置问题。
如果你的防火墙策略没有应用任何安全配置文件,你应该在你的策略中启用所有会话的日志记录;否则,FortiGate不会生成任何转发流量日志。使用此功能时要小心,因为如果防火墙策略处理大量流量,启用所有会话日志记录可能会生成大量日志。你应该在必要时启用它,然后立即禁用它。
答案:B
答案:A
现在你了解了一些路由最佳实践。接下来,你将了解路由诊断。
通过展示路由诊断的能力,你应该能够确定网络中任何路由故障的根本原因。
上图显示的CLI命令显示了路由表中所有活动路由。最左边一列表示路由的来源。
路由属性显示在方括号内。第一对属性中的第一个数字是距离,它适用于动态和静态路由。第二个数字是度量,它只适用于动态路由。
静态路由也可以有优先级和权重属性,它们显示为各自路由的最后一对属性。
这个命令不会显示备用或未激活的路由。例如,当到同一目的子网的两条静态路由的距离不同时,距离较低的那条被认为是活动的,因此被安装在路由表中。距离较高的被认为是备用的,因此不在路由表中安装。因此,该命令只显示距离最小的路由(活动路由)。
如果需要显示活跃、备用和不活跃路由,请使用上图中的CLI命令。
在上图的示例中,该命令显示了一条备用路由。此路由为备用路由,因为port1上的缺省路由距离较短。输出还显示了一条不活跃的路由。当相应接口的管理状态为down,或者链路状态为down,或者当链路监视器检测到网关失效时,路由被标记为inactive。
策略路由和使用ISDB地址创建的静态路由不会添加到路由表中;它们被添加到策略路由表中。
你可以使用上图中显示的CLI命令来显示这些路由。该命令列出了策略路由表中所有激活的路由。
数据包捕获或嗅探器是调试路由问题最有用的信息来源之一。FortiGate包括一个内置的流量嗅探工具。当数据包通过时,可以使用它来验证数据包的出接口和入接口。你可以从GUI或CLI运行内置的嗅探器。CLI命令的语法显示在上图。
<interface>是物理或逻辑接口的名称。如果你的帐户拥有访问配置文件super_admin,你可以在所有接口上指定任意来捕获。如果使用any选项,请记住嗅探器不会打印任何接口MAC地址。
过滤器类似于Linux上的tcpdump。你应该配置特定的过滤器,以确保你只捕获需要的内容。你还可以指定<count>值,以便在捕获特定数量的数所包后自动停止嗅探器。否则,嗅探器将继续捕获数据包,直到你使用Ctrl + C手动停止它为止。你可以使用<time stamp>选项来打印时间戳信息。使用a打印绝对时间戳,或使用l(小写L)打印基于当地时区的时间戳。当将嗅探器输出与调试流消息相关联时,时间戳信息特别有用。在本课程的后面部分,你将了解更多关于调试流程的内容。
缺省情况下,嗅探器使用接口上配置的MTU。<frame size>参数用来指定大于或小于接口MTU的长度。如果你使用any接口,嗅探器将默认为1600字节。
详细级别指定要显示多少信息。有6个不同的级别,这个表显示了哪些级别显示了IP报头、数据包负载、以太网报头和接口名称。
使用详细级别4快速查看流量是如何通过FortiGate的(如果数据包到达,FortiGate是如何将它们路由出去的)。你还可以使用级别4来检查FortiGate是否正在丢弃数据包。
详细级别3和6提供最多的输出。两者都显示IP有效负载和以太网头。你可以使用Perl脚本保存输出并将其导出到一个包捕获(pcap)文件。pcap文件可以被数据包分析器(如Wireshark)打开,以进行进一步的调查。你可以在Fortinet知识库网站(kb.fortinet.com)上找到将嗅探器输出转换为pcap的Perl脚本。
上图展示了两个数据包捕获输出的例子。第一个示例捕获了进出端口443的所有流量。它使用了冗长的文字,所以信息很容易阅读。它每行显示一个包,包含入/出接口、IP地址、端口号和包的类型(SYN、SYN/ACK等)。
第二个示例捕获所有来自或前往主机192.168.1.254的ICMP流量。在本例中,详细值为3,它更长且更难以读取,因为它包含包的IP有效负载。但是,如果需要将结果输出到Wireshark,这是两个详细级别中的一个(另一个是6)。
如果你的FortiGate型号有内部存储,你可以在GUI上捕获数据包。这些选项与CLI类似。要运行跟踪,请指定源接口和筛选器。
使用GUI而不是CLI的主要优势是什么?你可以下载可以使用Wireshark打开的pcap格式的输出,而不需要使用转换脚本。
无论使用哪种方法(CLI或GUI),数据包捕获过滤器都应该非常具体,以确保只捕获相关的数据包,而不会将大量数据写入磁盘。
答案:A
答案:B
答案:B
恭喜你!你已经完成了这一课。现在你将回顾你在这一课中涉及的目标。
上图展示了你在这节课中涉及的目标。
通过掌握本课所涉及的目标,你了解了如何配置、维护FortiGate路由配置,以及如何排除故障。