使用路由解析限制 VPN 路由
本主题介绍如何通过在 PE 路由器和路由反射器上配置路由解析,并将 PE 路由器配置为接受来自 CE 路由器的有限数量的前缀来限制 VPN 路由。
示例:在 PE 路由器上配置路由解析
此示例说明如何配置路由表以接受来自特定路由表的路由。它还说明了如何配置路由表以使用特定导入策略生成路由解析表以解析路由。
要求
开始之前,请配置一个第 3 层 VPN,如以下示例之一所示:
概述
实现 IPv4 路由扩展的一种方法是修改将 BGP 路由添加到转发表的方式。默认情况下,路由协议进程 (rpd) 会将 inet.0 和 inet.3 中的所有路由添加到解析树中。通常,这包括已解析的 IPv4 BGP 路由,这可能会增加内存消耗。为了更好地扩展 IPv4 路由,此示例说明如何配置 Junos OS,以便解析的 BGP 路由不会添加到解析树中。这是通过对路由解析表应用导入策略来实现的,该策略确保它不接受来自 inet.0 的任何 BGP 路由。
您可以将此配置应用于第 3 层 VPN 中的所有提供商边缘 (PE) 路由器。
配置
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,然后将命令复制并粘贴到层 [edit] 级的 CLI 中。
PE 路由器
set policy-options policy-statement protocol-bgp from protocol bgp set policy-options policy-statement protocol-bgp then reject set routing-options resolution rib inet.0 import protocol-bgp
程序
分步过程
下面的示例要求您在各个配置层级中进行导航。有关 CLI 导航的信息,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器。
要配置路由解析,请执行以下作:
配置路由策略。
[edit policy-options policy-statement protocol-bgp] user@PE# set from protocol bgp user@PE# set then reject
应用路由策略。
[edit routing-options resolution] user@PE# set rib inet.0 import protocol-bgp
如果完成设备配置,请提交配置。
[edit] user@PE# commit
结果
发出 show policy-options 和 show routing-options 命令,以确认您的配置。
user@PE# show policy-options
policy-statement protocol-bgp {
from protocol bgp;
then reject;
}
user@PE# show routing-options
resolution {
rib inet.0 {
import protocol-bgp;
}
}
验证
运行以下命令,确认配置工作正常:
示例:在路由反射器上配置路由解析
此示例说明如何更改路由反射器 (RR) 上的默认解析行为,以使用 inet.0 而不是 inet.3 进行下一跳解析。
要求
开始之前,请配置一个第 3 层 VPN,如以下示例之一所示:
概述
路由解析的一种情景是,配置了从 RR 到提供商边缘 (PE) 路由器的标签交换路径,或者 PE 路由器仅与 RR 对等。这可能会导致路由被隐藏。若要解决此问题,可以将默认解析行为更改为使用 inet.0 进行下一跃点解析。
默认情况下,bgp.l3vpn.0 路由表存储所有 VPN-IPv4 单播路由。任何配置了第 3 层 VPN 的路由器(包括 PE 路由器和 RR)都会出现此表。
当第 3 层 VPN 路由器收到来自另一台第 3 层 VPN 路由器的路由时,它会将该路由放入其 bgp.l3vpn.0 路由表中。使用 inet.3 路由表中的信息解析路由。这意味着当 BGP 收到发往表 bgp.l3vpn.0 的路由时,协议下一跃点(收到的 BGP 下一跃点)会从 inet.3 表递归确定其转发下一跃点。生成的路由将转换为 IPv4 格式,如果与 VRF 导入策略匹配,则重新分发到所有 routing-instance-name.inet.0 路由表。
在没有连接客户边缘 (CE) 路由器的 RR 上, resolution rib bgp.l3vpn.0 resolution-ribs inet.0 配置会导致 bgp.l3vpn.0 中的路由使用 inet.0 中的信息(而非 inet.3)来解析路由。不应在直接连接到 CE 路由器的路由器上使用此配置。换句话说,请勿在 PE 路由器上使用 resolution rib bgp.l3vpn.0 resolution-ribs inet.0 。
如果要同时使用 inet.0 和 inet.3,则必须同时配置两者,如 中 set resolution rib bgp.l3vpn.0 resolution-ribs [inet.0 inet.3]所示。
在此示例中,策略 POLICY-limit-resolve-routes 将路由解析限制为仅通过 IS-IS 获知的路由。如果省略导入策略,则将评估 inet.0 中的所有路由,并可能用于解析下一跃点的协议。如果您不想针对所有条目进行解析,则可以使用策略从用于路由解析的表中筛选路由的子集。
一个常见的示例是针对 inet.0 中的所有路由进行解析时,默认路由 (0/0) 除外。
尽管在此配置中使用了 import 语句,但不会导入或复制任何路由。相反,该 import policy-name 配置限制了可考虑用于路由解析的可能路由集。
当 BGP RR 不在转发路径中时,此 resolution rib bgp.l3vpn.0 resolution-ribs inet.0 配置非常有用。换言之,RR 上没有入口 LSP。请考虑以下情况:RSVP 是标签信令协议,而 RSVP 在边缘路由器上配置为全网状。RR 需要能够反映路由。为此,BGP 需要执行路由可解析性检查。如果接收到第 3 层 VPN 路由,但下一跃点不在 inet.3 表中,则无法解析该路由。由于路由器不在转发路径中,因此有效的解决方法是使用 inet.0 中的信息。inet.0 中的度量信息对于选择最佳路由很有用,即使它不能用于转发。
另一种方法是确保将 LSP 配置到 RR。如果配置 LDP,则会自动执行此作。
配置
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,然后将命令复制并粘贴到层 [edit] 级的 CLI 中。
路由反射器
set routing-options resolution rib bgp.l3vpn.0 resolution-ribs inet.0 set routing-options resolution rib inet.0 import POLICY-limit-resolve-routes set policy-options policy-statement POLICY-limit-resolve-routes term isis from protocol isis set policy-options policy-statement POLICY-limit-resolve-routes term isis then accept set policy-options policy-statement POLICY-limit-resolve-routes then reject
程序
分步过程
下面的示例要求您在各个配置层级中进行导航。有关 CLI 导航的信息,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器。
要配置路由解析,请执行以下作:
将 bgp.l3vpn.0 配置为使用 inet.0 而不是 inet.3 中的信息来解析路由。
[edit routing-options resolution rib bgp.l3vpn.0] user@RR# set resolution-ribs inet.0
(选答)配置路由策略。
[edit policy-options policy-statement POLICY-limit-resolve-routes] user@RR# set term isis from protocol isis user@RR# set term isis then accept user@RR# set then reject
(选答)应用策略。
[edit routing-options resolution rib inet.0] user@RR# set import POLICY-limit-resolve-routes
如果完成设备配置,请提交配置。
[edit] user@RR# commit
结果
发出 show policy-options 和 show routing-options 命令,以确认您的配置。
user@RR# show policy-options
policy-statement POLICY-limit-resolve-routes {
term isis {
from protocol isis;
then accept;
}
then reject;
}
user@RR# show routing-options
resolution {
rib bgp.l3vpn.0 {
resolution-ribs inet.0;
}
rib inet.0 {
import POLICY-limit-resolve-routes;
}
}
验证
运行以下命令,确认配置工作正常:
限制第 3 层 VPN 中 CE 路由器接受的路径和前缀数量
您可以对可安装到路由表中的前缀和路径数量设置最大限制。使用前缀和路径限制,您可以减少从 VPN 中的 CE 路由器接收的前缀和路径数。前缀和路径限制仅适用于动态路由协议,不适用于静态路由或接口路由。
要限制 PE 路由器从 CE 路由器接受的路径数,请添加 maximum-paths 以下语句:
maximum-paths path-limit <log-interval interval | log-only | threshold percentage>;
有关可在其中配置此语句的层次结构级别列表,请参阅此语句的语句摘要部分。
指定 仅日志 选项以仅生成警告消息(建议限制)。指定 阈值 选项以在达到限制之前生成警告。指定 log-interval 选项以配置日志消息之间的最小时间间隔。
路由限制有两种模式:建议模式和强制模式。建议限制会触发警告。达到限制后,强制性限制会拒绝其他路由。
应用路由限制可能会导致不可预测的动态路由协议行为。例如,当达到限制且路由被拒绝时,在路由数回落到限制以下后,BGP 可能不会重新安装被拒绝的路由。可能需要清除 BGP 会话。
要限制 PE 路由器从 CE 路由器接受的前缀数量,请包含以下 maximum-prefixes 语句:
maximum-prefixes prefix-limit <log-interval interval | log-only | threshold percentage>;
有关可在其中配置此语句的层次结构级别列表,请参阅此语句的语句摘要部分。
路由限制有两种模式:建议模式和强制模式。建议限制会触发警告。达到限制后,强制性限制会拒绝其他路由。
应用路由限制可能会导致不可预测的动态路由协议行为。例如,当达到限制且路由被拒绝时,在路由数回落到限制以下后,BGP 可能不会重新安装被拒绝的路由。可能需要清除 BGP 会话。
除了触发警告消息外,强制路径或前缀限制还会在达到限制后拒绝任何其他路径或前缀。
设置路径或前缀限制可能会导致不可预测的动态路由协议行为。
您还可以为 maximum-paths 和 maximum-prefixes 语句配置以下选项:
log-interval — 指定发送日志消息的时间间隔。此选项仅生成警告消息(建议限制)。
指定 log-interval 选项以配置日志消息之间的最小时间间隔。
log-only - 仅生成警告消息。对路由表中存储的路径或前缀的数量没有限制。
threshold — 在达到最大路径或前缀的指定百分比后生成警告消息。