BGP的5种交互报文、6种状态机、对等体关系建立与路由交互过程介绍 |
您所在的位置:网站首页 › 情绪有几种状态分别是 › BGP的5种交互报文、6种状态机、对等体关系建立与路由交互过程介绍 |
一、BGP的五种交互报文
BGP的五种报文,分别是:Open、Keepalive、Update、Notification、 Route-Refresh BGP包属于应用层,所以BGP的所有报文都是被TCP封装着,依赖TCP通道进行传输。 [下图:可以看到BGP包封装于TCP之内] 如何通过BGP报头判断出所发送的BGP报文类型?【通过BGP头部中的Type字段】 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的六种状态机分别是: 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状态。
Wireshark抓包信息,下载查看更多内容:BGP建立过程抓包(wireshark版本Version 3.6.6) 更多相关笔记,观看CSDN:HCIA~HCIE个人笔记 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |