HCIP8 BGP的基础;工作过程;

BGP --- 边界网关协议

AS --- 自治系统 --- 由单一机构或者组织所管理的一些列IP网络及其设备所构成的集合原因:1,范围大,需要划分;2,自治管理

AS号 --- 由16位二进制构成 --- 0 - 65535,其中0和65535保留,1 - 65534;其中 64512 - 65534被称为私有AS号 --- 目前也存在扩展版的AS号 --- 32位二进制构成

目前市场上针对IPV4环境使用的BGP协议版本为BGPV4,目前市场上也已经存在BGPV4 +(MP - BGP --- 可以支持多种地址族)协议。

AS之间不使用重发布获取路由信息的原因:1,选路不佳;2,ASBR设备的归属问题

BGP共享AS之间的路由信息的方式应该是直接传递路由信息而不是共享拓扑信息,因为 拓扑信息一方面更新量更大,其次将暴露本AS的拓扑情况,所以,传递路由信息更加合 理。

BGP被称为 --- 无类别的路径矢量型协议

无类别 --- 传递的路由信息携带子网掩码

路径矢量  距离矢量
一个AS为一跳       一个路由器为一跳
不是算法概念,仅将IGP协议算好的路由信息传递 出去,仅完成搬运工作。是一个算法的概念,用来计算到达未 知网段的路由信息

IGP --- 选路佳,收敛快,占用资源小

EGP协议的关注点:

1,可控性 --- AS之间需要传递大量的路由信息,所谓可控,就是可以方便的干涉 选路,更容易做策略。

BGP为了保证可控性,直接舍弃了开销值。取而代之的是BGP定义了很多路径属性

注意:BGP协议存在触发更新,但是,不存在周期更新,因为BGP需要更新的路由 信息量太大,周期更新太浪费资源。

2,可靠性 --- BGP协议为了保证可靠性,传输层直接选择使用TCP协议,使用179 号端口。

在IGP当中,没有使用TCP协议,主要是因为TCP协议传输效率较低,占用资源 较大,只能实现单播,不能自动发线邻居关系。而在BGP中,为了保证可靠 性,选择使用TCP。

在BGP中,是可以实现非直连建邻,BGP的非直连建邻是承载在IGP之上的。

AS内部 --- IBGP对等体关系 ---- 如果建立对等体的路由器位于相同的AS中, 则建立的是IBGP对等体关系

AS外部 --- EBGP对等体关系 --- 如果建立对等体的路由器位于不同的AS中, 则建立的是EBGP对等体关系

注意:为了保证EBGP对等体关系之间使用直连建邻,我们将他们之间传递的数据 报中TTL值设置为1,若EBGP对等体之间需要非直连建邻,则需要修改TTL 值。IBGP对等体之间,一般使用非直连建邻,所以TTL值设置为255。

 3,AS-BY-AS --- 将一个AS看作是一个单位。 --- bgp不支持负载均衡,如果到 达同一个目标网络存在多条路由信息时,则将只选择其中一条。

BGP的工作过程

1,BGP的数据包

在BGP中,因为使用TCP协议,需要建立点到点的连接,所以,无法通过组播或者广播来 自动发现邻居,只能手工指定邻居关系

Open报文 --- 主要完成BGP对等体关系的建立,协商参数。

AS号 --- 在创建邻居关系时,需要指定对等体设备所在的AS号,之后,将该参数 通过OPEN报文携带,对端收到后,将该参数和本地所在AS号进行比对,一致,则 可以正常建立对等体关系,不一致则对等体关系建立失败。

认证 --- BGP也可以做认证,则认证口令将成为邻居关系建立的核查条件。

Router ID --- 用于区分和标定不同的路由设备。OPEN报文中将携带本地的RID, 之后对等体将核查该参数,需要确保RID不冲突,则需要保证和本地的RID不一 致,一致则无法建立邻居关系。

BGP中的RID其生成方法和OSPF中的相同,可以手工配置,也可以自动生成。(自 动生成规则 --- 先在本地环回接口的IP地址中取最大的最为RID,如果本地没有环 回接口,则在所有物理接口的IP地址中取最大的作为RID。)

在指定邻居关系时,指定的IP地址作为后续的更新源IP,如果对等体发送的数据报 中的源IP地址和给定的地址不同,则也将影响邻居关系的建立。

Holdtime --- 保活时间 --- 周期保活的失效判定时间 --- 默认180S --- 如果在保 活时间内,没有收到Keeplive报文或者Update报文,则判定对方失效,将中断 BGP会话连接。 --- 双方在发送OPEN报文中都需要携带保活时间,这个时间可以 不同,但执行时必须相同,所以,如果双方的保活时间不同,则按照时间较短的执 行。

包括设备是否支持路由刷新功能,也需要在OPEN报文中进行协商。

Keeplive报文 --- 仅完成周期保活即可,周期发送时间为保活时间的1/3。默认为 60S。 --- 除了保活之外,keeplive报文在收到对方发送的open报文时,将临时充当确认包的作用。 --- BGP协议所有数据包传输的可靠性由TCP协议来保障,而此时的确 认,指的是确认对方OPEN报文中的参数,如果认可对方所携带的参数,则将发送 keeplive报文进行确认。

Update报文 --- 真正携带路由信息的数据报。主要携带目标网络号及掩码信息和路径属 性。 --- 在UPDATE报文中,存在一个撤销路由条目的参数,可以将失效的路由信息放 置其中,则对端将会删除失效的路由信息,而不需要带毒传输。

