关于虚拟路由器和虚拟路由与转发 (VRF)
可以创建多个虚拟路由器来为接口组维护单独的路由表。由于每个虚拟路由器都有自己的路由表,因此您可以完全分隔流经设备的流量。
因此,您可以通过一组通用的网络设备为两个或多个不同的客户提供支持。您还可以使用虚拟路由器为自身网络的元素提供更多隔离,例如,将开发网络与一般用途的企业网络隔离。
虚拟路由器将实施虚拟路由和转发功能的“轻型”版本(或 VRF Lite),它不支持 BGP 的多协议扩展 (MBGP)。
创建虚拟路由器时,您需要为路由器分配接口。您可以将给定接口分配给一个且仅有一个虚拟路由器。然后即可定义静态路由,并为每个虚拟路由器配置路由协议(例如 OSPF 或 BGP)。还可在整个网络中配置单独的路由进程,以便所有参与设备的路由表都使用每个虚拟路由器相同的路由进程和表。使用虚拟路由器,可在同一物理网络上创建逻辑分隔的网络,以确保流经每个虚拟路由器的流量的隐私。
由于路由表独立存在,因此可以在虚拟路由器上使用相同或重叠的地址空间。例如,可以将 192.168.1.0/24 地址空间用于两个独立的虚拟路由器,分别由两个独立物理接口提供支持。
请注意,每个虚拟路由器有单独的管理和数据路由表。例如,如果将管理专用接口分配给虚拟路由器,则该接口的路由表会与分配给虚拟路由器的数据接口分离开来。
虚拟路由器的应用
您可以使用虚拟路由器来隔离共享资源上的网络,以及/或者隔离具有通用安全策略的网络。因此,虚拟路由器可以帮助您实现:
-
通过为每个客户或不同部门提供专用路由表来为客户分离流量。
-
不同部门或网络的通用安全策略管理。
-
不同部门或网络的共享互联网接入。
全局和用户定义的虚拟路由器
全局虚拟路由器
对于具有虚拟路由功能的设备,系统会默认创建一个全局虚拟路由器。系统会将网络中的所有接口分配给全局虚拟路由器。路由接口可以属于用户定义的虚拟路由器或全局虚拟路由器。在将威胁防御升级到具有虚拟路由器功能的版本时,其所有现有路由配置将成为全局虚拟路由器的一部分。
用户定义的虚拟路由器
用户定义的虚拟路由器就是您定义的虚拟路由器。您可以在一台设备上创建多个虚拟路由器。但在任何时候,一个接口都只能分配给一个用户定义的虚拟路由器。虽然用户定义的虚拟路由器支持某些设备功能,但只有少数功能仅在全局虚拟路由器上受支持。用户定义的虚拟路由器支持基于路由的站点间 VPN(静态 VTI) 。
支持的功能和监控策略
您只能在全局虚拟路由器上配置以下功能:
-
OSPFv3
-
RIP
-
EIGRP
-
IS-IS
-
BGPv6
-
组播路由
-
策略型路由 (PBR)
通过管理中心中的 Flex Config 支持 ISIS (请参阅预定义的 FlexConfig 对象)。只为这些功能配置全局虚拟路由器接口。
DHCP 服务器自动配置会使用从接口获知的 WINS/DNS 服务器。此接口只能是全局虚拟路由器接口。
您可以为每个用户定义的虚拟路由器单独配置以下功能:
-
静态路由及其 SLA 监控器
-
OSPFv2
-
BGPv4
-
集成的路由与桥接 (IRB)
-
SNMP
当查询或与远程系统通信时,系统会使用以下功能(传出流量)。这些功能仅使用全局虚拟路由器中的接口。这意味着,如果为该功能配置了接口,则接口必须属于全局虚拟路由器。作为一条规则,系统无论何时出于管理目的必须查找连接外部服务器的路由,它会在全局虚拟路由器中执行路由查找。
-
DNS 服务器用于解析访问控制规则中使用的完全限定名称,或解析 ping 命令的名称。如果指定 any 作为 DNS 服务器的接口,则系统仅考虑全局虚拟路由器中的接口。
-
用于 VPN 的 AAA 服务器或身份领域。只能在全局虚拟路由器中的接口上配置 VPN。因此,用于 VPN 的外部 AAA 服务器(如 Active Directory)必须可通过全局虚拟路由器中的接口访问。
-
系统日志服务器。
配置策略以感知虚拟路由器
创建虚拟路由器时,该虚拟路由器的路由表会自动与全局虚拟路由器或任何其他虚拟路由器分离开来。但是,安全策略不会自动识别虚拟路由器。
例如,如果编写适用于“任何”源或目标安全区的访问控制规则,则该规则将应用于所有虚拟路由器上的所有接口。这实际上可能正是您所希望得到的结果。例如,可能所有客户都想阻止访问相同系列的令人反感的 URL 类别。
但是,如果需要仅向其中一个虚拟路由器应用策略,则需要创建仅包含来自该单一虚拟路由器的接口的安全区。然后,在安全策略的源和目标条件中使用虚拟路由器限制的安全区。
通过使用其成员身份限制为分配给单个虚拟路由器的接口的安全区,您可以在以下策略中编写虚拟路由器感知规则:
-
访问控制策略。
-
入侵和文件策略。
-
SSL 解密策略。
-
身份策略和用户到 IP 地址映射。如果在虚拟路由器中使用重叠地址空间,请确保为每个虚拟路由器创建单独的领域,并在身份策略规则中正确应用。
如果在虚拟路由器中使用重叠地址空间,则应使用安全区确保应用适当的策略。例如,如果在两个单独的虚拟路由器中使用 192.168.1.0/24 地址空间,则指定 192.168.1.0/24 网络的访问控制规则将应用于两个虚拟路由器中的流量。如果这不是期望的结果,您可以通过只为其中一个虚拟路由器指定源/目标安全区来限制该规则的应用。
互联虚拟路由器
静态和动态路由泄漏
您可以配置设备来路由虚拟路由器之间的流量。路由泄漏过程可以通过设置静态路由手动完成,也可以通过 BGP 设置动态完成。
静态路由泄漏
您可以配置静态路由来路由虚拟路由器之间的流量。
例如,如果您在全局虚拟路由器中设有外部接口,则可以在每个其他虚拟路由器中设置静态默认路由,以将流量发送到该外部接口。然后,无法在给定虚拟路由器内路由的任何流量将被发送到全局路由器,以进行后续路由。
虚拟路由器之间的静态路由被称为路由泄漏,这是因为您会将流量泄漏到其他虚拟路由器。泄漏路由(例如,VR1 路由到 VR2)时,可以仅发起从 VR2 到 VR1 的连接。要使流量从 VR1 流向 VR2,必须配置反向路由。当您为另一个虚拟路由器中的接口创建静态路由时,不需要指定网关地址,而只需选择目标接口。
对于虚拟路由器间路由,系统会在源虚拟路由器中查找目标接口。然后,系统会查找目标虚拟路由器中下一跳的 MAC 地址。因此,目标虚拟路由器必须具有用于目标地址的所选接口的动态(获知)或静态路由。
通过配置将在不同虚拟路由器中使用源接口和目标接口的 NAT 规则,还允许在虚拟路由器之间路由流量。如果未选择 NAT 进行路由查找的选项,则每当发生目标转换时,规则就会将流量从目标接口发送到 NATed 地址。但是,目标虚拟路由器应具有一个已转换目标 IP 地址的路由,以便下一跳查找可以取得成功。
虽然 NAT 规则将流量从一个虚拟路由器泄漏到另一个虚拟路由器,但为了确保正确的路由,建议在这些虚拟路由器之间为转换后的流量配置静态路由泄漏。如果没有路由泄漏,有时该规则可能无法匹配您预期其匹配的流量,并且可能不会应用转换。
虚拟路由不支持级联或路由泄漏链。例如,假设 威胁防御 具有 VR1、VR2 和 VR3 虚拟路由器;VR3 直接连接到网络 10.1.1.0/24。现在,假设您在 VR1 中通过 VR2 中的接口为网络 10.1.1.0/24 配置了路由泄漏,在 VR2 中通过 VR3 为 10.1.1.0/24 定义了路由泄漏。此路由泄漏链不允许流量从 VR1 跳到 VR2,然后从 VR3 退出。如果存在路由泄漏,路由查找将首先从输入虚拟路由器的路由表确定出口接口,然后查看虚拟路由器的路由表输出,以进行下一跳查找。在上述两次查找中,出口接口应匹配。在本示例中,出口接口不是同一接口,因此流量不会通过。
当目的网络不是上游(传出)VR 的直连子网时,请谨慎使用静态 VRF 间路由。例如,假设有两个 VR - VR1 和 VR2。VR1 处理通过 BGP 或任何动态路由协议从其外部对等体获取默认路由的传出流量,而 VR2 则处理配置了静态 VRF 间默认路由的传入流量,并将 VR1 作为下一跳。当 VR1 丢失来自其对等体的默认路由时,VR2 将无法检测到其上游(传出)VR 丢失了默认路由,并且仍会向 VR1 发送流量,该流量最终将被丢弃,而不会发出通知。在这种情况下,我们建议您通过 BGP 为 VR2 配置动态路由泄漏。
使用 BGP 完成的动态路由泄漏
您可以通过使用路由目标扩展社区将路由从源虚拟路由器(比如 VR1)导出到源 BGP 表,然后将相同的路由目标扩展社区从源 BGP 表导入到目的 BGP 表来实现虚拟路由器间路由泄漏,导入的路由目标扩展社区将由目的虚拟路由器(比如 VR2)使用。您可以使用路由映射来过滤路由。全局虚拟路由器的路由也可以泄漏到用户定义的虚拟路由器,反之亦然。BGP 虚拟路由器间路由泄漏支持 IPv4 和 IPv6 前缀。
有关配置 BGP 路由泄漏的详细信息,请参阅配置 BGP 路由导入/导出设置。
BGP 路由泄漏准则
-
确保递归所需的所有路由均已导入并出现在入口虚拟路由器的路由表中。
-
每个虚拟路由器都支持 ECMP。因此,请不要在不同的虚拟路由器之间配置 ECMP。从不同虚拟路由器导入的重叠前缀无法形成 ECMP。也就是说,当您尝试将具有重叠地址的路由从两个不同的虚拟路由器导入到其他虚拟路由器(全局虚拟路由器或用户定义的虚拟路由器)时,只有一条路由(根据 BGP 最佳路径算法,是通告的第一个路由)会导入到相应的虚拟路由表中。例如,如果连接到 VR1 的网络 10.10.0.0/24 先通过 BGP 通告到全局虚拟路由器,之后连接到 VR2 的另一个具有相同地址 10.10.0.0/24 的网络也通过 BGP 通告到全局虚拟路由器,则只有 VR1 网络路由会导入到全局虚拟路由表中。
-
用户定义的虚拟路由器不支持 OSPFv3。因此,请不要将 BGPv6 配置为将 OSPFv3 用户定义的虚拟路由器泄漏到全局虚拟路由器。但是,您可以将 BGPv6 配置为通过重新分发将 OSPFv3 全局虚拟路由器路由泄漏到用户定义的虚拟路由器。
-
建议将 VTI 接口、受保护的内部接口(如果 VTI 支持,则为环回接口)保留为同一虚拟路由器的一部分,以防止需要路由泄漏。
重叠 IP 地址
虚拟路由器会创建多个独立的路由表实例,因此可以使用相同或重叠的 IP 地址,而且不会发生冲突。威胁防御 允许同一网络成为两个或多个虚拟路由器的一部分。这涉及到要在接口或虚拟路由器级别应用的多个策略。
除了少数例外,路由功能以及大多数 NGFW 和 IPS 功能都不会受重叠 IP 地址的影响。以下部分介绍具有重叠 IP 地址限制的功能以及摆脱这些限制的建议。
重叠 IP 地址的限制
在多个虚拟路由器中使用重叠 IP 地址时,为确保正确应用策略,您必须修改某些功能的策略或规则。此类功能要求您拆分现有安全区域或根据需要使用新接口组,以便使用更具体的接口。
在使用重叠 IP 地址时,您需要修改以下功能才能正常运行:
-
“网络映射”(Network Map) - 修改网络发现策略以排除一些重叠的 IP 网段,以确保没有映射的重叠 IP 地址。
-
“身份策略”(Identity Policy) - 身份源来源无法区分虚拟路由器;要摆脱此限制,请在不同领域映射重叠地址空间或虚拟路由器。
对于以下功能,您需要在特定接口上应用规则,才能确保在重叠的 IP 网段上应用不同的策略:
-
访问策略
-
预过滤器策略
-
QoS/速率限制
-
SSL 策略
重叠 IP 地址的不支持的功能
-
AC 策略中基于 ISE SGT 的规则 - 从思科身份服务引擎 (ISE) 下载的静态安全组标签 (SGT) 到 IP 地址的映射不会感知虚拟路由器。如果需要为每个虚拟路由器创建不同的 SGT 映射,请为每个虚拟路由器设置单独的 ISE 系统。如果打算将相同的 IP 地址映射到各个虚拟路由器中的相同 SGT 编号,则无需执行此操作。
-
不支持跨虚拟路由器使用重叠 DHCP 服务器池。
-
事件和分析 - 很多 管理中心 分析依赖于网络映射和身份映射,如果同一 IP 地址属于两个不同的终端主机,则无法区分。因此,当同一设备中存在重叠的 IP 网段但虚拟路由器不同时,这些分析并不准确。
在用户定义的虚拟路由器上配置 SNMP
除了在管理接口和全局虚拟路由器数据接口上支持 SNMP,Cisco Secure Firewall Threat Defense 现在还允许您在用户定义的虚拟路由器上配置 SNMP 主机。
在用户定义的虚拟路由器上配置 SNMP 主机包括以下过程:
-
注
SNMP 无法被虚拟路由器感知。因此,在用户定义的虚拟路由器上配置 SNMP 服务器时,请确保网络地址不是重叠的 IP 地址。
-
将配置部署到 Cisco Secure Firewall Threat Defense。在成功部署后,SNMP 轮询和陷阱将通过虚拟路由器接口发送到网络管理站。