在本课中,你将了解可用于对FortiSwitch相关问题进行故障排除的最有用的工具。
在本课中,你将了解上图显示的主题。
通过展示FortiLink故障排除的能力,你应该能够了解如何在FortiGate管理FortiSwitch时对管理问题进行故障排除。
在对管理交换机进行故障排除时,你可能希望在FortiGate CLI上运行execute switch-controller get-conn-status。该命令为你提供所有管理交换机的关键信息,例如其当前状态、管理IP地址、固件版本,以及交换机上次成功连接到(或加入)FortiGate的时间。在正常操作下,交换机连接时间应保持不变。然而,如果交换机加入时间经常更新,这可能表明交换机和FortiGate之间的连接问题。
输出还为你提供了可能需要进一步故障排除的两条信息:堆栈所连接的FortiLink接口的名称和堆栈中交换机的ID。由于FortiGate支持管理多个交换机堆栈,并且考虑到每个堆栈可以有多个交换机,因此了解堆栈连接的FortiLink接口和有问题交换机的交换机ID将使你能够过滤运行故障排除命令时获得的输出。这在处理大型FortiSwitch部署时特别有用,因为检查所有管理交换机的输出可能会让人不知所措。在上图显示的示例中,FortiLink接口是fortilink。
如果你将交换机ID添加到execute switch-controller get-conn-status命令中,你将获得有关交换机的更多详细信息,包括其所有端口和聚合接口(或中继)的状态摘要。fortilink和stacking列指示端口是否是ISL的一部分。
在聚合接口部分,上图示例中显示的ISL和FL标志表明有一个FortiLink中继和两个ISL。列表中最后一个ISL的名称表明,trunk被用作多机箱链路聚合(MCLAG)ICL。
你可以在FortiSwitch CLI上运行execute switch-controller get-conn-status命令来显示管理的FortiSwitch状态。在FortiSwitch上,命令的输出更集中在连接的FortiGate一侧——交换机控制器一侧。
对交换机进行故障排除的下一步可能是获取堆叠物理连接详细信息。在对不正确的物理连接导致的不稳定问题进行故障排除时,这特别有帮助。
你可以通过运行execute switch-controller get-physical-conn命令来获取堆叠的当前物理拓扑。该命令可以以标准格式或点格式显示输出。标准格式更适合小型部署,因为这些案例的输出通常更容易阅读。标准输出按层(或级别)组织交换机,并指示交换机之间以及交换机与FortiGate设备之间的每次连接所使用的端口。例如,上图显示的标准格式输出对应于双交换机堆叠。直接连接到FortiGate的交换机被归类为第1层。
此外,输出还包括通过自动ISL自动配置的trunk的名称。在自动ISL,trunk名称包含相邻交换机序列号的一部分。
对于大型部署,你可能希望改用点格式输出。输出可以加载到支持图形格式的图像编辑器中,例如GVEdit,因此输出显示为图表。或者,你可以将输出上传到图形转换器网站,如www.webgraphviz.com,以生成图表。
在上图显示的示例中,点输出已加载到GVEdit中。然后,GVEdit生成一个图形,描绘堆叠的物理拓扑。
每次你在FortiGate上更改FortiSwitch配置时,更改都会首先保存在FortiGate配置中,然后FortiGate通过HTTPS并使用FortiSwitch REST API将配置更改推送到FortiSwitch。然后,FortiSwitch在本地保存更改。命令execute switch-controller get-sync-status显示FortiGate和FortiSwitch之间的配置同步状态。
该命令还显示MAC地址同步和HTTP固件升级状态。FortiGate经常从所有管理交换机轮询MAC地址表,以获取每个端口上列出的物理地址。然后,FortiGate使用这些信息来提供网络的可见性、控制和最终安全性。此外,FortiGate支持两种将固件映像文件推送到托管交换机的方法:HTTPS和CAPWAP。HTTPS是默认方法,execute switch-controller get-sync-status命令显示的升级状态信息仅适用于HTTPS方法。
要验证交换机管理所需的所有配置是否到位,你可以运行execute switch-controller diagnose-connection命令。FortiGate检查是否存在以下设置:
● FortiLink接口启用了FortiLink设置
● FortiLink接口有一个DHCP服务器范围
● 在FortiLink接口上已启用NTP服务器
该命令还提供最新的NTP状态信息,以及正在使用的FortiGate高可用性(HA)模式。请注意,HA模式无关紧要,因为FortiSwitch现在可以在HA主动-被动(A-P)和主动-主动(A-A)模式下进行管理。因此,关于正在使用的HA模式的输出将在未来的版本中删除。
当你指定交换机时,execute switch-controller diagnose-connection命令在输出中还包括FortiGate和交换机之间的以下连接检查:
● FortiLink和CAPWAP连接状态,包括收到的最后一次保持(或心跳)
● FortiGate发送到交换机的ping结果
● 从traceroute FortiGate检测到的执行跳数
注意,该命令还显示配置检查的输出,这将在本课中介绍。
上图的表格显示了在管理的FortiSwitch上处理发现、心跳和配置更改的进程。该表包括FortiGate和FortiSwitch上的相应进程。
你可以在FortiGate和FortiSwitch上使用相同的命令在进程上启用调试,如上图所示。还建议你在调试消息上启用时间戳。时间戳使调试分析更容易,因为它使你能够关联事件并在调试输出中识别相关消息。
在FortiGate上,你可以启用fortilinkd进程的调试,以便对FortiSwitch设备的发现进行监控和故障排除。
当发现新的FortiSwitch时,调试输出显示FortiSwitch序列号,以及接收触发交换机发现的FortiLink帧的FortiGate端口。
此外,由于FortiLink发现帧包括交换机端口信息,FortiGate从帧中读取此信息,以构建GUl上显示的交换机面板图像。这张幻灯片上的输出显示,FortiGate发现了一个FortiSwitch 424D-POE设备,该设备具有三种类型的端口:MGMT(管理)、PoE+和SFP+。当有多个相同类型的端口时,输出指示该类型的端口数量。
在你授权交换机并联机后,交换机开始每三秒钟向FortiGate发送一次FortiLink心跳。然后,FortiGate通过向开关发送回复来确认心跳。Fortilinkd进程的调试输出也将显示这些心跳。
在FortiGate上,你可以启用cu_acd进程的调试,以解决CAPWAP隧道问题。建议的详细程度是-1,这是最详细的水平。出于这个原因,预计在调试输出中看到相当多的消息。
上图的示例显示了当CAPWAP隧道中的DTLS握手失败以及完成握手时,cu_ad生成的关键调试消息。在本例中,DTLS握手失败是由于FortiSwitch时间与FortiGate时间不同步造成的。当时间同步时,DTLS握手完成,CAPWAP隧道随后启动。
授权交换机后,交换机与FortiGate形成直接或间接的trunk连接。
对于直接连接,FortiSwitch创建一个FortiLink中继。对于间接连接,FortiSwitch创建机箱间链路(ICL)或常规交换机间链路(ISL)。在trunk形成后,FortiGate和FortiSwitch之间有第2层连接,FortiSwitch通过DHCP从FortiGate请求两个IP地址:管理IP和封装的远程SPAN(ERSPAN)IP。管理IP是分配给FortiSwitch内部接口的IP地址,用于FortiGate和FortiSwitch之间的所有IP管理通信。
ERSPAN使FortiSwitch能够将镜像流量封装到通用路由封装(GRE)中,并将其发送到第3层网络。ERSPAN IP用作GRE数据包的源IP地址。你将在本课中了解更多关于ERSPAN的信息。
在FortiGate上,你可以通过运行execute dhcp lease-list命令来验证FortiGate是否将IP地址租赁给FortiSwitch。在FortiSwitch上,你可以运行diagnose ip address list命令来显示分配的IP地址。
时间同步在交换机管理中至关重要。如果FortiGate和FortiSwitch上的时间没有同步,FortiSwitch无法完成CAPWAP中使用的DTLS握手,这阻止了交换机连接到FortiGate。拥有时间同步工作设置的另一个原因是FortiSwitch在重新启动后不会保留其时间。当FortiSwitch重新启动时,交换机上的时间将重置为Unix纪元时间(1970年1月1日午夜,UTC)。
检查时间同步的第一步是检查FortiGate上的NTP系统配置。上图的示例显示了NTP系统配置节点中必须存在的设置。之后,你可以通过运行diagnose sys ntp status来检查FortiGate上的NTP状态。输出应表明时间已同步,NTP同步已启用,服务器模式已启用。输出还应指示FortiGate选择的NTP服务器以同步其时间。
你还可以运行execute time命令来显示当前系统时间,以及上次使用NTP同步时间的时间。请注意,默认情况下,NTP时间同步每60分钟进行一次。
要在FortiSwitch上查看时间,你可以使用与在FortiGate上使用相同的命令。在diagnose sys ntp status的输出中,你应该看到FortiLink接口作为NTP服务器。
如果你想对FortiGate应用于交换机的配置更改进行故障排除或监控,你可以为FortiLink配置守护进程启用调试。
在上图显示的示例中,管理员将交换机上端口2的本机VLAN设置为学生。学生VLAN使用VLAN ID 10。由于更改是在FortiGate上进行的,因此它会触发配置推送到管理交换机。FortiGate首先通过HTTPS登录托管交换机REST API,然后应用端口2所需的配置更改。完成更改后,FortiGate会退出交换机。
如果你遇到配置同步问题,你可能希望在FortiSwitch上跟踪FortiGate推送到设备的设置。一种方法是在FortiSwitch上启用CLI调试,如上图所示。
当FortiGate将配置推送到FortiSwitch时,FortiSwitch通过REST APl接收更改。之后,FortiSwitch使用CLl命令将收到的设置应用于本地配置。启用CLI调试使你能够跟踪这些CLI命令,从而识别CLI在应用命令时返回的任何错误。
上图的示例显示了FortiGate推送的两个配置更改。第一个更改将设备主机名设置为Core-1,第二个更改将VLAN 20设置为端口1上的本机VLAN。
FortiSwitch通过REST APl接收配置更改请求。在FortiSwitch上,您可以通过为httpsd进程启用调试来调试通过REST API交换的主题,以识别更改请求以及其他管理操作,如上图所示。
上图的示例显示了使用CLI调试跟踪的相同主机名更改的httpsd调试。在REST API上交换的消息使用JavaScript对象符号(JSON)格式。上图显示的httpsd调试还显示了发送到FortiGate的FortiSwitch JSON响应详细信息。
答案:A
答案:B
非常好!你现在了解了FortiLink的故障排除。接下来你将了解交换机接口的故障排除。
通过展示交换机接口故障排除的能力,你应该能够解决FortiSwitch上涉及端口和trunk的问题。
上图的示例显示了显示FortiSwitch上物理端口状态摘要的命令。本培训中描述了execute switch-controller get-conn-status的输出。
diagnose switch physical-ports summary命令在FortiSwitch CLl上可用。命令输出仅包含有关物理交换机端口的重要信息,包括内部接口。请注意,Vlan列指的是端口上设置的本机VLAN。
上图显示的FortiGate和FortiSwitch CLI命令为给定端口产生相同的输出。输出包括高级信息,如端口最大传输单元(MTU)、MAC地址和计数器。在对FortiSwitch端口上更复杂的问题进行故障排除时,该输出非常有用。
你可以使用FortiSwitch diagnose switch physical-ports datarate和diagnose switch physical-ports linerate命令来获取一个或多个端口的实时带宽使用情况。两个命令显示的数据包的速度和数量应该相似。然而,行速率命令显示的速度应略高于datarate命令显示的速度,因为FortiSwitch在计算行速率命令的速度时会考虑帧上的所有物理字节。例如,在计算行速率命令的速度时,FortiSwitch考虑了帧上的帧检查序列(FCS),而数据速率命令并非如此。
请注意,没有等效的FortiOS命令来显示管理交换机的数据和线路速率。
在对涉及FortiLink、LLDP、STP、LACP和CAPWAP等协议的问题进行故障排除时,你可能想知道给定端口是否至少收到了有问题协议的帧。虽然你可以捕获入口流量来检查端口上的帧详细信息,但更简单的方法是检查FortiSwitch CLI上的协议数据单元(PDU)计数器,如上图所示。
命令提供的输出显示端口上接收的PDU类型。例如,你可以通过验证端口上的相应PDU计数器增量来确认FortiGate发送的FortiLink帧是在端口上接收的。同样,你可以通过验证端口上的STP计数器等来确认端口上接收来自相邻交换机的BPDU。
注意PDU计数器只计算入流量,不计算出流量。还要注意,没有等价物FortiOS命令显示管理交换机的PDU计数器。
你可以使用上图显示的命令来获取管理FortiSwitch上trunk的详细状态。输出首先指示正在使用的LACP模式(主动、被动或静态),以及trunk是否是自动ISL trunk。如果trunk是自动ISL trunk,则输出还指示自动ISL中继类型:ICL或MCLAG。
要查看的另一个重要信息是所使用的端口选择算法(或负载均衡方法),以及trunk端口成员。
上图显示了上一张图片输出的延续。输出显示LACP标志描述供你参考、trunk状态以及单个端口成员状态。请注意,要使trunk启动,至少有一个端口成员必须启动。
如果你不使用MAC、IP和基于协议的VLAN,你可以使用上图的命令在FortiSwitch上获取VLAN端口成员资格。当VLAN设置为端口上的本机VLAN时,或者当VLAN包含在端口上允许的VLAN中时,端口被视为VLAN的一部分。因此,一个端口可以是多个VLAN的一部分。
请注意,没有等效的FortiOS命令为你提供相同的输出。另请注意,如果你使用的是MAC、IP和基于协议的VLAN,那么你必须使用diagnose switch vlan assignment命令来获取VLAN分配。
答案:B
答案:B
非常好!你现在了解如何对交换机接口进行故障排除。接下来,你将学习如何收集重要的交换机数据。
通过展示收集交换机数据的能力,你应该能够在FortiSwitch上收集重要的诊断信息以进行故障排除。
上图显示的命令通常是你在故障排除时在FortiSwitch上使用的第一批调试命令之一。输出显示有关交换机的以下信息:固件版本、序列号、主MAC地址和时间。
上图向你展示了如何显示每个进程使用的CPU和内存量(百分比)。上图显示的命令显示最后一列中显示的信息。对于每个进程,该命令还显示ID号和状态。你可以指定刷新频率和要显示的行数。
执行该命令时,可以按Shift+P按CPU占用率排序,或按Shift+ M按内存占用率排序。按q或Q键停止执行命令。
上图显示了FortiGate GUl上显示的一些FortiSwitch日志的示例。FortiSwitch日志在FortiGate GUI的FortiSwitch Events子类别下作为事件日志可用。
你还可以在FortiGate CLI上显示FortiSwitch日志。只需将过滤器设置为事件日志(类别1)和subtype设置switch-controller。上图的示例展示了如何设置过滤器和显示日志。
在FortiSwitch GUl上,浏览到日志页面以显示系统生成的本地日志。在这里,你可以将日志下载为文本文件或删除它们。还有一个过滤器工具栏和一个搜索栏,可用于显示特定的日志。
在FortiGate上,使用diagnose switch-controller switch-info mac-table命令查看FortiSwitch的MAC地址表信息。默认情况下,学习到的MAC地址老化定时器为300秒(5分钟)。
在FortiSwitch上,你可以使用diagnose switch trunk list命令来显示FortiSwitch MAC地址表。设置命令过滤器,如上图所示,以显示指定端口上的条目。
有时你需要通过MAC地址定位设备。为此,你可以使用diagnose switch mac-address list命令,然后使用MAC地址查找输出,如上图所示。
你通常在堆叠的顶部交换机上开始搜索。你通过MAC地址表搜索结果上显示的端口或trunk来识别下游交换机。然后,你继续向下移动交换机堆叠,直到到达直接连接到设备的交换机。
与其他IP设备一样,FortiSwitch维护一个ARP表,该表包含IP地址及其对应的MAC地址。通常,如果在FortiSwitch终止或发起连接时遇到问题,例如管理流量和远程服务器认证问题,则需要检查ARP表。
在FortiGate上,你可以使用FortiGate CLI显示你的交换机堆叠发现的LLDP邻居。上图显示了你可以运行的命令,以显示每个端口上从LLDP中学到的信息的摘要。通常,你有兴趣查看设备名称和端口ID列,这使你能够快速识别相邻的邻居和端口。在FortiSwitch上,你可以通过运行上图显示的命令获得相同的输出。
请注意,在示例中,FortiGate将其端口的MAC地址作为端口ID进行广告。当FortiGate端口没有配置别名时,就会发生这种情况。如果设置了别名,FortiGate会将别名作为端口ID进行广告。
在FortiGate上,使用上图显示的命令在特定端口上显示从LLDP学到的所有信息。输出被裁剪。
上图显示了LLDP详细输出的剩余部分。请注意,邻居中存在的VLAN也包含在输出中。此外,由于邻居通过trunk连接,输出还指示用于LAG的相邻设备上端口的端口ID(端口4)。在FortiSwitch上,你可以通过运行上图显示的命令来获得相同的输出。
每次应用程序崩溃或关闭时,都会在崩溃日志中生成一个条目。当应用程序崩溃时,该条目包含应用程序的名称、崩溃时间和终止信号。
上图显示了Crashlog中的崩溃示例。在本例中,失败的应用程序是处理GUI和REST API接口的httpsd进程。终止信号是11,这是一个分段故障。
请注意,崩溃日志将Unix纪元时间显示为两条消息的时间戳。这是因为消息是在交换机同步时间之前生成的。
你可以在FortiSwitch CLl上运行diagnose debug report命令,以生成从执行70多个CLl命令中收集的综合诊断输出,如上图所示。
Fortinet技术支持有时会要求输出diagnose debug report,如果需要对设备进行详尽的分析,或者只是为了确保提前收集到进一步的信息,以防以后需要。
答案:B
答案:A
非常好!你现在了解如何收集交换机数据。接下来,你将了解FortiSwitch上可用的不同数据包捕获方法。
通过展示数据包捕获的能力,你应该能够为你的故障排除会话确定最有用的数据包捕获方法。
FortiSwitch上有很多数据包捕获方法可供选择。选择的方法取决于FortiSwitch管理模式、你要捕获流量的接口类型、你计划捕获的流量类型以及你计划如何收集捕获的流量。
上图显示的表格比较了六种可用方法及其支持的功能。
上图显示了使用FortiSwitch GUl和CLI的基本嗅探器配置文件配置示例。请注意,你必须指定捕获上的最大数据包数量。出于这个原因,请记住,如果流量过多,并非所有数据包都可能被捕获。
另请注意,默认情况下,FortiSwitch将捕获的数据包截断为128字节。通常,在大多数故障排除案例中,这不是问题。但是,如果你需要捕获完整的数据包,你可以增加最大数据包长度。
配置嗅探器配置文件后,你可以使用上图屏幕截图上突出显示的控制按钮启动、暂停、删除或下载数据包捕获。或者,你可以使用上图显示的FortiSwitch CLl。通常,使用FortiSwitch GUl更方便,因为你可以从数据包捕获页面下载数据包捕获。如果你使用FortiSwitch CLI,则必须将数据包捕获上传到FTP或TFTP服务器,这有时会延迟故障排除过程。
如果你熟悉FortiGate嗅探器命令,那么你还知道如何在FortiSwitch上使用嗅探器命令。像FortiGate一样,你可以从六个详细度级别中进行选择。上图的表格显示了每个级别中显示的信息。在大多数情况下,4级是首选,因为它显示数据包的摘要以及数据包离开或进入的接口。3级或6级可用于将输出转换为PCAP格式,稍后可以使用网络协议分析仪(如Wireshark)进行检查。
上图的示例展示了如何在系统接口和交换机端口上捕获流量。
如果你希望数据包捕获可靠,请避免使用嗅探器命令在系统接口(如内部和管理)以外的接口上捕获流量。虽然你也可以使用嗅探器命令来捕获交换机端口上的流量,如上图所示,但嗅探器捕获的数据包类型非常有限。在上图显示的示例中,嗅探器在端口23上捕获流量时仅显示入口LLDP广告和BPDU,尽管在捕获时,端口上发送和接收的流量更多。
注意使用符号_port_xx在嗅探器命令中引用交换机端口。
交换机端口分析器(SPAN)使你能够将一个或多个端口上的流量镜像到指定的目标接口,其中连接了监控设备,如运行Wireshark的PC,并捕获镜像流量。
当你配置SPAN时,你可以将FortiSwitch配置为镜像端口上的入口或出口流量。此外,由于FortiSwitch不封装镜像流量,因此监控设备上捕获的流量是原始流量的精确副本。
与远程SPAN(RSPAN)和封装远程SPAN(ERSPAN)不同,你您使用SPAN时,你无法跨多个交换机发送镜像流量。因此,监控设备必须连接到镜像流量的同一交换机。使用SPAN的另一个限制是,你只能在交换机端口上镜像流量。也就是说,系统接口上的流量(如内部或管理)无法镜像。此外,SPAN反映了端口上的所有流量。但是,如果FortiSwitch处于独立模式,你可以通过配置ACL分类器并引用SPAN配置文件来过滤要捕获的流量。
在上图显示的示例中,SPAN在FortiSwitch上启用,并配置为在端口1和端口2上镜像入口和出口流量。因此,PC生成的进出流量可以使用Wireshark在监控设备上捕获。
上图展示了如何在FortiGate CLl和FortiSwitch CLI上配置基本SPAN会话的示例。设置指示FortiSwitch将端口1上的入口和出口流量镜像到端口2。
RSPAN是SPAN的增强版。与SPAN一样,它使您能够将一个或多个端口上的流量镜像到指定的目标接口。然而,与SPAN不同,RSPAN使用您选择的VLAN标记镜像流量,然后通过多个交换机淹没VLAN中的流量。结果是,VLAN中的所有设备都会收到镜像流量的副本。因此,为了防止镜像流量造成的网络饱和,常见的最佳做法是使用RSPAN的专用VLAN,并仅将监控设备分配给VLAN。
请注意,在托管交换机模式下,FortiSwitch使用rspan VLAN(VLAN ID 4092)作为镜像流量的目标VLAN。此外,镜像流量仅通过堆栈转发到通往FortiGate的端口,从而防止流量泛滥。然后,在FortiGate上,您必须使用嗅探器来捕获镜像流量。
像SPAN一样,RSPAN反映了端口上的所有流量。但是,你可以通过配置ACL分类器和引用SPAN配置文件来过滤流量以捕获FortiSwitch管理模式。
与ERSPAN不同,RSPAN无法跨多个第3层设备(如路由器和防火墙)发送镜像流量。因此,监控设备必须连接到镜像流量的同一第2层域。
上图显示的示例描述了FortiSwitch处于独立模式时的RSPAN操作。RSPAN在FortiSwitch 1上启用,并配置为在端口1上镜像入口和出口流量。镜像流量被淹没到端口2,并标记为VLAN 99。ISL中使用的端口以及FortiSwitch 2上的端口2允许VLAN 99。因此,PC生成的进出流量可以使用Wireshark在监控设备上捕获。
上图展示了如何在FortiGate CLI和FortiSwitch CLI上配置基本RSPAN会话的示例。设置指示FortiSwitch将端口1上的入口和出口流量镜像到端口2,并使用VLAN ID 99标记镜像流量。
请注意,当你使用FortiGate CLI配置RSPAN时,你不会指示目标端口或VLAN ID。这是因为FortiGate自动配置FortiSwitch将镜像流量转发到通往FortiGate的端口,并使用VLAN ID 4092标记流量,这是分配给rspan VLAN的VLAN ID。
ERSPAN允许你跨多个第3层设备发送镜像流量。为此,ERSPAN将镜像流量封装到GRE数据包中,并将数据包发送到配置的收集器IP。这使你能够使用网络中的任何收集器,只要FortiSwitch与该设备具有IP连接。
请注意,如果你在管理交换机模式下使用FortiSwitch,则收集器IP不能与你的FortiLink接口位于同一子网中。
在上图显示的示例中,ERSPAN在FortiSwitch上启用,并配置为在端口1上镜像进出流量。镜像流量被封装到GRE数据包中,并发送到10.0.99.10,这是在FortiGate后面连接的监控设备的IP地址。FortiGate在端口1上接收GRE数据包,并将其路由到端口2。因此,PC生成的进出流量可以使用Wireshark在监控设备上捕获。
上图展示了如何在FortiGate CLI和FortiSwitch CLI上配置基本ERSPAN会话的示例。设置指示FortiSwitch在端口1上镜像入口和出口流量,并将携带镜像流量的GRE数据包发送到10.0.99.10。
答案:A
答案:B
非常好!你现在了解了数据包捕获。接下来,你将回顾本课中涵盖的目标。
通过掌握本课涵盖的目标,你了解了可用于解决FortiSwitch问题的最有用的工具。