属性分类:

     ◆公认:公认强制:AS-PATH  ;next-hop  ;origin(如何被引进BGP内的)

           公认自由决定:local preference  ;  atomic aggregate汇总路由(原子聚合)


     ◆可选: 可选传递(如果不支持,原封不动传给邻居)

               aggregator(聚合者)用于标示汇总路由在哪被汇总的

               community (团体属性)

            可选非传递(若不支持,也不传给邻居) 

                med 唯一控制两个AS之间且不会影响其他AS的选路属性

                originator-ID 防环。防止传回起源路由器

                cluster-list  防环。RR时,防止传回起源cluster


     ◆ weight属性:

            cisco私有,优选高的。

            不发送给任何BGP邻居,仅本地有效


########################################################################################

选路

    BGP表中 通常 有很多到达同一目的地的路径

    BGP默认 不 负载均衡

        路径选择基于属性,并不是基于带宽等原因

    最佳路径提交到路由表管理进程,并与其它路由协议对比管理距离。


    路径决策过程:

     在没有同步问题,下一跳可达的情况下;

        0.5,

        1,更高的weight(本地路由器)

        2,更高local-preference(本AS)

        3,起源于自己的路由(下一跳=0.0.0.0)

        4,更短的as-path列表

        5,起源属性 IGP<EGP<incomplete

        6,更小的med

        7,EBGP优于IBGP

        8,选择最近的BGP邻居路由

        8.5, 

        9, 若果配置的maxinum-paty,会负载均衡

        10,对于EBGP,选择最老的路由

        11,更低的邻居IBGP的路由器ID

        12,更短的cluster-list

        13,更小的邻居IP


◆1,weight(cisco私有)

    - 优选最大的,范围0-65535,本地有效,控制本路由器

    - 从BGP邻居学到的路由weight=0;本地宣告、重分布和汇总的weight=32768

   修改方法:

        1,   neighbor x.x.x.x weight xxx (从x.x.x.x邻居学到的路由都增加xxx)

        2,   route-map test permit 10

                set weight xxx

             只能在本地入方向做

   实验;

CCIE学习笔记 2---BGP选路(属性值)_BGP

  R1,R2运行ospf

  R1,R2用loopback建立IBGP邻居

  R1-R3,R2-R3直连建立EBGP邻居

    R3:本地network3.1.1.1进bgp 

        R1 R2默认从R3学到

   方法1: R1:nei 13.1.1.3 wei 1

   方法2: ip prefix-list 3.1 permit 3.1.1.1/32

           route-map wei permit 10

             match ip address prefix-list 3.1

             set weight 2

           router bgp 100

             nei 13.1.1.3 route-map wei in

     

◆2,local-prefrence

    - 优选最大的

    - 只在ibgp之间传递(AS内),EBGP之间不传递,即不能再ebgp的出方向做

    - 从ebgp邻居学到和本地产生的bgp条目 local-preference=100,

    - 修改:

        1,可以通过 bgp default local-prefrence xxx 修改(只对EBGP传来的路由起作用)

        2,route-map loc permit 10

             set local-prefrence xxx

           不能再ebgp邻居出方向做

    - local-preference默认是100

        sho ip bgp 中看到空,空=100

        sho ip bgp x.x.x.x 看明细可见local-preference

实验:

CCIE学习笔记 2---BGP选路(属性值)_BGP

R1-R2 sho ip bgp 学到R3的路由都是从R2-R1 且能看到两条

  R1:

     ip prefix-list 3.1 permit 3.1.1.1/32

     route-map pre permit 10

        match ip add prefix-list 3.1

        set local-pre 101

     route-map pre permit 1000

     router bgp 100

         nei 13.1.1.3 route-map pre in

     sho ip bgp 显示学到3.1.1.1从R3学到,且只能看到一条,

        因为R1从R3学到的local-preference=101,然后传给R2。R2学到3.1.1.1从R1的local=101,从R3的local=100,所以R2学到3.1.1.1显示从R1学到,所以不会再传回给R1,即R1只有一条从R3学到的


##########################################################################################

3,起源于本地路由器的路由

   优选从本地始发的路由(包括本地network配置的重分布,在IGP表中已经有一些需要被配置路由聚合的地址,在BGP中用aggregate-address命令配置的路由聚合)

