BGP的认识

BGP外部网关协议

BGP是一种实现自治系统AS之间的路由可达,并选择最佳路由的距离矢量路由协议。

目录

BGP外部网关协议

自治系统AS

AS号

BGP的特点

BGP的分类

BGP工作原理

五种报文

六个状态机

对等体交互原则

扫描二维码关注公众号,回复: 12598405 查看本文章

BGP路径属性

BGP路径选择

路径选择的原则

路径选择方法


自治系统AS

自治系统AS是指同一个技术管理机构管理、使用统一选路策略的一些路由的集合。

AS号

BGP网络中的每一个AS都被分配一个唯一的AS号,用于区分不同的AS。AS号分为2字节AS号和4字节AS号,其中2字节的AS号的范围是1 ~ 65535,其中1 ~ 64511是互联网上注册公有AS号,类似公网IP地址;64512 ~ 65535是私有AS号,类似私网地址。IANA(互联网数字分配机构)负责AS号的分发。

BGP的特点

  1. BGP能承载大批量的路由信息,能够支撑大规模网络。
  2. BGP使用过TCP作为其传输层协议(端口号179),提高可靠性。
  3. BGP是外部路由协议,用来在AS之间传递数据,对稳定性要求非常高,因此TCP协议的可靠性保证了BGP的稳定性。
  4. BGP的对等体之间必须逻辑上连通,并进行TCP连接,目的端口179,本地端口任意。
  5. BGP对等体和IGP对等体不同,BGP对等体(peer)是指使用TCP建立连接的两端,而非与IGP同概念的直连邻居,只需要TCP能建立连接,不一定必须是直连。
  6. BGP本身只是负责控制路由,数据转发依然依靠静态或IGP路由。
  7. BGP支持无类别域间路由CIDR。
  8. 路由更新时,BGP只发送更新的路由,大大减少了BGP传播路由所占用的带宽,适用于在Internet上传播大量路由信息。
  9. BGP是一种增强的距离矢量路由协议,从设计上避免了环路的发生。
  10. AS之间:BGP通过携带AS Path信息标记途径的AS,带有本地AS号的路由将被丢弃,从而避免域间产生环路。
  11. AS内部:BGP在AS内学习到的路由不会通告给AS内的BGP邻居,避免AS内产生环路。
  12. BGP提供了丰富的路由策略,能够对路由实现灵活的过滤和选择。
  13. BGP提供了防止路由震荡的机制(路由衰减),有效提高了Internet网络的稳定性。
  14. BGP易于扩展,能够适应网络新的发展。主要通过TLV进行扩展。

BGP的分类

按运行方式分为EBGP和IBGP。

 EBGP:运行与不同AS之间的BGP称为EBGP。为了防止AS间产生环路,当BGP设备接收EBGP对等体发送的路由时,会将带有本地AS号的路由丢弃。

 IBGP:运行于同一AS内部的BGP称为IBGP。为了防止AS内部产生环路,BGP设备不将从IBGP对等体学习到的路由通告给其他IBGP对等体,并与所有IBGP对等体建立全连接。为了解决IBGP对等体的连接数量太多的问题,BGP设计了路由反射器和BGP联盟。

BGP工作原理

五种报文

 1.Open报文:是TCP建立连接发送的第一个报文

协商BGP对等体的各种参数,包括版本、AS号等信息,建立BGP对等体连接。

 2.Update报文:对等体之间交换路由信息。

连接建立后,有路由需要发送或路由变化时,发送Update报文通告对端可达或撤销路由信息及路径。

 3.Notification报文:用于中断BGP连接。

BGP发现错误时,发送报文通告BGP对端,随后与之相关的邻居将被关闭。

4. Keepalive报文:用于保持BGP连接。

定时发送keepalive报文以保持BGP对等体关系的有效化,响应正确的Open报文。

 5.Route-refresh报文:用于在改变路由策略后软复位BGP路由表请求对等体重新发送路由信息。只有支持路由刷新(Route-refresh)能力的BGP设备会发送和响应此报文。

六个状态机

  1. Idle状态
  2. Conenect状态
  3. Active状态
  4. OpenSent状态
  5. OpenConfirm状态
  6. Established状态

 

对等体交互原则

  1. 从对等体获得的BGP路由,BGP设备只传递给它的EBGP对等体
  2. 从EBGP对等体获得的BGP路由,BGP设备传递给他所有EBGP和IBGP对等体(对等体是IBGP只能传递一跳,对等体是EBGP则不限制)
  3. 当存在多条到达同一目的地址的有效路由时,BGP设备只将最优路由发布给对等体
  4. 路由更新时,BGP设备只发送更新的BGP路由
  5. 所有对等体发送的路由,BGP设备都会接收
  6. 所有IBGP对等体在传递下一跳不变
  7. 所有EBGP对等体在传递过程中下一跳改变
  8. 默认EBGP传递时,TTL值为1
  9. 默认IBGP传递时,TTL值为255

BGP路径属性

公认属性

 公认必遵:所有BGP设备都可以识别此类属性,且必须存在于Update报文中。

 公认自觉:所有BGP设备都可以识别此类属性,但不要求必须存在于Update报文中。

可选属性

 可选传递:BGP设备可以不识别此类属性,如果BGP设备不识别此类属性,但它仍然会接收这类属性,并通告给其他对等体。

 可选非传递:BGP设备可以不识别此类属性,如果BGP设备不识别此类属性,则会被忽略该属性,且不会通告给其他对等体。

BGP路径选择

路径选择的原则

  1. 若此路由下一跳不可达,忽略此路由
  2. Preferred_value值大的路由优选
  3. Local_preference值高的路由优先
  4. 聚合路由优先于非聚合路由
  5. 本地手动聚合路由的优先级高于本地自动聚合的路由
  6. 本地network命令引入的路由优先级高于本地通过import-route命令引入的路由
  7. As_path的长度最短的路径优先
  8. 比较origin属性,IGP优先于EGP,EGP优先于Incomplete
  9. 选择MED较小的路由
  10. EBGP路由优先与IBGP
  11. BGP优先选择到BGP下一跳的IGP度量值最低的路径
  12. 当以上全相同,则为等价路由,可负载分担(As_path必须一致,负载分担时,以下三条无效)
  13. 比较Cluster_List长度,短者优先
  14. 比较Originator_ID(如果没有,则比较Router-ID),选择小的路径
  15. 比较对等体的IP,选择较小的路径

路径选择方法

  1. 根据Local_preference控制选路(越大越优)
  2. 使用As_path属性控制选路(越少越优)
  3. 通过MED属性控制选路(越小越优)

猜你喜欢

转载自blog.csdn.net/Alen686/article/details/113667288
BGP
今日推荐