BGP的5种交互报文、6种状态机、对等体关系建立与路由交互过程介绍

您所在的位置:网站首页 情绪有几种状态分别是 BGP的5种交互报文、6种状态机、对等体关系建立与路由交互过程介绍

BGP的5种交互报文、6种状态机、对等体关系建立与路由交互过程介绍

2024-07-10 10:47| 来源: 网络整理| 查看: 265

一、BGP的五种交互报文

BGP的五种报文,分别是:Open、Keepalive、Update、Notification、 Route-Refresh

BGP包属于应用层,所以BGP的所有报文都是被TCP封装着,依赖TCP通道进行传输。

[下图:可以看到BGP包封装于TCP之内] 在这里插入图片描述

1、各报文的作用

如何通过BGP报头判断出所发送的BGP报文类型?【通过BGP头部中的Type字段】

在这里插入图片描述

TYPE值报文类型1OPEN2UPDATE3NOTIFICATION4KEEPALIVE5REFRESH

1-Open:用于协商参数、建立邻居,TCP三次握手正常建立之后,才会发送Open报文。

2-Update:用于更新传递路由信息。

3-Notification:报告错误信息,用于断开邻居关系。

4-Keepalive:定期发送,用于维持BGP邻居关系,Keepalive报文格式中只包含报文头,没有附加其他任何字段。

5-Route-Refresh:路由刷新报文,让对方主动给我发送最新的,我所需要的路由信息。

2、报文内部的重要字段

更多更具体的字段介绍,可自行查看报文格式大全:网络协议报文格式大全 v1.0.chm

Open:

My AS,本地AS号BGP Identifier,BGP标识符(本设备的Router-id)

在这里插入图片描述

在这里插入图片描述

Update:

Withdrawn Routes,撤回的路由。

1、如果该值为0,表示该Update报文用于传递BGP路由。

2、如果该值为4,表示撤消一条BGP路由:

(WRL=4 表示撤销4字节的路由,因为IP地址就是32bit=4字节,故表示撤销了一条路由)

Network Layer Reachability Information(NLRI)网络层可达信息,记录BGP路由。

1、在WRL=0的时候,该字段的信息表示增加的路由条目信息。

2、有NLRI就会有路由属性字段,描述该对应路由的路由属性。

Path attributes 路径属性

在这里插入图片描述

在这里插入图片描述

Notification:

Error Code,错误错误代码,定义错误的类型,非特定的错误类型用零表示。Data,详细的错误信息,指定错误细节编号,非特定的错误细节编号用零表示。

在这里插入图片描述 在这里插入图片描述

Keepalive:

只有BGP报头,其Type字段置位4。

在这里插入图片描述

在这里插入图片描述

Route-Refresh:

AFI,地址族标识,标识需要传递的路由类型,默认是IPv4,还可以设置IPv6、VPNv4等。SAFI,子地址族标识,针对NLRI网络层可达信息就分为 单播 NLRI(SAFI 1)和多播 NLRI(SAFI 2),默认为单播。 在这里插入图片描述 在这里插入图片描述 二、BGP的六种状态机

BGP的六种状态机分别是:

Idle、Connect、Active、OpenSent、OpenConfirm、Established

1、每个状态机的介绍

Idle:

启用BGP后,开始准备建立TCP的连接时的状态。任何状态中收到Notification报文或TCP拆链通知等Error事件后,BGP都会转至Idle状态。

在这里插入图片描述

Connect

已发送TCP Syn报文,BGP启动连接重传定时器(Connect Retry),等待TCP完成连接。

(Connect Retry 重置连接计时器,默认32S)

如果TCP连接成功,那么BGP向对等体发送Open报文,并转至OpenSent状态。

如果TCP连接失败,那么BGP转至Active状态。

如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么BGP继续尝试进行TCP连接,一直停留在Connect状态。

1、即32S之后还没收到邻居回复TCP报文,将一直重复发送TCN SYN报文,状态也一直处于Connect。

2、除非收到TCP连接失败或其它错误信息,不然一直在此状态停留尝试TCP连接。

3、这种状态下可以判定邻居没有配置BGP或中间设备拦截了BGP报文。

Active

从Connect转换到该状态下,BGP继续试图建立TCP连接:

1、如果TCP连接成功,那么BGP向对等体发送Open报文,关闭连接重传定时器,并转至OpenSent状态。

2、如果TCP连接失败,那么BGP一直停留在Active状态不断发起TCP连接,直到重传定时器超时之后返回到Connect状态。

要点:重传定时器从Connect状态到Active状态时不会重置会一直倒计时。

在这里插入图片描述

OpenSent

TCP连接建立成功,开始发送Open包并等待对等体回复Open报文。

1、如果收到的Open报文正确,那么BGP发送Keepalive报文,并转至OpenConfirm状态。

2、如果发现收到的Open报文有错误,那么BGP发送Notification报文给对等体,并转至Idle状态。

在这里插入图片描述

OpenConfirm

此时已经发送了Keepalive报文,正在等待对方回包。

1、如果收到Keepalive报文,则转至Established状态,如果收到Notification报文,则转至Idle状态。 在这里插入图片描述

Established

对等关系建立完毕,双向开始交互Update报文交互各自的路由信息。

为了维持Established状态,需要定时发送Keepalive报文保持。

(Keepalive报文默认发送间隔60s、超时时间180s)

除了通过Keepalive报文进行保持Established状态,还通过Update等其它报文进行监测:

1、如果收到正确的 Update或Keepalive报文,那么BGP就认为对端处于正常运行状态,将保持BGP连接。

2、如果收到错误的 Update或Keepalive报文,那么BGP发送Notification报文通知对端,并转至Idle状态。

3、如果收到Notification报文,那么BGP转至Idle状态。

4、如果收到TCP断开通知,那么BGP也会断开连接,转至Idle状态。

2、总结每个状态之间交互的报文

(1)交互 TCP报文

Idle

Connect

Active

(2)交互 Open报文

OpenSent

(3)交互 Keepalive报文

OpenConfirm

(4)交互 Update、Keepalive

Established 3、各状态机之间的关联

(1)由左侧的Idle状态开始,发送TCP SYN请求建立报文后进入Connect状态,如果TCP failed建立失败将进入Active继续进行TCP建立,直到重传定时器超时再回到Connect状态继续重复该过程。

(2)TCP三次握手之后TCP Established建立成功进入Opensent状态并发送Open报文。

(3)当收到正确的Open报文之后进入OpenConfirm状态并发送Keepalive报文。

(4)当收到正常的Keepalive报文之后进入Established状态开始交互Update报文相互学习路由条目

在各个状态机中,如果发生了Error错误,即收到Notification报文将直接回退到Idle状态。

在这里插入图片描述

三、BGP对等体关系建立过程 1、对待体建立过程

在这里插入图片描述

2、路由交互过程

在这里插入图片描述

3、BGP邻居建立过程抓包

在这里插入图片描述 该Wireshark抓包中涵盖了BGP建立过程(TCP交互、Open交互、Keepalive交互、Update交互【含Update更新与撤消】)以及路由更新(Route-Refresh)、错误报告(Notification)

Wireshark抓包信息,下载查看更多内容:BGP建立过程抓包(wireshark版本Version 3.6.6)

更多相关笔记,观看CSDN:HCIA~HCIE个人笔记



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3