教程篇(5.4) NSE4 12. 路由 ❀ 飞塔 (Fortinet) 网络安全专家

来源:互联网 发布:java招聘系统源码 编辑:程序博客网 时间:2024/06/05 02:08


在这节课中将讨论如何使用ForiGate设备来进行路由流量。


在完成这一课程之后,你将具备使用静态和基于策略的路由实现路由所需的实际技能。你还将了解使用ECMP和WAN链接负载平衡的流量负载平衡。这个课程还将简要介绍动态路由的概念。


在这节课的开始,我们将讨论静态和策略路由。


什么是路由?

  路由决定在NAT模式下的FortGate将发送它接收到的数据包,以及它所产生的数据包。

  所有进行路由的网络设备都有一个路由表。正如我们稍后将看到的,一个路由表包含一系列规则,每个目标子网的一个或多个规则。每个规则都指定了如何路由一个包以到达目的地。例如,FoprtiGate检查包的IP报头的目标字段。如果路由规则匹配该目的地,则FortiGate可以将数据包从port1传输到port2,并根据信息传送到路由器。

  如果一个允许的包不是用于FortiGate本身,例如,不是管理访问,那么,FortiGate必须传递这个包。FortiGate在路由表中寻找匹配的活动路径,它可以用来传送数据包。要么将包直接交付到最终目的地,要么将其转发到沿着路径到达最终目的地的下一个路由器。

  通常,IP路由是基于目标IP地址进行的,不过,稍后我们将讨论,你也可以使用多个目的地IP地址来路由包。

  正确的路由配置非常重要。如果路由方向被错误配置,包将无法到达目的地,并且将丢失。


一种手动配置的路由称为静态路由。在路由表中,它的Type列被设置为静态。


  当你配置一个静态路由时,你正在告诉FortiGate设备,当看到一个包的目的地在这个目标地址范围内时,将它通过这个网络接口发送到这个路由器。我们还配置了距离和优先级,以便FortiGate知道哪一条是通往任何目的地的最佳路线。稍后我们将讨论距离和优先级。

  例如,在简单的家庭网络中,DHCP自动检索和配置一个静态路由。然后,你的调制解调器通过ISP的因特网路由器发送所有出去的流量,这些路由器可以将数据包发送到他们的目的地。

  你什么时候不需要静态路由?

  当目的地被直接连接到FortiGate的网络接口之一时,在中间没有路由器的情况下,FortiGate将会知道目的地。在route表中,它的类型是直连。


如果你使用IP加子网掩码创建了一个防火墙地址对象,你可以使用该防火墙地址作为一个或多个静态路由的目的地。


  首先,在防火墙地址配置中启用设置静态路由配置。一旦启用,就会显示防火墙地址对象,并且可以从任何静态路由的目标下拉列表中选择。


对于大型网络,手动配置数百条静态路由可能是不切实际的。

  你的FortiGate可以通过自动配置路线来帮助你。FortiGate支持多种动态路由协议:RIP、OSPF、BGP和IS-IS。

  动态路由中,FortiGate与附近的路由器进行通信,以发现它们的路径,并为它自己的直接连接的子网做广告。发现路径被自动添加到FortiGate的路由表中。所以请验证你的邻居路由器是可信的和安全的!

  更大的网络也可能需要在多个有效路径之间平衡路由负载,并检测和避免路由器的路由。我们稍后还会讨论这个问题。


在FortiGate的GUI中,路由表监视器显示了活动路由。


  除了静态的以外,还有哪些路由显示在这里?

  • 直接连接子网:当一个子网被分配到一个FortiGate的接口时,通往子网的路由会自动被添加到路由表中。FortiGate知道如何路由这些包。

  • 动态路由:在更大的网络上,你的FortiGate可能会从其他路由器接收路由,比如BGP。与手动配置许多路由器相比,这更快、更可扩展。

  哪些配置的路由不会显示在路由表监视器中?

  • 不活跃的路由:只有活动路由(通常是最好的路径)才会显示出来。稍后我们将看到,当同一目的地有多条路线时,如何选择最佳路径。

  • 策略路由:这些也被省略了。这是为什么呢?通过设计,策略路由覆盖了路由表。所以,它们必须放在一个单独的表中。


在路由表中列出的每个路由都包含几个具有相关值的设置。这些值用于传递或交付每个匹配的包。

  目的IP地址和网关IP地址是自解释的。该设备是即将发送数据包的传出接口的名称。但距离、度量和优先级呢?它们是如何影响路由路径包使用的?

  让我们每个都做一下简要解释。


距离或管理距离,是一个估计每个路由协议和静态路由的可靠性或质量的数字。如果同一目的地有两条线路,那么具有较低的距离值的通道是活动的,并且用于路由,因为它被认为更可靠。高距离的路由是不活动的,不用于路由。

  默认情况下,通过RIP协议学习的路由比通过OSPF协议获得的路由值要高。OSPF被认为比RIP更准确。


对于通过动态路由协议学习的路由,度量是另一个用于确定到达目的地的最佳路由的值。如果两条路线有相同的距离,则使用度量来打破平局。使用最低度量的路由是活动的,用于路由。

  优先级是如何优先的,取决于路由协议。RIP使用跳跃计数,这是到达目的地的路由器数量。OSPF使用成本,这取决于一个链接有多少带宽。


当多个静态路由具有相同的距离值时,将使用优先级值来确定最佳路由。也就是说,防御工事使用了最低优先级设置的路线。

  请注意,与具有相同距离和度量设置的路由不同,所有具有相同距离设置的路由都是活动的。然而,只有使用最低优先级设置的路由才能用于路由流量。我们稍后会看到,这是一个很重要的概念,在处理反向转发路径(RPF)检查问题时要知道。


我们了解了如何使用距离、度量和优先级设置来确定到达目的地的最佳路径。那么,当两个或更多的路径到达相同的目的地时,所有这些设置都有相同的值,会发生什么呢?

  如果线路是静态的,OSPF或BGP,在所有的路线中,FortiGate平衡所有路线之间的流量。这被称为平摊多路径(ECMP)。


当使用ECMP时,使用这四种方法中的一种。

  根据源IP地址、源和目标IP地址或接口权重,会话可以在相同的路由之间进行平衡。还有一种称为基于使用的方法(或溢出)。在基于使用的路由中,FortiGate使用一条主路由,直到到达一个流量阈值,在此之后,它使用下一个可用的路由。


链路健康监视是一种检测路径上的路由器何时关闭的机制。在现场有冗余路由器,例如双ISP连接时,经常使用它。

  在配置时,FortiGate会周期性地将信号通过一个网关发送到一个充当信号的服务器。服务器可以是任何通常可以通过该路径到达的主机。通常,最好选择具有健壮基础结构的稳定服务器,并选择服务器通常响应的协议。

  如果FortiGate停止接收来自服务器的重放,那么所有使用该网关的路由将从路由表中删除。或者,你可以将设备配置为人为的关闭一个接口,因此所有使用该接口的路由都将被删除。当服务器没有响应时,FortiGate将继续发送链路健康监视信号。一旦FortiGate收到回复,它就会恢复路线。

  选择一个间接连接的服务器可能是有用的,它位于FortiGate的网关的1或2跳。这并不完全测试这个网关的可用性,而是网关的组合。这样,FortiGate就能准确地指示出服务的可用性和随后的跳跃。


下面是如何从CLI中配置链路健康监视。

  你必须设置网关路由器的出口接口、网关路由器的IP地址、IP地址和协议(HTTP、ICMP、UDP或TCP)的IP地址。

  你可以为每个ISP都配置一个链路健康监视。


静态路由很简单,通常在小型网络中使用。而策略路由则更加灵活。它们可以匹配的不仅仅是目标IP地址。举个例子?如果你有两个链接,一个是慢速的,一个是快速的,你可以将数据包从低优先级的源IP路由到慢速链接。


  与静态和动态路由相关的策略路由优先于静态和动态路由。因此,如果一个包与策略路由匹配,那么就会绕过路由表查找。

  与静态路由一样,策略路由必须是有效的:需要一个目的地和网关,并且不能使用断开连接(或下线)的接口。对于策略路由,包也必须匹配所有指定的子网、ToS位和端口号。因此,如果你不希望将一个设置包含在匹配的标准中,请将其保留为空。

  【提示】策略路由优先于静态路由。


当一个包与策略路径匹配时,FortiGate就会采取两种行动中的一种。要么它将包路由到配置的接口和网关,绕过路由表,要么停止检查策略路由,因此包将基于路由表进行路由。


在本节中,我们将研究与路由相关的概念:反向路径转发检查。


有时由于路由和安全原因,数据包会被丢弃。

  RFP是一种保护FortiGate和网络免受IP欺骗攻击的机制。它检查是否有返回数据包源的路由。

  此检查在任何新会话的第一个包中执行。它也会在路由更改之后执行,在原来的方向上执行下一个包。

  有两种RPF模式:松散和严格。


这里是一个简单的网络和路由表。

  到wan1的传入Internet流量将被接受,因为默认路由是一条返回源的有效路由。

  但是,有两个接口将不会路由一些传入的流量:port1和wan2。

  port1不会路由流量,因为用户C的子网是10.0.4.0/24。通过port1没有激活子网的有效路由。因此,从10.0.4.0/24到port1的流量将被删除,因为该子网不能被路由回。

  另一个不路由流量的接口是wan2。当wan2与Internet物理连接时,唯一有效的IP地址是10.0.2.0/24子网中的IP地址。因此,流入的互联网流量将不会通过RPF的检查,并将被删除。


让我们看看如何解决这两个问题。

  第一个问题是通过添加静态路由到10.0.4.0/24来解决的。现在,当增强RPF检查用户C包时,它通过port1找到一条到该子网的活动路由,并且包被接受。

  第二个问题也是通过添加静态路由来解决的。在本例中,路由充当wan2的默认网关。要想变得活跃,它需要与wan1的默认路由保持相同的距离。它们都可以有不同的优先级,但是它们必须有相同的距离才能激活。

  这是一个例子,当两种路径有相同的距离时,但是需要不同的优先级。因此,一条路线将是最好的(具有最低优先级的),但两者都将是活动的。最好的路由将用于出站通信,但是两者都可以接收到传入的连接,而不会对RPF检查失败。

  如果优先级也是相同的,这就产生了与我们在ECMP示例中讨论过的情况类似的情况。因此,如果目的地是Internet,则有两种可能的路径:通过wan1或通过wan2。一些会话将从wan1退出,而另一些会话将从wan2退出。

  【提示】当多条宽带的路径是相同的距离时,这些宽带都是活动的,可以同时使用。


逆向路径转发可以是严格的或松散的。

  在松散模式下,只要有一个活动路径通过传入的接口,就可以接受这个包。它不一定是最好的路线,只是一个活跃的路线。

  在严格的模式下,FortiGate检查到达源IP地址的最佳路径是通过传入的接口。路由不仅必须是活动的(如松散模式的情况),而且必须是最好的。

  在下面我们将研究两个示例网络配置,将松散模式与严格模式进行比较。


让我们从松散模式示例开始。在本例中,10.0.4.1 ping 10.0.1.2,但是欺骗一个10.0.1.1的源IP。这使得包看起来是由内部网络发起的。松散的RPF允许这种通信,因为在wan1上的路由是一个默认的路由(0.0.0.0/0)。

  接下来的情况是10.0.1.2将把syn/ack数据包发送到实际设备,并使用IP地址10.0.1.1。

  但是由于10.0.1.1并不期望syn/ack包(因为它以前没有发送任何SYN包到10.0.1.2),所以它将使用TCP重置(RST)包来应答。


当使用严格的RPF时,让我们看看在相同的示例网络中会发生什么。

  严格的RPF会把包放下。wan1中的默认路由是一个通往子网10.0.4.0/24的活动路由。但这不是最好的路线。最好的方法是通过内部接口。

  尽管严格的RPF更安全,但如果使用动态路由,它可能会适得其反。动态路由可以快速更改,并且在每次首选路由更改时,它们可能导致FortiGate减少合法的数据包。一般来说,建议使用松散的RPF和阻止欺骗流量的防火墙策略,而不是使用严格的RPF来达到这个目的。


这一节中,我们将研究另外两种路由特性:internet服务和WAN链路负载均衡。


Internet服务是一个数据库,其中包含了最常见的Internet服务使用的IP地址、IP协议和端口号。FortiGate定期从FortiGuard下载最新版本的这个数据库。这些信息可用于选择性地将流量路由到任何指定的Internet服务,尽管具体的WAN接口。


  如果你需要通过一条特定的路线将流量路由到公共互联网服务(比如Dropbox或Facebook),会发生什么?假设你有两个ISP,你想要通过一个ISP和其他互联网流量来传输Netflix的流量。要实现这一目标,你需要了解Netflix的IP地址,并配置多个静态路由。在此之后,你需要经常检查以确保IP地址没有任何更改。互联网服务使这种类型的路由更容易、更简单。


你可以使用Internet服务地址作为静态路由的目的地。在本例中,我们将配置FortiGate,以通过接口port1来路由所有的Google DNS流量。


  使用Internet服务地址创建的静态路由(例如,使用子网或指定地址作为目的地的静态路由)不会被添加到路由表中,它们被添加到策略路由表中。可以使用CLI命令〖diagnose firewall proute list 〗来显示这些路由。该命令列出了策略路由表中的所有活动路由。


wan链路负载均衡由一组通常连接到多个ISP的接口组成。FortiGate将所有的因特网接口看作一个单一的逻辑接口:wan链路负载均衡接口。这样简化了配置,因为管理员可以只配置一组路由和防火墙策略,这些策略将应用于所有ISP。

  每个VDOM只有一个wan链路负载均衡接口。


wan链路负载均衡使用与ECMP类似的流量分配方法,但是wan链路负载均衡还包括一个更平衡的方法:容量。

  wan链路负载均衡使用这些方法:

  • 源IP:来自同一IP地址的流量使用相同的链接。

  • 源目标IP:来自同一对源和目标IP地址的通信使用相同的链接。

  • 溢出:类似于ECMP的溢出。一个链接所有的流量路由到一个阈值后,使用另一个链接。

  • 会话:接口权重定义每个链接应该拥有的会话的比例。会话在基于接口权重的链接中分布。

  • 容量:接口权重定义了每个链接应该拥有的流量的比例。会话是平衡的,因此流量是基于接口权重分布的。


在配置wan链路负载均衡时,指定哪些接口为成员。换句话说,哪些接口连接到互联网。


在配置了wan链路负载均衡之后,一个带有名称“wan-load-balance”的逻辑接口将自动添加到配置中。接下来,你将使用这个逻辑接口创建路由和防火墙策略。


FortiGate可以检查一个wan链路负载均衡组的每个接口成员的状态(健康)。在配置了一个协议、一个服务器IP地址和一个失败阈值之后,防御系统会定期地通过每个链接向服务器发送IP数据包。如果在一个链接中没有应答的连续包的数量超过了阈值,那么该成员将从wan链路负载均衡中删除。


wan状态检查还测量连接到每个wan接口的链接的质量。这个度量使用了三个不同的标准:延迟、抖动和包丢失百分比。正如我们将在接下来的看到的,优先级规则可以用于根据每个成员的链接质量来路由流量。


优先规则允许你指定想要通过哪个接口路由的流量。你可以使用优先级规则来通过特定的接口或通过具有最高链接质量的接口来路由流量。路由规则可以基于以下三个标准:延迟、抖动或包丢失百分比。

  优先级规则的评估方式与防火墙策略相同:上到下,使用第一个匹配。下面的参数可以用来匹配流量:

  • 源地址

  • 目的IP地址

  • 目的端口号

  • 网络服务

  • 用户或用户组

  • 类型的服务(ToS)

  这在配置FortiGate的道路交通时提供了很大的灵活性。例如,你可以通过一个ISP将Facebook的流量路由到特定的认证用户,同时通过另一个ISP保持你的其他Internet流量。