Notification报文 --- BGP协议设计的一个告警机制。 --- 在BGP协议运行的全过程中,如 果发生错误导致对等体关系断开,则设备将在断开之前,发送该报文来报告错误原因。

Route-refresh报文 --- 用于改变路由策略后请求对等体重新发送路由信息。改报文使用存在前置要求,即对等体双方路由设备必须都支持路由刷新功能。

2,BGP的状态机

BGP的状态机仅描述的是BGP对等体建立过程中的状态变化,而不包含数据收发过程。因 为BGP中建立邻居关系和收发数据可以分开完成。

IDLE --- 空闲状态 --- 所有设备启动BGP进城后将首先进入空闲状态。

当手工指定邻居关系后,将会进入到一个检查环节,需要检查手工指定的IP地址在本地 路由表中是否可达,只有可达,才可以正常建立TCP的会话,如果不可达,则邻居关系建 立失败,停留在IDLE状态。

如果检查成功,则将进入到Connect状态 --- 连接状态。 ---- 建立TCP会话连接的状 态。

(注意,对等体关系指定是双向的,双方都将发起TCP会话连接请求,最终将会建立两个 双向的TCP会话通道,只需要保留一个即可。所以,在之后发送的open报文中,将比较 其中的RID参数,RID大的设备发起的TCP会话连接将被保留,RID小的发起的连接将被关 闭。)

如果TCP会话连接失败,则将进入到Active状态 --- 尝试重新建立TCP会连接(多次失败 后,将超时,回退到空闲状态,如果成功,则进入到opensent状态。)

如果TCP会话连接成功,则将直接进入到opensent状态 --- 发送open报文来协商参数, 建立对等体关系。同时,也将收到对方发来的open报文,则将查看其中的参数,如果参 数没问题,则将发送keeplive报文进行确认。则将进入到openconfirm状态。 --- 等待 对方发送keeplive报文,确认本地参数。

如果,收到对方发送的keeplive报文,则代表双方open报文中的参数协商完成,则邻居关 系建立成功,将进入到最终状态 --- Established状态。 

 3,BGP的工作过程

1,基于IGP实现IP可达

2,指定邻居关系,邻居之间单播传输,通过三次握手,建立TCP会话通道。BGP之后所 有的通信都将基于TCP会话通道来传输。包括提供传输的可靠性。

3,使用OPEN报文和Keeplive报文进行邻居关系的建立。OPEN报文用来携带建邻使用 的参数,keeplive报文用于参数的确认。最终完成对等体关系的建立。生成邻居表。

4,使用update报文来共享路由信息。信息中将携带目标网络号,掩码及路径属性;之 后,将发送以及收集到的路由信息记录在一张表中 --- BGP表。

5,之后,将BGP表中最优的路由信息(通过路由属性选择的结果)加载到路由表中。

6,收敛完成后,将使用keeplive报文进行周期保活,默认的保活时间为180S,发送周 期为60S。

7,如果出现错误,将使用notification报文进行告警。

8,若出现结构突变,则将使用update报进行触发更新。

4,BGP的路由黑洞问题

 由于BGP协议可以非直连建邻,所以导致BGP协议可能出现跨越未运行BGP协议的设 备,导致BGP路由传递后,控制层面显示可达,但是,数据层面,流量流经未运行BGP协 议的设备时,无法通过,形成路由黑洞。

解决方案

1,让未运行BGP协议的设备运行BGP协议 --- 问题,所有设备都需要运行BGP则 都将承载大量的路由信息,造成设备成本增加。

2,在IGP协议中,重发布BGP协议的路由信息

3,MPLS

为了避免路由黑洞的情况,BGP提出了同步机制 --- 即当一台路由器从自己的 IBGP对等体处学到一条BGP路由时,他将不能将该路由通告给自己的EBGP对等体 关系。除非,他从自己IGP协议中也学习到这条路由信息。 --- 华为设备默认关闭

5,BGP的防环问题

BGP使用的防环手段 --- 水平分割机制

EBGP的水平分割 --- 针对EBGP对等体之间可能出现的环路问题所提供的解决方案 AS_PATH --- 专门记录AS路径信息的一个属性。

所谓EBGP的水平分割,主要用于防止EBGP环境下的环路问题 --- BGP协议在路由 条目中将经过的AS号进行记录,生成一个属性 --- AS_PATH(记载所有经过的AS 的AS号),之后,在接收到的路由条目中的AS_PATH属性中,如果存在本地的AS 号,则将拒绝学习该路由信息,防止路由回传,形成环路。 --- AS_PATH属性也 可以用于选路,其可以反应经过AS的数量。

IBGP的水平分割 --- 针对IBGP对等体之间可能出现的环路问题所提供的解决方案

注意:因为BGP的AS-BY-AS的特性,要求其将一个AS看作是一个整体,所以,在默认情况 下,AS内部传递的路由信息的路径属性是不会发生变化的。 所以,IBGP水平分割的做法是 --- 要求当路由器从一个IBGP对等体出学习到某条BGP路 由时,他将不再把这条路由信息通告给其他的IBGP对等体。 

因为IBGP水平分割的限制,导致在IBGP对等体内部,BGP的路由信息只能传递一次,这 样将会造成通信障碍。

可以通过建立全联的IBGP对等体关系来解决通信障碍。 --- 1,资源占用将变大;2,将 降低网络的可拓展性。

1,路由反射器;2,联邦 --- 专门用来解决IBGP水平分割机制造成的通信障碍。 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值