BGP 路由优选属性(5)【Path】综合实验【ip-prefix】【route-policy】官方考试实验【acl】【route-policy】精讲

目录

一、Path 属性介绍

二、基础实验

2.1 实验说明

2.1.1 实验目的

2.1.2 知识体系

2.1.3 拓扑图

2.1.4 实验基础配置

2.2 实验步骤

三、华为官方考试题

3.1 拓扑图

3.2 基础实验配置

3.2.1 知识体系

3.2.2 配置脚本

3.2.3 配置验证

3.3 场景分析

3.4 题目需求解析

3.5 场景 1 解题思路

3.5 场景 2 解题思路


正文

一、Path 属性介绍

  • Path 即 AS-PAHT,它记录路由条目所经过的 AS 路径,在 BGP 路由优选属性中排在第(5)位,是一个常用的属性。
  • 属性类型:公认必遵。
  • AS-PATH 属性是一个直观的属性。

  • 图中的 1 和 5 就是 AS-PATH 属性,这代表他们到达当前路由器时经过了哪些 AS。
  • AS-PATH 属性遵守防环原则,AS 不接受带有自身 Path 属性的路由条目。
  • Path 属性用于优选路由时,比较的是 Path 的数量,而不是数值的大小。数量越小越优。

二、基础实验

2.1 实验说明
2.1.1 实验目的
  • 通过修改 Path 属性的值,影响选路结果。
2.1.2 知识体系
2.1.3 拓扑图

2.1.4 实验基础配置
2.2 实验步骤
  • 在 R2 上查看通往 192.168.1.0 的路由条目

  • 属性说明
    • 路由条目 ① 指向 12.1.1.1,Path 为 1,通过路由前的标记 > 可知此路由条目为当前的优选路由条目。
    • 路由条目 ② 为空白(null),这代表它继承上一条路由的 Network 属性,即 192.168.1.0。
  • 使用路由策略【ip-prefix】+【route-policy】修改路由条目 ① 的 Path 属性。
  • route-policy 的预习传送门【路由策略【ospf】【route-policy】【filter-policy】【ip-prefix】综合实验 精讲
  • 在 R2 进行配置

# 创建 ip-prefix,命名为 192.168.1.0,抓取 192.168.1.0/24 的路由条目

[R2] ip ip-prefix 192.168.1.0 index 10 permit 192.168.1.0 24

# 创建 route-policy 路由策略,命名 AS-PATH
[R2] route-policy AS-PATH permit node 10

# 在 route-policy 中匹配 ip-prefix 192.168.1.0
[R2-route-policy] if-match ip-prefix 192.168.1.0

# 在 route-policy 中修改 as-path 的属性值

# 注意:修改 as-path 的属性值,一定只能添加指定的 as 编号,例如我们希望路由条目 ① 退出优先,那么就给路由条目添加原来的 Path 值,使它的 Path 数量增加,达到退出优选的目的。
# 为 Path 属性添加 3 个相同的路劲,属性值为 AS 1。
[R2-route-policy] apply as-path 1 1 1 additive
# 命令说明

# addtive:添加

# overwrite:覆盖

# none overwrite:清空

# 为 route-policy AS-PATH 配置兜底策略,放行所有路由
[R2] route-policy AS-PATH permit node 20

# 查核配置
<R2> display current-configuration configuration route-policy

# 在 bgp 指认邻居 12.1.1.1 时,挂载 route-policy AS-PATH,修改其 Path 属性。

[R2] bgp 234
[R2-bgp] peer 12.1.1.1 route-policy AS-PATH import

  • 验证结果

<R2> display bgp routing-table

# 指向 12.1.1.1 的路由条目,Path 变成了 1 1 1 1,相当于经过了 4 个路径,导致它在优选路由中败选。

三、华为官方考试题

3.1 拓扑图

3.2 基础实验配置
3.2.1 知识体系
3.2.2 配置脚本
  • 脚本已验证,可以放心使用
  • R1

system-view

sysname R1

undo info-center enable

acl number 2000

 

rule 5 permit source 172.16.0.0 0.0.255.0

route-policy BID permit node 10

if-match acl 2000

interface GigabitEthernet 0/0/1

ip address 12.1.1.1 24

interface GigabitEthernet 0/0/2

ip address 14.1.1.1 24

interface Ethernet 0/0/0

