BGP(边界网关协议)border gateway protocol报文及属性

BGP(边界网关协议)(border gateway protocol)
基础:

                           ↗AS内IGP    ISIS    RIP    OSPF
1、作用范围AS

                          ↘AS外EGP    BGP
2、算法:DV   增强型距离矢量算法(链路状态有全网的拓扑信息,但是距离矢量没有拓扑信息)可以说是路由选择的一个工具

选择最佳路由和控制路由的传播

ospf封装在ip上去传输    rip封装在UDP上进行传播

支持CIDR    增量更新
3、工作层:应用层:port=179

        协议:TCP
4、防环机制

EBGP:AS-path不接收带有本段id的路由    不接受带有本地AS号的路由器

IBGP:水平分割—→FULL Mesh    在AS内学到的路由不在通告给AS内的BGP邻居

        反射器、联盟

路由策略丰富

防止路有震荡

易于扩展(PLV)

每个自治系统都有唯一标识的自治系统编号,有IANA分配的

编号范围:1到65535        其中64512到65535是私网的

EBGP:外部BGP运行在同一个AS范围内(一般用物理接口)

IBGP:内部BGP运行在不同的AS之间(一般用网络接口)

基本前提,必须保证底层是通行的        直连    IBGP    静态

报文:

    open报文    创建邻居关系(版本号,本段AS号,本段r-id,死亡时间)

BGP(边界网关协议)border gateway protocol报文及属性

    update报文  用来更新路由信息–增量    路由信息,路径属性(可以撤销也可以宣告可达的路由信息)

BGP(边界网关协议)border gateway protocol报文及属性

    keepalive报文  保持邻居关系,在建立邻居关系时确认收到了对方的open

BGP(边界网关协议)border gateway protocol报文及属性

    notification报文  用来中断BGP邻居关系(错误代码、子代码)

        1、消息头错误    (1、连接非同步    2、错误的消息长度    3、错误的消息类型)

        2、open消息错误   ( 1、不支持的版本号    2、错误的对等体AS号        3、错误的BGP ID    4、不支持的可选参数        5、认证失败    6、不可接受的保持时间)

        3、update消息错误   ( 1、畸形的属性列表    2、无法识别的公认属性        3、缺少的工人属性    4、属性标志位错误        5、属性长度错误    6、无效的ORIGIN属性        7、AS路由环路    8、无效的下一条属性        9、可选属性的错误    10、无效的网络字段    11、畸形的AS_PATH)

        4、保持时间超时

        5、状态机错误

        6、终止  

BGP(边界网关协议)border gateway protocol报文及属性

    router-refresh  用来通知对方我本台路由器的路由刷新能力,在邻居策略发生了变动,会通过refresh去请求对方重新发送update

BGP(边界网关协议)border gateway protocol报文及属性

六种状态机制:            形成条件                            停留原因

1、idle                        只要配BGP peer                 没有路由,没TCP报文发出

2、connect                 有路由,有TCP发出           没有收到TCP的回应/本段路由出错

                                (路由不一定是正确的)       对方没有回程路由/对方没有开启BGP

3、active                      只要收到对方的TCP         BGP配置出错,本端,对端AS号

                                回应(路由一定是正确的)    对端IP配错···dis bgp error

4、opensent            收到正确的TCP发open          没有收到对方的OPEN

5、openconfirm            收到对方的open                没有收到对方的keepalive

                                        发Keepalive    

6、established            收到对方的keepalive

BGP(边界网关协议)border gateway protocol报文及属性

BGP(边界网关协议)border gateway protocol报文及属性

BGP(边界网关协议)border gateway protocol报文及属性

BGP(边界网关协议)border gateway protocol报文及属性

BGP(边界网关协议)border gateway protocol报文及属性

BGP(边界网关协议)border gateway protocol报文及属性

BGP工作原理—对等体之间的交互原则

IBPG路由,只发布给EBGP对等体

EBGP路由,发布给所有的EBGP和IBGP对等体

只将最优路由发布给对等体

只发送更新的BGP路由

所有对等体发送的路由,BGP设备都会接收

IBGP 全互联    联盟    路由反射器

BGP同步

IBGP路由加入路由表并发布给EBGP对等体之前,会先检查IGP路由表,只有IGP也知道这条IBGP路由时,他才会被加入到路由表中,并发布到EBGP对等体
路径的途经之一:1、network(掩码严格匹配)  

                             2、 import

IP路由表    BGP路由表       邻居表    ADJ-RIB-IN    ADJ-RIB-OUT

公认必遵:所有的BGP路由器都可以识别,且必须存在于update消息中

    如果缺少这种属性,路由信息就会出错
公认任意:所有的BGP路由器都可以识别,但是不要求必须在update消息中

    如果缺少了这种属性,路由信息也不会出错
可选过渡:在AS之间具有可传递性

    BGP路由器可以选择是否在update消息中携带这种属性,接收的路由器如果不识别这种属性,可以转发给邻居路由器,邻居路由器看我是否会识别并使用到这种属性
可选非过渡:BGP路由器可以选择是否在update消息中携带这种属性。如果接收的BGP路由器不支持此属性,则相应的这类属性会被忽略,且避讳传递给其他的路由器

常见的BGP路由属性:

1、origin–起源        

2、AS_PATH列表(有序)    

3、Next hop(下一跳)      

4、MED(类似于cost)   

5、Local-preference(本地优先级)            

6、ATomic-Aggregate(自动聚合)    

7、Aggregator(手动聚合–无类)      

8、Community(团体)    

9、Originator-ID(集群内起源ID)                

10、Cluster-List(集群列表)            

11、MP_Reach_NLRI    

12、MP_Unreach_NLRI    

13、Extened_Communities

123为公认必遵            56公认任意            78可选过渡            4 9 10 可选非过渡

1、ORIGIN:属性用来定义路径信息的来源:该属性为公认必遵(i>e>?)(访问距离范围最近的)

IGP:通过路由始发AS的IGP得到的路由信息(通过network命令注入的路由)标识符为“i”

EGP:通过EGP得到的路由信息标识符为“e”

INCOMOELETE:通过其他方式学习到的路由信息(通过import命令注入路由)标识符为“?”

BGP(边界网关协议)border gateway protocol报文及属性

BGP(边界网关协议)border gateway protocol报文及属性 BGP(边界网关协议)border gateway protocol报文及属性BGP(边界网关协议)border gateway protocol报文及属性

 acl 2000

ru per sou 100.1.1.1 0

route-policy 1 per no 10

if-maech acl 2000

apply origin egp /igp/in  321

peer x.x.x.x route-policy 1 export /import

这里有两种情况,network进去的时候还是原来的AS号,但是import进入的时候是按照自己修改的

2、AS_Path属性按矢量顺序记录某条路由从本地到目的地址所要经过的所有的AS编号,该属性为公认必遵(只有出去的时候才会打)

acl 2000

ru per sou 100.1.1.1 0

roure-policy 1 per no 10

if-match acl 2000

apply as-path 10 20 30/none additive/overwrite

import -route direct route-policy 1 export

BGP(边界网关协议)border gateway protocol报文及属性

BGP(边界网关协议)border gateway protocol报文及属性

BGP(边界网关协议)border gateway protocol报文及属性

 none直接为空        additive添加        overwrite覆盖
3、Next_hop属性记录里了路由的下一跳信息,该属性为公认必遵

BGP Speaker在向EBGP对等体发布某条路由时,会把该路由信息的下一跳属性设置为本地与对端建立BGP邻居关系的接口地址。

BGP(边界网关协议)border gateway protocol报文及属性

BGP(边界网关协议)border gateway protocol报文及属性

BGP Speaker将本地始发路由发布给IBGP对等体时,会把该路由信息的下一跳属性设置为本地与对端建立BGP邻居关系的接口地址。

