BGP报文状态机、路由生成、路由传递生存时间

BGP报文类型

BGP5种报文类型

1-Open:用于协商参数、建立邻居,TCP三次握手正常建立之后,才会发送Open报文。

2-Update:用于更新传递路由信息。

3-Notification:报告错误信息,用于断开邻居关系。

4-Keepalive:定期发送,用于维持BGP邻居关系,Keepalive报文格式中只包含报文头,没有附加其他任何字段。

5-Route-Refresh:路由刷新报文,让对方主动给我发送最新的,我所需要的路由信息。

报文名称

作用

发送时刻

Open

协商BGP对等体参数,建立对等体关系

BGP TCP连接建立成功之后

Update

发送BGP路由更新

BGP对等体关系建立之后有路由需要发送或路由变化时向对等体发送Update报文

Notification

报告错误信息,中止对等体关系

当BGP在运行中发现错误时,发送Notification报文将错误通告给BGP对等体

Keepalive

标志对等体建立,维持BGP对等体关系

BGP路由器收到对端发送的Keepalive报文,将对等体状态置为已建立,同时后续定期发送keepalive报文用于保持连接

Route-refresh

用于在改变路由策略后请求对等体重新发送路由信息。只有支持路由刷新能力的BGP设备会发送和响应此报文

当路由策略发生变化时,触发请求对等体重新通告路由

不同的报文类型拥有相同的头部

 

BGP的头部报文

BGP这几种报文具有相同的报文头格式。如图1所示。

图1 报文头格式

字段名

长度

含义

Marker

16字节

用于检查BGP对等体的同步信息是否完整,以及用于BGP验证的计算。不使用验证时所有比特均为1(十六进制则全“FF”)。

Length

2个字节(无符号位)

BGP消息总长度(包括报文头在内),以字节为单位。长度范围是19~4096。

Type

1个字节(无符号位)

BGP消息的类型。Type有如下几个可选值,表示BGP报文头后面所接的几类报文。

  • OPEN
  • UPDATE
  • NOTIFICATION
  • KEEPALIVE
  • REFRESH
  • CAPABILITY

BGP报文头格式字段解释

BGP基于TCP,在BGP建立邻居关系之前,需要现建立TCP的连接

建立BGP邻居关系的两台设备,都会主动发送TCP的连接,先发起的TCP连接会被中断,后发起的TCP连接有效

BGP报文:

1.BGP header每一类BGP报文都会携带的头部

    

2.BGP type

   1.open用于建立BGP的邻居关系 (类似于OSPFhello报文)

          需要有哪些参数的协商?

           

   2.keepalive:用于维护BGP的邻居关系

          不携带任何信息参数,只用于邻居保活, 周期60s默认发送,180s超时   说人话:只用来确定邻居你还在不在

          [AR3-bgp]timer keepalive <0-21845> 改变周期通告的时间

          [AR3-bgp]timer keepalive 10 hold <0, 3-65535> 配置保活时间

保活时间(hold)一定要大于改变的周期通告时间(keeoalive)一定是(keeoalive)的时间三倍网上 设置70skeeoalive就一定要设置210以上的hold

      

keepalive和holdtime时间两端可以不一致(要满足本端的keepalive时间在对端的holdtime 时间内)

两端最终会协商为小的值      

keepalive时间一定是要在你保活时间内的,只要能满足这个条件邻居就能建立,建立如果keepaliveholdtime不一致后两端最终会协商为小的值

   3.update用于BGP路由信息的传递 和 撤销

       只有当设备发送路由或撤销路由时,才会发送

       收到了对端的route-refresh报文,也会通告updata

   4.notification用于断开BGP连接

       例如:管理员手工删除BGP邻居后,会通告notification报文,通知对端断开BGP邻接(TCP连接)

   5.route-refresh用于请求更新BGP路由

<AR3>refresh bgp all import   向对端发送route-refresh报文请求路由信息   我问你要

<AR3>refresh bgp all export   向对端主动发送updata报文   我发给你

 

