BGP--协议报文交互与路由属性

数通知识


前言

BGP入门必知:会话建立、路由属性

      BGP协议是学习IP路由的必知协议,BGP协议用于AS自治系统之间的路由互通。IP路由协议分为IGP(内部网关协议)和EGP(外部网关协议)两种。常见的IGP有OSPF、IS-IS;常见的EGP就是BGP协议。


一、BGP会话建立

     BGP是基于TCP协议的路由协议 ,因此BGP对等体的建立无需直连,但必须确保TCP三次交互成功,即IP层要确保互通。同时,BGP的报文信息是先封装一层TCP头部,再去封装IP头部。

  1. BGP的状态机

idle--->connect------->opensent----->openconfirm----->established

                |                        |

                |---> active ---->|

       BGP对等体建立前,先要进行三次的TCP连接。idle状态为BGP建立初始状态,在启动TCP连接和重传定时器后,进入connect等待TCP连接的状态。如果TCP连接成功则会发送open包,进入opensent状态;如果TCP连接失败则进入active状态,反复进行TCP的连接。opensent状态是已经发送了open包,等待对方回发open包的状态。当收到正确的open包,双方参数协商完全,则进入openconfirm状态。在openconfirm状态,收到keepalive消息报文就转入established状态;如果收到notification报错消息报文就断开TCP连接,转入idle状态。

  1. BGP的报文类型
BGP消息/报文类型报文实际作用
open协商BGP对等体的各种参数,建立BGP对等体连接关系
update同步BGP路由,包含BGP路由前缀信息和多种路由属性,触发更新
keepalive会话保活,用于维持BGP对等体的连接,周期性的发送
notification报错信息,BGP检测到错误时发给对等体,对等体收到断开TCP连接
route-refresh

用来请求对等体重传所有可达路由信息

二、BGP路由属性

BGP丰富的路由属性,不仅强大的BGP路由策略的使用,还有一些防环机制在,以及在BGP路由优选的时候也起到了很大的作用。

1.常见的BGP路由属性分类

  • 公认必遵属性:origin,AS_path,next_hop
  • 公认自决属性:local_preference,atomic_aggregate
  • 可选传递属性:community,aggregator
  • 可选非传递属性:MED,originator_id,cluster_list

公认必遵属性:所有BGP路由器都必须认识且传递,必须包含在update报文消息里;

公认自决属性:必须认识,但不要求包含在update里;

可选传递属性:可以不支持,但遇到要能够接收并传递;

可选非传递属性:可以不支持,也不传递;

2.具体属性作用

  • origin:表明路由是从哪里学来的;分为IGP学到的,EGP学到的和其他方式学到的三种,优先级依次由高到低。
  • AS_path:是用来记录BGP路由经过的AS号的集合,分为AS_sequence有序集合和AS_set无序集合(如果配置联邦,联邦也有类似的两种),两种可以混用。AS_path属性不仅防环,而且在路由优选时,会选择AS_path长度短的,即经过AS系统少的路由。
  • next_hop:下一跳。规则有:从EBGP学来的路由传给IBGP,next_hop值不变;从EBGP雪莱的路由传给EBGP,但更新值与旧值在同一网段,next_hop值也不变。
  • MED:流量进入的路由优选条件。在两个相邻的AS之间传递,不会跨AS传递。如果路由是从IGP学到的,则MED值为IGP的cost值;如果是静态/直连路由引入到BGP路由里的,MED值为1;MED值越小越优。
  • local_preference:流量出去的路由优选条件。仅在IBGP之间有效,值越大越优。
  • community:路由标记手段,方便大量BGP路由时,进行路由处理。有十进制数字表示和16进制AA:NN类的表示方式。有三种特殊的类型,no_attribute表示此条路由不能传给任何BGP对等体;no_export表示不能传递给其他EBGP对等体(联邦EBGP除外);no_export_subconfed表示不能传递给任何EBGP对等体(包括联邦EBGP)。community可以包含多个值。
  • aggregator:表明路由在哪里进行了汇总。
  • atomic_aggreagte:表明路由发生了汇总。
  • originator_id:路由反射器RR特有,表明反射的路由起源于哪。当路由起源于本地AS,则值为源路由器的BGP的router_id;当路由起源为其他AS内,则值为本地AS的边界路由器的BGP的router_id。
  • cluster_list:RR的簇ID(cluster_id)集合,表明路由经过了那些路由反射簇,越少越优,同时也有防环机制在内。

总结

以上就是BGP协议的报文交互和路由属性,BGP中的路由反射器RR用处也十分广,会在下一篇学习笔记中展示。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值