BGP的路由优选原则

BGP的路由优选原则

BGP路由器将路由通告给邻居后,每个BGP邻居都会进行路由优选,路由选择有三种情况:
该路由是到达目的地的唯一路由,直接优选。
对到达同一目的地的多条路由,优选优先级最高的。
对到达同一目的地且具有相同优先级的多条路由,必须用更细的原则去选择一条最优的。

一般来说,BGP计算路由优先级的规则如下:
1、丢弃下一跳不可达的路由。
2、优选Preference_Value值最高的路由(私有属性,仅本地有效)。
3、优选本地优先级(Local_Preference)最高的路由。
4、优选手动聚合>自动聚合>network>import>从对等体学到的。
5、优选AS_Path短的路由。
6、起源类型IGP>EGP>Incomplete。
7、对于来自同一AS的路由,优选MED值小的。
8、优选从EBGP学来的路由(EBGP>IBGP)。
9、优选AS内部IGP的Metric最小的路由。
10、优选Cluster_List最短的路由。
11、优选Orginator_ID最小的路由。
12、优选Router_ID最小的路由器发布的路由。
13、优选具有较小IP地址的邻居学来的路由。

Preference_Value
Preference_Value是BGP的私有属性(华为私有属性),Preference_Value相当于BGP选路规则中Weight值,仅在本地路由器生效。Preference_Value值越大,越优先。

实验
在这里插入图片描述
要求
本实验模拟某市ISP骨干网与两个数据中心互联的网络。
由于设备较多,为避免设备无法开启的情况,8G内存以下的请取消系统内存保护,具体方法如下:
菜单-工具-选项-工具设置,去掉系统内存保护前面的勾。本实验完成后可以重新勾上。

完成以下配置需求:
1.预配置包括:
1.1 所有设备互联IP已配置,且所有设备都有Loopback0地址。
1.2 SW1与SW2已创建vlan、划分vlan、并创建vlanif。
1.3 PC已配置IP和网关。

2.在所有设备的系统视图下配置全局router id为Loopback0地址。
使得OSPF和BGP协议自动选择该RID,而无需另行配置。

3.内部网关协议IGP
3.1 ISP骨干网中运行ISIS进程1,满足以下需求:
3.1.1 ISIS区域49.0005
3.1.2 系统ID规划如下:
R1:0000.0000.0001
R2:0000.0000.0002
R3:0000.0000.0003
R4:0000.0000.0004
R5:0000.0000.0005
3.1.3 所有路由器均为Level-2
3.1.4 与其他AS互联的接口不激活ISIS。
3.1.5 确保ISP骨干网内部互通。
3.2 两个数据中心分别运行OSPF进程1,满足以下需求:
3.2.1 router-id自动选择,不要手动配置。
3.2.2 全部属于区域0.(两个数据中心OSPF并不互通。)
3.2.3 使用network命令宣告,通配符使用0.0.0.0
3.2.4 不允许宣告与其他AS互联的接口。
3.2.5 确保两个数据中心内部各自互通。

4.建立BGP邻居
4.1 ISP骨干网属于AS12345,R1/2/3/4/5均运行BGP,满足以下需求:
4.1.1 R5为路由反射器(RR),R1/2/3/4为客户端(RR-client)。
4.1.2 R1/2/3/4分别使用Loopback0与R5建立ibgp邻居关系。
4.1.3 R1/2/3/4之间不建立bgp邻居关系。
4.1.4 配置必要的next-hop-local命令。
4.2 A区数据中心属于AS65100,B区数据中心属于AS65200。
两个数据中心都采用了同城异地灾备方案,即双出口连接到不同城域网,可以避免本地城域网故障导致的网络瘫痪。
数据中心配置BGP,满足以下需求:
4.2.1 使用Loopback0建立以下ibgp邻居:
B区数据中心:SW2 - R8 - R9 全互联
4.2.2 配置必要的next-hop-local命令
4.2.3 使用物理接口建立以下ebgp邻居:
R6 - R1
R7 - R3
R8 - R2
R9 - R4