与使用Internet服务的静态路由类似,将优先规则添加为策略路由。可以使用CLI命令〖diagnose firewall proute list 〗显示优先级规则。

  在本例中,我们创建了一条规则,通过port1来路由Google DNS通信。这里只显示了策略路由的部分输出。


为了完成这一课程,我们将提供一些用于故障诊断路由问题的命令和工具。


CLI命令〖get route info routing-table all 〗在路由表显示所有活动的路由,左列表示路由的源。

  括号内的第一个数字是距离。

  第二个数字是度量。这个命令没有显示不活动的路由。例如,当同一目的地子网的两个静态路由有不同的距离时,一个具有最低距离的路由是活动的。距离最高的那个是不活动的。因此,这个命令只显示具有最低距离的那个(活动的)。

  【提示】同一目地子网的两条静态路由,路由表中只显示距离数值小的那条。


如果你想要同时显示活动和非活动路由,请使用这个CLI命令〖get route info routing-table database〗

  在本例中,你可以看到该命令显示了一个不活动的路由。这条路线是不活动的,因为它的距离比下面的要高。


包捕获或嗅探器是调试网络问题最有效的信息来源之一。FortiOS包括一个内置的流量嗅探器工具。它可以用来检查数据包何时到达设备,以及使用哪个传出接口来将它们路由出去。

  内置的嗅探器可以从GUI或CLI中执行。CLI命令的语法〖diagnose sniffer packet <interface><filter><level> 〗接口是物理或逻辑接口的名称,如果你帐户有访问配置文件super_admin,你可以指定任何一个嗅探器所有的接口。这些过滤器类似于Linux上的tcpdump。


这个级别指定了你想要显示多少信息。这里有6个不同的级别,这个表显示了哪些显示了IP报头、IP有效负载、以太网头和接口名。

  我们通常会运行verbosity 4来快速查看一下流量是如何通过FortiGate的(如果数据包到达,以及FortiGate是如何将它们路由出去的)。此外,还可以使用verbosity 4来检查是否正在删除包。

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


这里展示了两个包嗅探输出的例子。第一个嗅探器捕捉到端口443的所有流量。它使用的是verbosity 4,因此信息很容易阅读。它显示每个包的一行,包含传入和传出接口、IP地址、端口号和数据包类型(SYN,SYN/ACK等等)。

  第二个嗅探器捕获来自或前往主机192.168.1.254的所有ICMP通信流。在这种情况下,输出是verbosity 3,由于它包含了数据包的IP负载,它的读取时间更长,也更难以读取。但是,如果你需要将输出导出到Wireshark,那么这是使用的两个verbosity级别之一(6是另一个)。


如果你的FortiGate的型号有内部存储,你可以从GUI捕获数据包。这些选项与CLI的选项类似。要运行跟踪,请指定一个源接口和一个过滤器。


  相对于CLI的主要优势是什么?你可以用一种文件格式(pcap)来下载,这是可以与Wireshark兼容的,而不需要使用转换脚本。

  不管你使用哪种方法(CLI或GUI),包捕获过滤器应该是非常具体的。因此,你将只捕获相关的数据包,并避免将大量数据写入磁盘。


在这节课中,我们讨论了静态和基于策略的路由概念和配置,包括以下内容:

  • 路由表元素

  • 如何将每个包与路由匹配

  • 静态和基于策略的路由

  • 平滩多路径(ECMP)

  • 链路健康监测

  • 松散和严格的反向路径转发(RPF)

  • 路由网络服务

  • wan链路负载均衡

  • 路由诊断

  • 数据包捕获


飞塔技术 - 老梅子   QQ:57389522


阅读全文
0 0
原创粉丝点击