今日目标
- BGP路径属性
- 路由优选之Next_Hop
- 路由优选之Local_pref
- 路由优选之AS_Path
- 路由优选之Origin
- 路由优选之MED
1. BGP路径属性
- 路径属性
任何一条BGP路由都拥有多个路径属性。
当路由器将BGP路由通告给邻居时,会携带路径属性。
BGP的路径属性将影响路由优选。

- BGP路径属性分类

- 公认属性是所有BGP路由器都必须能够识别的属性
公认必遵:必须包括在每个Update消息里。
公认任意:可能包括在某些Update消息里。 - 可选属性不需要都被BGP路由器所识别
可选过渡:BGP设备不识别此类属性依然会接受该类属性并通告给其他对等体。
可选非过渡:BGP设备不识别此类属性会忽略该属性,且不会通告给其他对等体。 - 常用属性
Next_hop:下一跳属性
Local_Preference:本地优先级属性
AS Path:AS路径属性
Origin:起源属性
MED:多出口鉴别器属性
2. 路由优选之Next_Hop
Next_Hop
- BGP路由中的Next_Hop属性设置规则:
BGP路由器在向EBGP邻居发布路由时,会把该路由的下一跳设置为本地与对端建立BGP邻居关系的接口地址。
BGP路由器将本地始发路由发布给BGP邻居时,会把该路由的下一跳设置为本地与对端建立BGP邻居关系的接口地址。
路由器在收到EBGP邻居发布的路由后,在将路由传递给自己的BGP邻居时,默认不修改路由的下一跳地址。
下一跳不可达实验
- 建立IBGP和EBGP邻居

实验需求
- 实验需求
R1/R2/R3属于AS100,R4属于AS200
AS100内运行OSPF,将所有环回接口宣告进OSPF区域0
R1/R2/R3之间使用环回口建立IBGP邻居关系
R2和R3分别与R4使用直连口建立EBGP邻居关系
将R4的环回接口网段注入BGP路由表
配置步骤
- 配置步骤
配置OSPF
配置EBGP邻居
配置IBGP邻居
注入路由
BGP配置命令
- R1配置
bash
[R1]bgp 100
[R1-bgp]router-id 1.1.1.1
[R1-bgp]peer 10.10.2.2 as-number 100
[R1-bgp]peer 10.10.2.2 connect-interface loopback 0
[R1-bgp]peer 10.10.3.3 as-number 100
[R1-bgp]peer 10.10.3.3 connect-interface loopback 0
- R2配置
bash
[R2]bgp 100
[R2-bgp]router-id 2.2.2.2
[R2-bgp]peer 10.10.1.1 as-number 100
[R2-bgp]peer 10.10.1.1 connect-interface loopback 0
[R2-bgp]peer 192.168.24.4 as-number 200
- R3配置
bash
[R3]bgp 100
[R3-bgp]router-id 3.3.3.3
[R3-bgp]peer 10.10.1.1 as-number 100
[R3-bgp]peer 10.10.1.1 connect-interface loopback 0
[R3-bgp]peer 192.168.34.4 as-number 200
- R4配置
bash
[R4]bgp 200
[R4-bgp]router-id 4.4.4.4
[R4-bgp]peer 192.168.24.2 as-number 100
[R4-bgp]peer 192.168.34.3 as-number 100
[R4-bgp]network 10.10.4.4 32
- 验证与测试
bash
dis ospf peer brief 查看ospf邻居
dis bgp peer 查看bgp邻居关系
dis bgp routing-table 查看BGP路由表
查看BGP路由表
- 在R1中验证BGP路由