5.发布BGP路由
R5使用network命令发布8.8.8.8/32,数据中心按照以下要求发布路由:
5.1 SW2使用network命令发布200.0.0.0/24和200.0.1.0/24两条路由
5.2 R7使用network命令发布100.0.0.0/24和100.0.1.0/24两条路由
5.3 R6使用import-route命令发布100.0.0.0/24和100.0.1.0/24两条路由,使用以下策略:
5.3.1 ip-prefix,名称为100
index 10 匹配 100.0.0.0/24
index 20 匹配 100.0.1.0/24
5.3.2 route-policy,名称为OSPFtoBGP(注意大小写),node 10,调用prefix。
5.3.3 将OSPF引入BGP时调用策略。
5.4 在R6和R7上将BGP引入OSPF,确认SW1学习到路由。

6.协议优先级选路
查看SW1上收到的其他AS路由如8.8.8.8/32,发现下一跳只有一个。
尝试分析原因,并在R6/7部署以下策略:
6.1 进入BGP进程,使用preference命令修改BGP协议优先级。
6.2 EBGP路由协议优先级为50,IBGP和本地路由使用默认值255。
6.3 确认SW1收到的AS外部路由可以看到R6/7两个下一跳。

7.权重(PrefVal)选路
在R5上查看去往AS65100的路由,发现只有R3一个边界传递了路由,而R1没有发送路由。
尝试分析原因,为预防此类现象发生,在所有AS边界路由器上部署以下策略进行优化:
7.1 不允许使用route-policy
7.2 修改ebgp邻居发来的路由权重(PrefVal)为1.
7.3 确认R5可以同时收到R1和R3发来AS65100的路由。

8.本地优先(LocPrf)选路
8.1 ISP访问A区数据中心优先走R1。
修改R1默认本地优先(LocPrf)为150。R5上查看路由验证。
8.2 B区数据中心访问ISP优先走R9
修改R9默认本地优先(LocPrf)为150。SW2上查看路由验证。
8.3 B区数据中心访问A区数据中心优先走R8,R8上部署以下策略:
8.3.1 ip-prefix 名称100
index 10 匹配 100.0.0.0/24
index 20 匹配 100.0.1.0/24
8.3.2 route-policy 名称toSW2
node 10,引用prefix,修改本地优先(LocPrf)为180。
node 100,允许其他路由。
8.3.3 R8发送路由给SW2时调用策略。
8.3.4 在SW2查看bgp路由验证。

9.MED选路
B区数据中心领导希望外部AS数据流量从R9进入本AS。
9.1 在R5上查看AS65200的路由,发现选择R2作为最佳路径,流量会从R8进入AS65200。
尝试分析原因。
9.2 B区数据中心原管理员计划使用MED值影响AS12345优选R4作为最佳路径,使得流量从R9进入本AS。
方案如下:
R8部署策略,增加发送给R2路由的MED值
route-policy toR2 permit node 10
apply cost 200
bgp 65200
peer 5.0.28.2 route-policy toR2 export
原管理员还没来得及部署该策略,就被ISP骨干网领导挖走,也没来得及完成工作交接。
B区数据中心新管理员不会使用route-policy,担心配置错误没有按照原管理员方案执行。
但是当他仔细查看R8的OSPF路由表和BGP路由表发现:
R8使用ospf学习到200.0.0.0/24和200.0.1.0/24,cost为2.
R8使用bgp学习到200.0.0.0/24和200.0.1.0/24,MED为0.
于是他灵机一动,R8上只新增了两条命令,在不影响其他路由的情况下完成了这个需求。
9.3 原管理员得知新管理员的办法后,表示这个办法看似简单,实则将来更麻烦,尝试分析原因。

具体过程
1.预配置包括:
1.1 所有设备互联IP已配置,且所有设备都有Loopback0地址。
1.2 SW1与SW2已创建vlan、划分vlan、并创建vlanif。
1.3 PC已配置IP和网关。

2.在所有设备的系统视图下配置全局router id为Loopback0地址。
使得OSPF和BGP协议自动选择该RID,而无需另行配置。
R1-R9
Router id 5.x.x.x
SW1
Router id 5.11.11.11
SW2
Router id 5.22.22.22

3.内部网关协议IGP
3.1 ISP骨干网中运行ISIS进程1,满足以下需求:
3.1.1 ISIS区域49.0005
3.1.2 系统ID规划如下:
R1:0000.0000.0001
R2:0000.0000.0002
R3:0000.0000.0003
R4:0000.0000.0004
R5:0000.0000.0005
3.1.3 所有路由器均为Level-2
3.1.4 与其他AS互联的接口不激活ISIS。
3.1.5 确保ISP骨干网内部互通。
R1
isis 1
is-level level-2
network-entity 49.0005.0000.0000.0001.00

