配置路由过滤器的 Walkup 以提高运维效率
如果您因为跨多个策略条款拆分路由过滤器而对策略性能存有疑虑,请使用查看功能。演练功能支持在一个策略期限下整合路由过滤器。
如果由于默认路由过滤器行为而将策略语句拆分为多个术语,则路由过滤器演练功能允许您将多个路由过滤器整合到一个策略语句术语中。默认情况下,Junos OS 会首先查找最长的匹配前缀,然后评估连接到路由过滤器的条件(如前缀范围),从而在策略语句术语中评估多个路由过滤器。如果路由过滤器条件为 false(例如,前缀不在指定范围内),则整个术语为 false,即使存在可能较短的路由过滤器前缀也是如此。了解功能会在本地或全局改变这种默认行为。
路由过滤器演练功能可用于在策略语句中使用多个路由过滤器的任何位置。在层次结构级别的主路由实例和层级的 [edit policy-options]
逻辑系统中 [edit logical-systems policy-options]
,支持演练选项。
开始配置路由过滤器演练之前,请确保您已:
配置正确的路由策略或路由策略集
需要将多个路由过滤条款整合到更少的路由策略条款中
路由过滤器可以通过两种不同的方式进行配置。您可以在层次结构级别全局配置选项,[edit policy-options default route-filter]
也可以在层级的[edit logical-systems policy-options default route-filter]
逻辑系统中配置walkup
选项。全局配置 walkup
选项时,将更改每个策略语句中的策略路由过滤器行为。选项会全局更改此行为(如果最长的匹配路由过滤器为 false,则术语为 false), walkup
而不是默认策略语句行为(从最长的匹配路由过滤器“向上走”,而如果有为真,则术语为真)。
如果全局配置 walkup
选项,您仍然可以按路由策略在本地覆盖选项。如果已全局启用 walkup
,则可以通过在层次结构级别配置 no-walkup
option 语句来在路由策略中 [edit policy-options policy-statement default route-filter]
覆盖它。选项 no-walkup
将在本地还原此策略语句的默认路由过滤器行为。
在 [edit policy-options default route-filter]
全局级别,唯一选项是语句, walkup
因为全局的默认行为是“无步进”。但是,对于层级的 [edit policy-options policy-statement default route-filter]
单个策略语句,您可以配置 walkup
或 no-walkup
option 语句。这样,在本地级别,您可以控制策略语句是执行演练(配置了 walkup
语句)还是不执行演练(配置了语句 no-walkup
。这让用户可以最大限度地控制选项walkup
您可以使用以下功能配置全局演练功能:
user@host> set policy-options defaults route-filter walkup
或者,在逻辑系统中全局配置演练功能::
user@host> set logical-systems logical-system-name policy-options defaults route-filter walkup
您可以在策略语句中,使用以下在策略语句中本地配置了解功能或不了解功能:
user@host> set policy-options policy-statement policy-statement-name defaults route-filter [ no-walkup | walkup ]
或者,在逻辑系统中,使用以下设置在本地配置演练功能:
user@host> set logical-systems logical-system-name policy-options policy-statement policy-statement-name defaults route-filter [ no-walkup | walkup ]
如果同时在全局级别和本地级别配置语句,则路由过滤器的检查行为可能会很复杂。 表 1 显示了在全局和本地配置功能时,策略语句与演练选项的所有六种可能组合的行为。
情况 下: |
全局配置 |
本地配置 |
结果 |
---|---|---|---|
1 |
(无) |
(无) |
设备不会对任何策略执行演练(默认操作)。 |
2 |
(无) |
|
设备会对此策略执行一次演练。 |
3 |
(无) |
|
设备不会对任何策略执行演练(默认操作)。 |
4 |
|
(无) |
设备会针对所有策略执行一次演练。 |
5 |
|
|
设备会针对所有策略执行一次演练。 |
6 |
|
|
设备不会仅为此策略执行演练。 |
每一行构成编号为 1 到 6 的可能用例。每个演练案例的配置如下:
案例 1:对于向后兼容性,这是一个简单配置。没有全局或本地启用路由过滤器检查。设备的行为与引入功能之前的完全一样。任何策略中都没有路由过滤器检查。
案例 2:未全局启用路由过滤器演练,而是针对名为
RouteFilter-Case2
的特定策略在本地启用。此策略中将执行路由过滤器检查。要为特定策略在本地配置路由过滤器检查:
为此策略语句在本地启用演练功能。
[edit policy-options] user@host# set policy-statement RouteFilter-Case2 defaults route-filter walkup
在本地配置策略条款(了解适用于此策略中的所有条款)。
[edit policy-options] user@host# set policy-statement RouteFilter-Case2 term ...
将策略语句应用于路由协议。
案例 3:路由过滤器
walkup
不会全局启用,而是no-walkup
针对名为RouteFilter-Case3
的特定策略在本地启用。(此案例不是特别有用,因为默认情况下,所有策略中均不会发生任何演练,但会使本地行为明确,即使将来全局启用演练。)要为特定策略配置本地路由过滤器无访问:
no-walkup
为此策略语句在本地启用功能。[edit policy-options] user@host# set policy-statement RouteFilter-Case3 defaults route-filter no-walkup
在本地配置策略条款(
no-walkup
适用于此策略)。[edit policy-options] user@host# set policy-statement RouteFilter-Case3 term ...
将策略语句应用于路由协议。
案例 4:路由过滤器
walkup
已全局启用,但未针对名为RouteFilter-Case4
的特定策略在本地启用。由于全局配置,路由过滤器walkup
会出现在此策略中。要为设备配置全局路由过滤器检查:
为此设备启用全局了解功能。
[edit policy-options] user@host# set defaults route-filter walkup
注:与策略语句中本地配置的或
no-walkup
语句不同walkup
,全局walkup
在[edit policy-options defaults]
或[edit logical-systems logical-system-name policy-options defaults]
层次结构级别上配置,并适用于所有策略。在本地配置策略语句
RouteFilter-Case4
和术语(了解适用于此策略)。[edit policy-options] user@host# set policy-statement RouteFilter-Case4 term ...
将策略语句应用于路由协议。
案例 5:路由过滤器
walkup
是全局启用的,本地为名为RouteFilter-Case5
的特定策略启用。尽管此配置可能显得多余(在全局和本地启用的步调),但即使全局级别删除了路由过滤器演练,也能确保路由过滤器查看发生在此策略中。要为设备配置全局路由过滤器,并在本地针对特定策略配置路由过滤器:
walkup
为此设备启用全局功能。[edit policy-options] user@host# set defaults route-filter walkup
注:全局演练在
[edit policy-options defaults]
或[edit logical-systems logical-system-name policy-options defaults]
层次结构级别配置,并适用于所有策略。配置策略语句
RouteFilter-Case5
并在本地启用walkup
(walkup
适用于此策略)。[edit policy-options] user@host# set policy-statement Route-Filter-Case5 defaults route-filter walkup
在本地配置策略语句
RouteFilter-Case5
和术语(了解适用于此策略)。[edit policy-options] user@host# set policy-statement RouteFilter-Case5 term ...
将策略语句应用于路由协议。
案例 #6:路由过滤器
walkup
是全局启用的,但在本地为no-walkup
名为RouteFilter-Case6
的特定策略覆盖。由于本地配置,此策略中不会执行路由过滤器检查。此案例有助于确保本地策略仍然与启用全局验证之前完全相同。要为设备配置全局路由过滤器演练,并在本地为特定策略配置无访问功能:
为此设备启用全局了解功能。
[edit policy-options] user@host# set defaults route-filter walkup
注:全局演练在
[edit policy-options defaults]
或[edit logical-systems logical-system-name policy-options defaults]
层次结构级别配置,并适用于所有策略。配置策略语句
RouteFilter-Case6
,并在本地使用no-walkup
语句禁用演练(此策略中不执行任何演练)。[edit policy-options] user@host# set policy-statement Route-Filter-Case6 defaults route-filter walkup
在本地配置策略语句
RouteFilter-Case6
和术语。[edit policy-options] user@host# set policy-statement RouteFilter-Case6 term ...
将策略语句应用于路由协议。
请记住,在策略语句被应用为路由协议本身的导入或导出策略之前,它什么都不做。对于 BGP,这可以在全局、组或邻接方级别完成。