计算机网络:BGP路由协议

BGP路由协议的概述

首先,再当前的互联网中,BGP是目前唯一支持的外部网关协议EGP的协议,用于自治系统AS之间传递路由信息,目前的版本为4。
在这里插入图片描述
从图中可以看出,BGP协议是连接自治系统AS的“桥梁”。

为什么需要BGP协议

原因:

  • 不同的自治系统的管理部门不同,路由策略不同,比如腾讯和华为的内部路由策略肯定是不同的,都属于机密。
  • AS之间的路由不用强调最优路径,更强调的是路由控制和路由策略。

内部网关协议IGP和外部网关协议EGP的对比

IGPEGP
IGP更加关注如何学习最优路径,如何去提高路由收敛的速度,有明确的算法支持EGP关注如何将认为控制策略应用到EGP上,强调控制的灵活性和协调性,无明确的算法。

BGP的特性

我们知道,BGP是唯一支持EGP的协议,而IGP有RIP和OSPF协议支持。BGP协议如此厉害能撑起EGP的一片天必定是有着它不可替代的特性。

特性:

  • 不考虑路由控制和策略的情况下,使用的是距离矢量算法(DV算法),默认以自治系统AS为单位计算代价,即到达网络最优路径是经过AS最少的。
  • 使用的是TCP作为传输层,端口号是179.
  • 支持CIDR技术。
  • 路由信息中可以携带丰富的路由属性,提供丰富的路由控制机制和路由策略
  • 路由更新机制:只发送增量路由,非周期更新
  • 不支持负载均衡,只选择最优路径。

BGP发言人

处于自治系统的,用于和其他自治系统沟通的路由器。相当于和其他自治系统的“桥梁”。

  • BGP发言人也称作AS网关路由器,位于AS的边界。
  • 既运行IGP又运行BGP

在这里插入图片描述

BGP的邻居关系

  • 两个BGP路由器只要能建立TCP连接就是邻居
  • BGP邻居由管理员手动配置,无法自己寻找。
  • BGP邻居分为在同个自治系统的IBGP邻居和不在同个自治系统的EBGP邻居

在这里插入图片描述

中转AS中的IBGP问题

从IBGP学习到的路由是否需要通告给其他IBGP邻居?

  • 如果通告可能出现路由环路。
  • 如果不通告再部分互联的IBGP中会使得路由更新失效。

例如下图,BE不是IBGP邻居,但是B不把信息告诉E,F也无法获得路由信息。
在这里插入图片描述
解决方法:
IBGP的水平分割原则

  • 默认BGP认为BGP网络是全互联的,从IBGP邻居活得的路由不同高给其他IBGP邻居

BGP路由器的通告原则

  • 路由信息只会通告给邻居,不会泛洪。
  • 从EBGP得到的路由会立刻向所有EBGP邻居和IBGP邻居通告。
  • 从IBGP得到的路由不通告给其他IBGP邻居,在全互联的AS下通告给EBGP邻居。

在这里插入图片描述

BGP四种报文

  • OPEN报文:用来与相邻的另一个BGP发言人建立关系
  • UPDATE报文:用来发送某一路由的信息,以及列出要撤销的多条路由
  • KEEPALIVE报文:用来确认打开报文周期性地证实邻站关系
  • NOTIFICATION报文:用来发送检测到的差错

在这里插入图片描述

BGP属性:AS-Path

AS-Path属性记录BGP路由所经过的自治系统号,当某个BGP路由器收到一条包含自己所在自治系统的BGP路由时会丢弃该路由,从而避免环路

在这里插入图片描述

BGP属性:MED

Multi-Exit-DISC
当路由器有多条选择的时候,设置MED的值,来决定下一步往哪走。
在这里插入图片描述

BGP属性:Stub AS 和主干选择策略

  • 若某个AS只承载源地址或目的地址为本AS的通信流,称该AS为Stub AS.
  • 可以使用BGP其他属性定义stub AS,若图中W,X,Y为stub AS,B无法通过X到达C和Y.
  • A,B,C为主干ISP,可以定制BGP属性策略,使得C访问W时不能经过B

这里只是粗糙得解释了一下BGP,BGP是一个复杂的体系,内部属性极多。

posted @ 2021-05-22 11:45  Zeker62  阅读(308)  评论(0编辑  收藏  举报