BGP(边界网关协议)border gateway protocol报文及属性

BGP(边界网关协议)border gateway protocol报文及属性

 BGP Speaker在向IBGP对等体发布从EBGP对等体学来的路由时,并不改变该路由信息的下一跳属性

peer x.x.x.x next-hop-local

BGP(边界网关协议)border gateway protocol报文及属性

BGP(边界网关协议)border gateway protocol报文及属性

BGP(边界网关协议)border gateway protocol报文及属性 将学习到EBGP的路由下一跳属性变更为自己建立邻居关系的接口地址。

如果IBGP EBGP内部收到两条等价路由,EBGP默认选择下一跳R-ID小的为优-如果R-ID相同优选建立邻居关系IP小的,但如果变更了底层IGP的选路优先级后,则遵循IGP的优选顺序,用IGP的下一跳影响IBGP的下一跳

总结:NEXT-HOP属性≈IGP内部的优选协议开销

当收到了两条等价路由:一条从EBGP收到、一条从IBGP收——优选EBGP的路由

4、pref val  — 华为私有

只影响本地台路由器  不在BGP范围内传播  —BGP speaker 在向Pref属性表明本地路由器的iBGP优先级,用于判断流量离开AS时的最佳路由,该属性为公认任意(比大)默认为0

(只在本台路由器上传递)

acl 2000

ru per sou 100.1.1.1 0

route-policy 1 per no 10

if-match acl 2000

apply preferred-value

bgp 1

improt-route direct route-policy 1

BGP(边界网关协议)border gateway protocol报文及属性

 5、local-pre:本地优先级  — 公认任意

(仅在IBGP内部生效 不通告给其他AS)

影响去往外部的路由优先级 常用在边界路由器上

Local_Pref属性用于判断流量离开AS时的最佳路由。当BGP路由器通过不同的IBGP邻居获得目的地址相同但下一跳不同的多条路由时,将优先选择Local_Pref属性值较高的路由,其默认值为100

修改:BGP进程里

default local-preference

//修改路由器的

acl 2000

ru per sou x.x.x.x x

route-policy xx per no 10

if acl 2000

apply local-pre 125

Route-policy xx permit no 20

6、MED属性相当于IGP的代价值,用于判断进入AS时的最佳路由,即用来影响邻居AS流量进入本AS的最佳路径,该属性为可选非过渡(比小)Default med                                                                 

配置修改:

acl 2000

ru per sou x.x.x.x x

route-policy xx per no 10

if acl 2000

apply cost 123

peer x.x.x.x route-policy xx export/import

***影响全部路由:

peer x.x.x.x  med x

主要用于影响EBGP学到的路由,或通告给对端的路由,类似IGP协议里的开销

peer x.x.x.x route-policy xx export

影响IBGP内部收到的路由优先级,并且为出方向

BGP(边界网关协议)border gateway protocol报文及属性

6、MED属性相当于IGP的代价值,用于判断进入AS时的最佳路由,即用来影响邻居AS流量进入本AS的最佳路径,该属性为可选非过渡(比小)默认为0

Default med                                                                 

配置修改:

acl 2000

ru per sou x.x.x.x x

route-policy xx per no 10

if acl 2000

apply cost 123

peer x.x.x.x route-policy xx export/import

***影响全部路由:

peer x.x.x.x  med x

主要用于影响EBGP学到的路由,或通告给对端的路由,类似IGP协议里的开销

BGP(边界网关协议)border gateway protocol报文及属性

7.聚合属性:   

atomatic-aggregate 属于公认任意     —- 自动聚合        —有类网段

 aggregator           属于可选过渡    —   手动聚合(无序的)

 用于提示做了汇总路由的始发AS和始发路由器。

8、团体属性:用于标识既具有相同特征的BGP路由,该属性为可选过渡

团体是一组由相同性质的目的地址路由。目的就是将路由信息编组,通过组的标识决定路由传递的策略。tag

