九、BGP路由属性和选路

目录

一、属性分类

1.1、公认属性

1.2、可选属性

二、选路原则

0、丢弃不可达

取值越大越优

1、Preferred-Value

2、Local_Preference

取值越小越优

3、路由优先级

4、AS_Path

5、Origin

6、MED

7、路由来源

8、Next_Hop的IGP度量值

BGP路由等价负载分担:以上8条属性全部相同时可以形成路由负载分担

9、Cluster_List

10、Router ID(Orginator_ID)

11、IP地址


        BGP邻居之间传递的是路由信息,不是拓扑信息,所以无法防环等

一、属性分类

1.1、公认属性

        所有BGP路由器都必须能够识别的属性

        1、公认必遵
        Origin
        Local_Preference
        AS_Path   

        所有BGP设备都要认识这一类属性;

        而且这类属性必须存在于Update报文中;

        如果缺少这类属性,update报文不完整, 路由信息会出现错误;

        2、公认任意
        Atomic_aggregate
        Next_hop

        所有BGP设备认识此类属性

        这类属性不要求必须存在于Update报文中(可以在,也可以不在);

        如果缺少这类属性,路由信息不会出现错误;

1.2、可选属性

        可选属性不需要都被BGP路由器所识别

        1、可选过渡:BGP设备不识别此类属性依然会接受该类属性并通告给其他对等体
        MED
        Cluster-List
        Originator-ID

        所有BGP设备可以认识,也可以不认识此类属性;

        如果不认识,但仍然会接收此类属性,并且会通告给邻居;

        2、可选非过渡:BGP设备不识别此类属性会忽略该属性,且不会通告给其他对等体
        Aggregator
        Community

        所有BGP设备都可以认识,也可以不认识此类属性(可以认识,也可以不认识);

        如果不认识,会忽略此类属性,而且不会通告邻居。

二、选路原则

        IGP选路在AS内选路,BGP选路是在宏观AS层面选出口。

        当到达同一个目的网段存在多条路由时,BGP通过如下的次序进行路由优选:

0、丢弃不可达

        丢弃下一跳不可达的路由。

取值越大越优

1、Preferred-Value

        优选Preferred-Value(权重)属性值最大的路由,默认为0。     

        本地设备,只影响自己,也就是说,如果想要来自某邻居的路由被优选,就在本地设备上把邻居的权重增大,是一个入向策略。

bgp 200
    ##修改对等体3.3.3.3发布的路由权重为12
    ##在接收路由设备上配置
    peer 3.3.3.3 preferred-Value 1
给某些路由设置属性值
第一步:抓路由
##将10.0.45.0 24抓出来
ip ip-pretix l permit 10.0.45.0 24

第二步:写策略
route-policy fromR3 permit node 10
    ##如果匹配ip-prefix 1,应用preferred-value 1并执行permit
    if-match ip-prefix 1
    apply preferred-value 1
##默认其他拒绝,则允许所有
route-policy fromR3 permit node 100

第三步:调用
bgp 200
    ##入方向上对对等体3.3.3.3运行策略fromR3
    peer 3.3.3.3 route-policy fromR3 import

2、Local_Preference

        优选Local_Preference属性值最大的路由,默认为100。

        仅限AS内,即IBGP内有效,只发给IBGP邻居。

        决定流量从哪个边界(ASBR)出本AS。

        为ASBR设计冗余减轻负担使用。

        如上图,R1会分别收到来自R2的BGP路由10.0.45.0/24+172.16.45.0/24和来自R3的BGP路由10.0.45.0/24+172.16.45.0/24