- 在R1的IP核心路由表去验证,发现R1没有去往10.10.4.4的路由
bash
[R1]display ip routing-table 10.10.4.4
- 为什么不是最优路由
- 问题原因:
在R1中,学习到两条去往10.10.4.4/32的路由,分别是R2和R3通告给R1的。
但是这两条路由都是无效的,为什么,因为下一跳不可达,所以目的地址也不可达,所以R1认为这两条路由无效。
那么为什么下一跳不可达呢?因为R2和R3在从外部邻居R4哪里学来路由,在传递给自己的内部邻居R1时,默认不会修改路由的下一跳。
解决方案
- 如何解决
需要在R2和R3在给R1传递路由的时候修改下一跳
bash
# R2的配置:
[R2]bgp 100
[R2-bgp]peer 10.10.1.1 next-hop-local
# R3的配置:
[R3]bgp 100
[R3-bgp]peer 10.10.1.1 next-hop-local

- 路由优选之Local_pref
本地优先级
- Local Preference属性
本地优先级属性,默认是100,数值越大越好
该属性能在AS内部任意传递(IBGP邻居之间传递)
该属性不能在AS之间传递(EBGP邻居之间不携带这个属性)
在AS内的BGP邻居之间,出方向和入方向都可以修改该属性
本地优先级实验