ip address 172.16.1.254 24

interface LoopBack 0

ip address 1.1.1.1 32

ospf 1 router-id 1.1.1.1

area 0

network 12.1.1.1 0.0.0.0

network 1.1.1.1 0.0.0.0

bgp 12

router-id 1.1.1.1

peer 2.2.2.2 as-number 12

peer 2.2.2.2 connect-interface Loopback 0

peer 2.2.2.2 next-hop-local

peer 14.1.1.4 as-number 34

network 10.1.1.1 32

import-route direct route-policy BID

  • R2

system-view

sysname R2

undo info-center enable

acl number 2000

 

rule 5 permit source 172.16.0.0 0.0.255.0

route-policy BID permit node 10

if-match acl 2000

interface GigabitEthernet 0/0/0

ip address 12.1.1.2 24

interface GigabitEthernet 0/0/1

ip address 23.1.1.2 24

interface Ethernet 0/0/0

ip address 172.16.2.254 24

interface LoopBack 0

ip address 2.2.2.2 32

ospf 1 router-id 2.2.2.2

area 0

network 12.1.1.2 0.0.0.0

network 2.2.2.2 0.0.0.0

bgp 12

router-id 2.2.2.2

peer 1.1.1.1 as-number 12

peer 1.1.1.1 connect-interface Loopback 0

peer 1.1.1.1 next-hop-local

peer 23.1.1.3 as-number 34

import-route direct route-policy BID

  • R3

system-view

sysname R3

undo info-center enable

acl number 2000

 

rule 5 permit source 172.16.0.0 0.0.255.0

route-policy BID permit node 10

if-match acl 2000

interface GigabitEthernet 0/0/1

ip address 23.1.1.3 24

interface GigabitEthernet 0/0/0

ip address 34.1.1.3 24

interface Ethernet 0/0/0

ip address 172.16.3.254 24

interface LoopBack 0

ip address 3.3.3.3 32

ospf 1 router-id 3.3.3.3

area 0

network 34.1.1.3 0.0.0.0

network 3.3.3.3 0.0.0.0

bgp 34

router-id 3.3.3.3

peer 4.4.4.4 as-number 34

peer 4.4.4.4 connect-interface Loopback 0

peer 4.4.4.4 next-hop-local

peer 23.1.1.2 as-number 12

import-route direct route-policy BID

  • R4

system-view

sysname R4

undo info-center enable

acl number 2000

 

rule 5 permit source 172.16.0.0 0.0.255.0

route-policy BID permit node 10

if-match acl 2000

interface GigabitEthernet 0/0/0

ip address 14.1.1.4 24

interface GigabitEthernet 0/0/1

ip address 34.1.1.4 24

interface Ethernet 0/0/0

ip address 172.16.4.254 24

interface LoopBack 0

ip address 4.4.4.4 32

ospf 1 router-id 4.4.4.4

area 0

network 34.1.1.4 0.0.0.0

network 4.4.4.4 0.0.0.0

bgp 34

router-id 4.4.4.4

peer 3.3.3.3 as-number 34

peer 3.3.3.3 connect-interface Loopback 0

peer 3.3.3.3 next-hop-local

peer 14.1.1.1 as-number 12

import-route direct route-policy BID

3.2.3 配置验证
  • 根据路由之间的连线,确认 bgp 邻居建立情况

# 此处仅以 R1 为视角进行操作,剩下的路由器请自行验证。
<R1> display bgp peer

# 确认和邻居到达 Established 状态,则邻居建立成功。

  • 确认 bgp 路由表是否学习完所有条目。

# 此处仅以 R1 为视角进行操作,剩下的路由器请自行验证。
<R1> display bgp routing-table

# 确认所有路由器都学习到了 4 台 PC 所在网段的子网地址。

3.3 场景分析

       对于 R4 而言,根据 BGP 的路由优选原则【8)优选从 EBGP 学来的路由(EBGP>IBGP)】,判断 EBGP(R1)>IBGP【R3】,所以路径是【R4 --> R1】。

  • PC3 --> PC1

       对于 R3 而言,根据 BGP 的路由优选原则【8)优选从 EBGP 学来的路由(EBGP>IBGP)】,判断 EBGP(R2)>IBGP【R4】,所以路径是【R3 --> R2 --> R1】。

  • 根据分析,当前 AS34 的 PC 通往 R1 的路径如下图所示

