quagga源码学习--bgp协议对等体的状态机

丹西 丹西     2022-08-21     384

关键词:

创建完bgp peer之后,就要bgp start了,不然费那么大劲创建出来不做事情就销毁了,就很尴尬了。

那么对等体一旦start起来,就会进入各自的状态,在不同的状态下处理各自的事件消息。

下面列举一些状态和事件的集合:

 1 /* BGP finite state machine status.  */
 2 #define Idle                                     1
 3 #define Connect                                  2
 4 #define Active                                   3
 5 #define OpenSent                                 4
 6 #define OpenConfirm                              5
 7 #define Established                              6
 8 #define Clearing                                 7
 9 #define Deleted                                  8
10 #define BGP_STATUS_MAX                           9
11 
12 /* BGP finite state machine events.  */
13 #define BGP_Start                                1
14 #define BGP_Stop                                 2
15 #define TCP_connection_open                      3
16 #define TCP_connection_closed                    4
17 #define TCP_connection_open_failed               5
18 #define TCP_fatal_error                          6
19 #define ConnectRetry_timer_expired               7
20 #define Hold_Timer_expired                       8
21 #define KeepAlive_timer_expired                  9
22 #define Receive_OPEN_message                    10
23 #define Receive_KEEPALIVE_message               11
24 #define Receive_UPDATE_message                  12
25 #define Receive_NOTIFICATION_message            13
26 #define Clearing_Completed                      14
27 #define BGP_EVENTS_MAX                          15

 

quagga源码学习--bgp协议路由更新

BGP的核心就是交换路由,所以关键的部分还是在路由的更新与撤销上面,这之间包含了冗长的属性,community等等处理过程,不做详述。bgp_read函数是路由更新的事件处理函数,在收到BGP_MSG_UPDATE消息的时候开始调用bgp_update_receive... 查看详情

数通面试私房菜之bgp专题第二期:bgp状态机详解

BGP对等体的交互过程中存在6种状态机:空闲(Idle)、连接(Connect)、活跃(Active)、Open报文已发送(OpenSent)、Open报文已确认(OpenConfirm)和连接已建立(Established)。在BGP对等体建立的过程中,通常可见的3个状态是:Idle、Ac... 查看详情

当bgp的邻居状态机处于啥状态是,标志着与邻居的tcp连接已经正常建立

...责AS内部的路由发现和计算。BGP是基于TCP端口号179的路由协议,基于TCP的优点体现在:三次握手建立邻居的可靠机制;可以跨链路建立邻居关系;TCP有确认重传机制,无需在BGP中完成;BGP的认证由TCP完成的,认证字段在TCP头部的o... 查看详情

quagga代码学习之bgp4

文中理解参考:http://www.cnblogs.com/danxi/p/6344116.html等关于Quagga的源码学习 第一部分:入口函数int main(intargc,char**argv) //bgp_main.cvty_init(bm->master)bgp_init() //installcommandbgp_scan_init() 查看详情

【网络工程师配置篇】——bgp路由基础配置(ensp)

...是一种不同自治系统的路由设备之间进行通信的外部网关协议(ExteriorGatewayProtocol,EGP),其主要功能是在不同的自治系统(AutonomousSystems,AS)之间交换网络可达信息,并通过协议自身机制来消除路由环路。BGP使用TCP协议作为传输协... 查看详情

bgp的反射器和联盟(代码片段)

...RTB以及RTC。由于RTB和RTC互为IBGP对等体,所以不会把从IBGP学习到的路由通告给其它IBGP对等体。?如果该通告原则可以被放松,允许RTC可以把从RTA学习到的IBGP路由通告给其它IBGP对等体的话,这样将可以取消RTA与RTB之间的IBGP会话,RT... 查看详情

bgp-2,bgp报文和bgp状态

1,BGP报文     Open:建邻居,交换version、AS号、holdtime、BGPidentifier(即RouterID)、可选参数长度、可选参数。     Keepalive:保持邻居,即和BGP对等体的keepalive消息。    &nbs 查看详情

bgp协议

...AS内产生环路。即为防止环路,BGP协议规定,路由器从IBGP学习到的路由不向它的IBGP对等体发布。另外为了防止产生路由黑洞,协议还规定BGP发言者从IBGP获得的路由是否发布给它的EBGP对等体与是否同步相关。BGP消息BGP的运行是通... 查看详情

quagga的安装

QUAGGA是一款开源的路由软件,也是zebra(已经停止更新)的升级维护版本。作用:将Linux设备变成一个功能完整的路由器。支持的协议:rip,ospf,bgp等。 各种简单的介绍使用方法啊等等什么的可以去官网搜刮一下!官网:http... 查看详情

bgp协议

简单了解?BGP协议被称为是路径矢量型路由协议,它与距离矢量型路由协议有些相似的地方,但也有很多不同的地方,它的侧重点不在于计算路由,而是在于如何在自治系统之间传递路由和控制路由。它与RIP、OSPF不同,是外部网关协议... 查看详情

bgp路由交换详细介绍

一,BGP概述:BGP是自治系统之间进行路由学习及选路的协议1.自治系统自治系统是由同一个技术管理机构管理,使用统一选路策略(运行同一动态路由协议)的一组路由器组的集合2.动态路由的分类(1)按自治系统分类IGP:即自治... 查看详情

bgp入门

BGP边界网关协议工作在TCP上层使用单播起协议端口号179BGP的Rouidid作用不明显主要在于防环的时候有点作用(全局配置即可)BGP邻居关系建立1、TCP三次握手(TCPSYN-ACK+SYN-TCPACK)2、Open报文(状态机:(状态机:Idle-Connet-Opensent-Opencom... 查看详情

linux下使用quagga配置ospf协议

环境:三台redhat6.5(VM虚拟机)一、ospf协议 OSPF(OpenShortestPathFirst开放式最短路径优先)是一个内部网关协议(InteriorGatewayProtocol,简称IGP),用于在单一自治系统(autonomoussystem,AS)内决策路由。是对链路状态路由协议的一种实... 查看详情

什么是bgp对等体

...视频哪里有下载呢? 第5个回答 2012-05-25不懂,我也来学习下 查看详情

bgp是啥技术?

BGP是自治系统间的路由协议,它的主要功能是和其他BGP说话者之间交换网络可达性信息。一个BGP说话者是任何为BGP配置的设备。BGP使用TCP作为它的传输协议(端口179),这提供了可靠的数据传输。两个BGP路由器形成了一个传输协议... 查看详情

quagga源码分析--通用库thread

quagga是开源路由器软件,提供的用户界面与思科,华为的路由器的人机接口几乎一致,非常有学习价值,尤其是开源的协议代码,简直亮瞎了我丹的小眼睛。quagga的介绍,我就不赘述了,有兴趣的可以找度娘或者去官网看看。&nb... 查看详情

bgp项目实验案例(基于华为设备)

...路由的分类(1)按自治系统分类IGP:自治系统内部路由协议,包括RIP、OSPF、ISIS、EIGRPEGP:自治系统之间的路由协议,包括BGP,BGP的作用是控制路由的传播和选择最优路由(2)按协议类型分类距离矢量路由协议链路状态路由协议... 查看详情

quagga的安装和使用

Quagga的安装和使用测试环境:VM12  CentOS6.564位Quagga是一款功能比较强大的开源路由软件,支持rip,ospf,bgp等协议。1. Quagga的安装在CentOS下可以直接使用yum–yinstallquagga进行安装,也可以使用quagga的源代码包进行编译安装... 查看详情