##R3
bgp 200
    ##修改R3的本地优先属性值为130
    default local-preference 130

       在R3设置完本地优先后,R2上来自R4的BGP路由10.0.45.0/24+72.16.45.0/24,因为EBGP没有Local_Preference,所以默认为100,而此时来自R3的10.0.45.0/24+172.16.45.0/24的本地优先属性为130,所以R2优选了来自R3的路由,也就是说此时在R2上10.0.45.0/24+172.16.45.0/24的下一跳为3.3.3.3,优选了R3的路由后就不会传递给R1了,因为II不传。那下一跳为24.1.1.4的EBGP路由会发送给R1么?不会!因为BGP只发最佳路径。所以R1上看不到来自R2的BGP路由。10.0.45.0/24+72.16.45.0/24。

        如果想让R2还给R1发布10.0.45.0/24+172.16.45.0/24的路由,可以将下一跳为24.1.1.4的EBGP路由Preferred-Value属性增大变为优选路由。

##R3
给某些路由设置属性值
第一步:抓路由
##将10.0.45.0 24抓出来
ip ip-pretix l permit 10.0.45.0 24

第二步:写策略
route-policy toR1 permit node 10
    ##如果匹配ip-prefix 1,应用local-preference 130并执行permit
    if-match ip-prefix 1
    apply local-preference 130
##默认其他拒绝,则允许所有
route-policy toRl permit node 100

第三步:调用
bgp 200
    ##出方向上对对等体1.1.1.1运行策略fromR3
    peer 1.1.1.1 route-policy toR1 export

取值越小越优

3、路由优先级

        本地始发的BGP路由优于从其他对等体学习到的路由,本地始发的路由优先级:优选手动聚合>自动聚合>network>import>从对等体学到的。

        本地设备,只影响自己。


        手动聚合:R2中的BGP路由如上,对10.0.44.0/24和10.0.45.0/24进行聚合

##R2
bgp 200
    aggregate 10.0.0.0 16

        如上图,可以发现聚合后的路由下一跳为127.0.0.1为本地环回地址,代表聚合路由,并且明细路由仍然有效,并发送至邻居。如果觉得不需要发送,配置如下:

##R2
bgp 200
    ##加上detail-suppressed就不会给邻居发明细路由,只发聚合路由
    aggregate 10.0.0.0 16 detail-suppressed

        自动聚合:一般不用

        因为自动聚合只能按照A类/8、B类/16、C类/24聚合,范围太大

ip route-static 10.0.45.0 255.295.255.128 null0
ip route-static 10.0.45.128 255.255.255.128 null0
bgp 200
##自动聚合
    summary automatic
    import-route static

4、AS_Path

        优选AS_Path属性值最短的路由。

        记录前往目标网络的路由经过的AS号列表

        作用:防环

        注意:

  1. 只在发给EBGP邻居时添加新AS号信息,IBGP邻居之间传递不变。
  2. 修改AS_Path时只能在EBGP邻居之间改。

        使用Route-Policy修改BGP路由的AS_Path属性时,可以使用以下三种方式:

        增加AS:为避免增加AS导致路由不可达,建议增加本AS

        AS_Path:100—>apply as-path 100 additive—>AS_Path:100 100

        替换AS:有可能导致环路

        AS_Path:300 200 100—>apply as-path 400 overwrite—>AS_Path:400

        清空AS:有可能导致环路        

        AS_Path:300 200 100—>apply as-path none overwrite—>AS_Path:

第一步:抓路由
ip ip-prefix 172 index 10 permit 172.16.45.0 24
第二步:写策略
route-policy fromR4 permit node 10
    if-match ip-prefix 172
    apply as-path 100 additive
route-policy fromR4 permit node 100
第三步:调用
bgp 200
    peer 24.1.1.4 route-policy fromR4 import

5、Origin

        优选Origin起源属性最优的路由。Origin属性值按优先级从高到低的排列是:IGP、EGP及Incomplete。

起源名称        标记描述
IGPi如果路由是由始发的BGP路由器使用network命令注入到BGP的,那么该
BGP路由的Origin属性为IGP
EGPe如果路由是通过EGP学习到的,那么该BGP路由的Origin属性为EGP
Incomplete?如果路由是通过其他方式学习到的,则Origin属性为Incomplete(不完整
的)。例如通过import-route命令引入到BGP的路由

