Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

示例:配置策略子例程

此示例演示如何在路由策略匹配条件中使用策略子例程。

要求

配置此示例之前,不需要除设备初始化之外的特殊配置。

概述

在设备 R1 上,配置了名为的策略 。main

此主策略调用名为 的子例程。subroutine

路由器以定义的方式评估 的 逻辑。main 的 匹配标准允许路由设备找到子例程。from policy subroutine 按照正常的策略处理规则,按顺序评估子例程的所有术语。在此示例中,路由表中的所有静态路由都将子例程与 accept 操作匹配。这会将真实结果返回到原始或调用策略,通知设备发生了正匹配。将执行调用策略中的操作并接受路由。路由表中的所有其他路由都与子例程不匹配,并向调用策略返回错误结果。设备评估路由的第二项并拒绝路由 。main

子例程中的操作实际上不会接受或拒绝特定路由。子例程操作仅转换为真或假结果。但是,无论子例程的结果如何,修改路由属性的操作都会应用于路由。

AS 64510 中的设备 R1 有多个客户路由,其中一些是本地配置的静态路由,还有一些通过内部 BGP (IBGP) 从设备 R2 和设备 R3 接收。AS 64510 连接到 AS 64511 中的设备 R4。该策略将作为导出策略 应用到设备 R1 与设备 R4 的 BGP 对等会话中。main 这会导致设备 R1 仅将自己的静态路由发送到设备 R4。由于策略 的原因,设备 R1 不会发送从其内部对等方设备 R2 和设备 R3 接收的路由。main

使用策略子例程时,请务必记住,默认的 EBGP 导出策略是将所有学习的 BGP 路由播发到所有 EBGP 对等方。此默认策略在主策略和子例程中有效。因此,如此示例所示,如果您不希望默认 EBGP 导出策略生效,则必须在主策略和策略子例程中将终止操作配置为 最终术语。then reject 此示例演示了当主策略或策略子例程中缺少最后一个 术语时会发生什么情况。then reject

拓扑

图 1 显示了示例网络。

图 1: 策略子例程的 BGP 拓扑策略子例程的 BGP 拓扑

显示了 中 所有设备的配置。CLI 快速配置图 1

本节介绍设备 R1 上的步骤。#configuration318__policy-subroutine-st

配置

CLI 快速配置

要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的网络配置匹配所需的任何详细信息,然后将命令复制并粘贴到层次结构级别的 CLI 中。[edit]

设备 R1

设备 R2

设备 R3

设备 R4

程序

分步过程

以下示例要求您在配置层次结构中导航各个级别。有关导航 CLI 的信息,请参阅 Junos OS CLI 用户指南。在配置模式下使用 CLI 编辑器https://www.juniper.net/documentation/en_US/junos/information-products/pathway-pages/junos-cli/junos-cli.html

要配置设备 R1:

  1. 配置设备接口。

  2. 配置与设备 R2 和设备 R3 的内部 BGP (IBGP) 连接。

  3. 配置与设备 R4 的 EBGP 连接。

  4. 配置与设备 R2 和设备 R3 的 OSPF 连接。

  5. 配置策略 。main

  6. 配置策略 。subroutine

  7. 配置到 172.16.5.0/24 网络的静态路由。

  8. 配置自治系统 (AS) 编号和路由器 ID。

成果

在配置模式下,输入 show interfacesshow protocolsshow policy-optionsshow routing-options 命令,以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明,以便进行更正。

如果完成设备配置,请从配置模式输入 commit

验证

确认配置工作正常。

验证设备 R1 上的路由

目的

在设备 R1 上,检查路由表中的静态路由。

操作

意义

设备 R1 有四个静态路由。

验证发往设备 R4 的路由播发

目的

在设备 R1 上,确保静态路由已播发到设备 R4。

操作

意义

正如预期的那样,设备 R1 仅将其静态路由通告给设备 R4。

试验默认 BGP 导出策略

目的

查看从策略或策略中删除最终术语时会发生什么。then rejectmainsubroutine

操作

  1. 在设备 R1 上,停用策略 中的最后一个期限。main

  2. 在设备 R1 上,检查哪些路由播发到设备 R4。

    现在,来自设备 R1 的所有 BGP 路由都将发送到设备 R4。这是因为在处理返回到策略 后,默认 BGP 导出策略生效。main

  3. 在设备 R1 上,重新激活策略中的最终期限,然后停用策略中的最终期限。mainsubroutine

  4. 在设备 R1 上,检查哪些路由播发到设备 R4。

    现在,来自设备 R1 的所有 BGP 路由都将发送到设备 R4。这是因为在处理返回到策略之前,默认的BGP导出策略在策略中生效。mainsubroutine

意义

要防止默认 BGP 导出策略生效,必须在主策略和所有引用的子例程中包含最终 术语。then reject