3.4 题目需求解析
  • 题目需求

需求概括:

    让 AS34 所有通往 PC1 的路径从 R4 经过。

    场景 1:

        假设网络工程师为 AS 12 的管理员,只拥有 AS 12 的配置权限。

    场景 2:

        假设网络工程师为 AS 34 的管理员,只拥有 AS 34 的配置权限。

  • 根据需求,我们需要实现的路径为下图所示。

3.5 场景 1 解题思路
  • 假设我们是 AS 12 的管理员,只有 AS12 的权限,无法查看 AS34 的配置。已知 AS12 和 AS 34 是对称拓扑,那么我们就观察 AS12 当前 bgp 的路由条目,来分析情况。

<R1> display bgp routing-table

# 情况分析
       从 R1 --> R3 的优选路由下一跳走 14.1.1.4(R4,EBGP),携带了一条 Path 属性,属性值为 34。

       由此我们可推测从 R3 --> R1 的优选路由走 R2(EBGP),并且应该携带一条 Path 属性,属性值为 12。

  • 既然携带了 Path 属性,那么我们在路由条目发送给 AS34 之前修改 Path 属性,使【R3 --> R2 --> R1】这条路径变成【R3 --> R4 --> R1】。
  • 配置目标:在 R2 发送路由条目给 R3 之前,增加的 Path 数量,使【R3 --> R2】的路由变成非优选。

# 在初始配置中已经存在了 acl 2000,为了区别,新创建一个 acl 2001

# 创建 acl 2001
[R2] acl number 2001

# 创建规则,精确抓取指定的路由条目 172.16.1.0

[R2-acl-basic-2001] rule 5 permit source 172.16.1.0 0.0.0.0

# 创建 route-policy,命名为 RTTE(Route transmission to EBGP,路由传送给 EBGP 邻居)

[R2] route-policy RTTE permit node 10

# 匹配 acl 2001

[R2-route-policy] if-match acl 2001

# 以追加(additive)方式修改 as-path,增加两条 AS12 的 Path 信息。

[R2-route-policy] apply as-path 12 12 additive

# 配置兜底规则,放行所有路由条目。在 BGP 之间传递路由条目一定配置兜底策略,否则在实际应用场景中会阻断路由的传播,引起重大故障。

[R2] route-policy RTTE permit node 20


 

# 进入 BGP,在路由发送给 EBGP 邻居时挂载 route-policy RTTE

[R2] bgp 12
[R2-bgp] peer 23.1.1.3 route-policy RTTE export

配置参考资料:
       1、acl 抓取条目:【网络中的通配符掩码
       2、route-policy:【路由策略【ospf】【route-policy】【filter-policy】【ip-prefix】综合实验 精讲
       3、路由策略的方向 import/export:【流策略【ospf】【filter-policy】【ip-prefix】组合实验 精讲】,重点看流程图 import/export 后接什么入口,bgp 同理。

  • 验证结果

# 假设只有 AS 12 的情况下
# 查看 R2 通告给 R3 的路由条目信息
<R2> display bgp routing-table peer 23.1.1.3 advertised-routes

# 指定路由条目 172.16.1.0 添加 Path 属性值成功,原来的 1 个 12,变成了 3 个连续 12。

# 现在切换到 R3 的视角

# 查看 bgp 路由表

<R3> display bgp routing-talbe

# 可以看到 172.16.1.0 HextHop 23.1.1.2 的路由条目 Path 值已经修改成功,并且成为非优选路由。


# 在 PC3 和 PC4 分别 Tracert PC1,追踪路由,观察路径是否符合预期。

# PC3

# Tracert 172.16.1.1

# 结果:172.16.3.254(R3)--> 34.1.1.4(R4)--> 14.1.1.1(R1)--> 172.16.1.1(PC1)

# PC4

# Tracert 172.16.1.1

# 结果:172.16.4.254(R4)--> 14.1.1.1(R1)--> 172.16.1.1(PC1)

  • 结论:结果符合预期。

       1、在 R2 上修改了【R2 --(172.16.1.0)--> R3】的 path 属性值成功。
       2、R3 的优选路由条目确实改变了。

