前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >无论我和你之间有多少跳跃,BGP会让我始终找到通向你的一条稳定路径。基于华为ENSP的BGP的路由策略深入浅出[新星杯]

无论我和你之间有多少跳跃,BGP会让我始终找到通向你的一条稳定路径。基于华为ENSP的BGP的路由策略深入浅出[新星杯]

作者头像
盛透侧视攻城狮
发布2025-01-27 00:10:41
发布2025-01-27 00:10:41
760
举报

本篇技术博文摘要 🌟

  • 1.BGP数据包BGP数据报文作用及发时表2.深入浅出各个数据包的奥妙open包AS号RIDHold Time--保活时间Update包Notificationa Error Code、 Error subcode: Data:keepalive包Route-refresh​

1.BGP数据包

image-20230323162229247
image-20230323162229247

报文名称

作用

发送时刻

Open

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

BGP TCP连接建立成功之后

Update

发送BGP路由更新

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

Notification

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

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

Keepalive

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

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

Route-refresh

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

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

2.深入浅出各个数据包的奥妙

open包

  • TCP建立之后发送的第一个BGP报文,用于建立BGP对等体之间的连接关系。该过程无非就是进行参数协商的过程。
image-20230323163521711
image-20230323163521711
AS号

  • 不管接收到的open报文中的AS号是否与本地AS号相同,都不会影响到BGP对等体关系的建立。
  • 但是,如果open报文中的AS号,与本地建邻时由网络管理员编写的AS号不同,则邻居关系无法建立
    • BGP对等体在建立邻居时,会配置对等体所在的AS号,如果对端发送的open报文中所包含的AS号与本地配置不同,才会导致建邻失败。
RID

  • 如果两端RID相同,则对等体关系建立失败。
  • 认证字段
    • 如果认证方式或者认证数据不通,则导致建邻失败。
    • 该字段永远以MD5形式,存储在TCP的选项字段中。
Hold Time----保活时间

  • BGP在建立对等体关系时两端需要协商该参数,并保持一致。但是该参数并不会影响BGP对等体关系的建立
  • 如果两端的保活时间不同,则按照较小的一端数值来执行。
  • 如果在该时间内未收到对端发送来的报文信息,则认为BGP连接断开。该时间默认为180S,报文的周期发送时间为保活时间的三分之一,即60S。
  • 该参数可以设置为0,此时代表不发送keepalive报文周期保活。
  • 因为BGP会话是基于TCP会话建立,只要TCP判断连接断开,则BGP会话断开,故保活机制对于BGP而言并不那么重要,而设定保活机制原因仅仅是因为TCP判断会话断开所需要的时间过长,为了加快收敛速度,添加保活机制。
  • 路由刷新功能

Update包

  • 作用:用于在对等体之间传递路由信息,可以用于发布和撤销路由
image-20230324013846644
image-20230324013846644

  • 撤销路由字段长度
  • 撤销路由列表
    • length---->待撤销路由的掩码信息
    • perfix---->传输的IP地址前缀信息。
  • 路径属性字段长度
  • 路径属性列表
  • NLRI---->网络层可达信息
    • 内容与撤销路由列表相同

Notification

  • 当BGP检测到错误状态时(对等体关系建立时、建立之后都可能发生) ,就会向对等体发送Notification,告知对端错误原因。之后BGP连接将会立即中断。
a Error Code、Error subcode:

  • 差错码、差错子码,用于告知对端具体的错误类型。
Data:

  • 用于辅助描述详细的错误内容,长度并不固定。

keepalive包

  • 作用:主要用来进行周期保活,临时充当确认报文

  • keepalive报文发送时间默认为保活时间的三分之一。
  • keepalive报文的确认实际上是针对open报文中的参数信息进行确认。而非open报文本身
  • TCP协议进行确认的目的是为了保障数据传输的可靠性,而keepalive报文确认的目的是为了告知对端本地认可你的参数内容。
  • 当收到的open报文中的参数通过验证,则回复keepalive报文;如果未通过验证,则回复notification报文。

Route-refresh

作用:用来要求对等体重新发送指定地址族的路由信息

  • 一般为本端修改了相关路由策略之后让对方重新发送update报文,本端执行新的路由策略重新计算BGP路由。----前提提交为双方均支持路由刷新功能
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-01-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 本篇技术博文摘要 🌟
  • 1.BGP数据包
  • 2.深入浅出各个数据包的奥妙
    • open包
      • AS号
      • RID
      • Hold Time----保活时间
    • Update包
    • Notification
      • a Error Code、Error subcode:
      • Data:
    • keepalive包
    • Route-refresh
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档