美文网首页
【HCIP】3BGP协议-2.5:BGP路由常用属性介绍1

【HCIP】3BGP协议-2.5:BGP路由常用属性介绍1

作者: 周山 | 来源:发表于2021-08-08 15:54 被阅读0次

    前期回顾

    上节我们主要讲解了BGP通告原则与路由处理

    BGP选路问题

    IGP协议中,rip是通过跳数,ospf和ISIS是通过开销值,
    那在BGP中如何进行选路呢?

    BGP环路问题

    如何进行防环是每个协议都要考虑的问题

    BGP路由属性

    大致可以分为公认属性和可选属性
    1、公认属性:所有运行BGP协议的路由器都能理解的属性
    *公认必遵:大家都知道并且必须满足,BGP的Update报文消息中必须包含的属性
    Origin(起源属性)
    AS Path
    Next hop
    *公认任意:大家都知道,但是需不需要可以根据需求自由选择,不必存在于Update报文中。
    Local Pref
    Atomic aggregate
    2、可选属性:厂家开发的某些满足特殊需求的属性,但是并不是所有路由器都理解的属性,私有属性。
    *可选过渡:BGP虽然不能识别该属性,但是我可以把它接受并传递下去发布给其他的邻居
    Aggregator
    Community
    *可选非过渡:BGP可以忽略包含该属性的消息并且不向它的邻居发布。
    MED

    Next hop特点

    默认情况下传给EBGP邻居的BGP路由的下一跳设置为自身向这个EBGP邻居发送BGP报文的源地址。
    默认情况下从EBGP邻居得到的BGP路由再传给IBGP邻居时,此BGP路由的下一跳默认不变,可以使用peer next-hop-local修改下一跳。
    默认情况下凡是自己产生的BGP路由在传给任何BGP邻居时,总是把此路由的下一跳设置为向BGP邻居发送BGP报文的源地址
    练习:以下如果都用环回口建立邻居关系,最后答案是多少?


    图片.png

    1.1.1.1
    2.2.2.2
    3.3.3.3
    同AS传递下一跳不变,不同AS之间传递下一跳需要改变。

    Origin起源属性

    图片.png

    Origin属性定义路径信息的来源,标记一条路由是怎么成为BGP路由的。

    图片.png

    我们可以看到BGP路由表中出现Ogn列,就代表起源属性
    BGP路由的起源属性有三种:
    1、i:表明BGP路由是由network命令发布的
    2、?:imconplete,不完全的,表明BGP路由是由import-route发布的
    3、e :表明BGP路由时从EGP协议引入的BGP协议目前已经全面退出网络了,但是我们可以通过路由策略将路由的起源属性进行修改为e,一般起源属性是一种选路属性,可以用于BGP路径的选路,通过修改起源属性可以控制BGP路径 。
    三种属性的优先级:i>e>?
    我们在R1上引入以下路由,

    [R1]ip route-static 192.168.1.0 24 NULL 0
    [R1]bgp 1
    [R1-bgp]import-route static 
    
    图片.png
    图片.png

    AS_PATH

    功能:
    1、选路,经过AS数量少的路径最优
    2、在AS之间实现BGP路由防环,从EBGP邻居得到路由时,检查该路由的AS_PATH属性,如果AS_PATH属性中携带该路由自身的AS号,则丢弃该路由。
    3、当BGP路由传递给EBGP邻居时,会将自己的AS号添加到ASpath的最前边。
    当BGP路由传递给IBGP邻居时,不会添加自己的AS号。
    4、AS_PATH可以被修改,华为在EBGP和IBGP邻居之间都可以被修改,思科只能在EBGP之间进行修改
    ps:AS内部是怎么进行防环的呢?
    IBGP的水平分割:通过IBGP获得的最优路由不会发布给其他的IBGP邻居
    我们继续在R1上进行如下配置

    [R1]route-policy aspath permit node 10
    [R1-route-policy]apply as-path 234 additive 
    [R1-route-policy]q
    [R1]bgp 1
    [R1-bgp]peer 10.1.12.2 route-policy aspath export 
    [R1-bgp]q
    

    我们在R1配置了一条234的AS path
    现在抓包看一下,
    使用命令将BGP路由手动触发更新

    <R1>refresh bgp all export 
    
    图片.png

    发现这条路由里已经添加了234的AS_PATH


    图片.png

    此时R2的路由都不接受R1传递的1.1.1.1了

    <R2>terminal monitor 
    <R2>terminal debugging 
    

    我们开启R2的debug模式
    然后在R1上进行BGp刷新
    <R1>refresh bgp all export

    <R2>

        Aug  8 2021 14:21:12.212.1-08:00 R2 RM/6/RMDEBUG:
         BGP.Public: 10.1.12.1 MSG ignored : Looping in ASPATH value, 
         while recv UPDATE .#这条消息被忽略,因为有looping环路
    
    Aug  8 2021 14:21:12.312.3-08:00 R2 RM/6/RMDEBUG:
    BGP.Public: Recv UPDATE from 10.1.12.1 with following destinations :
    
    Update message length : 58
    MP_reach  : AFI/SAFI  1/1 
    Origin    : Incomplete 
    AS Path   : 1 234 
    Next Hop  : 10.1.12.1 
    MED       : 0
    BGP.Public: Recv UPDATE(Withdraw) MSG from 10.1.12.1 with following destination
    s :
    
    192.168.1.0/24, 
    

    这表示路由器接收到了192.168.1.0路由来自10.1.12.1,它的AS path是 1 234

    我们在R2上进行如下命令,表示如果收到10.1.12.1发送来的EBG路由,携带AS号也接收

    [R2-bgp]peer 10.1.12.1 allow-as-loop 
    

    此时我们在查看BGP路由表


    图片.png

    总结:BGP公认必遵的三个属性的必要性,下一跳是一定要存在的,BGP不进行路由计算,只是被动的接受路由指令。起源属性是定义路径信息的来源,标记一条路由是如何成为BGP路由的,AS_PATH是EBGP路由防止环路的关键,也必须存在。

    Local Preference(本地优先级属性)

    图片.png

    该属性是属于公认任意的,local preference属性仅在IBGP邻居之间有效,不通告给其他AS,它表明路由器的 BGP优先级,用于判断流量离开AS时的最佳路由。默认值是100,越大越优先。
    我们把之前对AS_PATH做的策略去掉

    [R1]undo route-policy aspath 
    [R1-bgp]undo peer 10.1.12.2 route-policy aspath export 
    

    此时R1只是引入了一条192.168.1.0的静态路由,并发布BGP路由表中
    在R5上,我们也做同样的操作

    [R5]ip route-static 192.168.1.0 24 NULL 0
    [R5]bgp 5
    [R5-bgp]import-route static 
    

    此时我们来模拟,AS234访问192.168.1.0的路由会有两条路可以走,AS1和AS5
    ,它 们访问R3的路由优先级都是一样的
    但是我们查看R3的路由表,目前R3中192.168.1.0选路是通过R2走的,我们现在想改为通过R5,R4走,

    [R4]bgp 234
    [R4-bgp]default local-preference 200
    
    图片.png

    与此同时,R2也会收到R4传递的v路由,它此时会把之前通过R1得到的路由丢弃,但是此时并不会继续向R3进行路由转发,因为是IBGP邻居传递给他的路由,我们知道,通过IBGP邻居得到的路由不会继续转发给其他BGP邻居,进行IBGP之间的防环。
    实验:
    我们在之前的实验基础上再各自添加一条192.168.2.0 24的路由实现192.168.1.0通过R2访问,192.168.2.0通过R4访问,达到BGP通过公认任意属性选路的效果。
    先把R4的路由优先级取消,恢复默认

    [R4-bgp]undo default local-preference 
    

    R2

    [R2]ip ip-prefix 1 permit 192.168.1.0 24
    [R2-route-policy]if-match ip-prefix 1
    [R2-route-policy]apply local-preference 200
    [R2]route-policy local permit node 20
    [R2]bgp 234
    [R2-bgp]peer 10.1.12.1 route-policy local import 
    

    R4

    [R4]ip ip-prefix 1 permit 192.168.2.0 24
    [R4]route-policy local permit node 10
    [R4-route-policy]if-match ip-prefix 1
    [R4-route-policy]apply local-preference 200
    [R4-route-policy]q
    [R4]route-policy local permit node 20
    [R4-route-policy]q
    [R4]bgp 234
    [R4-bgp]peer 10.1.45.5 route-policy local import 
    
    图片.png

    我们从R3查看
    验证通过~!

    MED(BGP的多出口鉴别器)

    属于可选属性中的可选非传递属性,也称BGP的开销,越小越优先,属性仅在相邻的两个AS之间传递,收到此属性的AS不会再将其通告给任何其他第三方AS,用于判断流量进入AS时的最佳路由。
    华为设备通告MED属性的规则

    1、本地始发的路由MED值传递给所有邻居。

    我们继续在R2上进行实验

    [R2]ip route-static 172.168.2.0 24 NULL 0
    [R2-bgp]import-route static med 999
    

    查看


    图片.png

    2、从EBGP邻居得到的路由的MED不会传递给EBGP邻居,影响邻居AS的选路。

    (和第一条综合起来,就是MED只会影响始发路由器相关的AS邻居,不会影响第三方。

    3、从EBGP邻居得到的路由的MED可以传递给IBGP协议

    我们从R1将之前的引入静态路由设置MED‘为888,在R4上依然能够看到。


    图片.png

    4、从IBGP邻居得到的路由传递给EBGP邻居不携带MED


    图片.png

    5、从联盟EBGP邻居或者联盟内始发的路由的MED值在整个联盟中保持传递
    MED值在IBGP或者EBGP包括成员EBGP in和out方向都是可以修改的

    相关文章

      网友评论

          本文标题:【HCIP】3BGP协议-2.5:BGP路由常用属性介绍1

          本文链接:https://www.haomeiwen.com/subject/alcgvltx.html