BGP的基础理论知识

转载网址:https://blog.csdn.net/Enoch_Liu/article/details/106491303

BGP(边界网关协议,属于传输层协议),可用于同AS(自治系统)之间的内部动态路由协议,成为IBGP,也可用在不同AS之间,称为EBGP
 

一、BGP的特点:

    BGP是一种EGP(外部网关协议),与OSPF、RIP等IGP(内部网关协议)不同,不能去发现、计算路由,只能控制路由传播和选择最佳路由
    BGP使用TCP作为传输层协议(端口号179),提高协议可靠性
    BGP是一种距离矢量协议,采用到目的地址所经过的AS列表来衡量到目的地址距离
    BGP支持CIDR(无类别域间路由)
    路由更新时,只发布更新路由,减少了BGP传播所占带宽
    BGP通过携带AS路径信息彻底解决路由环路问题
    BGP提供策略路由,能对路由实现灵活的过滤和选择
    BGP易于扩展,能适应网络新的发展
    
二、BGP的消息类型

    Open:TCP连接建立后发送的第一个消息,用于BGP对等体之间建立会话
    Updata:用于对等体之间交换路由信息,一条Updata可以发布具有相同路径属性的多条可达路由,也可以同时撤销多条不可达路由
    Keepalive:BGP周期性向对等体发送Keepalive消息,保持会话有效性
    Route-refresh:用来要求对等体重新发送指定地址簇的路由信息
    Notification:当BGP检测到错误状态,就向对等体发出Notification消息,之后BGP会话会立即中断
    
三、BGP的路由属性
    1.源
        源属性定义信息来源,有三种

            IGP:优先级最高,表示路由产生于AS内
            EGP:优先级次之,表示路由通过EGP学到 
            Incomplete:优先级最低,表示路由来源无法确定。比如其他路由协议引入的路由信息
            
    2.AS路径(AS_PATH)
        AS_PATH属性记录了某条路由从本地到目的地址所要经过的所有AS号,当BGP路由器将一条路由通告到其他AS中,会把本地号添加在AS_PATH列表中。收到的路由的BGP路由根据AS_PATH属性就可以知道达到目的地址所要经过的AS
        AS_PATH属性有以下两种:

            AS_SEQUENCE:AS号按照一定的顺序排列,离本地AS最近的相邻AS号排在前面,其他AS号按顺序依次排列
            AS_SET:AS号只是经过的AS的简单罗列,没有顺序要求
        AS_PATH属性的用途:

            避免环路形成:缺省下,如果BGP路由器接收到路由的AS_PATH属性中已包含了本地AS,则会认为出现环路,拒绝该路由
            影响路由的选择:其他因素相同下,BGP优先选择路径短的路由
            对路由过滤:配置AS路径过滤表,可以针对AS_PATH属性中所包含的AS号来对路由进行过滤
    
    3.下一跳(NEXT_HOP)
        BGP的NEXT_HOP属性取值不一定是邻居路由器的IP,NEXT_HOP属性取值分为以下几种:
            BGP发言者对自己产生的路由发送给邻居,把该路由信息的NEXT_HOP属性设为自己对端连接的端口
            BGP发言者把接收的路由发送给EBGP对等体时,将该路由信息NEXT_HOP属性设为与自己对端连接的接口
            BGP发言者把从EBGP邻居得到的路由发送给IBGP邻居,并不会改变路由信息的NEXT_HOP属性。如果配置负载分担,等价路由被发送给IBGP邻居则会修改NEXT_HOP属性
    
    4.MED(多出口区分)
        MED属性仅在两个AS之间交换,收到此属性的AS不会再将其通告给其它AS
        MED属性相当于IGP使用的度量值,它用于判断流量进入AS时最佳路由,当一个BGP路由器通过不同的EBGP对等体得到目的地址相同但下一条不同的路由时,其它条件相同的情况下,将优先选择MED值最小的作为最佳路由
    
    5.本地优先(LOCAL_PREF)
        LOCAL_PREF仅在IBGP对等体之间交换,不通告给其他AS,它表明BGP路由器的优先级.
        LOCAL_PREF属性用于判断流量离开AS时的最佳路由,当BGP路由器通过不同的IBGP对等体得到目的的地址相同但下一跳不同的多条路由时,将优先选择LOCAL_PREF属性较高的路由
   
    6.团体(COMMUNITY)
        BGP将相同特征路由归一起称一个团体,在路由中携带团体属性标识路由所属团体。团体没有物理边界,不同AS能属于一个团体
        公认团体属性:

        INTERNET:缺省下,所有的路由都属于INTERNET团体,有此属性的路由可以被通告给所有的BGP对等体
        NO_EXPORT:有此属性的路由收到后,不能被发布到本地AS之外,如果使用联盟,则不能被发布到联盟外,可以发布给联盟中其他AS
        NO_ADVERTISE:有此属性的路由被接收后,不能被通告给任何其他的BGP对等体
        NO_EXPORT_SUBCONFED:此属性的路由被接收后,不能被发布到本地AS之外,不能被发布到联盟中的其他子AS
    
    7.扩展团体属性
        扩展团体属性与团体属性的不同点:

            扩展团体属性为八字节,提供更多的属性值
            扩展团体属性可划分类型
        设备支持拓展团体属性有*** Target属性和SoO属性。
        SoO属性有三种格式:

            16位自治系统号:32位用户自定义数
            32位IP地址:16位用户自定义数
            32位自治系统号:16位用户自定义数字,其自定义系统号最小值为65536
    
    
四、BGP的选路规则:

    丢弃下一跳不可达的路由
    优先首选值最大的路由
    优先选择本地优先级最高路由
    优先选择network命令产生的路由,import-route命令引入的路由、聚合路由
    优先选择AS路径最短路由
    依次选择ORIGIN类型IGP、EGP、Incomplete的路由
    优先选择MED值最低的路由
    优先选择EBGP、联盟EBGP、联盟IBGP、IBGP学来的路由
    优先选择下一跳Cost值最低的路由
    优先选择CLUSTER_LIST长度最短的路由
    优先选择ORIGINATOR_ID最小的路由
    优先选择Router ID最小的路由器发布的路由
    优先选择IP地址最小的对等体发布的路由

五、BGP发布路由策略

    存在多条有效路由时,BGP发言者只发最优的给对等体
    BGP发言者只会把自己使用的路由发布给对等体
    BGP发言者会将从EBGP获得的路由发布给所有BGP对等体
    BGP发言者会将从IBGP获得的路由发布给他的EBGP对等体
    会话建立,BGP发言者把满足条件的所有BGP路由发布给新对等体。此后BGP发言者只在路由发生变化,就会向对等体发布更新的路由

六、BGP负载分担
    BGP负载分担分为两种

        基于迭代路由实现负载分担
        通过改变BGP选路规则实现负载分担
————————————————
版权声明:本文为CSDN博主「刘以诺_lyn」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Enoch_Liu/article/details/106491303

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章