路由概述
以下主题介绍路由在 FTD 设备中的运行方式。所谓路由是指通过网络将信息从源发送到目的地的活动。在途中通常会经过至少一个中间节点。路由涉及两个基本活动:确定最佳路由路径和通过网络传输数据包。
路由类型
主要有两种类型的路由:静态路由或动态路由。
静态路由是明确定义的路由。它们相对稳定且通常具有高优先级,用于确保将发往路由目标的流量发送到正确的接口。例如,您可以创建一个默认静态路由,用于覆盖尚未被任何其他路由覆盖的所有流量,即 IPv4 的 0.0.0.0/0 或 IPv6 的 ::/。另一个示例是指向您经常使用的内部系统日志服务器的静态路由。
动态路由是从路由协议(如 OSPF、BGP、EIGRP、IS-IS 或 RIP)的操作中习得的路由协议,您不用直接定义这类路由。相反,您配置路由协议,然后系统与邻居路由器进行通信,传输并接收路由更新。
动态路由协议通过分析收到的路由更新消息调整路由表,使其适应不断变化的网络环境。如果有消息表明网络发生更改,则系统会重新计算路由并发出新的路由更新消息。这些消息会渗入网络,促使路由器重新运行其算法并相应地更改其路由表。
静态路由非常简单,发挥基本路由的作用,在网络流量相对可预测且网络设计相对简单的环境中十分适用。但是,静态路由不能更改(除非您编辑它们),因此它们不能应对网络中的更改。
除非您有一个小型网络,否则您通常会将静态路由和一个或多个动态路由协议搭配使用。您将定义至少一个静态路由,作为不匹配显式路由的流量的默认路由。
注 |
可以使用 Smart CLI 配置以下路由协议:OSPF、BGP。使用 FlexConfig 配置 ASA 软件支持的其他路由协议。 |
路由表和路由选择
如果 NAT 转换 (xlates) 和规则无法确定传出接口,系统将使用路由表来确定数据包的路径。
路由表中的路由包括一个名为“管理距离”的指标,提供相对于既定路由的优先级。如果某个数据包与多个路由条目匹配,则使用距离最短的路由。直连网络(在接口上定义的网络)的距离为 0,因此始终首选使用此网络。静态路由的默认距离为 1,但您可以使用 1-254 之间的任意距离创建默认距离。
标识具体目的地的路由优先于默认路由(即目的地为 0.0.0.0/0 或 ::/0 的路由)。
路由表的填充方式
FTD 路由表可以通过静态定义的路由、直连路由以及动态路由协议发现的路由来填充。由于 FTD 除具有路由表中的静态路由和已连接路由外,还可以运行多条路由协议,因此可通过多种方式发现或输入同一路由。当在路由表中放入同一目标的两条路由时,将按如下确定保留在路由表中的路由:
-
如果两个路由具有不同的网络前缀长度(网络掩码),则会将两个路由都视为唯一并输入到路由表中。然后,由数据包转发逻辑确定使用哪一条路由。
例如,如果 RIP 和 OSPF 进程发现以下路由:
-
RIP:192.168.32.0/24
-
OSPF:192.168.32.0/19
即使 OSPF 路由具有更好的管理距离,但由于两条路由具有不同的前缀长度(子网掩码),因此均会安装在路由表中。这两条路由被视为不同目标,数据包转发逻辑会确定使用哪条路由。
-
-
如果 FTD 从单个路由协议(例如 RIP)获悉通向同一目标的多条路径,则会在路由表中输入具有更佳指标的路由(由路由协议确定)。
指标是与特定路由关联的值,从最高优先到最低优先进行排序。用于确定指标的参数根据路由协议而异。具有最低指标的路径选择作为最佳路径并安装在路由表中。如果有多个指标相等的通向同一目标的路径,则会在这些等价路径上进行负载均衡。
-
如果 FTD 从多个路由协议获悉目标,则会比较路由的管理距离,并在路由表中输入管理距离较短的路由。
路由的管理距离
您可以更改由路由协议发现或重分发到路由协议中的路由的管理距离。如果来自两个不同路由协议的两条路由具有相同的管理距离,则会将具有较短默认管理距离的路由输入到路由表中。对于 EIGRP 和 OSPF 路由,如果 EIGRP 路由和 OSPF 路由具有相同的管理距离,则默认选择 EIGRP 路由。
管理距离是 Firepower 威胁防御设备在有两个或多个通向同一目标(来自两个不同路由协议)的路由时,用于选择最佳路径的路由参数。由于路由协议具有基于不同于其他协议的算法的指标,因此并非总能够确定通向由不同路由协议生成的同一目标的两条路由的最佳路径。
每个路由协议使用管理距离值划分优先级。下表显示 Firepower 威胁防御设备支持的路由协议的默认管理距离值。
路由源 |
默认管理距离 |
---|---|
已连接的接口 |
0 |
静态路由 |
1 |
EIGRP 汇总路由 |
5 |
外部 BGP |
20 |
内部 EIGRP |
90 |
OSPF |
110 |
IS-IS |
115 |
RIP |
120 |
EIGRP 外部路由 |
170 |
内部和本地 BGP |
200 |
未知 |
255 |
管理距离值越小,协议的优先等级越高。例如,如果 Firepower 威胁防御设备从 OSPF 路由进程(默认管理距离 - 110)和 RIP 路由进程(默认管理距离 - 120)均收到通向特定网络的路由,则 Firepower 威胁防御设备会选择 OSPF 路由,因为 OSPF 具有更高的优先级。在这种情况下,路由器会将 OSPF 版本的路由添加到路由表。
在本示例中,如果 OSPF 派生路由的源丢失(例如,由于电源关闭),则 Firepower 威胁防御设备会使用 RIP 派生路由,直至 OSPF 派生路由再次出现。
管理距离是一项本地设置。例如,如果您更改通过 OSPF 获取的路由的管理距离,则该更改仅会影响输入了该命令的 Firepower 威胁防御设备上的路由表。在路由更新中不会通告管理距离。
管理距离不影响路由进程。路由进程仅通告路由进程已发现或重分发到路由进程中的路由。例如,即使在 路由表中使用 OSPF 路由进程发现的路由,RIP 路由进程也会通告 RIP 路由。
备份动态和浮动静态路由
当由于安装另一条路由而导致初始尝试将路由安装在路由表中失败时,系统会注册备用路由。如果安装在路由表中的路由失败,则路由表维护进程会呼叫已注册备用路由的每个路由协议进程,并请求它们重新在路由表中安装此路由。如果有多个协议为失败路由注册了备用路由,则根据管理距离选择优先路由。
鉴于以上过程,当动态路由协议发现的路由失败时,您可以创建安装在路由表中的浮动静态路由。浮动静态路仅仅是配置有比 Firepower 威胁防御设备上运行的动态路由协议更大的管理距离的静态路由。当动态路由进程发现的对应路由失败时,会在路由表中安装静态路由。
如何制定转发决策
系统按如下制定转发决策:
-
如果目的目标不匹配路由表中的条目,则通过为默认路由指定的接口转发数据包。如果尚未配置默认路由,则会丢弃数据包。
-
如果目的目标匹配路由表中的单个条目,则通过与该路由关联的接口转发数据包。
-
如果目的目标匹配路由表中的多个条目,则通过与具有较长网络前缀的路由相关联的接口转发数据包。
例如,发往 192.168.32.1 的数据包到达在路由表中拥有以下路由的接口:
-
192.168.32.0/24 网关 10.1.1.2
-
192.168.32.0/19 网关 10.1.1.3
在这种情况下,发往 192.168.32.1 的数据包直接发送到 10.1.1.2,因为 192.168.32.1 属于 192.168.32.0/24 网络。它也属于路由表中的其他路由,但 192.168.32.0/24 在路由表中的前缀最长(24 位对比 19 位)。在转发数据包时,较长前缀始终优先于较短的前缀。
注 |
即便新的相似连接将因路由中的变化而导致不同行为,现有连接也将继续使用其已建立的接口。 |
管理流量的路由表
作为一项标准安全实践,在将管理流量与数据流量分开与隔离时,通常会需要它。要实现这种隔离,FTD 为管理专用流量和数据流量使用单独的路由表。单独的路由表意味着您也可以创建用于数据和管理的单独默认路由。
关联设备流量始终使用数据路由表。
设备流量(根据类型)在默认情况下使用管理路由表或数据路由表。如果在默认路由表中找不到匹配项,则会检查其他路由表。
关联设备管理表包括使用 HTTP、SCP、TFTP、等打开远程文件的功能。
关联设备流量数据表包括所有其他功能,如 ping、DNS、DHCP 等。
如果您需要传出流量退出默认路由表中不存在的接口,则您可能需要在配置接口时指定接口,而不是依赖于回到另一个表。FTD 检查用于该接口路由的正确路由表。例如,如果需要 ping 命令来退出管理专用接口,请在 ping 函数中指定该接口。否则,如果数据路由表中具有默认路由,则将匹配默认路由且绝不回到管理路由表。
管理路由表支持独立于数据接口路由表的动态路由。给定的动态路由进程必须在管理专用接口或数据接口上运行;不能将两种类型混用。
管理专用接口包括所有“管理 x/x”(名为“诊断”)接口以及您配置为管理专用的所有接口。
注 |
此路由表不影响其用于与 FMC 通信的特殊 FTD 管理逻辑接口;该接口具有自身的路由表。另一方面,诊断逻辑接口使用本节所述的管理专用路由表。 |
注 |
此路由表不影响其用于与许可服务器通信或数据库更新的特殊 FTD 管理虚拟接口;该接口具有自身的路由表。另一方面,诊断物理接口使用本节所述的管理专用路由表。 |
等价多路径 (ECMP) 路由
Firepower 威胁防御设备支持等价多路径 (ECMP) 路由。
每个接口最多支持 3 个等价静态或动态路由。例如,您可以在外部接口上配置多个默认路由,指定不同的网关:
route for 0.0.0.0 0.0.0.0 through outside to 10.1.1.2
route for 0.0.0.0 0.0.0.0 through outside to 10.1.1.3
route for 0.0.0.0 0.0.0.0 through outside to 10.1.1.4
在这种情况下,流量在外部接口上的 10.1.1.2、10.1.1.3 和 10.1.1.4 之间进行负载均衡。流量基于散列源和目标 IP 地址、传入接口、协议、源与目标端口的算法在 指定网关之间进行分发。
不支持跨多个接口执行 ECMP,因此您不能在不同接口上定义到同一目标的路由。使用上述任一路由配置时,不允许使用以下路由:
route for 0.0.0.0 0.0.0.0 through outside2 to 10.2.1.1