- 让R1优先选R3传递的BGP路由10.10.4.4/32
路由策略
- 路由策略
定义:路由过滤和路由属性设置,通过改变路由属性,来改变网络流量所经过
作用:控制路由发布、控制路由的接收、过滤引入的路由、设置路由属性 - Route-Policy
一个Route-Policy由l个或多个节点构成
每个节点又分为:If-match子句和Apply子句
If-match子句:定义匹配规则,匹配路由信息的属性
Appy子句:对路由的一些属性进行修改
地址前缀列表
- 地址前缀列表
定义:地址前缀列表是一种包含一组路由信息过滤规则的过滤器
作用:路由信息过滤器,用来过滤路由信息
地址前缀列表可以依据掩码长度和掩码范围对路由信息进行过滤 - 地址前缀匹配规则
一个列表中可以创建多个索引项,每个索引对应一条过滤规则
待过滤的路由按照索引号从小到大的顺序进行匹配
当路由匹配上索引项时,如果动作是Permit,则这条路由被允许通过
当路由匹配上索引项时,如果该索引项是Dey,则这条路由被拒绝通过
当遍历了列表中的所有索引项,都没有匹配上,那么这条路由就被拒绝通过
匹配规则总结:顺序匹配、唯一匹配、默认拒绝
BGP配置命令
- R3配置
bash
# 第一步:在R3创建ip-prefix抓取10.10.4.4的路由
[R3 ip ip-prefix ntd index 10 permit 10.10.4.4 32
# 第二步:在R3创建路由策略,匹配地址前缀列表,修改路由的属性
[R3]route-policy tedu permit node 10 # 创建路由策略
[R3-route-policy]if-match ip-prefix ntd # 匹配ip-prefix ntd
[R3-route-policy]apply local-preference 200 # 本地优先级设置为200
# 第三步:在R3的BGP中调用路由策略
[R3]bgp 100
[R3-bgp]peer 10.l0.1.1 route-policy tedu export # 出方向调用路由策略
验证与测试
- 在R1测试
bash
<R1>display bgp routing-table

小结
- 本地优先级属性默认在IBGP间传递,不在EBGP间传递
- 本地优先级属性默认值100,数值越大越优先
- 在AS内的IBGP邻居之间,出和入方向都可以修改该属性
4. 路由优选之AS_Path
AS-Path
- AS-Path
AS-Path属性按顺序记录一条路由从源地址到目的地址所经过的AS编号。
AS-Path属性为公认必遵属性,任何一个BGP路由,都必须携带这个属性。
AS-Path属性能防止EBGP邻居之间的环路,还可以做路由优选。
最右侧的为起源AS号,最左侧的为邻居的AS号-AS-path属性
AS号越短越优先(经过的AS号越少越优先)
AS-PATH实验
- 实验需求

- 让R1优选R3传递的BGP路由10.10.4.4/32
BGP配置命令
- R2 配置
bash
# 第一步:删除R3的路由策略配置,恢复默认
# 第二步:在R2创建ip-prefix抓取10.10.4.4的路由
[R2] ip ip-prefix ntd index 10 permit 10.10.4.4 32
# 第三步:在R2创建路由策略,匹配地址前缀列表,修改路由的属性
[R2]route-policy tedu permit node 10 # 创建路由策略
[R2-route-policy]if-match ip-prefix ntd # 匹配ip-prefix ntd
[R2-route-policy]apply as-path 200 200 additive # 修改路由的属性,添加As号
# 第四步:在R2中的BGP中调用路由策略
[R2]bgp 100
[R2-bgp]peer 10.l0.1.1 route-policy tedu export # 出方向调用路由策略
验证与测试
- 在R1测试
bash
<R1>display bgp routing-table
<R1>display ip routing-table

小结
- AS-Path属性为公认必遵属性,任何一个BGP路由,都必须携带这个属性。
- AS-Path属性能防止EBGP邻居之间的环路,还可以做路由优选。
- AS号越短越优先(经过的AS号越少越优先)
5. 路由优选之Origin
起源属性
- Origin属性
该属性是公认必遵属性,任何一个BGP路由,必须携带的属性
该属性分为三种,优先级依次降低:i > e > ?
在BGP协议中,通过network命令引入的命令,起源属性默认是i
在BGP协议中,通过im port-route命令引入的,起源属性默认是?
Origin实验
- 实验需求

- 让R1优选R3传递的BGP路由
BGP配置命令
- R2配置
bash
# 第一步:删除R2的上一实验配置,恢复默认
# 第二步:创建地址前缀列表
[R2]ip ip-prefix ntd permit 10.10.4.4 32
# 第三步:创建路由策略,匹配地址前缀列表,修改路由的属性
[R2]route-policy tedu permit node 10
[R2-route-policy]if-match ip-prefix ntd
[R2-route-policy]applyorigin incomplete # 修改路由的起源属性
# 第四步:BGP中调用路由策略
[R2]bgp 100
[R2-bgp]peer 10.l0.1.1 route-policy tedu export # 在出方向调用路由策略
验证与测试
- 在R1测试
bash
<R1>display bgp routing-table
<R1>display ip routing-table

小结
- 该属性是公认必遵属性,BGP路由中必须携带
- 通过network命令引入的命令,起源属性是i
- 通过import-route命令引入的,起源属性是?
6. 路由优选之MED
多出口鉴别器
- MED值属性
开销值属性,叫多出口鉴别器,是可选非过渡属性
默认值为0,值越小越优先
作用于两个AS之间,收到MED属性的AS,默认不将这个属性通告给第三方AS
用于判断流量进入AS时的最佳路由
MED实验
- 实验需求

- 让R1优选R3传递的BGP路由10.10.4.4/32
BGP配置命令
- R2配置
bash
# 第一步:删除R2的上一实验配置,恢复默认
# 第二步:创建地址前缀列表
[R2]ip ip-prefix ntd permit 10.10.4.4 32
# 第三步:创建路由策略,匹配地址前缀列表,修改路由的属性
[R2]route-policy tedu permit node 10
[R2-route-policy]if-match ip-prefix ntd
[R2-route-policy]apply cost 999 # 修改路由的MED属性值为999
# 第四步:在BGP中调用路由策略
[R2]bgp 100
[R2-bgp]peer 10.10.1.1 route-policy tedu export
验证与测试
- 在R1测试
bash
<Rl>display bgp routing-table
<R1>display ip routing-table

小结
- MED默认值为0,值越小越优先
- 作用于两个AS之间,收到MED属性的AS,默认不将这个属性通告给第三方AS
- MED用于判断流量进入AS时的最佳路由
总结
总结 |SUMMARY
- 下一跳不可达的路由将被丢弃
- 比较"本地优先级-local_pref"属性,数值越大越好,默认值是100
- 比较"as-path"属性-as号越短越好
- 比较 "起源属性"network优于import-route
- 比较"MED"属性,数值越小越好
配置实例
- 路由选路之本地优先级
- 路由选路之本地优先级
- 路由选路之AS-PATH
- 路由选路之Origin
- 路由选路之MED
1 路由选路之本地优先级
1.1 问题
1.2 方案
- 搭建实验环境,如图所示。

1.3 步骤
实现此案例需要按照如下步骤进行。
1)第一步:基础配置:配置接口IP地址, AS100内部配置OSPF
- R1的配置:
bash
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 192.168.12.1 24
[R1-GigabitEthernet0/0/0]int g0/0/1
[R1-GigabitEthernet0/0/1]ip add 192.168.13.1 24
[R1-GigabitEthernet0/0/1]int lo0
[R1-LoopBack0]ip add 10.10.1.1 32
[R1-LoopBack0]quit
[R1]ospf 1 router-id 1.1.1.1
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network 192.168.12.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 192.168.13.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 10.10.1.1 0.0.0.0
- R2的配置:
bash
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip address 192.168.12.2 24
[R2-GigabitEthernet0/0/0]int g0/0/1
[R2-GigabitEthernet0/0/1]ip address 192.168.24.2 24
[R2-GigabitEthernet0/0/1]int lo0
[R2-LoopBack0]ip add 10.10.2.2 32
[R2-LoopBack0]q
[R2]ospf 1 router-id 2.2.2.2
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 192.168.12.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 10.10.2.2 0.0.0.0
- R3的配置:
bash
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ip add 192.168.13.3 24
[R3-GigabitEthernet0/0/0]int g0/0/1
[R3-GigabitEthernet0/0/1]ip add 192.168.34.3 24
[R3-GigabitEthernet0/0/1]int lo0
[R3-LoopBack0]ip add 10.10.3.3 32
[R3-LoopBack0]q
[R3]ospf 1 router-id 3.3.3.3
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 192.168.13.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 10.10.3.3 0.0.0.0
- R4的基础配置
bash
[R4]int g0/0/0
[R4-GigabitEthernet0/0/0]ip add 192.168.24.4 24
[R4-GigabitEthernet0/0/0]int g0/0/1
[R4-GigabitEthernet0/0/1]ip add 192.168.34.4 24
[R4-GigabitEthernet0/0/1]int lo0
[R4-LoopBack0]ip add 10.10.4.4 32
2)第二步:配置IBGP和EBGP邻居关系
- R1的配置:
bash
[R1]bgp 100
[R1-bgp]router-id 1.1.1.1
[R1-bgp]peer 10.10.2.2 as 100
[R1-bgp]peer 10.10.2.2 connect-interface LoopBack 0
[R1-bgp]peer 10.10.3.3 as 100
[R1-bgp]peer 10.10.3.3 connect-interface LoopBack 0
- R2的配置:
bash
[R2]bgp 100
[R2-bgp]router-id 2.2.2.2
[R2-bgp]peer 10.10.1.1 as 100
[R2-bgp]peer 10.10.1.1 connect-interface LoopBack 0
[R2-bgp]peer 192.168.24.4 as 200
- R3的配置:
bash
[R3]bgp 100
[R3-bgp]router-id 3.3.3.3
[R3-bgp]peer 10.10.1.1 as 100
[R3-bgp]peer 10.10.1.1 connect-interface LoopBack 0
[R3-bgp]peer 192.168.34.4 as 200
- R4的配置:
bash
[R4]bgp 200
[R4-bgp]router-id 4.4.4.4
[R4-bgp]peer 192.168.24.2 as 100
[R4-bgp]peer 192.168.34.3 as 100
- 验证邻居关系
bash
# R1邻居
<R1>dis bgp peer
BGP local router ID : 1.1.1.1
Local AS number : 100
Total number of peers : 2 Peers in established state : 2
Peer V AS MsgRcvd MsgSent OutQ Up/Down State Pre fRcv
10.10.2.2 4 100 3 4 0 00:01:26 Established 0
10.10.3.3 4 100 2 4 0 00:00:37 Established 0
# R2邻居
<R2>dis bgp peer
BGP local router ID : 2.2.2.2
Local AS number : 100
Total number of peers : 2 Peers in established state : 2
Peer V AS MsgRcvd MsgSent OutQ Up/Down State Pre fRcv
10.10.1.1 4 100 5 5 0 00:03:08 Established 0
192.168.24.4 4 200 3 4 0 00:01:34 Established 0
# R3邻居
<R3>dis bgp peer
BGP local router ID : 3.3.3.3
Local AS number : 100
Total number of peers : 2 Peers in established state : 2
Peer V AS MsgRcvd MsgSent OutQ Up/Down State Pre fRcv
10.10.1.1 4 100 6 6 0 00:04:45 Established 0
192.168.34.4 4 200 5 6 0 00:03:49 Established 0
# R4邻居
<R4>dis bgp peer
BGP local router ID : 4.4.4.4
Local AS number : 200
Total number of peers : 2 Peers in established state : 2
Peer V AS MsgRcvd MsgSent OutQ Up/Down State Pre fRcv
192.168.24.2 4 100 7 6 0 00:05:00 Established 0
192.168.34.3 4 100 6 6 0 00:04:50 Established 0
3)第三步:在R4中注入路由
- R4的配置:
bash
[R4]bgp 200
[R4-bgp]network 10.10.4.4 32
- 验证R4和R2和R3的邻居关系,邻居建立成功
bash
<R4>dis bgp peer
BGP local router ID : 4.4.4.4
Local AS number : 200
Total number of peers : 2 Peers in established state : 2
Peer V AS MsgRcvd MsgSent OutQ Up/Down State Pre fRcv
192.168.24.2 4 100 10 11 0 00:05:00 Established 0
192.168.34.3 4 100 10 11 0 00:04:50 Established 0
- 在R2和R3中验证BGP路由
bash
# R2
<R2>dis bgp routing-table
BGP Local router ID is 2.2.2.2
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 1
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 10.10.4.4/32 192.168.24.4 0 0 200i
# R3
<R3>dis bgp routing-table
BGP Local router ID is 3.3.3.3
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 1
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 10.10.4.4/32 192.168.34.4 0 0 200i
- 在R1中验证BGP路由
bash
<R1>dis bgp routing-table
BGP Local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn
i 10.10.4.4/32 192.168.24.4 0 100 0 200i
i 192.168.34.4 0 100 0 200i
- 在R1的IP核心路由表去验证,发现R1没有去往10.10.4.4 的路由
bash
[R1]display ip routing-table 10.10.4.4
<R1>dis ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
Destinations : 13 Routes : 13
Destination/Mask Proto Pre Cost Flags NextHop Interface
10.10.1.1/32 Direct 0 0 D 127.0.0.1 LoopBack0
10.10.2.2/32 OSPF 10 1 D 192.168.12.2 GigabitEthernet0/0/0
10.10.3.3/32 OSPF 10 1 D 192.168.13.3 GigabitEthernet0/0/1
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
192.168.12.0/24 Direct 0 0 D 192.168.12.1 GigabitEthernet0/0/0
192.168.12.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
192.168.12.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
192.168.13.0/24 Direct 0 0 D 192.168.13.1 GigabitEthernet0/0/1
192.168.13.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1
192.168.13.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1
255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
- 总结:丢弃下一跳不可达的路由
4)第四步:修改路由下一跳地址
- 让R1中的路由可用
- 如果让下一跳可达呢,如果让R1中的路由生效且最优呢:
- 需要在R2和R3在给R1传递路由的时候修改下一跳
R2的配置:
bash
[R2]bgp 100
[R2-bgp]peer 10.10.1.1 next-hop-local 修改下一跳
- R3的配置:
bash
[R3]bgp 100
[R3-bgp]peer 10.10.1.1 next-hop-local 修改下一跳
- 再次验证R1的路由表
bash
<R1>dis bgp routing-table
BGP Local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn
*>i 10.10.4.4/32 10.10.2.2 0 100 0 200i
i 192.168.34.4 0 100 0 200i
# 核心路由表
<R1>dis ip routing-table 10.10.4.4
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Table : Public
Summary Count : 1
Destination/Mask Proto Pre Cost Flags NextHop Interface
10.10.4.4/32 IBGP 255 0 RD 10.10.2.2 GigabitEthernet0/0/0
2 路由选路之本地优先级
2.1 问题
配置BGP路由的本地优先级属性
让R1优选R3传来的BGP路由10.10.4.4/32
2.2 方案
- 搭建实验环境,如图所示。

