示例:配置路由策略前缀列表
在 Junos OS 中,前缀列表提供了一种定义一组路由的方法。Junos OS 提供了完成相同任务的其他方法,例如路由过滤器。前缀列表是 IP 前缀的列表,这些前缀表示在应用的策略中用作匹配标准的一组路由。此类列表对于表示自治系统 (AS) 中的客户路由列表可能很有用。前缀列表被赋予一个名称,并在配置层次结构中进行 [edit policy-options]
配置。
要求
配置此示例之前,不需要除设备初始化之外的特殊配置。
使用 Junos OS 22.1R1 版进行更新和重新验证。
概述
前缀列表类似于路由过滤器列表。路由过滤器和前缀列表之间的功能区别在于,您无法使用前缀列表指定范围。可以通过在列表中包含其他前缀或使用两个前缀列表(一个较短,一个较长)来使用前缀列表模拟范围,将一个设置为接受,另一个设置为拒绝。您还可以使用匹配条件筛选 prefix-list-filter
前缀列表。您的选择是 exact
、 longer
和 orlonger
。
当前缀在几个不同的位置被引用时,前缀列表优于路由过滤器列表的优势可见一斑。例如,可以在 BGP 导入策略、导出策略、RPF 策略、防火墙过滤器、环路过滤器、设置组播范围等中引用前缀列表。
当前缀列表发生更改时,您可以更新前缀列表,更改前缀一次而不是多次,而不是尝试记住配置的许多不同位置前缀。这有助于降低配置错误的可能性,例如在某个位置错误键入地址或忘记更新一个或多个位置。
在管理大量设备时,前缀列表也很有帮助。您可以尽可能通用地编写各种过滤器和策略,引用前缀列表而不是特定 IP 地址。筛选器和策略中更复杂的逻辑只需写入一次,每个设备和每个站点的自定义最少。
如 所示图 1,AS 65000 中的每个路由er 都有客户路由。设备 R1 在 172.16.1.0/24 子网内分配客户路由。设备 R2 和设备 R3 分别在 172.16.2.0/24 和 172.16.3.0/24 子网中分配客户路由。设备 R1 已被指定为 AS 65000 中的中心点,用于维护客户路由的完整列表。设备 R1 有一个名为 customers
的前缀列表,如下所示:
user@R1# show policy-options prefix-list customers { 172.16.1.16/28; 172.16.1.32/28; 172.16.1.48/28; 172.16.1.64/28; 172.16.2.16/28; 172.16.2.32/28; 172.16.2.48/28; 172.16.2.64/28; 172.16.3.16/28; 172.16.3.32/28; 172.16.3.48/28; 172.16.3.64/28; }
如您所见,前缀列表不包含每个路由的匹配类型(就像您在路由过滤器中看到的那样)。在策略中使用前缀列表时,这一点很重要。仅当路由与列表中的前缀之一完全匹配时,它们才会匹配。换句话说,列表中的每个路由在路由表中的显示方式必须与前缀列表中配置的路由完全相同。
您将前缀列表作为策略中的匹配标准引用,如下所示:
user@R1# show policy-options policy-statement customer-routes { term get-routes { from { prefix-list customers; } then accept; } term others { then reject; } }
在此示例中,前缀列表中的所有路由 customers
都显示在设备 R1 上的路由表中。设备 R2 和设备 R3 将导出到设备 R1 静态路由到其客户。
如前所述,可以将匹配条件与 、 或匹配类型一起使用prefix-list-filter
exact
。orlonger
longer
这提供了一种避免前缀列表的前缀列表完全匹配限制的方法。例如:
user@R1# show policy-options policy-statement customer-routes { term get-routes { from { prefix-list-filter customers orlonger; } then accept; } term others { then reject; } }
该示例演示了匹配条件和prefix-list-filter
匹配条件的效果prefix-list
。
配置
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的网络配置匹配所需的任何详细信息,然后将命令复制并粘贴到层次结构级别的 CLI [edit]
中。
设备 R1
set interfaces ge-0/0/0 unit 0 description to_R2 set interfaces ge-0/0/0 unit 0 family inet address 10.0.0.1/30 set interfaces ge-0/0/1 unit 0 description to_R3 set interfaces ge-0/0/1 unit 0 family inet address 10.0.0.5/30 set interfaces ge-0/0/2 unit 0 description to_R4 set interfaces ge-0/0/2 unit 0 family inet address 10.1.0.5/30 set interfaces lo0 unit 0 family inet address 192.168.0.1/32 set policy-options prefix-list customers 172.16.1.16/28 set policy-options prefix-list customers 172.16.1.32/28 set policy-options prefix-list customers 172.16.1.48/28 set policy-options prefix-list customers 172.16.1.64/28 set policy-options prefix-list customers 172.16.2.16/28 set policy-options prefix-list customers 172.16.2.32/28 set policy-options prefix-list customers 172.16.2.48/28 set policy-options prefix-list customers 172.16.2.64/28 set policy-options prefix-list customers 172.16.3.16/28 set policy-options prefix-list customers 172.16.3.32/28 set policy-options prefix-list customers 172.16.3.48/28 set policy-options prefix-list customers 172.16.3.64/28 set policy-options policy-statement customer-routes term get-routes from prefix-list customers set policy-options policy-statement customer-routes term get-routes then accept set policy-options policy-statement customer-routes term others then reject set routing-options router-id 192.168.0.1 set routing-options autonomous-system 65000 set routing-options static route 172.16.1.16/28 discard set routing-options static route 172.16.1.32/28 discard set routing-options static route 172.16.1.48/28 discard set routing-options static route 172.16.1.64/28 discard set protocols bgp group int type internal set protocols bgp group int local-address 192.168.0.1 set protocols bgp group int neighbor 192.168.0.2 set protocols bgp group int neighbor 192.168.0.3 set protocols bgp group to_65001 type external set protocols bgp group to_65001 export customer-routes set protocols bgp group to_65001 neighbor 10.1.0.6 peer-as 65001 set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 set protocols ospf area 0.0.0.0 interface lo0.0 passive
设备 R2
set interfaces ge-0/0/0 unit 0 description to_R1 set interfaces ge-0/0/0 unit 0 family inet address 10.0.0.2/30 set interfaces ge-0/0/1 unit 0 description to_R3 set interfaces ge-0/0/1 unit 0 family inet address 10.1.0.1/30 set interfaces lo0 unit 0 family inet address 192.168.0.2/32 set policy-options policy-statement send-static term 1 from protocol static set policy-options policy-statement send-static term 1 then accept set routing-options router-id 192.168.0.2 set routing-options autonomous-system 65000 set routing-options static route 172.16.2.16/28 discard set routing-options static route 172.16.2.32/28 discard set routing-options static route 172.16.2.48/28 discard set routing-options static route 172.16.2.64/28 discard set protocols bgp group int type internal set protocols bgp group int local-address 192.168.0.2 set protocols bgp group int neighbor 192.168.0.1 export send-static set protocols bgp group int neighbor 192.168.0.3 set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 set protocols ospf area 0.0.0.0 interface lo0.0 passive
设备 R3
set interfaces ge-0/0/0 unit 0 description to_R1 set interfaces ge-0/0/0 unit 0 family inet address 10.0.0.6/30 set interfaces ge-0/0/1 unit 0 description to_R2 set interfaces ge-0/0/1 unit 0 family inet address 10.1.0.2/30 set interfaces lo0 unit 0 family inet address 192.168.0.3/32 set policy-options policy-statement send-static term 1 from protocol static set policy-options policy-statement send-static term 1 then accept set routing-options router-id 192.168.0.3 set routing-options autonomous-system 65000 set routing-options static route 172.16.3.16/28 discard set routing-options static route 172.16.3.32/28 discard set routing-options static route 172.16.3.48/28 discard set routing-options static route 172.16.3.64/28 discard set protocols bgp group int type internal set protocols bgp group int local-address 192.168.0.3 set protocols bgp group int neighbor 192.168.0.1 export send-static set protocols bgp group int neighbor 192.168.0.2 set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 set protocols ospf area 0.0.0.0 interface lo0.0 passive
设备 R4
set interfaces ge-0/0/0 unit 0 description to_R1 set interfaces ge-0/0/0 unit 0 family inet address 10.1.0.6/30 set interfaces lo0 unit 0 family inet address 192.168.0.4/32 set routing-options autonomous-system 65001 set protocols bgp group ext type external set protocols bgp group ext peer-as 65000 set protocols bgp group ext neighbor 10.1.0.5
程序
分步过程
我们将展示配置 R1 的分步过程。其他路由器也有类似的分步过程。以下示例要求您在配置层次结构中导航各个级别。有关导航 CLI 的信息,请参阅 在配置模式下使用 CLI 编辑器Junos OS CLI 用户指南。
要配置 R1:
-
配置 接口。
[edit] user@R1# set interfaces ge-0/0/0 unit 0 description to_R2 user@R1# set interfaces ge-0/0/0 unit 0 family inet address 10.0.0.1/30 user@R1# set interfaces ge-0/0/1 unit 0 description to_R3 user@R1# set interfaces ge-0/0/1 unit 0 family inet address 10.0.0.5/30 user@R1# set interfaces ge-0/0/2 unit 0 description to_R4 user@R1# set interfaces ge-0/0/2 unit 0 family inet address 10.1.0.5/30 user@R1# set interfaces lo0 unit 0 family inet address 192.168.0.1/32
-
配置与 R2 和 R3 的内部 BGP (IBGP) 对等互连。
[edit] user@R1# set protocols bgp group int type internal user@R1# set protocols bgp group int local-address 192.168.0.1 user@R1# set protocols bgp group int neighbor 192.168.0.2 user@R1# set protocols bgp group int neighbor 192.168.0.3
-
配置与 R4 的外部 BGP (EBGP) 对等互连。 导出策略配置将在后面的步骤中显示。
[edit] user@R1# set protocols bgp group to_65001 type external user@R1# set protocols bgp group to_65001 export customer-routes user@R1# set protocols bgp group to_65001 neighbor 10.1.0.6 peer-as 65001
-
配置 OSPF 与 R2 和 R3 的对等互连。 OSPF 协议提供每个设备的环路地址学习功能,从而允许建立 IBGP 对等互连。
[edit] user@R1# set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 user@R1# set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 user@R1# set protocols ospf area 0.0.0.0 interface lo0.0 passive
-
配置前缀列表。
[edit] user@R1# set policy-options prefix-list customers 172.16.1.16/28 user@R1# set policy-options prefix-list customers 172.16.1.32/28 user@R1# set policy-options prefix-list customers 172.16.1.48/28 user@R1# set policy-options prefix-list customers 172.16.1.64/28 user@R1# set policy-options prefix-list customers 172.16.2.16/28 user@R1# set policy-options prefix-list customers 172.16.2.32/28 user@R1# set policy-options prefix-list customers 172.16.2.48/28 user@R1# set policy-options prefix-list customers 172.16.2.64/28 user@R1# set policy-options prefix-list customers 172.16.3.16/28 user@R1# set policy-options prefix-list customers 172.16.3.32/28 user@R1# set policy-options prefix-list customers 172.16.3.48/28 user@R1# set policy-options prefix-list customers 172.16.3.64/28
-
将引用前缀列表的路由策略配置为匹配标准。
[edit] user@R1# set policy-options policy-statement customer-routes term get-routes from prefix-list customers user@R1# set policy-options policy-statement customer-routes term get-routes then accept user@R1# set policy-options policy-statement customer-routes term others then reject
-
为 172.16 配置静态路由s。 1.0/24 网络。 我们使用静态路由来模拟客户路由。
[edit] user@R1# set routing-options static route 172.16.1.16/28 discard user@R1# set routing-options static route 172.16.1.32/28 discard user@R1# set routing-options static route 172.16.1.48/28 discard user@R1# set routing-options static route 172.16.1.64/28 discard
-
配置自治系统 (AS) 编号和路由器 ID。
[edit] user@R1# set routing-options router-id 192.168.0.1 user@R1# set routing-options autonomous-system 65000
结果
在配置模式下,输入 show interfaces
、show protocols
、show policy-options
和 show routing-options
命令,以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明,以便进行更正。
user@R1# show interfaces ge-0/0/0 { unit 0 { description to_R2; family inet { address 10.0.0.1/30; } } } ge-0/0/1 { unit 0 { description to_R3; family inet { address 10.0.0.5/30; } } } ge-0/0/2 { unit 0 { description to_R4; family inet { address 10.1.0.5/30; } } } lo0 { unit 0 { family inet { address 192.168.0.1/32; } } }
user@R1# show protocols bgp { group int { type internal; local-address 192.168.0.1; neighbor 192.168.0.2; neighbor 192.168.0.3; } group to_65001 { type external; export customer-routes; neighbor 10.1.0.6 { peer-as 65001; } } } ospf { area 0.0.0.0 { interface ge-0/0/0.0; interface ge-0/0/1.0; interface lo0.0 { passive; } } }
user@R1# show policy-options prefix-list customers { 172.16.1.16/28; 172.16.1.32/28; 172.16.1.48/28; 172.16.1.64/28; 172.16.2.16/28; 172.16.2.32/28; 172.16.2.48/28; 172.16.2.64/28; 172.16.3.16/28; 172.16.3.32/28; 172.16.3.48/28; 172.16.3.64/28; } policy-statement customer-routes { term get-routes { from { prefix-list customers; } then accept; } term others { then reject; } }
user@R1# show routing-options static { route 172.16.1.16/28 discard; route 172.16.1.32/28 discard; route 172.16.1.48/28 discard; route 172.16.1.64/28 discard; } router-id 192.168.0.1; autonomous-system 65000;
如果完成设备配置,请从配置模式输入 commit
。
验证
确认配置工作正常。
验证 R1 上的 路由
目的
在 R1 上 ,检查路由表中的路由。
操作
user@R1> show route terse 172.16/16 inet.0: 30 destinations, 30 routes (30 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both A V Destination P Prf Metric 1 Metric 2 Next hop AS path * ? 172.16.1.16/28 S 5 Discard * ? 172.16.1.32/28 S 5 Discard * ? 172.16.1.48/28 S 5 Discard * ? 172.16.1.64/28 S 5 Discard * ? 172.16.2.16/28 B 170 100 I unverified >10.0.0.2 * ? 172.16.2.32/28 B 170 100 I unverified >10.0.0.2 * ? 172.16.2.48/28 B 170 100 I unverified >10.0.0.2 * ? 172.16.2.64/28 B 170 100 I unverified >10.0.0.2 * ? 172.16.3.16/28 B 170 100 I unverified >10.0.0.6 * ? 172.16.3.32/28 B 170 100 I unverified >10.0.0.6 * ? 172.16.3.48/28 B 170 100 I unverified >10.0.0.6 * ? 172.16.3.64/28 B 170 100 I unverified >10.0.0.6
意义
设备 R1 已学习自己的静态路由 (S) 以及来自设备 R2 和 R3 (B) 的 BGP 路由。
验证到 R4 的 路由播发
目的
在 R1 上 ,确保将客户路由播发到 R4。
操作
user@R1> show route advertising-protocol bgp 10.1.0.6 inet.0: 30 destinations, 30 routes (30 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 172.16.1.16/28 Self I * 172.16.1.32/28 Self I * 172.16.1.48/28 Self I * 172.16.1.64/28 Self I * 172.16.2.16/28 Self I * 172.16.2.32/28 Self I * 172.16.2.48/28 Self I * 172.16.2.64/28 Self I * 172.16.3.16/28 Self I * 172.16.3.32/28 Self I * 172.16.3.48/28 Self I * 172.16.3.64/28 Self I
意义
正如预期的那样,只有客户前缀列表中的路由才会播发到 R4。
试验前缀列表过滤器语句
目的
看看使用 prefix-list-filter
代替 prefix-list
时会发生什么情况。
操作
-
在 R3 上,添加比现有静态路由之一更长的静态路由。
[edit routing-options static] user@R3# set route 172.16.3.65/32 discard user@R3# commit
-
在 R1 上 ,停用前缀列表并使用匹配类型配置前缀列表过滤器
orlonger
。[edit policy-options policy-statement customer-routes term get-routes] user@R1# deactivate from prefix-list customers user@R1# set from prefix-list-filter customers orlonger user@R1# commit
-
在 R1 上 ,检查哪些路由播发 到 R4。
user@R1> show route advertising-protocol bgp 10.1.0.6 inet.0: 31 destinations, 31 routes (31 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 172.16.1.16/28 Self I * 172.16.1.32/28 Self I * 172.16.1.48/28 Self I * 172.16.1.64/28 Self I * 172.16.2.16/28 Self I * 172.16.2.32/28 Self I * 172.16.2.48/28 Self I * 172.16.2.64/28 Self I * 172.16.3.16/28 Self I * 172.16.3.32/28 Self I * 172.16.3.48/28 Self I * 172.16.3.64/28 Self I * 172.16.3.65/32 Self I
意义
正如预期的那样, R1现在正在宣传172.16。3.65/32 路由到 R4,即使 172.16。3.65/32 不在前缀列表中。