下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

关于边界网关协议BGP的解析

作者:课课家教育     来源: http://www.kokojia.com点击数:1094发布时间: 2019-02-27 15:41:23

标签: 网络安全Internet协议路由协议BGP

软考,您想通过吗?一次通过才是硬道理

      在之前的路由协议当中我们也有粗略地讲了一下BGP,但在那篇文中我并没有详细的展开来讲,主要是因为那篇文是介绍几种路由协议的,因此知识和其他的几种路由协议放在一起来简单地说了一下。但其实BGP还有挺多的内容没有讲到,因此我就在这里把它拿出来单独解析一下,以便大家更容易解读BGP。

      BGP系统结构解析

      BGP用于在不同的自治系统(AS)之间交换路由信息。当两个AS需要交换路由信息时,每个AS都必须指定一个运行BGP的节点,来代表AS与其他的AS交换路自信息。这个节点可以是一个主机。通常是路由器来执行BGP。两个AS中利用BGP交换信息的路由器也被称为边界网关(Border Gateway) 或边界路由器(Border Router)。

 关于边界网关协议BGP的解析_网络安全_Internet协议_路由协议_BGP_课课家

  BGP系统与其他BGP系统之间交换网络可到达信息。这些信息包括数据到达这些网络所必须经过的自治系统AS中的所有路径。这些信息足以构造一幅自治系统连接图。然后,可以根据连接图删除选路环,制订选路策略。

  首先,我们将一个自治系统中的IP数据报分成本地流量和通过流量。在自治系统中,本地流量是起始或终止于该自治系统的流量。也就是说,其信源IP地址或信宿IP地址所指定的主机位于该自治系统中。其他的流量则称为通过流量。在Internet中使用BGP的一个目的就是减少通过流量。

  可以将自治系统分为以下几种类型:

  1)残桩自治系统(stubAS),它与其他自治系统只有单个连接。stubAS只有本地流量。

  2)多接口自治系统(multihomedAS),它与其他自治系统有多个连接,但拒绝传送通过流量。

  3)转送自治系统(transitAS),它与其他自治系统有多个连接,在一些策略准则之下,它可以传送本地流量和通过流量。

  这样,可以将Internet的总拓扑结构看成是由一些残桩自治系统、多接口自治系统以及转送自治系统的任意互连。残桩自治系统和多接口自治系统不需要使用BGP——它们通过运行EGP在自治系统之间交换可到达信息。

  BGP的特点

  BGP属于外部或域间路由协议。BGP的主要目标是为处于不同AS中的路由器之间进行路由信息通信提供保障。BGP既不是纯粹的矢量距离协议,也不是纯粹的链路状态协议,通常被称为通路向量路由协议。这是医为BGP在发布到一个目的网络的可达性的同时,包含了在IP分组到达吕的网络过程中所必须经过的AS的列表。通路向量信息是十分有用的,因为只要简单地查找一下BGP路由更新的AS编号就能有效地避免环路的出现。

  BGP对网络拓扑结构没有限制,其特点包括:

  (1) 实现自治系统闰通信,传播网络的可达信息。

  (2) 多个BGP路由器之间的协调。

  (3) BGP支持基于策略的选路(policy-base routing) 。

  (4) 可靠的传输。BGP路由信息的传输采用了可靠的TCP协议。

  (5) 路径信息。

  (6) 增量更新。

  (7) BGP支持无类型编制(CIDR)及VLSM方式。

  (8) 路由聚集。

  (9) BGP还允许接收方对报文进行鉴别和认证,以验证发送方的身份。

  BGP路由通告原则

  BGP在进行路由通告的时候,需要遵循以下原则:

  (1)多条路径时,BGP Speaker只选最优的给自己使用(负载均衡和FRR除外)。

  (2)BGP Speaker只把自己使用的路由(最优路由)通告给相邻体。

  (3)BGP Speaker从EBGP获得的路由会向自己所有BGP相邻体通告(包括EBGP和IBGP)。

  (4)BGP Speaker从IBGP获得的路由不向自己的IBGP相邻体通告(反射器除外)。

  (5)BGP Speaker从IBGP获得的路由是否通告给自己的EBGP相邻体要根据IGP和BGP同步的情况来决定。

  (6)当收到对端的refresh报文并且本端邻居支持refresh能力,BGP Speaker将把自己所 有BGP路由通告给对等体。

  (7)GR过程中,主备倒换方在GR结束时BGP Speaker会把自己所有BGP路由通告给对等体。

  BGP消息类型及状态转换

  BGP使用如下四种消息类型:

  Open消息:Open消息是TCP连接建立后发送的第一个消息,用于建立BGP对等体之间的连接关系。

  Keepalive消息:BGP会周期性地向对等体发出Keepalive消息,用来保持连接的有效性。

  Update消息:Update消息用于在对等体之间交换路由信息。它既可以发布可达路由信息,也可以撤销不可达路由信息。

  Notification消息:当BGP检测到错误状态时,就向对等体发出Notification消息,之后BGP连接会立即中断。

  BGP邻居建立中的状态和过程如下:

  (1)空闲(Idle):为初始状态,当协议激活后开始初始化,复位计时器,并发起第一个TCP连接,并开始倾听远程对等体所发起的连接,同时转向Connect状态。。

  (2)连接(Connect):开始TCP连接并等待TCP连接成功的消息。如果TCP连接成功,则进入OpenSent状态;如果TCP连接失败,进入Active状态。

  (3)行动(Active):BGP总是试图建立TCP连接,若连接计时器超时,则退回到Connect状态,TCP连接成功就转为Open sent状态。

  (4)OPEN发送(Open sent):TCP连接已建立,自己已发送第一个OPEN报文,等待接收对方的Open报文,并对报文进行检查,若发现错误则发送Notification消息报文并退回到Idle状态。若检查无误则发送Keepalive消息报文,Keepalive计时器开始计时,并转为Open confirm状态。

  (5)OPEN证实(Open confirm):BGP等待Keepalive报文,同时复位保持计时器。如果收到了Keepalive报文,就转为Established状态,邻居关系协商完成。如果系统收到一条更新或Keepalive消息,它将重新启动保持计时器;如果收到Notification消息,BGP就退回到空闲状态。

  (6)已建立(Established):即建立了邻居(对等体)关系,路由器将和邻居交换Update报文,同时复位保持计时器。

  BGP与其他路由协议的区别

  BGP与RIP和OSPF的不同之处在于BGP使用TCP作为其传输层协议。两个运行BGP的系统之间建立一条TCP连接,然后交换整个BGP路由表。从这个时候开始,在路由表发生变化时,再发送更新信号。

  BGP是一个距离向量协议,但是与(通告到目的地址跳数的)RIP不同的是,BGP列举了到每个目的地址的路由(自治系统到达目的地址的序列号)。这样就排除了一些距离向量协议的问题。采用16bit数字表示自治系统标识。

  BGP通过定期发送keepalive报文给其邻站来检测TCP连接对端的链路或主机失败。两个报文之间的时间间隔建议值为30秒。应用层的keepalive报文与TCP的keepalive选项是独立的。

      BGP属于外部网关路由协议,可以实现自治系统间无环路的域间路由;它也是沟通Internet广域网的主要路由协议,比如例如不同省份、不同国家之间的路由大多要依靠BGP协议,对于Internet广域网有着重要的意义与作用。

      关于BGP协议的几个要点我都在以上一一列出来讲解了,不知道对大家的学习是否有些许帮助呢?如果有什么内容没有讲到的,欢迎大家进行补充,课课家教育期待大家的加入哟。

赞(0)
踩(0)
分享到:
推荐查看
华为认证网络工程师 HCIE直播课视频教程