2.3 步骤
实现此案例需要按照如下步骤进行。
1)第一步:创建ip-prefix 抓取10.10.4.4的路由
bash
[R3 ]ip ip-prefix ntd index 10 permit 10.10.4.4 32
2)第二步:创建路由策略,匹配地址前缀列表,修改路由的属性
bash
[R3]route-policy tedu permit node 10 //创建路由策略
[R3-route-policy]if-match ip-prefix ntd //匹配ip-prefix ntd
[R3-route-policy]apply local-preference 200 //本地优先级为200
3)第三步:在BGP中调用路由策略
bash
[R3]bgp 100
[R3-bgp]peer 10.10.1.1 route-policy tedu export //出方向调用路由策略
4)验证与测试
- 在R1测试
bash
<R1>dis bgp routing-table
BGP Local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn
*>i 10.10.4.4/32 10.10.3.3 0 200 0 200i // 变成10.10.3.3了
* i 10.10.2.2 0 100 0 200i
3 路由选路之AS-PATH
问题
1)配置BGP路由的AS-PATH属性
2)让R1优选R3传递的BGP路由10.10.4.4/32
方案
- 搭建实验环境,如图所示。

步骤
实现此案例需要按照如下步骤进行。
1)第一步:删除R3上一实验配置
bash
[R3]bgp 100
[R3-bgp]undo peer 10.10.1.1 route-policy tedu export //删除调用
[R3]undo route-policy tedu //删除路由策略
[R3]undo ip ip-prefix ntd //删除地址前缀列表
2)第二步:在R2创建ip-prefix 抓取10.10.4.4的路由
bash
[R2 ] ip ip-prefix ntd index 10 permit 10.10.4.4 32
3)第三步:在R2创建路由策略,匹配地址前缀列表,修改路由的属性
bash
[R2]route-policy tedu permit node 10 //创建路由策略
[R2-route-policy]if-match ip-prefix ntd //匹配ip-prefix ntd
[R2-route-policy]apply as-path 200 200 additive //修改路由的属性,添加AS号
4)第四步:在R2的BGP中调用路由策略
bash
[R2]bgp 100
[R2-bgp]peer 10.10.1.1 route-policy tedu export //出方向调用路由策略
5)验证与测试
- 在R1测试
bash
<R1>dis bgp routing-table
BGP Local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn
*>i 10.10.4.4/32 10.10.3.3 0 100 0 200i
* i 10.10.2.2 0 100 0 200 200 200i
<R1>dis ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
Destinations : 14 Routes : 14
Destination/Mask Proto Pre Cost Flags NextHop Interface
10.10.1.1/32 Direct 0 0 D 127.0.0.1 LoopBack0
10.10.2.2/32 OSPF 10 1 D 192.168.12.2 GigabitEthernet0/0/0
10.10.3.3/32 OSPF 10 1 D 192.168.13.3 GigabitEthernet0/0/1
10.10.4.4/32 IBGP 255 0 RD 10.10.3.3 GigabitEthernet0/0/1
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
192.168.12.0/24 Direct 0 0 D 192.168.12.1 GigabitEthernet0/0/0
192.168.12.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
192.168.12.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
192.168.13.0/24 Direct 0 0 D 192.168.13.1 GigabitEthernet0/0/1
192.168.13.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1
192.168.13.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1
255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
4 路由选路之Origin
问题
1)配置BGP路由的 Origin属性
2)让R1优选R3传来的BGP路由10.10.4.4/32
方案
- 搭建实验环境,如图所示。

步骤
实现此案例需要按照如下步骤进行。
1)第一步:删除R2上一实验配置
bash
[R2]bgp 100
[R2-bgp]undo peer 10.10.1.1 route-policy tedu export //删除调用
[R2]undo route-policy tedu //删除路由策略
[R2]undo ip ip-prefix //删除地址前缀列表
2)第二步:创建地址前缀列表
bash
[R2]ip ip-prefix ntd permit 10.10.4.4 32
3)第三步:创建路由策略,匹配地址前缀列表,修改路由的属性
bash
[R2]route-policy tedu permit node 10
[R2-route-policy]if-match ip-prefix ntd
[R2-route-policy]apply origin incomplete //修改路由的起源属性
4)第四步:BGP中调用路由策略
bash
[R2]bgp 100
[R2-bgp]peer 10.10.1.1 route-policy tedu export //在出方向调用路由策略
5)验证与测试
- 在R1测试
bash
<R1>dis bgp routing-table
BGP Local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn
*>i 10.10.4.4/32 10.10.3.3 0 100 0 200i
* i 10.10.2.2 0 100 0 200?
<R1>dis ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
Destinations : 14 Routes : 14
Destination/Mask Proto Pre Cost Flags NextHop Interface
10.10.1.1/32 Direct 0 0 D 127.0.0.1 LoopBack0
10.10.2.2/32 OSPF 10 1 D 192.168.12.2 GigabitEthernet0/0/0
10.10.3.3/32 OSPF 10 1 D 192.168.13.3 GigabitEthernet0/0/1
10.10.4.4/32 IBGP 255 0 RD 10.10.3.3 GigabitEthernet0/0/1
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
192.168.12.0/24 Direct 0 0 D 192.168.12.1 GigabitEthernet0/0/0
192.168.12.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
192.168.12.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
192.168.13.0/24 Direct 0 0 D 192.168.13.1 GigabitEthernet0/0/1
192.168.13.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1
192.168.13.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1
255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
5 路由选路之MED
5.1 问题
1)配置BGP路由的MED属性
2)让R1优选R3传递的BGP路由10.10.4.4/32
5.2 方案
- 搭建实验环境,如图所示。