注意:对于cisco IOS,如果从本地往BGP里注入一条路由,缺省weight=32768,由于这个weight值很大,会根据第一条选路原则成为最优。


实验:通过route-map 设置weigh=0 验证前两条无法选出最优,通过选择本地路由为最优。


###########################################################################################

4,AS-PATH

    - 除了用于选路,还可以防环(EBGP之间防环 )。

    - 前3条选不出最优时,优选AS-PATH 长度最短的条目

    注意:修改AS-PATH 只能在EBGP 邻居关系之间进行,IBGP邻居关系是不可以的

  修改方法:   

  ◆ 1,route-map。

        as-path 只可以在EBGP 邻居关系的out和in方向去修改

        - out 方向做:加在本来AS号的前=右边

        - In  方向做:加在本来AS号的后=左边

       CCIE学习笔记 2---BGP选路(属性值)_学习笔记_03

   注意:上图,AS200 宣告3.1.1.1后,R1 R2默认通过R3的路径为最优。修改AS时一定不能用100,因为自己本事也是100,bgp防环就会收了。最好不要使用现网中与其他AS相同的,最好使用BGP表中存在的AS,所以最好使用3.1.1.1的AS,即AS200。

        R1: ip prefix-list 3.1 permit 3.1.1.1/32

             route-map AS per 10

                match ip add prefix-list 3.1

                set as-path prepend 200 

             route-map AS per 1000

             router bpg 100

                nei 13.1.1.3 route-map AS in

             clear ip bgp * soft

             sho ip bgp 


    ◆方法2

            last-as 表示在离开这个路由器 最近的AS号,重复增加次数

                route-map xx permit 10

                    match ip add 1

                    set as-path  prepend last-as 数字(加多少次)

   注: 当上述两个方法同时配置时,哪个生效?

        set as-path prepend 200

        set as-path prepent last-as 2

      in/out 方向时,as-path prepend和last-as,都是last-as先生效,然后as-path prepend才生效


      - 聚合 聚合后的路由包含多个AS{} 内的AS算几个?  一个

      - 联邦 联邦内()内的小AS算几个?   一个也不算

      - neighgor xxx remove-private-AS 删除私有AS号,起源于本AS无效,在出方向做


   ◆ 如何跳过 as-path 选路原则

        bgp bestpath as-path ignor

##########################################################################################


5,起源代码 origin

    - 通过前4条不能选出最优,优选最低起源类型的BGP路由

    - 最低起源类型顺序 IGP 优于 EGP 优于 incomplete,其中EGP方式现在不用了

    - 通过network,aggregate方式产生的BGP路由的起源属性是 i 。

    - 通过重分布产生的BGP路由的起源属性是 incomplete


  ◆5.1:

       i ----- igp //network x.x.x.x mask x.x.x.x

       e ----- egp //不用了

       ?----- 重分布

  ◆5.2:

        origin在EBGP/EBGP的in/out方向都可以做

            route-map xx permit 10

                match ip add prefix-list 1

                set origin incomlete (?)

##########################################################################################


6,MED

   用途:       在两个AS之间,有多个BGP连接的情况下。MED用于影响从相邻AS到本AS的路由选择,即用于影响邻居AS到本AS的路由从哪个接口进来,这是通过向相邻EBGP邻居发送具有不同MED值的路由条目来实现的。但是需要注意的是:选路过程的实现是相邻AS的路由器自身根据13条选路原则独立完成,MED值的比较是前5条无法选出最优时才起作用。


CCIE学习笔记 2---BGP选路(属性值)_学习笔记_03

实验:R3上设置3.1.1.1的路由,空着R1 R2到达R3的选路

    R3:ip prefix-list 3.1 permit 3.1.1.1/32

        ip route-map med-r1 per 10

            match ip add pre 3.1

            set metric 150

        ip route-map med-r1 permit 1000

        ip route-map med-r2 per 10

            match ip add pre 3.1

            set metric 200

        ip route-map med-r2 per 1000

        router bgp 200

            nei 13.1.1.1 route-map med-r1 out

            nei 23.1.1.2 route-map med-r2 out

        clear ip bgp * soft

     R1 R2:

        sho ip bgp


