DA000011 BGP路由协议 - 图文(5)

2019-01-19 16:23

DA000011 BGP路由协议 ISSUE1.0

第2章 BGP的报文和状态机

Update报文?Update报文由报文头加如下结构构成。Unfeasible Routes LengthWithdrawn RoutesPath Attribute LengthPath AttributeNetwork Layer ReachabilityInformation Unfeasible Routes Len :(2字节无符号整数) 不可达路由长度 Withdrawn Routes :(变长) 撤消路由

Path Attribute Len :(2字节无符号整数) 路径属性长 Path Attributes :(变长) 路径属性(以下详细说明)

Network Layer Reachability Information :(变长) 网络可达信息(目标) 其中撤消路由和目标地址的表示方法为一 的二元组。length一个字节,指示地址前缀的长度。prefix为地址前缀,长度1至4字节。 UPDATE 报文是BGP系统中最重要的信息,用于在同伴之间交换路由信息,它最多由三部分构成:不可达路由(unreachable)、路径属性(path attributes)、网络可达性信息(NLRI,network layer reachability information)。

UPDATE 消息可以向BGP对等体通告一条路由,也可以撤消多条“行不通”的路由。不可达路由字段包括一个所撤消路由的IP地址前缀列表。路径属性字段是一个路径属性的列表,包括:属性类型、属性长度和属性值等。网络可达字段包括了BGP路由器所知道的且可到达的IP地址前缀列表。 一个UPDATE 消息一次只能通告一个路由,但它可以携带多个路径属性。 一个UPDATE 消息一次也可通告多条路由,但它的路径属性必须相同。 一个UPDATE 消息可以同时列出多个被撤消的路由。

19

DA000011 BGP路由协议 ISSUE1.0

第2章 BGP的报文和状态机

Notification报文?Notification报文由报文头加如下结构构成。Error CodeError SubcodeData错误代码错误类型1消息头错2OPEN消息错3UPDATE消息错4保持时间超时5状态机错6退出 Notification 报文主要在发生错误或对等体连接被关闭的情况下使用,该消息携带各种错误代码(如定时器超时等),包括错误代码、辅助错误代码及错误信息。

Errorcode :(1字节) 错误代码。 Errsubcode :(1字节) 辅助错误代码。。

Data :(变长) 依赖于不同的错误代码和辅助错误代码。用于诊断错误原因。

20

DA000011 BGP路由协议 ISSUE1.0

第2章 BGP的报文和状态机

2.3 BGP协议的状态机

BGP协议有限状态机有六个状态,它们之间的转换过程示意了BGP邻居关系建立的过程。首先是Idle 状态,BGP协议 一旦Start ,状态机就进入Connect 状态 ,在Connect 状态 ,如果Connect- Retry 定时器超时,BGP状态机会停留在Connect 状态 ,同时, BGP 试图建立TCP 连接,如果TCP 连接建立失败,BGP 状态机进入Active 状态。 如果TCP 连接建立成功,BGP状态机就直接进入OpenSent 状态。在Active 状态,如果TCP 连接依然不能建立起来,那么BGP状态机就会一直停留在Active 状态,直到TCP 连接建立成功,才会进入OpenSent 状态。在OpenSent 状态 ,BGP一旦收到了一个正确的Open 报文,就会进入OpenConfirm 状态。在OpenConfirm 状态 ,如果KeepAlive 定时器超时,BGP状态机就会停留在OpenConfirm状态。直到BGP收到KeepAlive 报文,BGP状态机才会进入Established 状态。 这时BGP连接才算建立起来。 另外,在除Idle 状态以外的其它五个状态出现任何Error 的时候,BGP状态机就会退回到Idle 状态。

Idle(空闲):Idle 是BGP连接的第一个状态,在空闲状态,BGP在等待一个启动事件,启动事件出现以后,BGP初始化资源,复位连接重试计时器(Connect-Retry),发起一条TCP连接,同时转入Connect(连接)状态。 Connect(连接):在Connect 状态,BGP发起第一个TCP连接,如果 连接重试计时器(Connect-Retry)超时,就重新发起TCP连接,并继续保持在Connect

21

DA000011 BGP路由协议 ISSUE1.0

第2章 BGP的报文和状态机

状态,如果TCP 连接成功,就转入OpenSent 状态,如果TCP 连接失败,就转入Active 状态。

Active(活跃):在Active状态,BGP总是在试图建立TCP 连接,如果连接重试计时器(Connect-Retry)超时,就退回到Connect 状态,如果TCP 连接成功,就转入OpenSent 状态,如果TCP 连接失败,就继续保持在Active状态,并继续发起TCP连接。

OpenSent(打开消息已发送):在OpenSent 状态,TCP连接已经建立,BGP也已经发送了第一个Open报文,剩下的工作,BGP就在等待其对等体发送Open 报文。并对收到的Open报文进行正确性检查,如果有错误,系统就会发送一条出错通知消息并退回到Idle状态,如果没有错误,BGP就开始发送Keepalive 报文,并复位Keepalive 计时器,开始计时。同时转入OpenConfirm状态。

OpenConfirm(打开消息确认)状态:在OpenConfirm状态,BGP等待一个Keepalive 报文,同时复位保持计时器,如果收到了一个Keepalive 报文,就转入Established 阶段,BGP邻居关系就建立起来了。如果TCP连接中断,就退回到Idle 状态。

Established(连接已建立):在Established 状态,BGP 邻居关系已经建立,这时,BGP将和它的邻居们交换Update 报文,同时复位保持计时器。

22

DA000011 BGP路由协议 ISSUE1.0

第2章 BGP的报文和状态机

2.4 BGP协议中消息的应用

BGP协议中消息的应用??通过TCP建立BGP连接时,发送open消息连接建立后,如果有路由需要发送或路由变化时,发送UPDATE消息通告对端路由信息稳定后此时要定时发送KEEPALIVE消息以保持BGP连接的有效性当本地BGP在运行中发现错误时,要发送NOTIFICATION消息通告BGP对端?? BGP使用TCP 建立连接,本地监听端口为179。 和TCP建立相同,BGP连接的建立也要经过一系列的对话和握手。TCP通过握手协商通告其端口等参数,BGP的握手协商的参数有:BGP版本、BGP连接保持时间、本地的路由器标识(Router ID)、授权信息等。这些信息都在Open 消息中体现。

BGP 连接建立后,如果有路由需要发送则发送Update 消息通告对端路由信息。Update消息主要用来通告路由信息,包括失效(撤消)路由。Update 消息发布路由时,还要指定此路由的路由属性,用以帮助对端BGP协议选择最佳的路由。关于路由属性在BGP选择路由时的应用,参见BGP协议路由属性的应用部分。

在本地BGP路由变化时,也使用Update 消息修正对端BGP的路由表。 经过一段时间的路由信息交换后,本地BGP和对端BGP都无新路由通告,趋于稳定了。此时要定时发送KEEPALIVE消息以保持BGP连接的有效性。对于本地BGP,如果在超过保持时间的时间内,还未收到任何对端BGP消息,就认为此BGP连接已经无效,将此BGP连接断开。

当本地BGP在运行中发现错误时,要发送NOTIFY消息通告BGP对端。如对端BGP版本本地不支持,本地BGP收到了结构非法的Update 消息等。本地BGP退出BGP连接时也要发送NOTIFICATION消息。BGP收到NOTIFICATION消息后,要作相应处理。

23


DA000011 BGP路由协议 - 图文(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:五年级作文:有意义的寒假生活

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: