BGP 路由优选属性(7)【MED】官方考试综合实验题【bgp】【acl】【ip-prefix】【route-policy】【icmp 环路】精讲
目录
一、MED 属性介绍
二、实验
2.1 实验目的
2.2 拓扑图
2.2 实验说明
2.3 配置脚本
2.4 验证配置
2.5 问题分析
2.7 题目需求解析
2.8 场景 1:只允许在 AS12 上操作
2.9 场景 2:只允许在 AS34 上操作
正文
一、MED 属性介绍
- MED 全称 multi-exit-discriminator,多出口鉴别符。
- discriminator【英/dɪˈskrɪmɪneɪtə(r)/】n.[电子] 鉴别器;辨别者
- 属性类型:可选非过度。
- 特性
- 具有类似于 cost 值的特性,其来源也是 cost 值。使用 bgp 引入路由条目时,使用 cost 的值来填写 MED 值。
- 取值范围 4 bytes(0~4,294,967,296),越小越优。
- 边界路由器在宣告 IGP 路由时,MED 值会继承 IGP 的 cost 值,IGP 的度量值(metric)会变成 BGP 的 MED 值。
- MED 值的传递特性
- 通常情况下,MED 值在 bgp 网络中只能传递 1 跳。
- 唯一例外:在 ASBR(AS 边界路由器)从 EBGP 邻居(始发)接收到路由条目时,需要传递给 IBGP 邻居进行路由优选,此时传播距离为 2 跳。
- 通过 route-policy 修改 EBGP 邻居路由条目携带的 Cost 值,在 MED 的视角上,可以视作 EBGP 邻居为这条被修改路由条目的始发地址。
- 应用场景
- 两个 AS 之间存在多条直连链路时,可以通过修改 MED 来区分主备链路。
- 在边界路由器将路由条目通告给 EBGP 时对 MED 值进行修改。
- 参考实验拓扑图。
- 特殊命令:default med
- 功能:用来配置 BGP 路由的缺省 MED 值。
- 在默认情况当 MED 为 null 时,视作 MED=0。
- 当使用 default med 命令修改 med 以后,原 MED=null 的条目的 MED 值将被修改成 default MED 设置的值。
- 在配置了该命令后,对于本地始发起源为 ?(import-route 引入)的路由,在传递给 IBGP 邻居时 MED 值不变;传递给 EBGP 邻居是 MED 值修改为 default med。
- 对于起源为 i(network 宣告)的条目无效。
- !!! 通常不推荐使用这个方法来修改 MED 值,如果在实际应用场景中遇到,一定要谨慎分析。
- 功能:用来配置 BGP 路由的缺省 MED 值。
二、实验
2.1 实验目的
- 通过修改 MED 属性,影响 AS 之间的选路行为。
2.2 拓扑图
2.2 实验说明
- 本实验为【BGP 的选路原则 基础篇 精讲】的扩展实验,实验基础配置与基础实验相同。建议先完成基础实验的学习,再来进行本实验。
- 本实验拓扑参考官方考试题。
- 其他关联内容学习传送门
- ospf 基础
- bgp 基础:【BGP 基础实验 精讲】
- 路由策略:
- acl 和 通配符掩码:【网络中的通配符掩码】
- route-policy:【路由策略【ospf】【route-policy】【filter-policy】【ip-prefix】综合实验 精讲】
- BGP import-route
- 配置脚本中路由策略综合配置(蓝字)的解释请参考下列章节内容
【BGP 路由优选属性(4)【手动聚合>自动聚合>network>import>从对等体学到的】综合实验【bgp】【acl】【route-policy】精讲】<3.2 配置思路及步骤>小节 |
2.3 配置脚本
- 脚本已验证,可以放心使用
- R1
system-view sysname R1 undo info-center enable interface GigabitEthernet 0/0/0 ip address 12.1.1.1 24 interface GigabitEthernet 0/0/1 ip address 13.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 acl number 2000 rule 5 permit source 172.16.0.0 0.0.255.0
route-policy BGP-IMPORT-DIRECT permit node 10 if-match acl 2000 bgp 12 router-id 1.1.1.1 peer 13.1.1.3 as-number 34 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 import-route direct route-policy BGP-IMPORT-DIRECT |
- R2
system-view sysname R2 undo info-center enable interface GigabitEthernet 0/0/0 ip address 12.1.1.2 24 interface GigabitEthernet 0/0/1 ip address 24.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 acl number 2000 rule 5 permit source 172.16.0.0 0.0.255.0
route-policy BGP-IMPORT-DIRECT permit node 10 if-match acl 2000 bgp 12 router-id 2.2.2.2 peer 24.1.1.4 as-number 34 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 import-route direct route-policy BGP-IMPORT-DIRECT |
- R3
system-view sysname R3 undo info-center enable interface GigabitEthernet 0/0/0 ip address 34.1.1.3 24 interface GigabitEthernet 0/0/1 ip address 13.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 acl number 2000 rule 5 permit source 172.16.0.0 0.0.255.0
route-policy BGP-IMPORT-DIRECT permit node 10 if-match acl 2000 bgp 34 router-id 3.3.3.3 peer 13.1.1.1 as-number 12 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 import-route direct route-policy BGP-IMPORT-DIRECT |
- R4
system-view sysname R4 undo info-center enable interface GigabitEthernet 0/0/0 ip address 34.1.1.4 24 interface GigabitEthernet 0/0/1 ip address 24.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 acl number 2000 rule 5 permit source 172.16.0.0 0.0.255.0
route-policy BGP-IMPORT-DIRECT permit node 10 if-match acl 2000 bgp 34 router-id 4.4.4.4 peer 24.1.1.2 as-number 12 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 import-route direct route-policy BGP-IMPORT-DIRECT |
2.4 验证配置
- 根据路由之间的连线,确认 bgp 邻居建立情况
# 此处仅以 R1 为视角进行操作,剩下的路由器请自行验证。 # 确认和邻居到达 Established 状态,则邻居建立成功。 |
- 确认 bgp 路由表是否学习完所有条目。
# 此处仅以 R1 为视角进行操作,剩下的路由器请自行验证。 # 确认所有路由器都学习到了 4 台 PC 所在网段的子网地址。 |
2.5 问题分析
- 这个场景存在什么问题?
# 问题分析 根据 BGP 的路由优选原则【(8)优选从 EBGP 学来的路由(EBGP>IBGP)】,我们可以判断当前路由的走向如下图所示。 |
# 问题描述 【PC1 --> PC4】(发包) 和 【PC4 --> PC1】(回复) 走了两条不同的路径,这将导致 ICMP 环路。 ICMP 环路属于 最高级别 的网络故障,它将导致网络中出现大量的故障,包括路径不对称、状态丢失、TCP 连接建立失败、HTTPS/SSL 握手中断、HTTP 请求随机失败等,且对于网络安全有重大影响。 在实际应用场景中体现为网页时好时坏、大量丢包、网络经常中断等并发现象。 |
- 验证 ICMP 环路
# 在 R1 和 R2 的出口节点抓包,然后用 PC1 ping PC4 # 此时 cimp 数据是通的。 # 从 R2 发出的请求,从 R4 回复,明显发生了 ICMP 环路。 |
2.7 题目需求解析
- 题目需求
需求概括: 让 PC4 所有通往 PC1 的路径从 R3 经过。 场景 1: 假设网络工程师为 AS 12 的管理员,只拥有 AS 12 的配置权限。 场景 2: 假设网络工程师为 AS 34 的管理员,只拥有 AS 34 的配置权限。 |
- 根据需求,我们需要实现的路径为下图所示。
2.8 场景 1:只允许在 AS12 上操作
- 解题思路:假设我们是 AS 12 的管理员,只有 AS12 的权限,无法查看 AS34 的配置。已知 AS12 和 AS 34 是对称拓扑,那么我们就观察 AS12 当前 bgp 的路由条目,来分析情况。
<R1> display bgp routing-table |
# 情况分析 由此我们可推测从 R4 --> R1 的优选路由走 R2(EBGP),且 MED 属性值为 null。 |
- 解题思路:在 R2 上进行配置,修改 med 属性值
# 配置方法:在 R2 将路由条目 172.16.1.0/24 通告给 R4 时, 修改 Cost 值
[R2] ip ip-prefix 172.16.1.0 index 10 permit 172.16.1.0 24
# 2、创建 route-policy 路由策略,命名 COST-1000 [R2] route-policy COST-1000 permit node 10
# 3、在 route-policy COST-1000 中匹配 ip-prefix 172.16.1.0 [R2-route-policy] if-match ip-prefix 172.16.1.0
# 4、修改 Cost=1000 [R2-route-policy] apply cost 1000
# 5、配置兜底策略,放行所有路由条条目 [R2] route-policy COST-1000 permit node 20
# 6、进入 bgp,在 R2 将路由条目通告给 R4(peer 24.1.1.4)时,挂载 route-policy COST-1000 路由策略 [R2] bgp 12 [R2-bgp] peer 24.1.1.4 route-policy COST-1000 export # 注意:本设备路由条目发布给其他设备时 route-policy 的方向是 export |
- 验证
# 注意:bgp 收敛较慢,配置完需要等待一段时间(32 秒),才能观察到现象。 |
# 在 R4 查看 med 值,并观察优选路由。 <R4> display bgp routing-table # 通往 24.1.1.2 的路由条目 MED 值修改成功。 # 通往 172.16.1.0/24 的优选路由条目下一跳是 3.3.3.3(R3)。 |
# ping 测试:pc1 ping pc4,并且在 R1 和 R2 的出口抓包观察。 # 结果:ping 的发包路径和回包路径统一了,解决了 ICMP 环路问题。 |
2.9 场景 2:只允许在 AS34 上操作
- 解题思路:在 R4 接收从 R2 通告的路由条目时,修改 cost 值。
- 在 R4 上进行配置
# 1、创建 ip-prefix 前缀列表,命名为 172.16.1.0,抓取 172.16.1.0/24 的路由条目。 [R4] ip ip-prefix 172.16.1.0 index 10 permit 172.16.1.0 24
# 2、创建 route-policy 路由策略,命名 COST-4000 [R4] route-policy COST-4000 permit node 10
# 3、在 route-policy COST-4000 中匹配 ip-prefix 172.16.1.0 [R4-route-policy] if-match ip-prefix 172.16.1.0
# 4、修改 Cost=4000 [R4-route-policy] apply cost 4000
# 5、配置兜底策略,放行所有路由条条目 [R4] route-policy COST-4000 permit node 20
# 6、进入 bgp,在 R4 接收从 R2(peer 24.1.1.2) 通告的路由条目时,挂载 route-policy COST-4000 路由策略。 [R4] bgp 34 [R4-bgp] peer 24.1.1.2 route-policy COST-4000 import # 注意:本设备从外部路引入路由条目时,策略路由需要使用 import 方向。 |
- 验证
<R4> display bgp routing-table |
# ping 测试和抓包测试请自行进行测试。 |