HCIP第十一天(BGP协议)

目录

1、BGP协议(边界网关协议)

IGP和EGP的特点

2、BGP的数据包

1、OPEN包:建立邻居关系

2、keeplive包

3、Updata包(更新包)

4、Notification包

5、Route-refresh包

3、BGP的状态机

IDLE状态(空闲状态)

connect状态

OPENsent状态

OPENConfirm状态

Established状态

4、BGP的工作过程


1、BGP协议(边界网关协议)

内部网关协议(IGP),例RIP、OSPF。

外部网关协议(EGP),例BGP。

自治系统(AS),由单一的机构或组织所管理的一系列IP网络及设备所构成的集合。

划分AS自治系统的原因:

1、网络范围太大,协议跑步过来。

2、自治管理。

    为了便于对自治系统进行管理,我们给每一个自治系统设计了一个AS号。该AS号是由16位二进制构成,其取值范围为1 - 65535,0和65535为保留不可以被使用,可使用范围为1 - 65534,并且其中64512 - 65534被设定为私有AS号,剩下的为公有AS号。

    由于传统的AS号存在不够用的情况,所以目前大部分设备均支持拓展的AS号,是由32为二进制构成。

BGP协议目前在IPV4环境下为BGPV4,目前市场上也存在BGPV4+(在BGPV4基础上,可以支持多种地址族)

AS之间相互获取路由信息可以使用重发布,但是以重发布作为解决方案存在问题:

1、选路不佳(重发布在导入路由时会洗掉开销值)。

2、ASBR的归属问题。

BGP协议 --- 无类别的路径矢量协议

无类别:传递路由信息时携带子网掩码。

路径矢量:1、距离矢量中的距离指的是协议将一个路由器作为一跳来计算开销值。而路径矢量是以一个AS作为一个单位来传递信息的。2、距离矢量型协议的分发是根据算法来分的,但是BGP协议不存在算法的概念,因为BGP协议不需要去计算路由,只需要将现有的传递到自己的邻居处即可。

IGP和EGP的特点

IGP:选路佳,收敛快,占用资源少。

EGP:1、可控性:AS之间需要传递大量的路由信息,所谓可控,就是可以更方便的干涉选路,更容易做策略,来弥补重发布的不足。为了保证路由传递的可控性,更方便干涉选路,BGP协议舍弃了开销值,取而代之的时他为路由信息设计了很多路径属性。可以通过属性进行选路,使得选路过程更加灵活,可控性更高。

2、可靠性:BGP协议为了保证传输的可靠性,直接选择TCP协议作为传输层的协议来完成数据的收发,使用的是TCP的179号端口。

使用TCP协议通讯造成的问题是:

传输效率降低,只能实现单播通讯(TCP需要去建立会话),占用资源会加大使用TCP协议之后,就不能通过广播或者组播自动发现邻居进行通信了。

BGP协议:

BGP协议可以实现非直连建邻,非直连建邻的前提条件时邻居双方网络可达,BGP的非直连建邻是建立在IGP的基础上的。

可以根据邻居关系的建立情况,将BGP的邻居关系分为两种:

AS之间:EBGP对等体,如果建立对等体的两台路由器位于不同的AS中,则他们的关系被称为EBGP对等体关系。

AS内部:IBGP对等体,如果建立对等体的两台路由器位于同一个AS中,则条目的关系被称为IBGP对等体关系。

由于EBGP对等体之间一般采取直连建邻的方法,所以将EBGP对等体之间的数据包中的TTL值设置为1,而IBGP对等体之间往往需要非直连建邻,所以IBGP对等体之间的数据包中的TTL值设置为255。如果EBGP对等体之间需要非直连建邻,则需要手工修改TTL值。

2、BGP的数据包

OSPF中的hello包:周期发现,建立和保活邻居关系。

发现邻居的任务:在BGP中手工指定邻居关系来替代

建立邻居的任务:在BGP中由OPEN报文来承担

保活邻居的任务:在BGP中由Keeplive报文来承担

1、OPEN包:建立邻居关系

AS号:在手工建立邻居关系时声明的邻居的AS号。对端收到后会检查其是否和本地的AS号一致,一致则正常建立邻居关系。

认证:BGP也可以在建邻时做认证,需要比对双方认证口令,不一致则无法建立邻居关系。

Router-ID:主要区分和标定路由器/OPEN报文中携带RID的目的是为了确保双方的RID不一致,确保其唯一性,如果相同就无法建立邻居关系。

RID也是由32位二进制构成,并且遵循IP地址的格式。可以通过两种方法获取,手工配置和自动获取。

注意:在接受邻居数据包时,其中的源IP地址必须和手工指定的邻居的IP地址已知才可以正常建立邻居关系。(该地址将作为之后的更新源地址)

OPEN报文在建立邻居关系的时候也会携带保活时间(hold time)这个参数,该参数默认值为180S,即180S内若收不到对方发送的keeplive或者UPdate包则将判定BGP链接中断。--- 双方建邻时携带这个值,但是并不要求必须相同。但是,执行时必须相同,所以,将会选择二者中较小的作为执行时间。

OPEN报文中也会将自身是否支持路由刷新功能的相关参数进行携

带,双方进行协商,如果都支持,则可以开启路由刷新功能。

2、keeplive包

仅完成周期保活即可(保活TCP会话),不需要携带太多的参数,也不具备太多的功能。

keeplive报文的发送周期是保活时间的1/3,保活时间默认为180S,周期发送时间默认为60S。keeplive包还有一个作用:在收到对方发送到OPEN报文后,临时充当确认包的作用。(TCP本身具有确认机制,可以确保传输的可靠性,这里的确认主要是确认OPEN报文中携带的参数,如果认同对方的参数,则将回复Keeplive包进行确认。)

3、Updata包(更新包)

更新包中携带路由信息的数据包,包括目标网段和子网掩码信息以及BGP的各种属性。

在UPdate包中存在撤销路由字段,我们可以直接将不可达的路由

信息放在该字段下进行通告,以达到传递失效信息的目的。而不

需要像RIP那样采用带毒传输的方式。

4、Notification包

是BGP设计的一个告警机制,当BGP检测到一个错误的时候,它会将这个高进行告警处理,告知对端错误点在哪一个位置。

5、Route-refresh包

用于改变路由策略后请求对等体重新发送路由信息。(提前是对等体双方均支持路由刷新)

3、BGP的状态机

BGP的状态机进描述BGP对等体建立过程中的状态变化。因为BGP可以做到建立邻居关系和发布路由分开完成。

IDLE状态(空闲状态)

刚启动BGP之后,先处于IDLE状态,之后手工指定邻居关系。

当手工指定好邻居之后,BGP将会开启检查步骤,它需要确认指定的IP地址在本地路由表中是否路由可达,如果可达,则开始尝试简历里TCP会话,进入下一个状态,如果不可达,则将停留在IDLE状态。

 

connect状态

该状态是TCP会话连接的状态。如果TCP会话连接建立成功,则进入OPENsent状态,如果TCP会话建立失败,则进入Active状态,反复尝试重新建立会话连接。

注意:在TCP会话连接时,双方都会尝试建立连接,一方建立成功,则将创建一个双向的TCP会话通道。若双方都建立成功,则将会出现两个双向通道,此时将需要关闭一个TCP通道。后面开始发送OPEN报文,其中会携带RID,双方将比较RID,仅保留RID大的一端发起的TCP连接,RID小的一端发起的TCP连接通道将被断开。

 

OPENsent状态

该状态下开始发送OPEN报文,报文中携带建立邻居关系所需的参数。当收到对端发送的OPEN报文后,将检查里面的参数。如果参数没有问题,则将回复一个keeplive作为确认,进入下一个状态。

 

OPENConfirm状态

即OPEN确认状态,对端收到本端的OPEN报文后,确认参数无误将发送keeplive包进行确认。此时代表双方的OPEN包中的参数都确认无误,并进入下一个状态。

 

Established状态

该状态表示建立完成状态,标志着对等体关系的建立。

从流程图中可以看出,TCP连接失败就会进入ACTIVE状态,尝试重连接,如果重连超时就放弃重连,判断邻居关系建立失败,回到IDLE状态。整个环节中,任意环节出现问题,都将发送Notification包进行报错,之后将状态退回到IDLE状态。

 

4、BGP的工作过程

(1)基于IGP(静态、直连)实现IP可达;

(2)指定邻居关系,邻居关系需要建立TCP会话通道。BGP之后发送的所有数据包都是通过TCP会话通道发送,来保证其传输的可靠性的;

(3)使用OPEN报文和keeplive报文进行邻居关系的建立,生成邻居表;

(4)使用Updata报文共享路由信息,信息中携带目标网段号,掩码信息以及各种属性,将收集和发送的所有路由信息记录在一张表中,即BGP表。

(5)之后,将BGP表中的最优路径加载到路由表中。(到达同一个目标网段可能收到多条路由信息,BGP仅加载一条(不存在负载均衡)最优路径,最优路径是通过属性来选择的)

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

(7)若出现错误信息,将使用notification报文进行告警。(这个错误信息可能出现在对等体建立的时候,也可能出现在之后。)

(8)若发生结果突变,则将直接发送UP打他、报文进行出发更新。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值