2020年特殊的春节,特殊的寒假。停课不停学,大好时光怎么能浪费呢(其实是闲得蛋疼了)!闲来无事RFC!!!那就看看RFC文档把,了解一下BGP的原理,顺便看看广受业内人士称赞的斑驴。走马观花一波,看到哪里是哪里,毕竟实力有限,很难理解得很透彻。
1. BGP的状态机
BGP是根据状态机进行运转的,搞清楚了BGP的状态机,对BGP工作原理的理解没有Ⅹ也有Ⅲ Ⅳ了。
限于篇幅,本文只讨论一切步骤都完美正常执行的情况(即收到的包都是正确的,与peer建立TCP连接一次成功等等)。当然RFC文档种还详细介绍了各种突发状况、各种处理方法等,实在是有点多,下篇文章再完整地叙述吧。
1.1 Idle state
BGP协议为每一个peer(对等体)即邻居维护一个FSM。在配置BGP路由的时候,会经常见到这两个命令:
router bgp asn
该命令创建了一个bgp实例,还没有创建peer,FSM还没开始。
另一个命令:
neighbor X.X.X.X remote-as asn
neighbor命令执行后,bgp会为其创建一个peer,为其创建相应的FSM并开始运转,初始状态为Idle。
Idle state不接受任何的TCP连接(比如别的BGP路由器要与其建立TCP连接)。可以认为,在Idle state的前半段,什么事都没干。当FSM捕获到一个ManualStart event或者AutomaticStart event时&#