发送时可以指定地址族 如:IPV4 IPV6 VPNV4等等

 

 

1字节=8bit

 

 

 

 

BGP的状态机:

1.idle:初始化状态,等待初始事件的发生         peer敲下之后就转换成下一个状态

2.connect:TCP连接状态

   1.不存在TCP连接的设备,退回初始状态

   2.存在TCP连接,但是TCP连接超时或TCP连接被中断    :说人话:你一直在发TCP的连接但是没有人给你回

       1.进入到active状态,继续尝试TCP连接,并启动连接定时器(32-37s)

           1.如果连接定时器超时,则退回connect

           2.在连接定时器内,TCP正常连接,发送open报文,进入下一个opensent状态

   3.存在TCP连接,且连接正常,发送open报文,进入下一个opensent状态

3.opensent:等待对方发送的open报文,进行open报文参数的协商

   1.如果没有收到对方的open报文,发送notification报文退回idle状态

   2.如果收到了open报文,但报文内的参数协商存在问题,发送notification报文退回idle状态

   3.如果收到了open报文,且报文内的参数协商不存在问题,回发送keepalive报文,进入openconfirm状态

4.openconfirm:等待对方发送的keepalive报文

   1.如果没有收到keepalive报文,则发送notification报文退回idle状态

   2.如果收到了keepalive报文,进入到established状态 BGP邻居关系正常建立

5.established:BGP的邻居的最终状态

   如果存在错误,会发送notification报文退回idle状态

   可以通过update报文更新路由、撤销路由信息

   可以通过route-refresh报文,请求路由信息

***任何状态下,如果收到了notification报文,则退回到idle状态

BGP路由的生成

1.通过network方式通告的

  [AR4-bgp]network 100.4.4.4 32

  被通告的路由信息,一定是设备已经存在的路由,说人话就是在路由表里面有的

2.通过import方式引入的

  [AR4-bgp]import-route static

  协议存在的路由,可以被引入的方式执行引入,被引入的路由不需要不一定在路由表中最优先

3.通过BGP邻居学习的

  可以接收IBGP、EBGP邻居发布的路由

4.通过聚合的方式产生路由

 [AR4-bgp]summary automatic   自动汇总,bgp分为自动和手动两种

[AR4]dis bgp routing-table   查看BGP协议生成的路由表

1.如果路由的下一跳为0.0.0.0 ,则表示该路由是自身设备发布的    就是自己做的自己发布的自己去自己

2.如果路由的下一跳为127.0.0.1,则表示该路由时设备聚合发布的

BGP路由如何传递?

BGP路由如何传递?  AR3视角

1.从EBGP邻居接收的路由,可以传递给IBGP邻居

路由的下一跳是不做改变的,会导致BGP路由不可用

路由不存在:* >     可用的路由:*    最优的路由: >     i是ibgp邻居接收的

[AR3-bgp]peer 1.1.1.1 next-hop-local    

           IBGP邻居传递路由时,将路由的下一跳改变为自身的更新源地址

2.从IBGP邻居接收的路由,不可以传递给IBGP邻居

           为了防止ASBGP路由环路,设计的规则 (水平分割)

3.从EBGP邻居接收的路由,可以传递给EBGP邻居

           路由的下一跳改变为邻居的更新源地址         说人话就是你邻居建立使用的地址

4.从IBGP邻居接收的路由,可以传递给EBGP邻居

*BGP设备自身发布的路由,可以传递给IBGP邻居、EBGP邻居

***BGP只传递最优的路由条目***  你是最优的一定是可用的,你是可用的,不一定是最优的

BGP路由表

在设备上通过display bgp routing-table查看BGP路由表:

Network:路由的目的网络地址以及网络掩码

NextHop:下一跳地址

如果想要查看某条路由更加详细的信息,可以通过display bgp routing-table ipv4-address { mask | mask-length} 查看,该命令会将匹配的BGP路由信息详细展示。

BGP路由表2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值