BGP(Border Gateway Protocol )

介绍 AS AS号码划分为公有AS和私有AS,公有AS的范围是1-64511,私有AS范围是64512-65534;公有AS只能用于 互联网,并且全球唯一,不可重复,而私有AS可以在得不到合法AS的企业网络使用,可以重复。很显然,因为 私有AS可以被多个企业网络重复使用,所以这些私有AS不允许传入互联网,ISP在企业用户边缘,需要过滤掉 带有私有AS号码的路由条目。 BGP路由器之间的数据传输使用了TCP协议,端口号为179,并且指的是会话的目标端口号为179,而会话源端口 号是随机的。 一个配置了BGP进程的路由器只能称为BGP-Speaker,当和其它运行了BGP的路由器形成邻居之后,就被称为BGP -Peer,一个路由器运行BGP后,并不会主动去发现和寻找其它BGP邻居,BGP的邻居必须手工指定 一台BGP路由器运行在一个单一的AS内,在和其它BGP路由器建立邻居时,如果对方路由器和自己属于相同AS, 则邻居关系为internal BGP (iBGP),如果属于不同AS,则邻居关系为external BGP (eBGP)。BGP要求eBGP邻 居必须直连,而iBGP邻居可以任意距离,但这些都是可以改变的。 在BGP形成邻居后,最开始会交换所有路由信息,但是之后都采用增量更新,也就是只有在路由有变化时才更 新,并且只更新有变化的路由。 BGP建立邻居后,会通过相互发送类似hello包的数据来维持邻居关系,这个数据包称为Keepalive,默认每60秒 发送一次,hold timer为180秒,即到达180秒没有收到邻居的Keepalive,便认为邻居丢失,则断开与邻居的 连接。 BGP之间建立邻居,需要经历如下几个过程: Idle—BGP进程被启动或被重置,这个状态是等待开始,比如等于指定一个BGP peer,当收到TCP连接请求后, 便初始化另外一个事件,当路由器或peer重置,都会回到idle状态。 Connect—检测到有peer要尝试建立TCP连接。 Active—尝试和对方peer建立TCP连接,如有故障,则回到idle状态 OpenSent— TCP连接已经建立,BGP发送了一个OPEN消息给对方peer,然后切换到OpenSent状态,如果失败, 则切换到Active状态。 OpenReceive— 收到对方peer的OPEN消息,并等待keepalive消息,如果收到keepalive,则转到Established 状态,如果收到notification,则回到idle状态,比如错误或配置改变,都会发送notification而回到idle状 态。 Established— 从对端peer收到了keepalive,并开始交换数据,收到keepalive后,hold timer都会被重置, 如果收到notification,就回到idle状态。... Read more