教程篇(7.2) 12. 路由 & FortiGate基础设施 ❀ Fortinet网络安全专家 NSE4

本文介绍了FortiGate设备的路由功能,包括静态路由、动态路由、策略路由的配置和管理,以及ECMP路由和SD-WAN在多路径流量管理和高可用性中的应用。同时,文章讨论了RPF检查如何防止IP欺骗,以及链路健康监控和故障转移机制确保网络稳定性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  在本节课中,你将了解FortiGate上可用的路由功能和特性。

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

  通过在FortiGate上演示路由能力,你应该能够实现静态路由和策略路由。你还将能够为知名的互联网服务路由流量。

  当FortiGate在NAT模式下工作时(默认的工作模式),FortiGate表现为一个IP路由器。IP路由器是在IP网络之间转发数据包的设备。此时,路由器进行IP路由,即根据报文的目的IP地址确定转发的下一跳的过程。FortiGate支持IPv4和IPv6路由。

  FortiGate为防火墙流量(也称为用户流量)和本地输出流量执行路由。防火墙流量是通过FortiGate传输的流量。本地输出流量是FortiGate生成的流量,通常用于管理目的。例如,当你从FortiGate ping设备时,这是本地输出流量。当FortiGate连接到FortiGuard下载最新定义时,这也是本地流量。

  路由器维护一个路由表。路由表包含一系列条目,也称为路由。路由表中的每条路由都指示特定目的地的下一跳。下一跳是指用于转发数据包的传出接口和网关。下一跳可以是数据包的目的地,也可以是通往目的地的路径上的另一个路由器。如果下一跳不是目标,则路径中的下一个路由器将数据包路由到下一跳。路由过程在沿路径的每个路由器上重复,直到数据包到达目的地。

  要路由数据包,FortiGate执行路由查找,以确定通往目的地的最佳路由。最好的路线是通往目的地的最具体的路线。如果FortiGate找到重复的路线,即通往同一目的地的多个路线,它使用各种路线属性作为决胜局来确定最佳路线。

  路由发生在大多数安全功能之前。例如,路由先于防火墙策略评估、内容检查、流量整形和源NAT(SNAT)。这意味着FortiGate执行的安全操作取决于路由过程确定的传出接口。这也意味着你的安全策略配置必须遵循你的路由配置,而不是相反。

  FortiGate在两个表中维护其路由信息:RIB和FIB。路由表,也称为路由信息库(RIB),是一个标准路由表,包含活动(或最佳)连接、静态和动态路由。从内核的角度来看,转发信息库(FIB)可以描述为路由表,主要由RIB条目加上FortiOS所需的一些系统特定条目构建。

  当FortiGate执行路由查找时,它会检查FIB而不是RIB。然而,由于FIB主要由RIB条目组成,因此路线查找主要涉及检查来自RIB的路线。因此,路由查找通常被称为路由表查找过程。尽管如此,更准确的陈述是将其称为FIB查找过程。

  你可以在FortiGate GUI和CLI上显示RIB条目。对于FIB表,只能在FortiGate命令行下显示。上图的输出显示了显示FIB的CLI命令。请注意,为了适应幻灯片,输出已经被切割。在本节课中,你将学习如何显示路由表项。

  本课仅关注RIB(或路由表),你将在本课中了解有关它的更多信息,包括如何监控其条目。

  每个会话,FortiGate执行两个路由查找:

  ● 对于发起者发送的第一个包

  ● 对于来自应答器的第一个应答包

  完成这两个查找后,FortiGate将路由信息写入其会话表。后续数据包根据会话表而不是路由表路由。因此,属于同一会话的所有数据包都遵循相同的路径。然而,此规则有一个例外:如果路由表中存在影响会话的更改,则FortiGate将删除会话表的路由信息,然后执行额外的路由查找以重建此信息。

  一种手动配置的路由称为静态路由。当你配置静态路由时,你告诉FortiGate:“当你看到目的地在特定范围内的数据包时,请通过特定的网络接口将其发送到特定的路由器。”你还可以配置距离和优先级,以便FortiGate可以识别到任何匹配多个路线的目的地的最佳路线。在本课中,你将学习距离和优先级。

  例如,在简单的家庭网络中,DHCP会自动检索和配置路由。然后,你的调制解调器通过ISP互联网路由器发送所有传出流量,该路由器可以将数据包中继到目的地。这通常被称为默认路由,因为默认情况下,所有不匹配任何其他路由的流量都将使用此路由。上图显示的示例是默认路由。目标子网值0.0.0.0/0.0.0.0与任何子网中的所有地址匹配。部署在网络边缘的大多数FortiGate设备至少有一条默认路由,以确保互联网流量被转发到ISP网络。

  对于与FortiGate直接二层连接的子网,不需要配置静态路由。

 如果你创建了子网FQDN类型的防火墙地址对象,则可以使用该防火墙地址作为一个或多个静态路由的目标。首先,在防火墙地址配置中启用静态路由配置。启用它后,防火墙地址对象将可用于具有命名地址的静态路由的目标下拉列表中。

  对于大型网络,手动配置数百条静态路由可能不切实际。你的FortiGate可以通过自动学习路由来提供帮助。FortiGate支持几种动态路由协议:RIP、OSPF、BGP和IS-IS。

  在动态路由中,FortiGate与受信任的相邻路由器通信,以交换有关其已知网络的路由信息。然后,FortiGate将学习的路由添加到其本地路由表中,并在路由查找过程中考虑它们。

  通过FortiGate GUl可以为RIP、OSPF和BGP协议配置动态路由。你只需要确保在可见功能页面中的高级路由选项是启用的,默认情况下是启用的。但IS-IS的配置必须使用FortiGate命令行。

  请注意,在可见功能页面启用高级路由时,还将启用其他高级路由功能的配置页面,如策略路由、路由对象和组播。在本节课中,你将学习更多关于策略路由的知识。

  较大的网络可能还需要在多个有效路径之间平衡路由负载,并检测和避免路由器宕机。在本节课中,你将了解到更多有关这方面的知识。

  静态路由很简单,经常用于小型网络。然而,策略路由更加灵活,因为它们可以匹配的不仅仅是目标IP地址。例如,你可以将流入接口、源和目标子网、协议和端口号配置为匹配标准。

  策略路由由FortiGate维护在单独的路由表中,并优先于路由表中的条目。由于其优先级,最佳做法是尽可能缩小策略路线的匹配标准。否则,预计使用标准路由路由的流量,即仅基于目标地址和路由表条目,也会由策略路由处理。

  上图显示了使用FortiGate GUl配置的策略路由示例。策略路由指示FortiGate匹配port5接收的流量,该流量来自10.0.1.0/24,目的地为主机10.10.10.10。流量还必须指向TCP端口10444,策略路由才能匹配。然后,FortiGate通过网关192.2.0.2将流量(前进流量操作)转发到port1。

  当数据包匹配策略路由时,FortiGate采取两种动作之一。要么将数据包路由到配置的出接口和网关(转发流量动作),要么停止检查策略路由(停止策略路由动作),因此数据包根据路由表进行路由。

  注意配置动作为转发流量时,目的地址流出接口网关地址必须与FIB表中的路由匹配。否则,将认为策略路由无效,跳过该策略路由。

  如果你需要通过特定的广域网链接将流量路由到公共互联网服务(如亚马逊-AWS或苹果商店),会发生什么?假设你有两个ISP,你想一个ISP通过所有其他互联网流量,另一个ISP通过路由Netflix流量。为了实现这一目标,你需要知道Netflix的IP地址并配置静态路由。之后,你必须经常检查IP地址有没有更改。互联网服务数据库(ISDB)有助于使这种类型的路由更简单。ISDB条目应用于静态路由,通过特定的广域网接口选择性地路由流量。

  尽管它们被配置为静态路由,但ISDB路由实际上是策略路由,优先于路由表中的任何其他路由。因此,ISDB路由被添加到策略路由表中。

 要使用GUI为IPv6地址启用路由配置,必须在可见功能菜单中启用IPv6。然后可以创建IPv6地址的静态路由和策略路由。启用IPv6功能还可以启用IPv6版本的动态路由协议的GUI配置选项。

 答案:A

  答案:B

  干得漂亮!你已经理解了FortiGate的路由。现在,你将了解路由监控和路由属性。

  通过展示理解路由监控和路由属性的能力,你应该能够解释路由表,识别路由表中安装了哪些路由,并识别FortiGate如何使用路由属性选择最佳路由。

  仪表板页面上的路由监视器小部件使你可以查看路由表和策略路由表条目。路由表包含以下类型的最佳路由(或活动路由):

  ● 静态:由管理员手动配置的路由。

  ● 直连:FortiOS在接口被分配IP地址后添加的自动路由。直连路由引用接口IP地址子网。

  ● 动态:通过动态路由协议(如BGP、OSPF)学习到的路由。FortiGate会安装这些路由在路由表中自动路由,并指示使用的动态路由协议。

  要查看路由表项,请选择静态&动态,如图所示。但是,请记住,路由表中不包含以下路由:

  ● 非活动路由:静态和直连路由,其接口管理状态变为down或链路状态变为down。当静态路由的网关被链路健康监控器检测到死亡时,静态路由也被标记为非活动。

  ● 备用路由:这些是被从路由表中删除的活动路由,因为它们是重复的并且有更高的距离。例如:

  1、第二条静态缺省路由,距离比另一条静态缺省路由大。

  2、一种动态路由,如BGP或OSPF,与另一静态路由到达相同的目的地。但是,由于静态路由距离较小,因此动态路由不会显示在路由表中。

  ● 策略路由:包括常规策略路由、ISDB路由和SD-WAN规则。策略路由在一个单独的策略路由表中查看。如果需要查看策略路由表项,选择策略

  你可以通过在路由监视器小部件上单击Route Lookup执行路由查找。然后,必须至少指明要查找的目的地址,还可选地指明目的端口、源地址、协议和源接口。

  路由查找的工作原理如下:

  ● 如果不提供所有的查找条件,FortiGate只考虑路由表项。然后FortiGate突出显示匹配的路由(如果有的话)。

  ● 如果你提供所有查找条件,则FortiGate将同时考虑路由表和策略表项。如果查找匹配策略路由,GUl会将你重定向到策略路由页面,然后突出显示相应的匹配策略路由。

  上图的示例显示了一个路由查找工具,分别将8.8.8.8和TCP作为目标地址和协议。因为管理员没有提供所有的标准,所以FortiGate只考虑路由表项。然后,路由查找将静态缺省路由高亮显示为匹配路由。

  路由表中列出的每条路由都包含几个带有关联值的属性。

  网络列列出了要匹配的目的IP地址和子网掩码。接口列列出了用于发送数据包的接口。

  FortiGate使用管理距离、度量和优先级属性来做出各种路由选择决策。在本节课中,你将学习到这些属性。

  上图还展示了你可以在FortiGate命令行中运行显示路由表的命令。get router info routing-table all命令显示在FortiGate GUI上与路由监视器小部件相同的路由条目。

  距离或管理距离,是路由器用来确定特定目的地的最佳路由的第一个决胜局。如果有两条或两条以上的路由到达同一个目的地(重复路由),管理距离最小的路由被认为是最佳路由,因此被安装在路由表中。到达同一目的地的其他管理距离较短的路由是备用路由,因此不会被安装在路由表中。相反,它们被安装在路由表数据库中。在这节课中,你会学到更多关于路由表数据库的知识。

  除已连接路由和IS-IS路由外,其他路由类型的管理距离都可以配置。上图展示了每种路由类型的缺省值。

  如果FortiGate学习到两条到达同一目的地的相同管理距离路由,但来自不同的协议,则FortiGate将最后学习到的路由安装在路由表中。例如,设置BGP路由的距离为110,如果使用缺省的管理距离(110),还有另外一条OSPF路由到达同一目的地址,则FortiGate将保留最后学习到的路由。因为这种行为会根据事件的计时导致不同的结果,那么不建议用相同的管理距离配置不同协议的路由。

  当动态路由协议学习到到达同一目的地的两条或多条路由时,它使用度量值作为决胜局来确定最佳路由。度量值越低,优先级越高。然后,动态路由协议在路由表中安装最佳路由,在路由表数据库中安装度量较高的路由。需要注意的是,该度量用于同协议动态路由的决胜局,而不是不同协议动态路由之间的决胜局。

  度量计算因路由协议而不同,本课程不涉及细节。例如,RIP使用跳数,即数据包到达目的地必须经过的路由器数量。OSPF使用成本, 成本是由链路带宽决定的。

  当存在两个或多个具有相同管理距离的重复静态路由时,FortiGate将它们全部安装到路由表中。如果它们也具有相同的优先级,那么这些路由被称为ECMP静态路由,你将在本节课中了解到更多关于它们的知识。

  通过配置优先级,管理员可以解除ECMP静态路由之间的绑定关系。其结果是,在路由查找过程中,FortiGate会在所有相同管理距离重复静态路由中,选择优先级最低的静态路由作为最佳路由。优先级值越低,优先级越高。

  从FortiOS 7.2开始,优先级属性适用于除连接路由外的所有路由,缺省为1。在FortiOS 7.2之前,该属性只适用于静态路由,默认为0。当升级到FortiOS 7.2版本时,FortiOS会自动将静态路由的优先级提高1,0不再有效。

  对于动态路由,只能修改BGP路由的优先级。其他动态路由的优先级被硬编码为1。在动态路由中使用优先级值对于涉及SD-WAN和多个虚拟路由和转发(VRF)ID的高级路由部署非常有用。关于优先级属性如何在这种情况下有益的细节不在本课程的范围之内。

  对于静态路由,你可以在FortiGate GUl的高级选项下配置优先级设置,如图所示。

  要在路由监视器小部件中查看优先级,必须启用优先级列(默认禁用)。你也可以在FortiGate CLI中查看路由表上的优先级,这是你将在本课后面学习的内容。

  答案:A

  答案:B

 答案:A

 干得漂亮!你已经了解了路由监视器和路由属性。现在,你将了解ECMP路由。

  通过展示你在ECMP方面的能力,你应该能够确定实现ECMP和ECMP负载均衡的要求。

  到目前为止,你已经了解了FortiGate用来识别到目的地的最佳路由的不同路由属性。

  但是当两个或多个相同类型的路由具有相同的目的地、管理距离、度量和优先级时会发生什么?这些路由被称为等价多路径(ECMP)路由,FortiGate将它们全部安装到路由表中。FortiGate还实现了ECMP路由之间的负载均衡。

  上图的例子展示了两条ECMP静态路由,两条ECMP BGP路由,两条ECMP OSPF路由。对于每个ECMP组,目的子网、管理距离、度量和优先级都是相同的。

  结果是FortiGate将每个ECMP组的两条路由都安装到路由表中。然而,这节课只关注ECMP静态路由。

  ECMP可以使用以下四种算法之一进行会话负载均衡:

  ● 源IP:这是默认算法。FortiGate使用相同的ECMP路由来路由来自同一地址的会话。

  ● 源—目标IP:FortiGate使用相同的ECMP路由来路由具有相同源—目标IP地址对的会话。

  ● 权重:只适用于静态路由。FortiGate基于路由权重或接口权重对会话进行负载均衡。权重值越高,通过所选路由的FortiGate路由会话就越多。

  ● 使用(溢出):FortiGate将会话发送到第一个ECMP路由的接口,直到接口的带宽达到配置的溢出限制。达到溢出限制后,FortiGate使用下一个ECMP路由的接口。

  如果SD-WAN被禁用,你可以使用上图所示的命令在FortiGate CLI上更改ECMP负载均衡算法。

  当启用SD-WAN时,FortiOS隐藏v4-ecmp-mode设置,替换为config system sdwan下的load-balance-mode设置。即启用SD-WAN时,通过load-balance-mode设置来控制ECMP算法。

  要使溢出发挥作用,还必须配置出口和入口溢出阈值,如上图所示。阈值默认设置为0,这将禁用溢出检查。对于权重算法,必须在接口级或路由级上配置权重,如上图所示。

  在上图显示的场景中,FortiGate在port1和port2上为10.0.4.0/24子网提供ECMP路由。使用默认的ECMP算法(基于源IP),FortiGate可以使用两条路由中的任意一条来路由来自用户A和用户B的流量。

  在上图的例子中,FortiGate为用户A选择通过端口1的路由,为用户B选择通过端口2的路由。对于相同的流量,FortiGate继续使用相同选择的路由。当经过端口1的路由从路由表中删除后,来自用户的目的地址为10.0.4.0/24的流量,FortiGate自动从端口2转发。

  ECMP允许为同一个目的地使用多个路径,并提供内置故障转移。通常,你希望将ECMP用于需要高可用性的关键任务服务。使用ECMP的另一个原因是用于带宽聚合。也就是说,你可以通过负载均衡会话来利用多个链路的带宽。

  虽然ECMP使你能够利用FortiGate上的多个WAN链路,但由于具有额外的好处,你可能希望使用SD-WAN。

  据Gartner称,软件定义广域网(SD-WAN)提供跨多个广域网连接的动态、基于策略的应用程序路径选择,并支持广域网优化和防火墙等其他服务的服务链。Fortinet实现SD-WAN被称为安全SD-WAN,因为它还通过利用FortiOS中可用的内置安全功能来提供安全性。

  安全SD-WAN依赖于众所周知的FortiOS功能,如IPsec、自动发现VPN(ADVPN)、链路监控、高级路由、互联网服务数据库(ISDB)、流量整形、UTM检查和负载均衡。然后,管理员可以结合这些功能并设置规则,根据多个因素(如为流量确定的协议、服务或应用程序以及链接的质量)来定义FortiGate如何在广域网中引导流量。请注意,SD-WAN控制出口流量,而不是入口流量。这意味着返回流量可能会使用与SD-WAN为出口选择的链路不同的链路。

  SD-WAN的一个好处是有效的广域网使用。也就是说,你可以使用公共(例如宽带、LTE)和私有(例如MPLS)链路将流量安全地引导到不同的目的地:互联网、公共云、私有云和企业网络。这种使用不同类型的链路将网站连接到私人和公共网络的方法被称为混合广域网。混合广域网可以降低成本,主要是因为管理员通常将更多的流量引导到低成本的快速互联网链路上,而不是高成本的慢速私人链路。其结果是,私有链路,如MPLS链接,通常仅用于引导关键流量,或作为高可用性的故障转移链路。

  SD-WAN的另一个好处是提高了应用程序性能,因为你可以通过满足应用程序需求的最佳链路引导流量。在拥塞期间,你可以利用流量整形来优先处理敏感和关键应用,而不是不太重要的应用。此外,对ADVPN快捷方式的支持使SD-WAN能够使用站点之间的直接IPsec隧道来引导流量,从而降低站点(辐条)之间的流量延迟,并减少中心位置(枢纽)的负载。

  直接互联网接入(DIA),也称为本地突破,可以说是SDWAN最常见的用例。一个网站有多个互联网链接(也称为底层链路),管理员希望FortiGate在链路(也称为成员)上引导互联网流量。链路使用不同类型的物理接口连接到FortiGate:物理端口、VLAN、链路聚合(LAG)、USB调制解调器或通过FortiExtender。

  通常情况下,敏感流量会被加速并引导到性能最好的链路上,而非关键流量则会使用尽力而为的方法分布在一个或多个链路上。昂贵的互联网链路通常用作备份链路,或仅用于引导关键流量。

  对于路由,典型的配置使用静态缺省路由。但是,在某些情况下,也会在ISP和FortiGate之间使用BGP,特别是当站点必须通告一个公共IP前缀时。

  上图的例子展示了一个基本的DIA部署。FortiGate有两个互联网链路。一条链路连接端口1,另一条连接端口2。FortiGate使用这两个链路来引导来自局域网的流量,并将其导向互联网上的云应用程序和网站。

  SD-WAN规则代表了SD-WAN解决方案的智能及其软件定义方面。当你配置SD-WAN规则时,你首先定义要匹配的应用程序或流量模式。之后,指示引导匹配流量的首选成员或区域,在某些情况下,指示成员必须满足的性能指标,才有资格获得引导流量。

  SD-WAN规则的评估方式与防火墙策略相同:从上到下,使用第一个匹配。然而,与防火墙策略不同的是,它们用于引导流量,而不是允许流量。也就是说,必须配置相应的防火墙策略才能允许SD-WAN流量通过。如果不匹配用户定义的SD-WAN规则,则使用隐式规则。隐式规则指示FortiGate对流量执行标准路由。由于SD-WAN部署通常有多条到达同一目的地的路由(即ECMP路由),因此匹配隐式规则的流量通常在多个SD-WAN成员之间进行负载均衡。

  SD-WAN规则本质上是策略路由。与常规的策略路由一样,SD-WAN基于多个标准对路由流量进行规则。即在配置SD-WAN规则时,内核会安装一条对应的策略路由,该策略路由反映了SD-WAN规则中配置的源接口、目的接口、服务接口和出接口。当FortiGate执行路由查找时,它会按照上图所示的顺序来检查路由。例如,SD-WAN规则优先于FIB表项,但不优先于常规策略路由。

  上图的示例展示了两个用户定义的规则,名为Critical-DIA和Non-Critical-DIA,它们用于引导基本DIA设置中的流量。Critical-DIA引领着GoToMeeting,Microsoft.office.365.Portal和Salesforce流量到延迟最低的成员,在port1和port2之间。该示例显示选择port1是因为它是旁边有复选标记的成员。Non-Critical-DIA规则将Facebook和Twitter流量引导到port2。隐式规则位于列表底部,如果两个用户定义的规则都不匹配,则使用隐式规则。

  当你启用SD-WAN时,FortiOS将隐藏v4-ecmp-mode设置,并将其替换为config system sdwan下的load-balance-mode设置。也就是说,在启用SD-WAN之后,现在可以通过负载均衡模式设置来控制ECMP算法。

  这两种设置之间有一些不同。主要的区别是load-balance-mode支持卷算法,而v4-ecmp-mode不支持。此外,权重、溢出阈值等相关设置配置也不一样。也就是说,当你启用SD-WAN时,权重和溢出阈值是在SD-WAN成员配置上定义的。禁用SD-WAN时,权重和溢出阈值分别在静态路由和接口配置中定义。

  当ECMP算法设置为卷时,可以根据测量到的接口卷和成员权重,FortiGate成员间的会话负载均衡。也就是说,卷算法指示FortiGate跟踪每个成员的累计字节数,并根据权重分配会话。权值越高,该接口的目标卷越大,因此FortiGate发送到该接口的流量就越多。

  答案:B

  答案:A

  干得漂亮!你已经了解ECMP路由了。现在,你将学习反向路径转发。

  通过展示RPF的能力,你应该能够识别和阻止网络中的IP欺骗攻击。

  RPF检查是一种通过检查路由表中源的返回路径来保护FortiGate和你的网络免受IP欺骗攻击的机制。

  RPF检查的前提是,如果FortiGate在接口上收到了一个数据包,而FortiGate没有通过入接口到达数据包源地址的路由,那么数据包的源地址可能是伪造的,或者数据包的路由是错误的。无论哪种情况,你都希望丢弃那个意外的数据包,这样它就不会进入你的网络。

  FortiGate只对新会话的第一个包进行RPF检查。也就是说,在第一个报文通过RPF检查并且FortiGate接受会话后,FortiGate不会对该会话执行任何额外的RPF检查。

  RPF检查有两种方式:

  ● 可行路径:以前称为松散模式,是默认模式。在这种模式下,FortiGate会验证路由表中是否包含与报文源地址和入接口相匹配的路由。匹配的路由并不一定是路由表中与该源地址匹配的最佳路由。它只需要匹配源地址和数据包的入接口即可。

  ● 严格的:在这种模式下,FortiGate还会验证匹配的路由是否是路由表中的最佳路由。也就是说,如果路由表中包含源地址和入接口的匹配路由,但该源地址通过另一个接口存在更好的路由,则RPF检查失败。

  上图还展示了如何更改FortiGate CLl上的RPF检查模式,以及如何在接口级禁用RPF检查。

  上图的例子显示了一个FortiGate设备使用可行路径RPF检查模式。FortiGate在进行RPF检查时,会在路由表中查找与第一个原始报文的源地址和入接口相匹配的路由。

  根据上图的拓扑和路由表,每个用户流量的RPF检查结果如下:

  ● 用户A:通过。通过wan1有一条默认路由。这意味着,不管源地址是什么,所有从wan1接收的报文都通过RPF检查。

  ● 用户B:失败。FortiGate的路由表中没有通过wan2到达10.175.3.69的路由。

  ● 用户C:失败。和用户B的情况一样,FortiGate的路由表中没有通过port1到达10.0.4.63的路由。

  如果你认为来自用户B和用户C的数据包是合法的数据包,你可以通过确保路由表包含返回路径的路由来解决RPC检查失败的问题。

  在上图的示例中,管理员添加了两条新的静态路由。通过wan2的静态路由是wan1的重复默认路由,但优先级较低。由于优先级不同,这两条缺省路由不是ECMP路由,但FortiGate会将这两条路由都保留在路由表中。结果是来自用户B的报文现在通过了RPF检查。

  通过port1的静态路由引用10.0.4.0/24子网。该子网包含用户C的地址(10.0.4.63),因此来自用户C的报文也会通过RPF检查。

  上图的例子显示了一个使用严格RPF检查模式的FortiGate设备。在严格模式下,FortiGate还会检查匹配的路由是否是到达源端的最佳路由。

  根据上图的拓扑和路由表,每个用户流量的RPF检查结果如下:

  ● 用户A:通过。通过wan1有一条默认路由。这个路由也是到的最好的(也是唯一的)路由10.250.1.62。

  ● 用户B:失败。存在通过wan2的默认路由。然而,有更好的(更具体的)静态路由通过wan1到10.175.3.69。

  ● 用户C:通过。FortiGate的路由表中有一条通过port1到达10.0.4.63的路由。虽然通过wan1和wan2的默认路由也是10.0.4.63的有效路由,但到用户C的最佳路由是通过port1的路由。

  与可行路径示例一样,你可以通过在路由表中进行相应的更改来解决用户B的RPF失败问题,以便通过wan2到达用户B的最佳路由。

  答案:A

  答案:B

  干得漂亮!你已经理解RPF了。现在,你将了解链路运行状况监视器和路由故障转移。

  通过演示配置链路运行状况监控器和实现路由故障转移的能力,你应该能够监视接口的运行状况,然后,当检测到链路失效时,配置FortiGate将流量故障转移到正常链路,以最大限度地减少服务中断。

  静态路由被保留在路由表中,除非相关的接口管理故障、其链路故障或存在距离较短的重复路由。因为有可能链路电路在通往目的地的路径上的某个地方是死的,即使接口链路是up的,那么也有可能FortiGate继续通过死链路路由流量,这将导致业务影响。一个常见的例子是ISP调制解调器提供的以太网连接。即使上游ISP网络故障,以太网连接仍然保持物理状态。调制解调器后面的设备将继续使用互联网连接,但它们不会收到任何回复。

  链路健康监控使FortiGate能够在故障超出本地物理连接范围时检测死链路。FortiGate定期通过配置的网关和接口向最多四个充当信标的服务器发送探测。服务器可以是通过该路径正常可达的任何主机。最好的做法是配置至少两台可靠的服务器,以防止由服务器故障而不是链路故障引起的误报。对于探测,还应该使用服务器正常响应的协议。

  最初,FortiGate认为链路是活的。但是,如果FortiGate将该链路标记为死亡。FortiGate认为失败的探测是它没有收到响应的探测,或者响应是无效的探测。在FortiGate检测到链路已死亡后,它将执行上图显示的任何操作。这些动作的目的是将受影响的流量重定向到其他健康的链路。

  在FortiGate检测到链路失效后,它继续监测链路。一旦FortiGate从至少一个已配置的服务器收到5个成功的回复,它就将该链路再次标记为活动的,然后恢复以前在该链路上采取的任何操作。

  失败和成功探测的数量默认设置为5个,但可以根据需要更改。

  上图描述了链路健康监控支持的探测协议。

  Ping是最常用的网络监控协议,因为几乎所有的网络设备都支持它。当使用ping时,FortiGate向配置的目标服务器发送ICMP echo请求,并等待相应的ICMP echo应答。由于一些ISP和内容提供商在他们的网络上阻塞或限制ICMP流量,你可能希望切换到TCP echo、UDP echo或TWAMP。

  当使用TCP echo和UDP echo时,FortiGate定期向配置的目标服务器发送数据包,这些服务器正在监听端口7上的TCP和UDP连接。在接收到数据包后,服务器返回它从FortiGate收到的相同的数据副本。

  双向主动测量协议(TWAMP)是5个协议中最准确的。链接健康监控使用TWAMP的客户端实现。在TWAMP中有两个会话:控制和测试。前者用于验证端点,后者用于交换用于测量性能的数据包。请注意,如果身份验证是禁用的(默认情况下是禁用的),那么FortiGate只生成测试会话。FortiGate使用端口862作为控制和测试会话的默认端口,但是你可以配置一个不同的端口。

  当你将HTTP配置为协议时,FortiGate定期向目标服务器发送HTTP GET请求,然后等待响应。你还可以配置FortiGate,以检查响应是否在HTML内容中包含特定的字符串。

  上图描述了当接口的状态从活跃状态变为死亡状态时,链路健康监控所采取的操作,反之亦然。这三个动作在默认情况下都是启用的。

  当启用更新静态路由功能,并且链路健康监控检测到接口已死亡时,FortiGate将关联的静态路由(匹配配置的网关和接口的静态路由)标记为非活动路由。结果是从路由表中删除非活动的静态路由。如果没有这样的路由,就会迫使FortiGate将流量重定向到其他有效的路由(如果有的话)。请注意,此操作仅适用于静态路由。

  更新策略路由的动作与更新静态路由的动作相同,不同之处在于,FortiGate在检测到接口失效后,不会将关联的静态路由标记为非活动路由,而是禁用关联的策略路由。为此,FortiGate检查策略路由表,并禁用出接口和网关与链路健康监控设置中配置的接口和网关相匹配的策略路由。与更新静态路由动作一样,目的是FortiGate在查找路由时跳过已禁用的策略路由,从而使流量匹配系统中的其他策略路由或FIB路由。

  更新级联接口操作要求你配置一个或多个警报接口。然后,在检测到监视接口死亡后,FortiGate将关闭警报接口。其目标是在一个重要的接口(如面向internet的接口)死亡后,迫使来自警报接口后面的网络的流量通过不同的设备路由,这可能意味着FortiGate无法将流量转发到WAN。例如,如果你正在LAN接口上使用动态路由或虚拟路由器冗余协议(VRRP),该接口被配置为警报接口,那么关闭该接口可以触发路由故障转移到备份网关。

  如果FortiGate再次检测到接口是活着的,它将恢复到目前为止为链路所采取的任何操作。FortiGate可以恢复静态路由、重新启用策略路由和恢复告警接口。

  上图显示了链路健康监控的配置示例。FortiGate针对Level3和谷歌DNS服务器(总共4个)监视port1的运行状况。对于发送探针,FortiGate使用10.200.1.254作为网关,ping作为协议。

  当port1的状态发生变化时,FortiGate更新级联接口、静态路由和策略路由。为了使更新级联接口动作生效,必须配置警报接口。上图还展示了监控接口(port1)上所需的警报接口配置示例。该配置指示FortiGate在链路健康监控功能检测到port1死亡时关闭port3。

  在上图显示的例子中,FortiGate有两个互联网连接。wan1连接到ISP1, wan2连接到ISP2。在每个ISP网络中,都有一个服务器,FortiGate将探测发送到该服务器,以监视链路健康状况。对于链路健康监控,启用了更新静态路由动作。管理员配置了两条静态缺省路由,一条通过wan1,另一条通过wan2。静态缺省路由的距离分别为10和20。

  在故障切换之前,经过wan1的缺省路由被安装在路由表中,因为它的距离较小,而经过wan2的缺省路由作为备用路由存在于路由表数据库中。链路健康监控通过wan1向位于ISP1网络内的ISP1- Server发送探针。当FortiGate检测到ISP1-Server连续5次探测失败时,FortiGate会将wan1上的缺省路由标记为不活跃,从而将该路由从路由表中删除。这也会导致通过wan2的备用缺省路由被安装到路由表中。然后,FortiGate开始使用新的默认路由将流量路由到internet。

  上图显示的示例使用不同的距离值来控制主路由和备用路由。其结果是,在任何时候,路由表中只安装了一条默认路由。如果你总是需要在路由表中安装这两条路由,你可以在两条路由上配置相同的距离,但优先级不同。为主路由分配一个较低的优先级编号,为备用路由分配一个较高的优先级编号。如果你使用接口来终止IPsec VPN隧道,并且你想通过确保在故障转移之前通过次要ISP链路的隧道已经启动来加快故障转移,那么路由表中必须有这两条路由。

  开启转发流量日志中的目的接口列后,可以查看经过你的FortiGate设备的流量的出口接口。你可以使用此信息来确定哪个路由应用于哪个流量流,以及识别任何路由配置问题。

  如果你的防火墙策略没有应用任何安全配置文件,你应该为策略中的所有会话启用日志记录;否则,FortiGate不会生成任何转发流量日志。使用此功能要谨慎一些,因为如果防火墙策略正在处理大量流量,启用所有会话日志会生成大量日志。你应该在必要时启用它,然后立即禁用它。

  答案:B

  答案:A

  干得漂亮!你已经了解了链路健康监控和路由故障转移。现在,你将了解路由诊断。

  通过展示路由诊断方面的能力,你应该能够查看路由表和路由表数据库中的条目,以及识别数据包如何流经FortiGate。

  上图显示的CLI命令显示路由表中的所有条目。路由表显示进入FIB表的路由。也就是说,到某个目的地的最佳活动路由。

  最左边一列表示路由源。路由属性显示在方括号内。第一个数字,在第一对属性中,是距离,它同时适用于动态和静态路由。第二个数字是度量(metric),只适用于动态路由。

  静态路由和动态路由也有优先级和权重属性,如最后一对所示各自路由的属性。在动态路由的情况下,权重始终为零。

  该命令不会显示备用或未激活的路由,这些路由只存在于路由表数据库中。例如,当到同一目的子网的两条静态路由的距离不同时,距离较低的静态路由被安装在路由表中,距离较高的静态路由被安装在路由表数据库中。

  如果你想查看激活、备用和未激活路由,请使用上图所示的CLI命令来显示路由表数据库项。

  在上图的例子中,该命令显示了两条备用路由,一条是静态路由,另一条是BGP路由。两条备用路由都是备用的,因为有更好的路由(更短的距离)到达相同的目的地。较好的路由在路由源旁边显示一个星号,表示它们是FIB表项,因此用于路由流量。

  输出还显示了一条未激活的路由。当相应的接口管理状态为down,其链路状态为down,或者当接口被链路健康监控检测到死亡并且启用了更新静态路由动作时,路由被标记为未激活。

  FortiOS维护了一个策略路由表,可以通过执行命令diagnostic firewall proute list查看。

  策略路由表中显示三种类型的策略路由:普通策略路由、ISDB路由和SD-WAN规则路由。按照这些规则来识别表中每一种类型的策略路由:

  ● 普通策略路由的ID不大于65535。在上图显示的输出中,第一个条目被分配了ID 1,这使得它成为常规策略路由。

  ● ISDB路由和SD-WAN规则分配的ID大于65535。但是,SD-WAN规则表项包含vwl_service字段,而ISDB路由表项不包含vwl_service字段。vwl_service字段表示SD-WAN配置的规则ID和规则名。在上图显示的输出中,第二项是ISDB路由,第三项是SD-WAN规则。

  注意,虽然常规策略路由的ID范围是1到65535,但可以配置的常规策略路由的最大数量要小得多,并且在不同型号中有所不同。例如,FortiGate 300D设备最多可以配置512条常规策略路由。有关每个型号支持的最大值的更多信息,请参阅docs.fortinet.com上的FortiOS最大值表。或者,你可以在FortiGate CLI上运行print tablesize命令,以获得设备的最大值。

  数据包捕获,或嗅探器,是调试路由问题最有用的信息源之一。FortiGate包含一个内置的流量嗅探工具。你可以使用它来验证数据包在通过时的入接口和出接口。你可以从GUl或CLI运行内置嗅探器。CLI命令的语法显示在上图。

  <interface>选项是在其上运行嗅探器的物理或逻辑接口的名称。大多数情况下,你希望指示any来捕获所有接口上的数据包。这使你能够看到数据包如何在不同的接口上流动。另一种选择是指出接口的名称,当你想将包捕获缩小到该接口时,这是很有用的。如果你希望工具捕获MAC地址信息,也需要指定接口的名称。也就是说,当你使用any时,嗅探器不会捕获包使用的真正MAC地址。

  过滤器遵循著名的tcpdump工具使用的BPF语法。你应该配置特定的过滤器,以确保只捕获你需要的内容。你还可以指定一个<count>值,以便在捕获特定数量的数据包后自动停止嗅探器。否则,嗅探器将继续捕获数据包,直到你手动使用Ctrl+C停止它。你可以使用<time stamp>选项打印时间戳信息。使用a打印绝对时间戳,或使用l(小写L)打印基于本地时区的时间戳。在将嗅探器输出关联到调试流消息时,时间戳信息特别有用。你将在其它课中了解更多关于调试流的信息。

  默认情况下,嗅探器使用接口上配置的MTU限制捕获报文的长度。使用<frame size>参数,可以指定大于或小于接口MTU的长度。注意,如果你使用any接口,嗅探器将默认为1600字节。

  详细级别指定要显示多少信息。有六种不同的级别,该表显示了哪些级别显示IP头、数据包有效负载、以太网头和接口名称。

  使用详细级别4快速查看流量是如何通过FortiGate的(如果包到达,以及FortiGate如何将它们路由出去)。你还可以使用4级来检查FortiGate是否正在丢弃数据包。

  详细级别3和6提供最多的输出。两者都显示IP有效负载和以太网标头。你可以使用Perl脚本保存输出并将其导出到数据包捕获(pcap)文件。然后可以用包分析器(如Wireshark)打开pcap文件,进行进一步的调查。你可以在Fortinet知识库网站kb.fortinet.com上找到将嗅探器输出转换为pcap的Perl脚本。

  上图展示了两个数据包捕获输出的例子。

  第一个示例捕获所有进出端口443的流量。它使用了详细的4,所以信息很容易阅读。它每行显示一个报文,包括入、出接口、IP地址、端口号和报文类型(SYN、SYN/ACK等)。注意,该接口被设置为any,这对于捕获设备中进入或退出多个接口的数据包很有用。这样可以更好地了解数据包是如何通过防火墙的。例如,输出显示了跨FortiGate建立的三次握手。从数据包捕获中,可以得出这样的结论:连接是由10.1.10.1发起的,它位于port3的后面,并注定要到达100.64.3.1,它位于port1的后面。你还可以得出结论,FortiGate为连接执行SNAT。即在原方向,当报文离开端口1时,FortiGate将源地址转换为100.64.1.1。FortiGate在离开port3时将应答报文转换回10.1.10.1。

  第二个示例捕获来自或去往10.0.10.254的所有ICMP流量。与第一个示例捕获任何接口上的数据包不同,这个示例将捕获限制在进入或离开Student接口的数据包上。虽然在上图没有显示,但student接口是一个VLAN接口。此外,详细级别被设置为6,其中包括完整的数据包IP有效载荷细节。输出会更长,也更难阅读。然而,如果你需要将输出导出为pcap格式,这是使用的两个详细级别之一(3是另一个)。然后,你可以使用Wireshark或任何其他兼容的数据包分析工具查看pcap文件。此外,该命令中的附加参数指示嗅探器不设置数据包计数限制(0),并为每个数据包打印本地时间戳(l)。

  如果你的FortiGate型号有内部存储,你可以在GUl上捕获数据包。从FortiOS 7.2开始,GUl包捕获工具得到了改进,还包括一个实时分析工具,使你能够直接在GUI上检查包捕获细节。你也可以下载相应的pcap文件,以防你喜欢使用Wireshark或你喜欢的包分析工具来检查它。

  在开始包捕获之前,你应该使用基本高级过滤器选项设置包捕获过滤器。当你选择基本时,你需要指明基本过滤选项,如主机地址、端口号和协议号。如果你想像在CLI中那样使用你自己的BPF过滤器,你可以选择高级

  无论你使用哪种方法(CLI或GUI),数据包捕获过滤器都应该非常具体只有相关的数据包被捕获,大量的数据不会被写入磁盘。

  上图展示了FortiOS 7.2启动的GUl数据包捕获工具中包含的嵌入式实时分析工具的一个例子。在你开始数据包捕获后,GUl开始根据过滤器集显示捕获的数据包。

  时间线选项卡显示每秒捕获数据包数量的图形。该图形有助于快速识别网络中与重要事件相关的流量峰值。

  Headers选项卡使你能够检查数据包上的基本IP(第3层)和第4层信息。

  数据包数据选项卡允许你使用十六进制格式检查完整的数据包数据。旁边的十六进制的数据包数据,FortiOS以ASCIl格式显示等效的输出。

  答案:A

  答案:B

  答案:B

  恭喜你!你已经完成了这节课。现在你要复习本课所学到的目标。

  通过掌握本课所涵盖的目标,你学习了如何配置、维护和排除FortiGate路由配置故障。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值