BGP的几种状态

2018年6月26日09:02:55 发表评论 1,892 views

idle 

在IDLE状态BGP是拒绝一切链接的。当BGP启动的时候,状态会从Idle切换到connect,这个时候会向邻居发送TCP链接,同时也会开启179端口监听其他路由器发送过来的链接。 

在BGP切换到connect状态之后,他也会重置一个叫做ConnectRetry的计时器,如果链接不成功,根据计时器的时间判断过多久再次发起链接请求。默认是60s。但是如果说第一次失败,是60s,第二次就变成120s,这个是递增的。

Connect 

在这个状态的时候BGP等候链接同时发起链接。如果成功了就发送OPEN message,同时转向OPEN SENT状态,如果失败了会根据重传计时器重新发起链接,同时切换到Active状态。 

也就是说,只要在Connect状态,就证明BGP正在试图建立连接,而不是等候。

Active 

这是一个等候发起链接的状态,只有在Connect的时候失败了会进入这个状态。同时,在OPENSENT的时候,如果BGP链接忽然丢失,也会进入这个状态。 

同时在这个状态,BGP也可以发起TCP链接,并直接进入OPENSENT状态。 

我只能说,what a fucking design!!!

OPENSENT 

顾名思义,发送了OPEN信息之后的状态。

发送了OPEN之后,在这个状态等候对端过来的OPEN,如果也受到了OPEN的话,就会协商一些计时器,比如hello interval和hold time。协商OK的话就会发keep alive了。同时状态进入OPEN CONFIRM

如果在这个时候忽然对端发过来一个TCP关闭的信息。那么BGP将重启ConnectRetry的计时器,并退回到Active状态。 

(为什么不省掉ACTIVE状态,直接用CONNECT状态代替呢?)

OPEN CONFIRM 

在这个状态BGP等候keep alive信息,如果收到了就established,如果受到notification就idle,然后重新来过。

Established

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: