在本节课中,你将学习如何使用诊断命令和工具。
本节课,你将学习上图显示的主题。
通过展示一般诊断能力,你将能够发现有关FortiGate状态的一般信息。
为了定义任何问题,首先必须知道网络的正常行为是什么。
在这上图显示的图表中,正常范围用蓝色表示。这条蓝线到底是什么?它表示平均值——我们的基线。这条粗黑的线是什么?这是当前的行为。当当前行为(黑线)离开正常范围时,发生了异常事件。
正常的测量和定义有很多方式。它可以是性能:预期的CPU和内存利用率、带宽和通信量。但是,它也可以是你的网络拓扑:每个节点上通常连接哪些设备。它也是行为:流量的流向,哪些协议被阻塞或代理,以及在一天、一周或一年的特定时间使用的协议和应用程序的分布。
定义网络中什么是正常的第一种方法是什么?
正常行为的流和其他规范来自拓扑。因此,在故障排除过程中,网络图是必不可少的。如果使用Fortinet Technical Support创建票据,首先应该附上网络图。
网络图有时会合并两种类型的图:
● 物理
● 逻辑
通过物理图,可以了解建筑物与机柜之间线缆、端口、设备的连接情况。逻辑图显示了虚拟局域网、IP子网和路由器之间的关系(通常在OSI的第三层)。它还可以显示应用协议,如HTTP或DHCP。
定义正常的另一种方法是了解平均性能范围。在持续的基础上,收集显示正常使用的数据。
例如,如果流量处理突然变慢,而FortiGate CPU使用率为75%,这说明了什么?如果CPU使用通常是60-69%,那么75%可能仍然是正常的。但如果正常水平是12-15%,那可能就有问题了。
获取时间和日期的典型最大值和最小值的数据。也就是说,在工作日或假日,网络图中的每个接口每秒应该输入或输出多少位元?
我们如何获得关于当前状态的信息?首先,看看CLI命令;你可以通过本地控制台使用它们,即使网络问题使GUI访问缓慢或不可能。
一些命令提供系统状态。get system status命令提供了大部分通用信息。输出显示了:
● 型号
● 序列号
● 固件版本
● 主机名称
● FortiGuard许可状态
● 系统时间
● FortiGuard防病毒、IPS、IP信誉数据库等的版本
在物理层,故障排除分析哪些端口被插入,媒体容量,协商速度和双工模式。
在数据链路层,诊断通常分析有多少帧由于CRC错误或冲突而被丢弃。
根据型号和NIC驱动程序版本的不同,输出可能会有所不同。在所有情况下,输出都显示了物理MAC地址、管理状态和链路状态。
如果你怀疑IP地址冲突,或者IP地址被分配给了错误的设备,你可能需要查看ARP表。为此,可以使用get system arp命令。
它显示了FortiGate接口、IP地址和关联的MAC地址。此命令列出连接到FortiGate所在局域网段的所有外部设备的信息。此处不包含FortiGate当前的IP地址和MAC地址。
假设FortiGate可以通过port1联系一些主机,但不能联系其他主机。是物理层问题还是链路层问题?至少在部分网络中已经证明了连通性。相反,你应该检查网络层。要测试这一点,像往常一样,先从ping和traceroute开始。
IPv6也有同样的命令,例如:execute ping变为execute ping6。
记住:位置很重要。只有当您使用与正在进行故障排除的通信流量相同的路径时,测试才准确。要从FortiGate(例如FortiAnalyzer或FortiGuard)进行测试,请使用FortiGate执行ping和执行traceroute CLI命令。但是,要测试通过FortiGate的路径,还需要从终端(Windows、Linux或Mac OS X计算机)使用ping和tracert或traceroute,而不仅仅是从FortiGate命令行。
由于NAT和路由的原因,你可能需要指定一个不同的ping源IP地址——缺省地址是出接口的IP地址。如果没有响应,请检查目标器是否配置了应答ICMP echo请求的功能。
答案:B
答案:A
现在你了解了一般诊断。接下来,你将了解调试流。
通过在调试流程中展示能力,你将能够诊断连接问题。
如果FortiGate正在丢弃包,是否可以使用包捕获(嗅探器)来识别原因?要找到原因,你应该使用调试(包)流。
调试流程将逐步显示CPU如何处理每个包。
要使用调试流,请遵循以下步骤:
1. 定义一个过滤器。
2. 启用调试输出。
3. 启动跟踪。
4. 当跟踪完成时停止跟踪。
上图显示了一个调试流输出的示例,它捕获了TCP三次握手的第一个包,即SYN包。它显示:
● 到达FortiGate的报文,包括源IP地址、目的IP地址、端口号和入接口
● FortiGate新建会话,表示会话ID
● 到达目的地址的路由,即下一跳地址和出接口
● 匹配并允许该流量的策略ID
● 源NAT是如何应用的
上图显示了SYN/ACK数据包的输出。它显示:
● 报文到达,再次表示源和目的IP地址、端口号和入方向接口
● 该流量的现有会话ID。过程中创建的会话的ID匹配SYN数据包。
● 目的NAT是如何应用的
● 到达目的地址的路由,再次指出下一跳地址和出接口
如果数据包被FortiGate丢弃,这个调试将显示该操作的原因。
这个工具对于许多其他故障排除案例非常有用,包括当你需要了解为什么一个包采用特定的路由,或者为什么应用特定的NAT IP地址。
答案:A
答案:A
现在你了解了调试流。接下来,你将了解FortiGate CPU和内存诊断。
通过展示CPU和内存方面的能力,你将能够诊断最常见的CPU和内存问题。
并不是所有的问题都是网络连接故障。有时设备会出现资源问题。
还有什么能引起延迟?消除了物理介质和带宽使用问题后,应该检查FortiGate资源使用情况:CPU和内存。
如果使用率很高,有一些工具可以识别哪些特性消耗了最多的CPU。此外,如果你精确地知道哪个更改(如果有的话)与问题开始的时间相对应,那么你可以更快地进行故障排除。
首先查看get system performance status命令。
在上图示例的顶部,输出显示这个FortiGate模型有四个cpu: CPU0、CPU1、CPU2和CPU3。接下来是RAM的使用。
在上图的例子底部,输出显示了网络流量。
接下来,检查诊断系统顶部的输出。它列出了使用最多CPU或内存的进程。
一些常见的过程包括:
● Ipsengine、scanunitd等巡检流程
● reportd
● fqfmd用于FortiGuard和FortiManager连接
● forticron为调度
● 管理进程(newcli、miglogd、cmdb、sshd和httpsd)
按Shift+P按最高CPU使用率排序。按Shift+M按RAM使用率最高排序。
如果内存使用率过高,FortiGate可能会进入内存保护模式。当FortiGate处于内存保护模式时,它必须采取措施防止内存使用量增加,这会导致系统变得不稳定和不可访问。
内存保护模式从来都不是理想的状态,因为它会影响用户流量。
FortiGate进入和退出保存模式时定义了三个不同的可配置阈值。如果内存使用率超过定义为红色阈值的总RAM的百分比,FortiGate将进入保护模式。设备所采取的操作取决于设备的配置。
如果内存使用持续增加,可能会超过极限阈值。当内存使用率高于这个最高阈值时,所有新的会话都会被删除。
第三个配置设置是绿色阈值。如果内存使用率低于这个阈值,FortiGate将退出保护模式。
在保护模式下,FortiGate采取什么措施来保护内存?
● FortiGate不接受配置更改,因为它们可能会增加内存使用。
● FortiGate不运行任何隔离处理措施,包括将可疑文件转发到FortiSandbox。
● config ips global下的fail-open设置控制ips引擎在IPS发生故障时的行为。重要的是要理解,IPS失败打开不仅仅是为了保存模式。每当IPS失败时,它就会启动。最常见的故障可能是由于高CPU问题,也可能是由于高内存(保存模式)问题。启用后,在保护模式下(或其他IPS故障时)报文仍能正常传输,但不被IPS检测。如果禁用该设置,新进入的会话将丢弃数据包,但FortiOS将尝试使现有的会话像非保存模式一样工作。请记住,IPS引擎用于所有类型的基于流量的检查。当FortiGate必须识别网络应用时,也可以使用IPS引擎,而不管目的TCP/UDP端口(例如,用于应用控制)。
av-failopen设置定义了应用于任何基于代理的检查流量的动作,而单元处于保护模式(只要内存使用不超过极端阈值)。此设置也适用于基于流量的AV检测。可以配置三种不同的操作:
● off:表示不通过所有开启内容扫描的新建会话
● pass(默认):所有新建会话都通过,不进行检查
● one-shot:类似于通行,交通不经检查就通过。然而,它将继续绕过AV代理,即使它离开保护模式。管理员必须更改此设置,或重新启动单元,以重新启动反病毒扫描。
但是,如果内存使用率超过了极端阈值,新的会话总是被丢弃,而不管FortiGate配置如何。
diagnose hardware sysinfo conserver命令用于确定FortiGate设备当前是否处于内存保护模式。
FortiGate另一种不受欢迎的状态是故障打开会话模式。这种模式不是在高内存情况下启动的,而是在FortiGate上的代理用完可用套接字来处理更多基于代理的被检查流量时启动的。
如果开启av-failopen-session, FortiGate允许所有的会话。否则,默认情况下,它会阻止需要基于代理的检查的新会话,直到新的套接字可用。
答案:A
答案:B
现在你了解了FortiGate CPU和内存诊断。接下来,你将了解FortiGate固件和硬件诊断。
通过展示在固件和硬件方面的能力,你将能够诊断最常见的固件和硬件问题。
在FortiGate BIOS中,管理员可以对flash内存和固件镜像进行一些操作。要进入BIOS菜单,必须在连接到console口时重新启动设备。启动过程中,在某一点上显示如下信息:
press any key to display configuration menu
当出现此提示时,按任意键中断启动过程,进入BIOS菜单。
在BIOS菜单中选择“F”,对flash进行格式化。
如果固件损坏,或者管理员希望重新安装新固件,则可能需要这样做。但是请记住,格式化闪存会删除存储在闪存上的任何信息,比如固件镜像、配置和数字证书。
重新格式化flash memory后,必须从BIOS中安装firmware镜像。遵循以下步骤:
1. 运行TFTP服务器。
2. 在TFTP服务器上配置firmware镜像文件所在的文件夹。
3. 将PC机的以太网端口连接到FortiGate TFTP安装界面。
4.在BIOS菜单中选择get firmware image。
指定为TFTP安装接口的接口取决于型号。但是,在大多数情况下,它不是port1就是internal接口。
在BIOS菜单中,选择选项G安装新的固件。
BIOS会问:
● TFTP服务器的IP地址
● FortiGate IP地址(必须与TFTP服务器在同一个c类子网中)
● 固件镜像的名称
如果一切正常,你应该会看到一系列的井号,表明设备正在下载图像。BIOS会验证文件的完整性,并提供以下三个选项:
● Save it as the default firmware
● Save it as the backup firmware
● Run the image without saving it
如果固件将在生产中使用,选择第一个选项:将其保存为默认固件。
最后一个选项(运行映像而不保存它)允许你在不覆盖flash中任何现有固件的情况下运行和测试固件。完成测试并准备回滚更改后,必须重新启动设备,并将使用以前存在的固件。
和其他电子设备一样,RAM损坏会导致间歇性崩溃。
如果怀疑硬件故障,可以运行硬件测试。
如何运行硬件测试?这取决于FortiGate型号。
对于某些FortiGate E、F和D系列型号,你可以直接从FortiOS CLI运行硬件测试。
对于其他型号,你必须从Fortinet技术支持网站下载特殊的HQIP硬件测试图像。
上传硬件测试镜像的步骤与上传固件镜像的步骤相同。你可以运行硬件测试映像而不将其保存在闪存中,因此任何现有的固件映像都不会被覆盖。
对于某些型号,命令诊断硬件测试套件都运行来自FortiOS的硬件测试。硬件测试在运行时需要用户交互。用户可以跳过其中的一些步骤。有些测试需要将外部设备(如USB闪存驱动器)或网线连接到FortiGate。
你可能希望监视的另一个领域(纯粹用于诊断)是崩溃日志。可以通过CLI查看崩溃日志。任何时候由于任何原因关闭进程,崩溃日志都会将其记录为崩溃。崩溃日志中的大多数日志是正常的。例如,每当更新反病毒定义包时,扫描单元进程都需要关闭,以便应用新包。这是正常的关机。
崩溃日志中的一些日志可能指出问题。因此,Fortinet技术支持经常请求崩溃日志以进行故障排除。上图显示了获取崩溃日志必须使用的命令。
有两个命令可以显示崩溃日志中的信息:
● diagnose debug crashlog history: 列出已经崩溃的进程的摘要、发生了多少次崩溃以及最近一次崩溃的时间
● diagnose debug crashlog read:提供关于每次崩溃的详细信息,以及其他系统事件,例如保护模式进入和退出时间
上图显示FortiGate进入和退出内存保护模式时崩溃日志中生成的条目。
答案:A
答案:B
恭喜你!你已经完成了这一课。现在,你将回顾你在这一课中涉及的目标。
上图展示了你在这节课中涉及的目标。
通过掌握本课所涉及的目标,你学习了如何使用诊断命令和工具。