一、BGP路由协议的原理: 

 BGP协议概述 



 1.BGP是外部路由协议,用来在AS之间传递路由信息 

 2.是一种增强的距离矢量路由协议 

         2.1 可靠的路由更新机制 

         2.2  丰富的Metric度量方法 

         2.3  从设计上避免了环路的发生 



 3.为路由附带属)性信息 

 4.支持CIDR(无类别域间选路) 

 5.丰富的路由过滤和路由策略 





 二、BGP可靠的路由更新 



 1、传送协议:TCP,端口号179 

 2、无需周期性更新 

 3、周期性发送Keepalive报文效TCP的连通性 

 4、路由更新:只发送增量路由 



 三、自治系统(Autonomous System) 



 3.1什么是自治系统(AS)? 

 3.2为什么引入自治系统这一概念? 

 3.3 自治系统内部的路由协议------IGP 

 3.4自治系统之间的路由协议----EGP 





 四、路由传递 





 五、BGP两种邻居---IBGP和EBGP 





 六、BGP路由通告原则 

 6.1   多条路径时,BGP Speaker只选最优的给自己使用 

 6.2  BGP Speaker只把自己使用的路由通告给对等体 

 6.3  BGP Speaker从EBGP获得的路由会向它所有BGP对等体通告(包括EBGP和IBGP) 

 6.4  连接一建立,BGP Speaker将自己所有BGP路由通告给新对等体。 



 七、BGP路由通告原则 



 1.注入直连路由 

 2.BGP Speaker 从IBGP获取的路由不会通告给它的IBGP邻居。 

    在IBGP对等相互通告路由的过程中,BGP属性不会做任何改变。那么,AS内部的路由环路问题应如何避免? 

 3.BGP Speaker 从IBGP获取的路由信息是否通告给它的EBGP对等体要依IGP和BGP同步的情况来决定 

 4.IBGP全连接 

 4.1  所有IBGP对等体物理意义的全连接 

 4.2 所有IBGP对等体逻辑意义的全连接 



 5.成为BGP路由的途径之一:纯动态注入 

 6.成为BGP路由的途径之二:半动态注入 

 7.成为BGP路由和途径之三:静态注入 



 七、BGP报文种类: 



 1.bgp报文种类: 

        1.1  Open:打招呼“你好,跟我交个朋友吧!” 

        1.2  KeepAlive:我还活着呢,别不理我 

        1.3 Update:有新闻....... 

        1.4 Notification:我不跟你玩了! 





 2.BGP报文头 



 BGP报文的格式是一样的,都是:”报文头+报文体的”格式,下面给出的是BGP报文头: 

   





 3.Open报文: 

 Open报文是由报文头加如下结构构成的。 

   





 4.KeepAlive  报文: 

 KeepAlive报文只有报文头。 

   





 5.Update报文由报文头加如下结构构成: 

   





 6.Notification报文由报文头加如下结构构成。 

   







 7.BGP协议的状态机: 

   





 8、BGP协议中消息的应用: 

 8.1 通过TCP建立BGP连接时,发送open消息 

 8.2连接建立后,如果有路由需要发送或路由变化时,发送UPDATE消息通告对端路由信息 

 8.3稳定后此时要定时发送KEEPALIVE 消息以保持BGP连接的有效性 

 8.4当本地BGP在动行中发现错误时,要发送NOTIFICATION消息通告BGP对端 





   

 一、BGP的路由属性 

 1.表达了路由的特征 

 2.过渡和非过渡的 

 3.必遵和可选的 

 4.便于扩展 

 5.截至目前共16种属性 





 二、常见BGP路由属性 



 1、Origin  

 2、AS-PATH 

 3、next hop 

 4、med 

 5、LOCAL-PREFERENCE 

 6、ATOMIC-AGGREGATE 

 7、AGGREGATOR 

 8、COMMUNITY 

 9、ORIGINATOR-ID 

 10、CLUSTERR-LIST 

 11、Destination PREF(MCI) 

 12、ADVERTISER(BAYNET) 

 13、RCID-PATH(BAYNET) 

 14、MP_REACH_NLRI 

 15、MP_UNREACH_NLRI 

 16、EXTENDED_Communities 





 一.起源(Origin)属性 

 1.一般的,具体的实现按如下方式决定一条路由的Origin属性 

 1.1 某条路由是直接而具体的注入到BGP路由表中的,则origin属性为IGP 

 1.2 路由是通过EGP得到的,则origin属性为EGP 

 1.3 其它情形下,Origin属性都为incomplete 



 二、AS路径: 

   







   



 预先规划AS-PATH 

   





 三、下一跳(NEXT HOP)属性 

   





 四、本地优先级属性(Local-preference) 

   





 五、MED(MULTI-Exit-DISC) 

   



 案例: 

   







 六、团体(Community)属性 

 6.1团体是一组有相同性质的目的地的路由,一个团体不限于一个网络或一个自治系统,这没有物理边界。公认的团体: 

     no-export: 不通告给联盟/AS外的BGP对等体 

     no-advertise:不通告给任何BGP对等体 

     local-AS:不通告给任何BGP对等体 

     Internet:通告给所有其它路由器 





 BGP路由选择过程: 

 综合起来,本地BGP路由选择的过程为: 

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

 2.选择本地优先级较大的路由 

 3.选择本地路由器始发的路由(本地优先级相同) 

 4.选择AS路径较短的路由 

 5.依次选择起点类型为IGP,EGP,Incomplete类型的路由 

 6.先择MED较小的路由 

 7.选择RouterID较小的路由