携带团体属性的配置:

所有需要传递团体名的邻居  都需要配置

peer x.x.x.x advertise-community

//声明我与我的BGP邻居传递团体属性

internet     — 都可以收到路由 (传播时既会传给EBGP邻居也会传给IBGP邻居)

no-export   —  只可以在联盟内的IBGP和EBGP邻居进行传播,不会传播给联盟外的EBGP邻居

no-export-subconfed   — 只可以传播到联盟内,并且在联盟内的IBGP传播 ,但不会在联盟内进行EBGP的传播,也不会在联盟外进行EBGP传播

no-advertise   — 只可以传播到联盟内属性,但不会在联盟内的IBGP\EBGP传播,也不会在联盟外进行EBGP的传播

BGP路由的团体属性的主要作用是为了简化路由策略的实现过程

    保留的    0X00000000–0X0000FFFF

        0XFFFF0000–0XFFFFFFFF   

Internet:(0x00000000 )缺省属性,所有路由都属于Internet,此属性的路由可以通告给所有BGP邻居;

    共有的    NO_EXPORT(0XFFFFFF01)路由器收到了带有这一团体值得路由后,不应该把该路由通告给一个联盟之外的一个对等体(本AS传递)(不会通告给真正的EBGP邻居)

        NO_ADVERISE(0XFFFFFF02)路由器收到带有这一团体的路由后,不应该把路由通告给任何的BGP对等体

        NO_EXPOPT_STBCONFED(0XFFFFFF03)路由器收到带有这一团体值得路由后,可以把该路由通告给它的IBGP对等体,但不通告给任何的EBGP对等体(包括联盟内的EBGP对等体,本小AS传递)

    自定义    AS(2B):Nunmber(2B)

团体属性配置:

router-policy comm permit node 10

  apply community no-export

bgp 100

  peer 10.1.12.1 route-policy comm import  //对10.1.12.1传进的路由打上no-export community标签

dis bgp routing-table 11.1.2.0      //查看路由的属性

******community属性在华为设备中需要手动配置才能传递。

bgp 100

  peer 44.1.1.1  advertise-community   //配置通告给44.1.1.1团体属性

BGP选路原则:当到达同一目的存在多条路由时,BGP采用如下策论进行路由的选择(display ip routing-table +路由id)

    1、如果此路由的下一跳不可达,忽略此路由

    2、优选协议首选值(prefval)最高的路由    首选值默认为0,越大越优先(peer 路由器id preferred-value +数值)可以加策略

    3、优选本地优先级最高的路由    缺省情况下默认为100    但是可以修改他的优先级。(default local-preference +数值)(比大)本地AS(可以加策略)

    4、优选本地生成的路由        network   import    聚合

        1、优选聚合路由(聚合路由优先级高于非聚合路由)    2、通过aggregate命令生成的手动聚合路由的优先级高于通过summary automatic命令生成的自动聚合路由    3、通过network命令引入的路由的优先级高于import-route命令引入的路由

    5、优选(AS_path)AS最短的路由(越短越优先)(忽略AS_PATH的作用bestroutr as-path-ignore)

    6、比较origin属性,依次优选origin类型为IGP、EGP、Incomplete的路由     i>e>?

    7、优选MED值最低的路由    默认值0    AS内   或者是相邻的AS中   越小越优先   (apply cost 100)引入协议值为med值

    8、优选从EBGP邻居学来的路由(EBGP路由优先级高于IBGP路由)

    9、优选到BGP下一跳IGP Metric较小的路由

    当以上全部相同,则为等价路由,可以负载分担。注:AS_PATH必须一致,当负载分担时,一下3条选中原则无效(默认不负载)(开启命令maximu load-balancing (1-8))

    10、优选Cluster_list最短的路有

    11、优选Originator_ID或者Router ID最小的路由器发布的路由

 比较对等体的IP ADDRESS,优选从具有较小的IP ADDRESS的对等体学来的路由

本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/bd4d823310.html