6、MED

        优选MED(开销)属性值最小的路由;

        设计MED的目的:建议邻居AS(跨AS无法影响)的选路,并不是决定AS的选路;

        对于始发者,MED可以传给所有邻居保持不变;

        对于接收者,MED只能传给IBGP邻居不变,传递给EBGP邻居时为空;

        在ASBR配置策略,作为MED始发起作用;

        来自相同AS的路由才会比较MED。

第一步:抓路由
ip ip-prefix 172 index 10 permit 172.16.45.0 24
第二步:写策略
route-policy fromR4 permit node 10
    if-match ip-prefix 172
    apply cost 4
route-policy fromR4 permit node 100
第三步:调用
bgp 200
    peer 24.1.1.2 route-policy fromR4 export

7、路由来源

        优选从EBGP对等体学来的路由(EBGP路由优先级高于IBGP路由)。

8、Next_Hop的IGP度量值

        优选到Next_Hop的IGP度量值最小的路由。

        到达比较第8条时,前7条都一样,按照第7条,那么两条路由要么都是IBGP,要么都是EBGP,IBGP比内部开销,EBGP因为都是直连开销一般为0,无法对比出结果。

BGP路由等价负载分担:以上8条属性全部相同时可以形成路由负载分担

BGP路由等价负载分担(ECMP)
        在大型网络中,到达同一目的地通常会存在多条有效BGP路由,设备只会优选一条最优的BGP路由,将该路由加载到路由表中使用,这一特点往往会造成很多流量负载不均衡的情况。
        通过配置BGP负载分担,可以使得设备同时将多条等代价的BGP路由加载到路由表,实现流量负载均衡,减少网络拥塞。
        值得注意的是,尽管配置了BGP负载分担,设备依然只会在多条到达同一目的地的BGP路由中优选一条路由,并只将这条路由通告给其他对等体。
        在设备上使能BGP负载分担功能后,只有满足条件的多条BGP路由才会成为等价路由,进行负载分担。

        形成BGP路由等价负载分担的条件

  1. Preferred-Value属性值相同。
  2. Local_Preference属性值相同。
  3. 都是聚合路由或者非聚合路由。
  4. AS_Path属性长度相同。
  5. Origin类型(IGP、EGP、Incomplete)相同。
  6. MED属性值相同。
  7. 都是EBGP路由或都是IBGP路由。
  8. AS内部IGP的Metric相同。
  9. AS_Path属性完全相同。
bgp 200
    maximum load-balancing ibgp 2
    ##忽略AS号不一致
    load-balancing as-path-ignore

9、Cluster_List

        优选Cluster_List最短的路由;

        簇ID列表,类似水印。

        R2发送给R1的路由,经过R1反射给R3时除了添加Originator_ID之外还会添加Cluster_List:10.0.1.1。R3再次反射给R4时,Cluster_List值为:10.0.3.3 10.0.1.1,R4再次反射给R1时Cluster_List值:10.0.4.4 10.0.3.3 10.0.1.1。
        当R4将路由反射给R1时,R1发现Cluster_List包含了自身Cluster_ID,判断存在环路,从而忽略该路由更新。

10、Router ID(Orginator_ID)

        优选Router ID(Orginator_ID)最小的设备通告的路由。

        9、10条跟反射器有关。

        Originator_ID:发起者ID;

        将R1的router-id写在R2发给R1的路由条目中,反射器R2收到后将router-id改写为OID属性:2.2.2.2,且反射给R3时OID仍为2.2.2.2,R3收到后与自己router-id比较,一致丢弃,不一致传递。当同一AS内有多个RR,OID由第一个RR为路由条目写上OID。        

11、IP地址

        优选具有最小IP地址的对等体通告的路由。

  • 20
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

网运少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值