MED的生成:

    1,本地network方式生成的BGP条目,会带上IGP的metric,(同时也会带上路由的下一跳,开启汇总后会被取消)会传给所有邻居。

    2,如果从EBGP邻居学习到的BGP条目的metric值传递给其他IBGP邻居,但不穿给EBGP。

            -------- 以上表示MED 只传递一次EBGP邻居 --------

    3,若从IBGP邻居学习到一条BGP路由的metric=0或其他值,缺省不会传给EBGP邻居,显示为空

    4,汇总方式产生的BGP条目,metric为空

    5,重分布方式生成的BGP条目,metric为IGP的cost、metric、hop如果开启自动汇总会被清除

    6,缺省情况下,空metric视为 0 。


优选最小MED值的路由(范围0-4294967295)

    A,只有在通过两条路径得到第一个AS是同一个AS时才进行MED比较;任何子自治域的联盟系统都会被忽略,即从不同联邦AS学到的路由都会比较MED.

    B,如果路由器配置了 bgp always-compare-med,在全部的路径进行MED比较。但是这需要全体AS都同时启用这个功能

    C,如果路由器配置了 bgp bestpath med confed,将对所有仅包括AS_CONFED_SEQUENCE的路径进行比较MED。默认不比较 

    D,若果接收到的路径没有分配MED,则将此路径分配0,除非 路由器配置了bgp bestpath med missing-as-worst,将被看做MED值为4294967295的路由将在注入到路由表之前改为4294967294


bgp deterministic-med

是指把路由过来的MED值进行分组

    同一个AS的分同一组

    其他AS的分一组

    先比较同一个AS的med值,在和其他AS的med值比较路由器那个最小的router-ID   


###########################################################################################

7、EBGP > IBGP

    与EBGP的AD小于IBGP的AD无关

    EBGP>联盟EBGP>EBGP

###########################################################################################

8、最近的BGP邻居

    指的去往BGP邻居用的IGP路由的metric值

    对EBGP,IBGP邻居都生效


EBGP和IBGP选路的最后一条

###########################################################################################

9、配置了maxinum-path [IBGP],存在多条等价的路径,会负载均衡

    其实这不算是选了的原则,是指当前面的8条选不出最优时,在BGP的进程下配置了maxinum-path命令后,会产生负载均衡‘

        router bgp 3

            maximum-path ?

            <1-6>number of path

            ibgp Ibgp-multipath


    非等价负载均衡----bgp dmzlink-bw // 先进程启用

        neighbor x.x.x.x dmzlink-bw  // 再对邻居启用

###########################################################################################

EBGP之间选路的最后一条,之后11-13都只针对IBGP


10、对于EBGP。优选存在时间最长的路由

      bgp bestpath compare-routerid //跳过第10条选路,从11条选(最小router-ID)


    - 优选最老的路由(最先被学习的路由)

        1,次步骤可以将路由摆动的影响减到最小,因为新接收到的路径不会取代老的,即使这条新接收的路径是通过下面提及到的额外路径选择标准来进行选择的。这使得只在IBGP路径下应额外的选择步骤更有意义。

        2,次步骤可以被bgp bestpath compare_routerid跳过

        3,如果路由器标志是一样的,此步骤可以被跳过,因为这说明命路由器正在从自己那里路由

        4,如果当前没有最优路由,此步骤可以被跳过,当提供摸个路径的路由器宕机,就会发送丢失


##########################################################################################

11,lowest router-ID

    优选最小的 IBGP 的rotuer-ID

  - 在有RR的情况下 不比较router-ID,比较起源ID,起始者标示将代替router-ID在选路中的作用,不会用到第11条选路原则,会用12,13条选路。

  - 一个路由器从多个RR收到相同路由进行最优选择时,第11条选路用的router-ID将被更为originator-ID(此ID即使本AS学得路由的第一跳路由器的router-ID,是RR的一个client),而不是RR的router-ID,因此如果BGP路由只是从一个ASBR学校到然后传入AS内部,将不会用的第11条,用12或13

   - 如果在同一时间学习到多条到同一目的地的路由,优选最小BGP-router-ID的路由,注意,如果一个路径包括路由反射器


RR的情况下不比较路由器的router-ID,而是originator-ID,即被反射的client的router-ID  

###########################################################################################

12,cluster list length

        多条路径的始发路由器ID相同,那么选择cluster-list短的

        因为每进经过一个RR,cluster-list会加上这个RR的clusterd-id

##########################################################################################

13, lowest neighbor IP address

    BGP优选来自最低的邻居地址的路径,是BGP的neighbor配置中的地址