3.5 场景 2 解题思路
  • 温馨提示:实验前注意还原基础配置
  • 当前视角切换至 AS 34,进行场景分析

       在 AS 12 上,我们是实现的是 【R2 --(172.16.1.0)--> R3】。
       这个规则在 AS34 上同样可以使用,只要修改 R3 接收来自 R2(EBGP)的 172.16.1.0 路由条目 Path 值即可。

  • 在 R3 上进行配置

# 在初始配置中已经存在了 acl 2000,为了区别,新创建一个 acl 2001

# 创建 acl 2001
[R3] acl number 2001

# 创建规则,精确抓取指定的路由条目 172.16.1.0

[R3-acl-basic-2001] rule 5 permit source 172.16.1.0 0.0.0.0

# 创建 route-policy,命名为 RTTE(Route transmission to EBGP,路由传送给 EBGP 邻居)

[R3] route-policy RTTE permit node 10

# 匹配 acl 2001

[R3-route-policy] if-match acl 2001

# 以追加(additive)方式修改 as-path,增加两条 AS12 的 Path 信息。

[R3-route-policy] apply as-path 12 12 additive

# 配置兜底规则,放行所有路由条目。在 BGP 之间传递路由条目一定配置兜底策略,否则在实际应用场景中会阻断路由的传播,引起重大故障。

[R3] route-policy RTTE permit node 20


 

# 进入 BGP,在路由发送给 EBGP 邻居时挂载 route-policy RTTE

[R3] bgp 34
[R3-bgp] peer 23.1.1.2 route-policy RTTE import

