本文主要是介绍BGP的选路 :,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前提条件 :
丢弃所有不可用的路由信息。
属性的名称 | 传播范围 | 默认值 | 评判标准 |
PV(优选值) | 不传播 | 0(0-65535) | 越大越优 |
LP(本地优先级) | IBGP对等体 之间 | 100 | 越大越优 |
AS_PATH | BGP对等体 之间 | 记录的数量越少越优 | |
OGN | BGP对等体之间 | 根据起源类型决定 | I > e > ? |
MED | BGP对等体之间 | 继承全局路由表中路由的开销值 | 越小越好 |
1,优选PV值最大的路由 PV :
Preferred_Value —— 优选值
这个属性是华为的私有属性,可以理解为权重。
这个属性是本设备上选路优先级最高的属性,这个属性越大约优。 (该属性不能传递)
第一种方法:
[r4-bgp]peer 3.3.3.3 preferred-value 100
从3.3.3.3来的路由PV值都改为100
负载分担 :即让不同的流量通过不同的路线来走,分担单一线路的压力。
第二种方法:
1,抓取流量 :
[r4]ip ip-prefix pv permit 10.0.0.0 24
2,做路由策略修改PV值:
[r4]route-policy pv permit node 10
[r4-route-policy]if-match ip-prefix pv
[r4-route-policy]apply preferred-value 100
注意:一定要添加空表放通所有,否则将拒绝其他流量。
[r4]route-policy pv permit node 20
3,在BGP中进行调用 :
[r4-bgp]peer 3.3.3.3 route-policy pv import
2,优选LP属性值最大的路由:
Local_Preference —— 本地优先级:
在不做任何更改的情况下,默认值为100,也是越大约优。
LP属性,可以传递给自己的IBGP对等体关系, 但是,不能传递给EBGP对等体关系 —— 这个属性是IBGP对等体之间选路最常用的属性。
第一种修改方法:
[r3-bgp]default local-preference 200
第二种修改方法:
R3出方向修改:
1,抓取流量 :
[r3]ip ip-prefix lp permit 10.0.0.0 24
2,做路由策略 :
[r3]route-policy lp permit node 10
[r3-route-policy]if-match ip-prefix lp
[r3-route-policy]apply local-preference 300
[r3]route-policy lp permit node 20
3,BGP进程中进行调用:
[r3-bgp]peer 4.4.4.4 route-policy lp export
3,始发的优于学来的
而发布路由的方法又有很多种,他们之间的优先级关系为 :
手工聚合 > 自动聚合 > network > 重发布
4,优选AS_path属性值最短的路由:
我们在聚合路由时开启AS_SET属性时,将不同AS的明细路由的AS号用大括号括起来,放到AS_PATH中。
注意:不管括号中有多 少个AS号,在选路时都只看作一个。
2,联邦时,联邦内部也需要使用AS_path属性来进行防环,我们使用小括号括起来,这种情况下,我们选路时,不考虑小括号中的内容。
在R1出方向修改AS_PATH
1,抓流量 :
[r1]ip ip-prefix as permit 10.0.0.0 24
2,做策略 :
[r1]route-policy as permit node 10
[r1-route-policy]if-match ip-prefix as
[r1-route-policy]apply as-path 1 1 1 additive
建议添加真实离开的AS号
因为我们添加的AS号可能会影响路由信息的传入—— AS_PATH本身防环功能的限制导致。
这样依然可以起到影响选路的效果,因为选路只看长短,不看内容,而且,可以避免防环误伤。
[r1]route-policy as permit node 20 (做空表放通所有)
3,BGP进程中调用:
[r1-bgp]peer 12.0.0.2 route-policy as export
5,根据OGN属性的优先级进行选路判断 (I > e > ? ):
起源码 :标识BGP路由的来源
1,通过NETWORK命令发布出来的路由信息 (I)
表明这些路由都是起源于IGP(包含静态和直连)协议。
2,通过EGP协议(在BGP之前使用的协议) 发布的路由信息 (e)
3,通过除了以上两种方法学到的路由(?)
—— 重发布的路由起源码就是 ?
干涉选路的方法:
1,抓取流量 :
[r1]ip ip-prefix ogn permit 10.0.0.0 24
2,做路由策略 :
[r1]route-policy ogn permit node 10
[r1-route-policy]if-match ip-prefix ogn
[r1-route-policy]apply origin incomplete
—— incomplete就是将起源码改为“?”
[r1]route-policy ogn permit node 20
3,在BGP进程中调用
[r1-bgp]peer 12.0.0.2 route-policy ogn export
6,优选MED属性值最小的路由
MED —— 多出口鉴别属性
这个MED值是继承路由表中路由条目的开销值,他的初始默认值并不是0,
MED这个属性可以在本AS内部进行修改,影响其他AS的流量如何进入本AS。
MED的传递原则:
MED属性自身宣告的路由本身将会把IGP的开销值作为MED属性添加到路由信息当中。之后,在IBGP对等体之间传递时,也会携带这个值。如果是自身发布的,则发送给EBGP对等体时,也会携带这个值。
如果是转发别人的路由信息,再需要发送给EBGP对等体时,将需要清除这个MED值。
这个MED值作为多出口的鉴别属性,要求多个出口必须属于同一个AS中,即收到的路由信息AS_PATH属性最左边的AS号必须相同,如果不同,则将不比较这个属性,直接向后比较。
结论 :
如果存在多个边界路由器,AS内的一些网段只在部分设备上进行发布,则有可能造成选路不佳的情况,所以,建议AS内需要发布的网段在所有边界设备上都进行发布。
干涉选路的方法:
在R2上做出方向的策略,影响R1选择到达4.0/24网段的出口:
1,抓取流量
[r2]ip ip-prefix med permit 4.4.4.0 24
2,做路由策略 :
[r2]route-policy med permit node 10
[r2-route-policy]if-match ip-prefix med
[r2-route-policy]apply cost 10
[r2]route-policy med permit node 20
3,在BGP进程中调用 :
[r2-bgp]peer 12.0.0.1 route-policy med export
ping -r 可以记录流量流过的路径信息
7,EBGP路由优于IBGP路由
EBGP对等体发来的路由高于IBGP对等体发来的路由
8,优选到NEXT_HOP的IGP度量最小的路由:
路由的下一跳参数在路由表中的开销值。
9、 优选Cluster_List 最短的路由
10,优选Orginator_ID (Router ID)最小的设备通告的路由:
存在路由反射器时,将比较O_ID,
不存在路由反射器时,就比较 RID。
11、优选具有最小IP地址的对等体通告的路由
这篇关于BGP的选路 :的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!