R2:
isis 1
is-level level-2
network-entity 49.0005.0000.0000.0002.00

R3:
isis 1
is-level level-2
network-entity 49.0005.0000.0000.0003.00

R4:
isis 1
is-level level-2
network-entity 49.0005.0000.0000.0004.00

R1/2/3/4:
interface LoopBack0
isis enable 1
interface GigabitEthernet0/0/0
isis enable 1
interface GigabitEthernet5/0/0
isis enable 1

R5:
isis 1
is-level level-2
network-entity 49.0005.0000.0000.0005.00

interface LoopBack0
isis enable 1
interface GigabitEthernet5/0/0
isis enable 1
interface GigabitEthernet5/0/1
isis enable 1
interface GigabitEthernet5/0/2
isis enable 1
interface GigabitEthernet5/0/3
isis enable 1

3.2 两个数据中心分别运行OSPF进程1,满足以下需求:
3.2.1 router-id自动选择,不要手动配置。
3.2.2 全部属于区域0.(两个数据中心OSPF并不互通。)
3.2.3 使用network命令宣告,通配符使用0.0.0.0
3.2.4 不允许宣告与其他AS互联的接口。
3.2.5 确保两个数据中心内部各自互通。

R6:
ospf 1
area 0.0.0.0
network 5.0.116.6 0.0.0.0
network 5.6.6.6 0.0.0.0

R7:
ospf 1
area 0.0.0.0
network 5.0.117.7 0.0.0.0
network 5.7.7.7 0.0.0.0

SW1:
ospf 1
area 0.0.0.0
network 5.11.11.11 0.0.0.0
network 5.0.116.11 0.0.0.0
network 5.0.117.11 0.0.0.0
network 100.0.0.254 0.0.0.0
network 100.0.1.254 0.0.0.0

R8:
ospf 1
area 0.0.0.0
network 5.0.228.8 0.0.0.0
network 5.8.8.8 0.0.0.0

R9:
ospf 1
area 0.0.0.0
network 5.0.229.9 0.0.0.0
network 5.9.9.9 0.0.0.0

SW2:
ospf 1
area 0.0.0.0
network 5.22.22.22 0.0.0.0
network 5.0.228.22 0.0.0.0
network 5.0.229.22 0.0.0.0
network 200.0.0.254 0.0.0.0
network 200.0.1.254 0.0.0.0

4.建立BGP邻居
4.1 ISP骨干网属于AS12345,R1/2/3/4/5均运行BGP,满足以下需求:
4.1.1 R5为路由反射器(RR),R1/2/3/4为客户端(RR-client)。
4.1.2 R1/2/3/4分别使用Loopback0与R5建立ibgp邻居关系。
4.1.3 R1/2/3/4之间不建立bgp邻居关系。
4.1.4 配置必要的next-hop-local命令。
R1/2/3/4:
bgp 12345
peer 5.5.5.5 as-number 12345
peer 5.5.5.5 connect-interface LoopBack0
peer 5.5.5.5 next-hop-local

R5:
bgp 12345
peer 5.1.1.1 as-number 12345
peer 5.1.1.1 connect-interface LoopBack0
peer 5.1.1.1 reflect-client
peer 5.2.2.2 as-number 12345
peer 5.2.2.2 connect-interface LoopBack0
peer 5.2.2.2 reflect-client
peer 5.3.3.3 as-number 12345
peer 5.3.3.3 connect-interface LoopBack0
peer 5.3.3.3 reflect-client
peer 5.4.4.4 as-number 12345
peer 5.4.4.4 connect-interface LoopBack0
peer 5.4.4.4 reflect-client
4.2 A区数据中心属于AS65100,B区数据中心属于AS65200。
两个数据中心都采用了同城异地灾备方案,即双出口连接到不同城域网,可以避免本地城
域网故障导致的网络瘫痪。
数据中心配置BGP,满足以下需求:
4.2.1 使用Loopback0建立ibgp邻居:
A区数据中心:SW1不运行BGP,R6/7不建立ibgp邻居。
B区数据中心:SW2 - R8 - R9 全互联
4.2.2 配置必要的next-hop-local命令
SW2:
bgp 65200
peer 5.8.8.8 as-number 65200
peer 5.8.8.8 connect-interface LoopBack0
peer 5.9.9.9 as-number 65200
peer 5.9.9.9 connect-interface LoopBack0

