在本课程中,你将学习如何使用诊断命令和工具。

  在这节课中,你将学习上图显示的主题。  

  完成本部分后,你应该能够实现上图显示的目标。

  通过展示整体诊断能力,你将能够发现有关FortiGate状态的一般信息。

 诊断是找到问题根本原因的过程。

  为了定义任何问题,首先你必须知道你的网络的正常行为是什么。

  在上图显示的图表中,表示正常的范围以蓝色显示。这条蓝线到底是什么?它表示平均值,我们的基线。粗黑线是什么?这是当前的行为。当当前行为(黑线)离开正常范围时,就会发生异常事件。

  常态以多种方式进行测量和定义。它可以是性能:预期的CPU和内存利用率、带宽和流量。但是,它也可以是你的网络拓扑:哪些设备通常连接到每个节点。这也是行为:交通流量方向,哪些协议被阻止或代理,以及在一天、一周或一年中的特定时间使用的协议和应用程序的分布。

 定义网络正常的第一个方法是什么?

  流和其他正常行为的规范来自拓扑结构。因此,在故障诊断过程中,网络图是必不可少的。如果你使用Fortinet技术支持创建票据,你首先应该附上网络图。

  网络图有时会结合两种类型的图:

  ● 物理

  ● 逻辑

  物理图表显示了电缆、端口和设备如何在建筑物和柜子之间连接。逻辑图显示了虚拟局域网、IP子网和路由器之间的关系(通常在OSI第3层)。它还可以显示HTTP或DHCP等应用程序协议。

  当你配置设备并将其添加到安全架构中时,这些物理和逻辑拓扑结构在FortiGate设备的安全架构部分中可用。

 定义正常值的另一种方法是了解平均性能范围。持续收集显示正常使用的数据。

  例如,如果流量处理突然变慢,而FortiGate CPU使用率为75%,这表明了什么?如果CPU使用率通常为60-69%,那么75%可能仍然是正常的。但如果正常值是12-15%,可能会有问题。

  获取时间和日期的典型最大值和最小值的数据。也就是说,在工作日或节假日,网络图中的每个接口每秒应该输入或输出多少位?

  FortiGate提供了一系列监控流量和资源使用情况的工具,包括FortiView监视器和仪表板小部件。例如,你可以监控接口带宽,并将时间框架调整为一小时、一天或一周。

 我们如何获取有关当前状态的信息?首先,看看CLl命令;即使网络问题使GUl访问缓慢或不可能,你也可以通过本地控制台使用它们。

  一些命令提供系统状态。get system status命令主要提供通用信息。输出显示:

  ● 型号

  ● 序列号

  ● 固件版本

  ● 主机名称

  ● FortiGuard许可证状态

  ● 系统时间

  ● FortiGuard反病毒、IPS和IP声誉数据库等版本

 假设FortiGate可以通过port1联系一些主机,但不能联系其他主机。问题是物理层还是链路层?两者都不是。至少部分网络的连接性已被证明。相反,你应该检查网络层。要测试这一点,像往常一样,从ping和traceroute开始。

  对于IPv6也有相同的命令:例如,executeping变成executeping6。

  记住:地点很重要。只有当你使用与要排除故障的通信流相同的路径时,测试才准确。要从FortiGate(例如到FortiAnalyzer或FortiGuard)进行测试,请使用FortiGate执行ping和执行traceroute CLI命令。但是,要通过FortiGate测试路径,还可以从端点(从Windows、Linux或Mac OSX计算机)使用ping和tracert或traceroute,而不仅仅是从FortiGate命令行。

  由于NAT和路由,你可能需要指定不同的ping源IP地址,默认地址是出站接口的IP。如果没有响应,请验证目标是否配置为回复ICMP回声请求。

 非常好!你已经了解了一般诊断。接下来你将了解数据包嗅探器和调试流。

 完成本部分后,你应该能够实现上图显示的目标。

  通过展示数据包嗅探器和调试流的能力,你将能够诊断连接问题。

  FortiGate 包含嗅探器命令,当故障排除需要你进一步挖掘以诊断问题的根源时,这是一个有用的工具。

  嗅探器命令可以嗅探物理或虚拟接口上的数据包。如果嗅探器命令设置为any,它可以同时嗅探所有可用的接口。

  你可以使用过滤器自定义并缩小想要捕获的数据包的范围。嗅探器过滤器使用伯克利包过滤(BPF)语法。

  1:打印报文头

  2:打印报文头和IP头中的数据

  3:打印报文头和以太网头中的数据

  4:用接口名称打印数据包的标题

  5:打印带有接口名的报文的报头和IP数据

  6:打印带有接口名的报文头和来自以太网的数据

  如果需要对所有接口进行流量嗅探,则使用关键字any作为接口名称。

  通过按ctrl+C停止嗅探器,并检查丢弃的数据包。如果在嗅探期间有丢弃的数据包,这意味着并不是所有匹配嗅探过滤器的流量都可以被捕获。因此,你可能需要使用更严格的过滤器再次捕获流量。

  如果没有为时间戳指定选项,则调试将显示从它开始运行以来的时间(以秒为单位)。你可以预先添加本地系统时间,以便轻松地将数据包与另一个记录的事件关联起来。

  通过抓包工具,你可以实时查看GUl上的抓包输出,直到停止抓包过程。

  该工具可帮助你直接在GUl上查看抓包的详细信息。

  在设置抓包时,可以启用Filter,使用主机地址、端口号、协议名称等基本条件进行过滤。

  停止抓包后,可以将输出结果导出为pcap文件。

  如果FortiGate正在丢弃数据包,可以使用数据包捕获(嗅探器)来识别原因吗?要找到原因,应该使用调试(包)流。

  调试流一步一步地展示了CPU如何处理每个数据包。

  要使用调试流,请遵循以下步骤:

  1. 定义一个过滤器。

  2. 启用调试输出。

  3. 启动跟踪。

  4. 跟踪完成后停止跟踪。

  上图显示了关于diagnose debug flow命令的调试流程输出示例,该命令捕获了TCP三方握手的第一个数据包,即SYN数据包。它显示:

  ● 到达FortiGate的数据包,指示源和目标IP地址、端口号和传入接口

  ● FortiGate创建会话,表示会话ID

  ● 到达目的地址的路由,指明下一跳地址和出接口

  ● 匹配并允许此流量的策略ID

  ● 源NAT如何应用

 上图显示了SYN/ACK数据包的输出,该数据包来自与上一张幻灯片上显示的相同的诊断调试命令。它显示:

  ● 数据包到达,再次指示源和目标IP地址、端口号和传入接口 

  ● 此流量的现有会话ID。此编号与SYN数据包期间创建的会话ID相匹配。ID对每个会话都是唯一的,可用于跟踪会话的请求/回复数据包。

  ● 目的NAT是如何应用的。

  ● 到达目的地址的路由,再次指明下一跳IP地址和出接口。

  如果数据包被FortiGate丢弃,这个调试将显示该操作的原因。

  此工具对于许多其他故障排除情况都很有用,包括当你需要了解为什么数据包采用特定路由或为什么应用特定NAT IP地址时。

  通过调试流工具,你可以实时查看调试流在GUl上的输出,直到停止调试进程为止。

  此工具可帮助你直接在GUI上检查数据包流详细信息。

  在停止调试流之后,你可以查看完成的输出,并根据时间、消息或功能对其进行过滤。你也可以将输出导出为CSV文件。

  你可以将调试流工具设置为使用基本或高级筛选器选项。基本允许你使用主机地址、端口号和协议名称等基本条件进行过滤。高级允许你根据源IP地址、源端口、目的IP地址、目的端口和协议进行过滤。

  打开调试流后,GUl会根据过滤器显示抓包。

  当你停止调试流时,FortiGate将显示一个数据包跟踪输出,你可以下载并将其保存为CSV文件。

  这两种输出之间的主要区别是显示实时消息以进行实时分析,但是你可以保存数据包跟踪输出并下载它们以供将来参考。

  调试流工具显示了对数据包的处理,上图总结了会话的第一个数据包在进入、通过和退出FortiGate时所经历的步骤。

  FortiGate首先执行一些安全检查,例如ACL、HPE和IP完整性头检查,以确保数据包在可接受的参数范围内,然后才允许它们通过其余的进程。这些检查由网络处理器(NP)处理,以尽量减少对FortiGate CPU的影响。

  每个版本的NP都有定义哪些流量可以卸载的标准。NP通过在会话建立并将会话密钥安装到NP中后,允许卸载会话绕过FortiGate CPU,从而提高了整体性能。NP还可以处理IPsec VPN的加解密操作,硬件支持配置的加密和哈希算法。

  内容处理器(CP)的功能就像FortiGate CPU的协处理器一样,通过卸载某些任务来提高整体系统性能,例如使用入侵防御系统(IPS)引擎进行基于流量的UTM检查的模式匹配,用于深度SSL检查的SSL/TLS解密和加密,以及支持算法的IPsec加密和解密操作。

  请注意,虚拟FortiGate设备的数据包处理是相同的,唯一的区别是cpu处理所有进程,而不是将其中一些进程卸载给NP和CP。

  非常好!你已经了解了数据包嗅探器和调试流。接下来你将了解FortiGate CPU和内存诊断。

  完成本部分后,你应该能够实现上图显示的目标。

  通过展示对CPU和内存使用情况的熟练理解,你将能够诊断最常见的CPU和内存问题。

  并非所有问题都是网络连接故障。有时,设备会出现资源问题。

  还有什么可能导致延迟?在消除了物理介质和带宽使用问题之后,应该检查FortiGate资源使用情况:CPU和内存。

  如果使用率很高,有一些工具可以识别哪个特性消耗了最多的CPU。此外,如果你确切地知道哪个更改(如果有的话)与问题开始的时间相对应,则可以更快地进行故障排除。

  你可以使用该进程来查看正在运行的进程及其CPU和内存使用水平。你可以在进程监视器中应用过滤器、排序和终止进程。

  接下来,检查diagnose sys top的输出。它列出了使用最多CPU或内存的进程。一些常见的过程包括:

  ● ipsengine、scanunit等巡检进程

  ● fgfmd用于FortiGuard和FortiManager连接

  ● forticron用于调度

  ● 管理流程(newcli、miglogd、cmdb、sshd和httpsd)

  要按最高CPU使用率对列表进行排序,请按Shift+P。要按最高RAM使用情况排序,请按Shift+M。

 如果内存使用率过高,FortiGate可能会进入内存保存模式。当FortiGate处于内存保存模式时,它必须采取措施防止内存使用增加,这可能导致系统变得不稳定和不可访问。

  内存保存模式从来都不是理想的状态,因为它会影响用户流量。 

  三个不同的可配置阈值定义了FortiGate何时进入和退出保护模式。如果内存使用量超过定义为红色阈值的总RAM百分比,FortiGate将进入保护模式。设备采取的操作取决于设备配置。

  如果内存使用持续增加,可能会超过极限阈值。当内存使用超过这个最高阈值时,所有新会话都将被丢弃。

  第三个配置设置是绿色阈值。如果内存使用量低于这个阈值,FortiGate退出保护模式。

 在保护模式下,FortiGate采取什么行动来保护内存?

  ● FortiGate不接受配置更改,因为它们可能会增加内存使用量。

  ● FortiGate不运行任何隔离措施,包括将可疑文件转发到FortiSandbox。

  ● 通过配置config ips global下的fail-open设置,控制IPS引擎在IPS套接字缓冲区满时的行为。

  如果IPS引擎没有足够的内存来构建更多会话,故障打开设置将决定FortiGate是否应该在不检查的情况下丢掉会话或绕过会话。

  重要的是要明白,IPS故障打开设置不仅仅是用于保护模式,每当IPS失败时,它就会启动。大多数故障是由于高CPU问题或高内存(保护模式)问题造成的。启用该设置,以便在保护模式(或任何其他IPS故障期间)数据包仍然可以传输,但不会被IPS检查。禁用该设置,以便丢弃新的传入会话的数据包。

  请记住,IPS引擎用于所有类型的基于流量的检查。当FortiGate必须识别网络应用程序时,无论目标TCP/UDP端口如何(例如,用于应用程序控制),也会使用IPS引擎。请注意,NTurbo不支持故障打开设置。如果触发失败打开,即使启用了失败打开设置,通常会使用NTurbo加速的新会话也会被丢弃。

  av-failopen设置定义了应用于任何基于代理的被检查流量的操作,而单元处于保存模式(并且只要内存使用不超过极端阈值)。该配置同样适用于基于流程的防病毒检测。可以配置三种不同的操作:

  ● off:所有启用了内容扫描的新会话都不通过,但FortiGate会处理当前会话。

  ● pass(默认):在FortiGate切换回非保护模式之前,所有新会话都不进行检查而通过。

  ● one-shot:类似于流量不经检查就通过。然而,它将继续绕过反病毒代理,即使它离开保护模式。管理员必须更改此设置,或者重新启动单元以重新启动反病毒扫描。

  但是,如果内存使用超过极限阈值,无论FortiGate配置如何,新会话总是被丢弃。

 diagnostic hardware sysinfo conserve命令用于检测FortiGate设备当前是否处于内存保护模式。

  答案:A

  答案:A 

  答案:A  

 恭喜你!你已经完成了这节课。

  现在,你将回顾本课所涉及的目标。

  上图展示了你在本课中所涉及的目标。

  通过掌握本课所涵盖的目标,你学习了如何使用诊断命令和工具,并了解了有关FortiGate状态和操作的更多信息。


 

更多推荐