BGP技术原理


BGP概述:

BGP(Border Gateway Protocol,边界网关协议)是一个距离矢量路由协议,和传统的基于下一跳的IGP协议不同,它是基于AS(自治系统)的协议。BGP属于外部网关路由协议,它解决的是AS之间的选路问题,因此,它更适合用于互联网。


image.png


BGP的特点:


image.png



BGP报文类型:


3.png



BGP状态和工作流程

  • Idle状态:BGP拒绝任何进入的连接请求,Idle状态是BGP的初始状态。
  • Connect状态:该状态下,BGP等待TCP连接的建立完成后在决定后续操作。
  • Active状态:该状态下,BGP将尝试进行TCP连接的建立,是BGP的中间状态。
  • OpenSent状态:该状态下,BGP等待对等体的Open报文,并对收到的Open报文中的AS号、版本号、Holdtime等进行检查。
  • OpenConfirm状态:在该状态下,BGP等待KeepAlive或Notification报文。
  • Established状态:在该状态下,BGP可以在对等体之间交换所有报文,也是BGP正常工作的状态。


image.png



BGP的路由属性

常见的几个BGP路由属性:


1. 源(ORIGIN)属性

ORIGIN属性定义了路由信息的来源,标记一条BGP路由是怎么生成的。它有以下三种类型:

  • IGP:优先级最高,表示路由产生于本AS内。标识符为“i”
  • EGP:优先级次之,表示路由通过EGP学到。标识符为“e”
  • Incomplete:优先级最低,表示路由的来源无法确定。标识符为“?”


2. AS路径(AS_PATH)属性

该属性按照矢量顺序记录某条路由从本地到目的地址要经过的所有AS编号,在接受路由时,设备如果发现AS-PATH列表中有本AS号,则不接收该路由,从而避免了AS间的路由环路。AS_PATH属性有以下两种类型:


image.png



3. 下一跳(NEXT_HOP)属性

BGP的NEXT_HOP属性取值不一定是邻居路由器的IP地址。NEXT_HOP属性取值情况分为几种:

  • BGP发言者把自己产生的路由发给所有邻居时,将该路由信息的NEXT_HOP属性设置为自己与对端连接的接口地址。
  • BGP发言者把接收到的路由发送给EBGP对等体时,将该路由信息的NEXT_HOP属性设置为自己与对端连接的接口地址。
  • BGP发言者把从EBGP邻居得到的路由发给IBGP邻居时,并不改变该路由信息的NEXT_HOP属性。


image.png


4. MED(Multi-Exit Discriminator,多出口区分)属性

MED属性仅在相邻两个AS之间交换,收到此属性的AS不会再将其通告给其它AS。MED属性相当于IGP使用的度量值(metrics),它用于判断流量进入AS时的最佳路由。当一个BGP路由器通过不同的EBGP对等体得到目的地址相同但下一跳不同的多条路由时,在其它条件相同的情况下,将优先选择MED值较小者作为最佳路由。


image.png


5. 本地优先(LOCAL_PREF)属性

LOCAL_PREF属性仅在IBGP对等体之间交换,不通告给其他AS。它表明BGP路由器的优先级。LOCAL_PREF属性用于判断流量离开AS时的最佳路由。当BGP路由器通过不同的IBGP对等体得到目的地址相同但下一跳不同的多条路由时,将优先选择LOCAL_PREF属性值较高的路由。


image.png



6. 团体(COMMUNITY)属性

BGP将具有相同特征的路由归为一组,称为一个团体,通过在路由中携带团体属性标识路由所属的团体。团体没有物理上的边界,不同AS的路由可以属于同一个团体。根据需要,一条路由可以携带一个或多个团体属性值。接收到该路由的路由器可以通过比较团体属性值对路由作出适当的处理(比如决定是否发布该路由、在什么范围发布等),而不需要匹配复杂的过滤规则(如ACL),从而简化路由策略的应用和降低维护管理的难度。


公认的团体属性有:

  • Internet:默认情况下,所有的路由都属于Internet团体。具有此属性的路由可以被通告给所有的BGP对等体。
  • No_Export:具有此属性的路由在收到后,不能被发布到本地AS之外。如果使用了联盟,则不能被发布到联盟之外,但可以发布给联盟中的其他子AS。
  • No_Advertise:具有此属性的路由被接收后,不能被通告给任何其他的BGP对等体。
  • No_Export_Subconfed:具有此属性的路由被接收后,不能被发布到本地AS之外,也不能发布到联盟中的其他子AS。

除了公认的团体属性外,用户还可以使用团体属性列表自定义团体属性,以便更为灵活地控制路由策略。


BGP的选路规则

BGP选择路由的过程为:

  1. 舍弃下一跳(NEXT_HOP)不可达的路由。
  2. 优先选首选值(Preferred-value)最大的路由。
  3. 优先选本地优先级(LOCAL_PREF)最高的路由。
  4. 优先选本地生成的路由。
  5. 优先选AS路径(AS_PATH)最短的路由。
  6. 依次选择Origin类型为IGP、EGP、Incomplete的路由。
  7. 优先选MED值最低的路由。
  8. 依次选择从EBGP邻居学来的路由。
  9. 优先选IGP Metric值最小的路由。
  10. 优先选Cluster_List长度最短的路由。
  11. 优先选Originator_ID或Router ID最小的路由器发布的路由。
  12. 优先选IP地址最小的对等体发布的路由。



服务热线
4008-059-095
服务时间
周一至周五 08:30-18:00
优力普公众号
优力普抖音号