R8:
bgp 65200
peer 5.9.9.9 as-number 65200
peer 5.9.9.9 connect-interface LoopBack0
peer 5.9.9.9 next-hop-local
peer 5.22.22.22 as-number 65200
peer 5.22.22.22 connect-interface LoopBack0
peer 5.22.22.22 next-hop-local

R9:
bgp 65200
peer 5.8.8.8 as-number 65200
peer 5.8.8.8 connect-interface LoopBack0
peer 5.8.8.8 next-hop-local
peer 5.22.22.22 as-number 65200
peer 5.22.22.22 connect-interface LoopBack0
peer 5.22.22.22 next-hop-local
4.2.3 使用物理接口建立以下ebgp邻居:
R6 - R1
R7 - R3
R8 - R2
R9 - R4
R6:
bgp 65100
peer 5.0.16.1 as-number 12345
R1:
bgp 12345
peer 5.0.16.6 as-number 65100
R7:
bgp 65100
peer 5.0.37.3 as-number 12345
R3:
bgp 12345
peer 5.0.37.7 as-number 65100
R8:
bgp 65200
peer 5.0.28.2 as-number 12345
R2:
bgp 12345
peer 5.0.28.8 as-number 65200
R9:
bgp 65200
peer 5.0.49.4 as-number 12345
R4:
bgp 12345
peer 5.0.49.9 as-number 65200

5.发布BGP路由
R5使用network命令发布8.8.8.8/32
R5:
bgp 12345
network 8.8.8.8 32
数据中心按照以下要求发布路由:
5.1 SW2使用network命令发布200.0.0.0/24和200.0.1.0/24两条路由
SW2:
bgp 65200
network 200.0.0.0
network 200.0.1.0
5.2 R7使用network命令发布100.0.0.0/24和100.0.1.0/24两条路由
R7:
bgp 65100
network 100.0.0.0 255.255.255.0
network 100.0.1.0 255.255.255.0
5.3 R6使用import-route命令发布100.0.0.0/24和100.0.1.0/24两条路由,使用以下策略:
5.3.1 ip-prefix,名称为100
index 10 匹配 100.0.0.0/24
index 20 匹配 100.0.1.0/24
5.3.2 route-policy,名称为OSPFtoBGP(注意大小写),node 10,调用prefix。
5.3.3 将OSPF引入BGP时调用策略。
R6:
ip ip-prefix 100 index 10 permit 100.0.0.0 24
ip ip-prefix 100 index 20 permit 100.0.1.0 24
route-policy OSPFtoBGP permit node 10
if-match ip-prefix 100
bgp 65100
import-route ospf 1 route-policy OSPFtoBGP
5.4 在R6和R7上将BGP引入OSPF,确认SW1学习到路由。
R6/7:
ospf 1
import-route bgp
[SW1]dis ospf routing

6.协议优先级选路
查看SW1上收到的其他AS路由如8.8.8.8/32,发现下一跳只有一个。
尝试分析原因,
此时R6/R7形成了BGP和OSPF的双点双向引入路由环境。
当R6将BGP引入到OSPF时,除SW1外,R7也会收到OSPF外部路由。
R7 从R3收到EBGP路由 协议优先级为255;
从R6收到OSPF外部路由 协议优先级为150。
由于150<255,所以R7会使用OSPF外部路由。
R7上把BGP引入OSPF时,8.8.8.8/32不属于BGP路由,所以R7的引入无效。
只有当R7优选R3的EBGP路由时,才会把8.8.8.8/32引入到OSPF。
所以需要修改R7从R3收到路由的协议优先级,小于150。
R7正常后,R6会有同样的问题,所以也需要修改。
并在R6/7部署以下策略:
6.1 进入BGP进程,使用preference命令修改BGP协议优先级。
6.2 EBGP路由协议优先级为50,IBGP和本地路由使用默认值255。
R6/7:
bgp 65100
preference 50 255 255
6.3 确认SW1收到的AS外部路由可以看到R6/7两个下一跳。
[SW1]dis ospf routing