5.3 步骤
实现此案例需要按照如下步骤进行。
1)第一步:删除R2上一实验配置
bash
[R2]bgp 100
[R2-bgp]undo peer 10.10.1.1 route-policy tedu export //删除调用
[R2]undo route-policy tedu //删除路由策略
[R2]undo ip ip-prefix ntd //删除地址前缀列表
2)第二步:创建地址前缀列表
bash
[R2]ip ip-prefix ntd permit 10.10.4.4 32
3)第三步:创建路由策略,匹配地址前缀列表,修改路由的属性
bash
[R2]route-policy tedu permit node 10
[R2-route-policy]if-match ip-prefix ntd
[R2-route-policy]apply cost 999 //修改路由的MED属性值为999
4)第三步:在BGP中调用路由策略
bash
[R2]bgp 100
[R2-bgp]peer 10.10.1.1 route-policy tedu export
5)测试
- 在R1测试
bash
<R1>dis bgp routing-table
BGP Local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn
*>i 10.10.4.4/32 10.10.3.3 0 100 0 200i
* i 10.10.2.2 999 100 0 200i
<R1>dis ip rou
<R1>dis ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
Destinations : 14 Routes : 14
Destination/Mask Proto Pre Cost Flags NextHop Interface
10.10.1.1/32 Direct 0 0 D 127.0.0.1 LoopBack0
10.10.2.2/32 OSPF 10 1 D 192.168.12.2 GigabitEthernet0/0/0
10.10.3.3/32 OSPF 10 1 D 192.168.13.3 GigabitEthernet0/0/1
10.10.4.4/32 IBGP 255 0 RD 10.10.3.3 GigabitEthernet0/0/1
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
192.168.12.0/24 Direct 0 0 D 192.168.12.1 GigabitEthernet0/0/0
192.168.12.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
192.168.12.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
192.168.13.0/24 Direct 0 0 D 192.168.13.1 GigabitEthernet0/0/1
192.168.13.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1
192.168.13.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1
255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0