了解动态路由策略
提交配置更改所需的验证过程可能需要大量的开销和时间。例如,更改路由策略的一行中长度为 20,000 行的前缀最多可能需要 20 秒才能提交。能够更快地提交路由策略更改会很有用。
在 Junos OS 9.5 版及更高版本中,您可以在动态数据库中配置路由策略和某些路由策略对象,而该数据库不受标准配置数据库中所需验证的相同约束。因此,将更改提交到动态数据库所需的时间比标准配置数据库短得多。然后,您可以在标准数据库中配置的路由策略中引用这些策略和策略对象。BGP 是唯一可以应用引用动态数据库中配置的策略和策略对象的路由策略的协议。根据动态数据库中配置的对象配置并提交路由策略后,可以通过更改动态数据库配置来快速更新任何现有路由策略。
由于 Junos OS 不会验证对动态数据库的配置更改,因此在使用此功能时,应在提交所有配置更改之前测试并验证这些更改。
在动态数据库中配置路由策略和策略对象
Junos OS 9.5 版及更高版本支持配置数据库,即动态数据库,可以采用与标准配置 数据库类似的方式对其进行编辑,但提交配置更改时不受相同验证过程的约束。因此,提交配置更改所需的时间要快得多。然后,可以在标准配置中配置的路由策略中引用动态数据库中定义的策略和策略对象。动态数据库存储在 目录中。/var/run/db/juniper.dyn
要配置动态数据库,请输入 命令以进入动态数据库的配置模式:configure dynamic
user@host> configure dynamic Entering configuration mode [edit dynamic] user@host#
在此动态配置数据库中,可以在层次结构级别配置 以下语句:[edit policy-options]
as-path name
as-path-group group-name
community community-name
condition condition-name
prefix-list prefix-list-name
policy-statement policy-statement-name
层次结构级别不支持 其他配置。[edit dynamic]
使用该 语句配置路由策略,就像在标准配置数据库中一样。policy-statement policy-statement-name
要退出动态数据库的配置模式,请从层次结构中的任何级别发出命令,或使用顶层的命令。exit configuration-mode
[edit dynamic]
exit
基于动态数据库配置配置路由策略
在标准配置模式下,您可以配置引用在动态数据库中层次结构级别配置 的策略和策略对象的路由策略。[edit dynamic]
要定义引用动态数据库配置的路由策略,请在层次结构级别包含 该语句 :dynamic-db
[edit policy-options policy-statement policy-statement-name]
[edit policy-options] policy-statement policy-statement-name { dynamic-db; }
您还可以根据动态数据库中特定策略对象的配置来定义这些对象。要基于动态数据库定义策略对象, 请在层次结构级别包含 具有以下语句的语句:dynamic-db
[edit policy-options]
as-path name
as-path-group group-name
community community-name
condition condition-name
prefix-list prefix-list-name
在标准配置中,您还可以定义一个路由策略,该策略引用您在标准配置中配置的任何策略对象,该策略引用在动态数据库中配置的对象。
例如,在标准配置模式下,您可以配置一个前缀列表,该列表引用已在动态数据库中配置的前缀列表 (也称为 ):prefix-list pl2
prefix-list pl2
[edit policy-options] prefix-list pl2 { dynamic-db; # Reference a prefix list configured in the dynamic database. }
然后,您可以在标准配置中配置路由策略,其中包括 :prefix-list pl2
[edit policy-options] policy-statement one { term term1 { from { prefix-list pl2; # Include the prefix list configured in the standard configuration # database, but which references a prefix list configured in the dynamic database. } then accept; } then reject; }
如果需要更新 的 配置,请在使用层次结构级别的 动态数据库配置中执行此操作。prefix-list pl2
[edit dynamic]
这使您能够比在标准配置数据库中更快地对前缀列表进行提交配置更改。
如果要将 Junos OS 降级到 Junos OS 9.4 或更低版本,必须先删除引用动态数据库的所有路由策略。也就是说,您必须删除使用该语句配置 的所有路由策略或策略对象。dynamic-db
将动态路由策略应用于 BGP
BGP 是唯一可以应用引用动态数据库配置的路由策略的路由协议。您必须在标准配置中应用这些策略。动态策略可应用于 BGP 导出或导入策略。它们还可以应用于全局、组或邻居层次结构级别。
要应用 BGP 导出策略,请在 、 或层次结构级别包含语句。export [ policy-names ]
[edit protocols bgp]
[edit protocols bgp group group-name]
[edit protocols bgp group group-name neighbor address]
[edit] protocols bgp { export [ policy-names ]; } }
要应用 BGP 导入策略,请在 、 或层次结构级别包含语句。import [ policy-names ]
[edit protocols bgp]
[edit protocols bgp group group-name]
[edit protocols bgp group group-name neighbor address]
[edit] protocols bgp { import [ policy-names ]; } }
在引用动态数据库中配置的策略的层次结构级别包括 在该标准配置中配置的一个或多个策略名称。[edit policy-options policy-statement]
防止在 NSR 路由引擎切换后重新建立 BGP 对等会话
如果启用了活动不间断路由 (NSR),那么动态数据库不会与备份路由引擎同步。因此,如果切换到备份路由引擎,则切换时在主路由引擎上运行的导入和导出策略可能不再可用。因此,您可能希望防止在切换发生后立即自动重新建立 BGP 对等会话。
您可以将路由器配置为在活动不间断路由切换后在指定时间段内或手动重新建立会话之前不重新建立 BGP 对等会话。在 、 或层次结构级别包含语句:idle-after-switch-over (seconds | forever)
[edit protocols bgp]
[edit protocols bgp group group-name]
[edit protocols bgp group group-name neighbor address]
[edit] bgp { protocols { idle-after-switch-over (seconds | never); } }
对于,请 指定一个介于 1 到 4,294,967,295 (232 – 1) 之间的值。seconds,
BGP 对等会话在指定时间段后才会重新建立。如果指定该 选项,则在发出 命令之前不会建立 BGP 对等会话。forever
clear bgp neighbor