7.权重(PrefVal)选路
在R5上查看去往AS65100的路由,发现只有R3一个边界传递了路由,而R1没有发送路由。
尝试分析原因,
dis bgp routing-table
尝试分析原因:
R1上同时收到R3和R6发来的路由,R3路由起源属性为“i”,R6起源属性为“?”,故而选择了
R3作为最佳下一跳。由于ibgp邻居发来的路由不能再传递给其他ibgp邻居,所以R1没有将
路由发送给R5。
为预防此类现象发生,在所有AS边界路由器上部署以下策略进行优化:
7.1 不允许使用route-policy
7.2 修改ebgp邻居发来的路由权重(PrefVal)为1.
R1:
bgp 12345
peer 5.0.16.6 preferred-value 1
R2:
bgp 12345
peer 5.0.28.8 preferred-value 1
R3:
bgp 12345
peer 5.0.37.7 preferred-value 1
R4:
bgp 12345
peer 5.0.49.9 preferred-value 1
R6:
bgp 65100
peer 5.0.16.1 preferred-value 1
R7:
bgp 65100
peer 5.0.37.3 preferred-value 1
R8:
bgp 65200
peer 5.0.28.2 preferred-value 1
R9:
bgp 65200
peer 5.0.49.4 preferred-value 1
7.3 确认R5可以同时收到R1和R3发来AS65100的路由。
[R5]dis bgp routing-table

8.本地优先(LocPrf)选路
8.1 ISP访问A区数据中心优先走R1。
修改R1默认本地优先(LocPrf)为150。R5上查看路由验证。
R1:
bgp 12345
default local-preference 150
dis bgp routing-table
8.2 B区数据中心访问ISP优先走R9
修改R9默认本地优先(LocPrf)为150。SW2上查看路由验证。
R9:
bgp 65200
default local-preference 150
[SW2]dis bgp routing-table
8.3 B区数据中心访问A区数据中心优先走R8,R8上部署以下策略:
8.3.1 ip-prefix 名称100
index 10 匹配 100.0.0.0/24
index 20 匹配 100.0.1.0/24
8.3.2 route-policy 名称toSW2
node 10,引用prefix,修改本地优先(LocPrf)为180。
node 100,允许其他路由。
8.3.3 R8发送路由给SW2时调用策略。
8.3.4 在SW2查看bgp路由验证。
R8:
ip ip-prefix 100 index 10 permit 100.0.0.0 24
ip ip-prefix 100 index 20 permit 100.0.1.0 24
route-policy toSW2 permit node 10
if-match ip-prefix 100
apply local-preference 180
route-policy toSW2 permit node 100
bgp 65200
peer 5.22.22.22 route-policy toSW2 export
[SW2]dis bgp routing-table

9.MED选路
B区数据中心管理员希望外部AS数据流量从R9进入本AS。
9.1 在R5上查看AS65200的路由,发现选择R2作为最佳路径,流量会从R8进入AS65200。
尝试分析原因。
dis bgp routing-table
按照选路13条原则,前11条都完全相同,第12条比较RID小的作为最佳路径。所以R5选择
5.2.2.2
9.2 B区数据中心原管理员计划使用MED值影响AS12345优选R4作为最佳路径,使得流量从
R9进入本AS。
方案如下:
R8部署策略,增加发送给R2路由的MED值
route-policy toR2 permit node 10
apply cost 200
bgp 65200
peer 5.0.28.2 route-policy toR2 export
原管理员还没来得及部署该策略,就被ISP骨干网领导挖走,也没来得及完成工作交接。
B区数据中心新管理员不会使用route-policy,担心配置错误没有按照原管理员方案执行。
但是当他仔细查看R8的OSPF路由表和BGP路由表发现:
R8使用ospf学习到200.0.0.0/24和200.0.1.0/24,cost为2.
R8使用bgp学习到200.0.0.0/24和200.0.1.0/24,MED为0.
于是他灵机一动,R8上只新增了两条命令,在不影响其他路由的情况下完成了这个需求。
R8:
bgp 65200
network 200.0.0.0 24
network 200.0.1.0 24
R8直接宣告OSPF路由,OSPF的cost值会写入MED,发送给R2的路由MED自动变成2。
[R2]dis bgp routing-table
R2上看,R8的MED为2,R4MED默认为0,但是由于需求7中修改了权重(PrefVal),所以依
旧选择R8。
dis bgp routing-table
R5上看,R2的MED为2,R4的MED为默认0,所以选择R4。
9.3 原管理员得知新管理员的办法后,表示这个办法看似简单,实则将来更麻烦,尝试分
析原因。
新管理的方法必须逐条使用network命令通告路由,将来B区数据中心扩容,IP地址增多会
导致更多的network宣告,如果忘记宣告还可能导致流量从R8进入AS65200。
原管理员的方法直接匹配所有路由,新增路由自动修改MED,具备很好的扩展性。

  • 3
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值