# 与 AS12 的配置对比,尽最后两条语句进行了更改

       1、bgp ID:bpg 12 换成 bgp 34

       2、邻居:R3 改成 R2(23.1.1.2

       3、路由策略方向:export 改成 import

  • 验证结果

# 在 R3 上查看接收到从 R2 发送的路由条目信息
<R3> display bgp routing-table peer 23.1.1.2 received-routes

# Path 修改成功


# 查看 bgp 路由表
<R3> display bgp routing-table
 

# Path 修改成功,且路由条目变成了非优选路径

# Tracert 测试
从 PC3 和 PC4 Tracert 172.16.1.1 追踪路由,请自行测试。

<think>嗯,用户遇到了在配置路由策略时的问题,特别是ACL相关的配置错误,导致无法成功配置`route-policy 1 permit node 10`。我需要结合之前的对话内容和提供的引用来分析可能的原因和解决方法。 首先,回顾用户之前的问题,他们提到`route-policy 10 permit node 10`不能配置。之前的回答已经列出了可能的原因,比如ACL未定义、AS-Path-Filter错误、节点顺序问题以及策略未绑定到邻居。现在用户进一步说明问题与ACL相关,需要更具体的解决方案。 根据引用中的例子,比如引用[3]和[4]提到了IP前缀列表的配置,用户可能在ACL的语法或规则定义上有错误。例如,ACL的规则是否正确地指定了源地址和反掩码,或者是否激活了ACL。例如,引用[3]中的`ip ip-prefix aa permit 192.168.1.0 24`可能缺少了更详细的参数,而引用[4]则使用了`greater-equal`来扩展匹配范围。如果用户没有正确设置这些参数,可能导致ACL无法匹配路由,从而策略失效。 另外,用户可能在配置ACL时,没有注意到ACL的编号范围。例如,基本ACL(2000-2999)和高级ACL(3000-3999)的不同用途。如果用户错误地使用了错误的ACL类型,或者ACL未正确激活,也会导致问题。 还需要检查是否在`route-policy`的节点中正确引用了ACL。比如,在`if-match acl`语句中是否正确指定了ACL的编号,是否存在拼写错误或数字错误。例如,用户可能配置了ACL 2001,但在`route-policy`中引用了2000,导致不匹配。 另外,用户可能没有在路由策略的节点中定义任何`apply`动作。根据引用[1],配置`apply`语句是必要的,否则即使ACL匹配成功,策略也不会生效。例如,在节点中需要添加如`apply cost-type type-1`这样的动作。 还有可能的问题是ACL虽然存在,但没有被正确激活或规则配置错误。例如,ACL的规则是否允许了正确的源地址,或者是否被其他规则拒绝。需要检查`display acl`的输出,确认规则状态为“Active”。 最后,用户可能没有将路由策略正确绑定到BGP邻居,导致策略未被应用。需要确认在BGP配置中使用了`peer <ip> route-policy`命令将策略应用到出口或入口方向。 总结可能的解决步骤:首先检查ACL是否存在且规则正确,然后确认路由策略中正确引用了ACL,并添加必要的`apply`动作,最后确保策略绑定到正确的邻居。如果问题仍然存在,可以查看设备日志或使用诊断命令进一步排查。</think>### 基于引用内容的综合分析及解决方案 --- #### 一、ACL配置错误的核心原因 1. **ACL语法错误或规则不完整** - **问题描述**: - 引用[3]和[4]显示,ACL/IP-Prefix需明确指定网段和掩码(如`192.168.1.0 24`),若格式错误(如掩码范围不合法)会导致ACL无法生效[^3][^4]。 -ACL未包含`permit`规则或规则顺序错误(如默认`deny any`在首条),则无法匹配任何路由[^1][^3]。 - **解决步骤**: ```text // 检查ACL配置示例(引用[3]) acl 2001 rule permit source 192.168.1.0 0.0.0.255 // 允许192.168.1.0/24网段 rule deny // 默认拒绝其他(需注意顺序) ``` 2. **ACL类型与使用场景不匹配** - **问题描述**: - 基本ACL(2000-2999)匹配源IP,高级ACL(3000-3999)匹配协议/端口。若在路由策略中错误调用高级ACL,会导致匹配失败[^3][^5]。 - **验证方法**: ```text display acl 2001 // 确认ACL类型为"basic"且规则有效 ``` 3. **ACL未绑定到路由策略节点** - **问题描述**: - 引用[1]中`if-match acl 2001`需与`route-policy`节点关联,若未在节点中调用ACL,则策略无法匹配路由[^1]。 - **修复示例**: ```text route-policy 1 permit node 10 if-match acl 2001 // 确保ACL已正确关联 apply cost-type type-1 // 必须包含apply动作(引用[1]) ``` --- #### 二、典型错误场景及修复方案 **场景1:ACL规则范围错误** - **错误配置**: ```text acl 2001 rule permit source 192.168.1.0 24 // 错误语法(掩码格式应为反掩码) ``` - **修复方法**: ```text acl 2001 rule permit source 192.168.1.0 0.0.0.255 // 正确反掩码表示/24 ``` **场景2:缺少默认拒绝规则导致意外放行** - **错误现象**: ACL未明确拒绝其他流量,导致策略放行非目标路由- **修复方法**: ```text acl 2001 rule deny // 添加默认拒绝规则(需注意顺序) rule permit source 192.168.1.0 0.0.0.255 ``` **场景3:策略节点未调用ACL** - **错误配置**: ```text route-policy 1 permit node 10 apply cost 100 // 未定义if-match条件 ``` - **修复方法**: ```text route-policy 1 permit node 10 if-match acl 2001 // 绑定ACL apply cost 100 ``` --- #### 三、配置验证与调试 1. **检查ACL状态** ```text display acl 2001 // 确认规则为"Active",匹配计数是否增长 ``` 2. **验证路由策略匹配结果** ```text display route-policy 1 // 查看节点10是否包含if-match acl 2001 ``` 3. **查看BGP路由表** ```text display bgp routing-table 192.168.1.0 // 确认路由是否携带修改后的属性(如COST)[^5] ``` --- #### 四、扩展知识:ACLIP-Prefix的区别 | 特性 | ACL | IP-Prefix | |--------------------|------------------------------|-------------------------------| | **匹配对象** | 源/目的IP、协议、端口 | 精确前缀和掩码范围(如`greater-equal 24`)[^4] | | **适用场景** | 流量过滤、策略路由 | BGP路由策略、路由聚合 | | **掩码表示** | 反掩码(如`0.0.0.255`) | 正向掩码(如`24`) | --- ### 相关问题 1. **如何通过ACL实现BGP路由的按源IP过滤?** - 需在ACL中定义源IP范围,并在`route-policy`节点调用ACL,例如: ```text acl 2002 rule permit source 10.0.0.0 0.255.255.255 route-policy filter permit node 10 if-match acl 2002 ``` 2. **IP-Prefix中`greater-equal`参数的作用是什么?** - 指定掩码长度的最小范围(如`greater-equal 27`匹配/27到/32的路由)[^4]。 3. **BGP路由策略未生效时如何逐步排查?** - 按顺序检查:ACL规则→策略节点调用→策略绑定→BGP邻居状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值