在本课中,你将学习使用诊断命令和工具。
完成本课程后,你应该能够实现上图显示的目标。
通过展示一般诊断能力,你将能够发现有关FortiGate状态的一般信息。
诊断是找出问题根本原因的过程。
为了定义任何问题,首先你必须知道网络的正常行为是什么。
在上图显示的图表中,表示正常的范围以蓝色显示。这条蓝线到底是什么?它表示平均值——我们的基线。粗黑线是什么?这是目前的行为。当当前行为(黑线)离开正常范围时,正在发生异常事件。
正常是以多种方式测量和定义的。它可以是性能:预期的CPU和内存利用率、带宽和流量。但是,它也可以是你的网络拓扑:哪些设备通常在每个节点连接。它也是行为:流量方向,哪些协议被阻止或代理,以及在一天、一周或一年的特定时间使用的协议和应用程序的分布。
定义网络正常的第一种方法是什么?
流和其他正常行为的规范来自拓扑学。因此,在故障排除过程中,网络图是必不可少的。如果你使用Fortinet技术支持创建ticket,你应该首先附上网络图。
网络图有时结合了两种类型的图表:
● 物理
● 逻辑
物理图显示了建筑物和橱柜之间的电缆、端口和设备是如何连接的。逻辑图显示了虚拟局域网、IP子网和路由器之间的关系(通常在OSI第3层)。它还可以显示HTTP或DHCP等应用程序协议。
定义正常的另一种方法是了解平均性能范围。持续收集显示正常使用情况的数据。
例如,如果流量处理突然变慢,而FortiGate CPU使用率为75%,这表示什么?如果CPU使用率通常为60-69%,那么75%可能仍然正常。但如果正常值为12-15%,可能会有问题。
获取时间和日期的典型最大值和最小值的数据。也就是说,在工作日或节假日,网络图中每个接口每秒应该进出多少位?
我们如何获得有关当前状态的信息?首先,看看CLI命令;你可以通过本地控制台使用它们,即使网络问题导致GUI访问缓慢或无法访问。
一些命令提供系统状态。获取系统状态命令主要提供通用信息。输出显示:
● 型号
● 序列号
● 固件版本
● 主机名称
● FortiGuard许可状态
● 系统时间
● FortiGuard反病毒、IPS和IP声誉数据库等版本
假设FortiGate可以通过port1联系一些主机,但不能通过其他主机联系。问题是在物理层还是链接层?两者都不是。至少网络的一部分已经证明了连接性。相反,你应该检查网络层。要测试这一点,像往常一样,从ping和traceroute开始。
IPv6也存在相同的命令:例如,execute ping变成execute ping6。
记住:位置很重要。只有当你使用与正在故障排除的流量相同的路径时,测试才是准确的。要从FortiGate(例如到FortiAnalyzer或FortiGuard)进行测试,请使用FortiGate execute ping和execute traceroute CLI命令。但是,要测试通过FortiGate的路径,也可以使用来自端点的ping和tracert或traceroute(来自Windows、Linux或Mac OSX计算机)而不仅仅是来自FortiGate CLI。
由于NAT和路由,你可能需要指定不同的ping源IP地址,默认地址是传出接口的IP。如果没有响应,请验证目标是否配置为响应ICMP回声请求。
FortiGate包括嗅探命令,当故障排除需要你进一步挖掘以诊断问题根源时,这是一个有用的工具。
嗅探命令可以在物理或虚拟接口上嗅探数据包。如果嗅探命令设置为any,它可以同时嗅探所有可用的接口。
你可以使用过滤器自定义和缩小要捕获的数据包。嗅探过滤器使用伯克利数据包过滤器(BPF)语法。
verbose设置有六个详细级别:
1:打印数据包标头
2:打印数据包的IP标头和数据
3: 打印数据包标头和以太网标头数据
4: 打印带有接口名称的数据包标头
5: 打印带有接口名称的IP数据包的标头和数据
6: 打印带有接口名称的以太网数据包的标头和数据
要嗅探所有接口中的流量,请使用关键字any作为接口名称。
按Ctrl+C停止嗅探,并检查丢弃的数据包。如果在嗅探期间丢弃了数据包,这意味着无法捕获与嗅探过滤器匹配的所有流量。因此,你可能需要使用更严格的过滤器再次捕获流量。
如果你没有为时间戳指定选项,调试将显示自开始运行以来的时间(以秒为单位)。你可以预先设置本地系统时间,以轻松地将数据包与另一个记录的事件相关联。
如果FortiGate正在丢弃数据包,可以使用数据包捕获(嗅探器)来识别原因吗?要找到原因,你应该使用调试(数据包)流程。
调试流程逐步显示CPU如何处理每个数据包。
要使用调试流程,请按照以下步骤操作:
1. 定义一个过滤器。
2. 启用调试输出。
3. 开始跟踪。
4.完成后停止跟踪。
上图显示了上述diagnose debug flow命令的调试流输出示例,该命令捕获了TCP三向握手的第一个数据包,即SYN数据包。它显示:
● 到达FortiGate的数据包,指示源和目标IP地址、端口号和传入接口
● FortiGate创建会话,指示会话ID
● 前往目的地的路线,指示下一跳IP地址和传出接口
● 匹配并允许此流量的策略ID
● 源NAT是如何应用的
上图显示了SYN/ACK数据包的输出,该数据包来自上一张图片上显示的相同诊断调试命令。它显示:
● 数据包到达,再次指示源和目标IP地址、端口号和传入接口
● 此流量的现有会话的ID。此数字与SYN数据包期间创建的会话的ID相匹配。ID对每个会话都是唯一的,对于跟踪会话的请求/应求数据包非常有用。
● 如何应用目标NAT
● 通往目的地的路线,再次指示下一跳IP地址和传出接口。
如果数据包被FortiGate丢弃,此调试将显示该操作的原因。
此工具对许多其他故障排除案例很有用,包括当你需要了解为什么数据包采取特定路由,或为什么应用特定的NAT IP地址时。
调试流工具允许你实时查看GUl上的调试流输出,直到你停止调试过程。
此工具可帮助你直接在GUI上检查数据包流详细信息。
停止调试流程后,你可以查看已完成的输出,并按时间、消息或功能进行过滤。你还可以将输出导出为CSV文件。
你可以将调试流工具设置为使用基本或高级过滤器选项。基本允许你使用主机地址、端口号和协议名称等基本标准进行过滤。高级允许你按源IP地址、源端口、目标IP地址、目标端口和协议进行过滤。
启动调试流后,GUl开始根据过滤器显示捕获的数据包。
当你停止调试流程时,FortiGate会显示一个数据包跟踪输出,你可以将其下载并保存为CSV文件。
这两种输出的主要区别在于,实时消息显示用于实时分析,但你可以保存数据包跟踪输出并下载以供将来参考。
并非所有问题都是网络连接故障。有时,设备中存在资源问题。
还有什么可能导致延迟?在你消除了物理媒体和带宽使用问题后,你应该检查FortiGate资源使用情况:CPU和内存。
如果使用率很高,有一些工具可以确定哪个功能消耗的CPU最多。此外,如果你确切知道哪些更改(如果有的话)与问题开始的时间相对应,你可以更快地进行故障排除。
你可以使用该进程来查看正在运行的进程及其CPU和内存使用水平。你可以在进程监视器中应用过滤器、排序和终止进程。
接下来,diagnose sys top的输出。它列出了使用最多CPU或内存的进程。一些常见的进程包括:
● ipsengine、scanunitd和其他检查进程
● reportdk
● fgfmd用于FortiGuard和FortiManager连接
● forticron用于调度
● 管理流程(newcli、miglogd、cmdb、sshd和httpsd)
按Shift+P按高CPU使用率排序。按Shift+M按高内存使用率排序。
如果内存使用量过高,FortiGate可能会进入内存保护模式。当FortiGate处于内存保护模式时,它必须采取行动防止内存使用量增加,这可能会导致系统变得不稳定和无法访问。
内存护存模式从来都不是理想的状态,因为它会影响用户流量。
三个不同的可配置阈值定义了FortiGate何时进入和退出保护模式。如果内存使用量超过定义为红色阈值的总RAM的百分比,FortiGate将进入保护模式。设备采取的操作取决于设备配置。
如果内存使用量持续增加,可能会超过极端阈值。当内存使用量高于这个最高阈值时,所有新会话都会被丢弃。
第三个配置设置是绿色阈值。如果内存使用量低于此阈值,FortiGate将退出保护模式。
FortiGate在保护模式下采取了哪些行动来保护内存?
● FortiGate不接受配置更改,因为它们可能会增加内存使用量。
● FortiGate不会运行任何隔离操作,包括将可疑文件转发到FortiSandbox。
● 你可以在config ips global下配置fail-open设置,以控制IPS套接字缓冲区已满时IPS引擎的行为。
如果IPS引擎没有足够的内存来构建更多会话,则fail-open设置决定FortiGate是否应该放弃会话或不经检查就绕过会话。
重要的是要明白,IPS fail-open设置不仅仅是为了保护模式,每当IPS失败时,它就会启动。大多数故障是由于高CPU问题或高内存(保护模式)问题。启用该设置,以便数据包仍然可以在保护模式下(或任何其他IPS故障期间)传输,但不会被IPS检查。禁用该设置,以便为新的传入会话丢弃数据包。
请记住,IPS引擎用于所有类型的基于流量的检查。当FortiGate必须识别网络应用程序时,也使用IPS引擎,无论目标TCP/UDP端口如何(例如,用于应用程序控制)。请注意,NTurbo不支持fail-open设置。如果触发了失败打开,即使启用了fail-open设置,通常使用NTurbo加速的新会话也会被删除。
av-failopen设置定义了当设备处于保护模式时应用于任何基于代理的检查流量的操作(只要内存使用量不超过极端阈值)。此设置也适用于基于流的反病毒检查。可以配置三种不同的操作:
● off:所有启用内容扫描的新会话都不会通过,但FortiGate会处理当前的活动会话。
● pass(默认):所有新会话都未经检查即可通过,直到FortiGate切换回非保留模式。
● one-shot:类似于未经检查的流量通过。然而,即使在离开保护模式后,它也会继续绕过反病毒代理。管理员必须更改此设置,或重新启动设备以重新启动反病毒扫描。
但是,如果内存使用量超过极端阈值,则无论FortiGate配置如何,新会话都会被丢弃。
diagnose hardware sysinfo conserve命令用于识别FortiGate设备目前是否处于内存保护模式。
FortiGate的另一个不良状态是fail-open会话模式。此模式启动,不是在高内存情况下,而是当FortiGate上的代理耗尽可用套接字以处理更多基于代理的时。
如果启用了av-failopen-session,FortiGate将允许所有会话。否则,默认情况下,它会阻止需要基于代理的检查的新会话,直到新的套接字可用。
答案:A
答案:A
答案:A
上图显示了你在本课中涵盖的目标。
通过掌握本课中涵盖的目标,你学习了如何使用诊断命令和工具,并了解了有关FortiGate状态和操作的更多信息。