zl程序教程

您现在的位置是:首页 >  其它

当前栏目

一张图看懂BGP邻居关系建立过程和BGP报文简介

过程 简介 关系 建立 一张 报文 BGP 图看
2023-09-14 09:01:45 时间

对于很多学习网络的同学来说,可能对于如何在路由器上配置BGP比较熟悉了,但是BGP邻居关系是如何建立起来的呢?本文将介绍BGP邻居关系从初始状态到最后完成建立的全过程,通过学习这一部分,可以深入了解BGP协议的全过程,对于网络排错也有很大帮助。
本文适合对BGP有一定了解的同学学习,如果您对BGP还存在一些不明确的地方,可以先查看下面这篇文章。浅议BGP(一文看懂BGP)华为路由器BGP简单配置

一、BGP建立过程全图

BGP关系建立过程如下图所示:
在这里插入图片描述

二、BGP邻居关系建立描述

BGP协议本身的目的就是为了传递路由信息,因此说白了BGP邻居关系的建立过程就是运行BGP协议的双方互相找到对方并建立连接的过程。BGP总是在邻居关系建立完成后才开始传递路由,因此BGP邻居关系建立过程中,只涉及到连接建立过程。
**首先,BGP运行后会有一段时间的等待时间。**这段时间默认是32s,此时BGP处于Idle状态。可以将Idle状态简单理解为BGP的配置和准备时间。在此阶段内,BGP不会对对方BGP邻居进行任何响应。
注意,如果此时BGP路由器不知道对方BGP邻居的路由,会一直处于Idle状态,因此,在配置BGP的时候,必须先保证BGP邻居之间可以互相PING通。如果发现自己的BGP邻居无法正常启动,此时可以查一下有没有对方BGP邻居的路由。
其次,BGP邻居之间要建立TCP链接。 BGP邻居的建立是基于TCP协议的,因此,要建立BGP邻居,必须要建立TCP连接。在Idle状态结束后,BGP会监听自身的179端口。同时尝试与对方路由器建立TCP连接。此时路由器就处于Connect状态。如果TCP建立完成,那么就进入下一个状态——OpenSent状态,如果TCP建立失败,就会进入Active状态。如果进入了Active状态,该路由器一边等待对方路由器的连接,同时也会每隔一段时间(BGP会设置一个重传计时器)回退到Connect状态,尝试与对方建立TCP连接。
**最后,BGP邻居之间要进行参数的交换和验证。**在完成TCP建立后,接下来BGP邻居要互相发送Open报文,此时路由器处于OpenSent状态。在收到对方的Open报文后,路由器会尝试发送Keeplive报文,此时路由器处于OpenConfirm状态。当收到对方发送的Keeplive报文后,路由器就会进入Establish状态,此时表示路由器BGP邻居关系正式建立。但是,在此过程中,Open报文会协商一些参数,比如AS号、Router ID号、认证密码等等,如果此时参数协商失败,就会回退到Idle状态。

三、附录——BGP报文简介

综上所述,BGP共有5种类型的报文。
1、Open报文
Open报文时BGP邻居关系建立过程发送的第一个报文,Open报文中包含BGP邻居建立的一些参数。
2、Keeplive报文
Keeplive报文用于保证BGP邻居的在线,每隔固定的时间发送,但是如果收到Update报文,则会重置定时器。即Update报文会抑制Keeplive报文的发送。
3、Update报文
该报文用于向对方BGP邻居通告路由。
4、Notification报文
Notification报文用来告诉对方检测到差错,当BGP收到Notification报文后,会将自己的状态设置为Idle。
5、Refresh报文
只有支持Refresh报文的BGP路由器之间才会发送此报文,关于路由器是否支持Refresh报文会在发送Open报文时进行协商。Refresh报文可以请求对方重新发送路由。当本地路由策略发生变化时会向对方发送本报文。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200/article/details/118399936