BGP协议

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BGP协议相关的知识,希望对你有一定的参考价值。

  1. BGP协议概述
    BGP协议是用于自治系统AS之间的动态路由协议。
    BGP特性:
    是一种外部网关协议,与OSPF、RIP等内部网关协议不同,其着眼点不在于发现和计算路由,而是着眼于在AS之间控制路由的转播和选择最佳路由。
    BGP使用TCP作为传输层协议(端口号179),提高了协议的可靠性。
    BGP 进行域间路由选择,因此对协议的稳定性要求很高,故可用TCP协议的高可靠性来保证协议的稳定性。
    在BGP的对等体之间必须逻辑上连通,并且进行TCP连接;目的端口号为179,本地端口号任意。
    BGP支持无类别域间路由CIDR。 BGP路由更新时,只发送更新路由,大减少了BGP的传播路由所占用的带宽;
  2. BGP是一种距离矢量路由协议,从设计上避免了环路
    AS之间:BGP通过携带AS路径信息来标记途径的AS,带有本地AS号的路由将被丢弃,从而避免了域间产生环路。
    AS内部:BGP在AS内学到的路由不会在AS中转发,避免了在AS内产生环路。 即为防止环路,BGP协议规定,路由器从IBGP学习到的路由不向它的IBGP对等体发布。另外为了 防止产生路由黑洞,协议还规定BGP发言者从IBGP获得的路由是否发布给它的EBGP对等体与是否同步相关。
  3. BGP消息
    BGP的运行是通过消息驱动的,共有5种消息类型(Open、Update、Notification、Keeplive和Route-refresh).
    Open消息:是TCP建立连接后发送的第一个消息,用于建立BGP对等体之间的连接关系并进行参数协商,内容包括BGP版本、AS号、路由ID、HOLD TIME值、认证信息等。
    Update消息:用于在对等体之间交换路由信息。可以发布多条属性相同的可达路由信息,也可以多条不可达的路由信息。
    Notification消息:当BGP检测到错误状态时,就向对等体发出Notification消息,之后BGP连接就会中断。
    Keeplive 消息:BGP会周期性地向对等体发出Keeplive消息,用来保持连接的有效性。
    Route-refresh消息:用来通知对等体自己支持路由刷新能力。
    4.BGP的状态机
    BGP共有6种状态机:Idle、Connect、Active、OpenSent、Openconfirm、Established.
    首先是Idle状态,BGP协议一旦start,状态机就进入Connect状态,在Connect状态,若Connect-Rtry定时器超时,则BGP状态机会停留在Connect状态。同时,BGP试图建产TCP连接,如果TCP连接建立失败,在BGP状态机进入ACTIVE状态。若TCP连接建立成功,则BGP状态机直接进入Opensent状态。在ACTIVE状态,若TCP连接依然不能建立起来,那么BGP状态机就会一直停留在active状态,直到TCP连接成功,才会进入opensent状态。在opensent状态,BGP一旦收一个正确的open报文,就会进入openconfirm状态。在openconfirm状态,当keeplive定时器超时,BGP状态机就会停留在openconfirm状态。直到BGP收到keeplive报文,BGP状态机才会进入established,这时BGP连接才算建立起来。
    在BGP对等体建立的过程中,通常可见的3个状态是:Idle、Active、Established。当BGP状态是active时,BGP邻居之间是无法通告路由的,主要是因为TCP连接还没有建立起来,建立邻居关系的地址之间,IGP路由不通。Established状态,说明BGP对等体之间可以通告路由了。

以上是关于BGP协议的主要内容,如果未能解决你的问题,请参考以下文章

BGP路由协议原理

学习总结---BGP协议

BGP 路由协议

华为BGP动态路由协议理论+实验

互联网协议 — BGP 边界网关协议 — BGP-LS

【HCIP】3BGP协议-2.2BGP邻居关系的建立