首页 > 其他分享 >BGP协议---基于RFC4271标准

BGP协议---基于RFC4271标准

时间:2023-08-21 18:01:22浏览次数:37  
标签:BGP 状态机 状态 报文 UPDATE RFC4271 --- OPEN

Author [email protected]

Date Aug. 21, 2023

Description BGP协议---基于RFC4271标准。

RFC4271是最新的BGPv4版本的协议。虽然直接看协议是非常晦涩难懂的,而且104页的全英文,真的很难完全阅读下来,但如果理解有出入,还是看RFC最为标准了。

第1、2、3章自己就可以看懂了,唯一的就是可能缩写比较多,但是知道英文应该问题也不大。

第4章,介绍BGP的4类报文格式,分别是OPEN、UPDATE、NOTIFICATION、KEEPALIVE,以及他们的公共头格式。

  • OPEN:在TCP连接建立后,OPEN报文用于宣告此BGP支持的能力CAPABILITY,虽然能力是可选的。
  • UPDATE:用于宣告以及撤销路由。BGP的大部分功能都和UPDATE报文有关。
  • KEEPALIVE:保活报文,以确保Hold Timer不会过期,BGP不使用任何基于TCP的保活机制。
  • NOTIFICATION:一般是用作错误处理,告知对方哪里出问题了。

第5章开始介绍Path Attribute,如果要看已经分配的所有的Path Attribute,需要去看IANA。这一章值得好好研究,重点关注Well-Known类型的。

第6章是消息错误处理机制。基本上都能通过NOTIFICATION报文看出来发给peer的报文到底是哪里出问题了,进而可以排查。最多的可能就是配置的问题。

第7章在说version的问题,目前应该都是在用BGPv4吧。

第8章定义了BGP有限状态机(FSM)。状态机,也就是根据条件xxx触发从状态yyy迁移到状态zzz。有限状态机,就是状态的个数是有限制的。BGP协议的状态可以分为:

  • IDLE:BGP的开始状态,等待ManualStart事件或者AutomaticStart事件。
  • CONNECT:初始化后,BGP router向peer发起TCP连接请求。tcp三次握手完成后还继续保持该状态。
  • ACTIVE:不常见的状态,除非initial connect失败了。
  • OpenSent:发送OPEN报文呗。
  • OpenConfirm:发出BGP-OPEN报文后进入该状态,收到了KEEPALIVE报文,就可以进入ESTABLISHED状态。
  • ESTABLISHED:可以开始交换路由了。这才是我们需要的状态。

image.png

第9章介绍了UPDATE消息处理,主要就是BGP优选,这块了解不是很深,可以参考[思科],也可以参考华为

第10章是BGP的各类定时器。

标签:BGP,状态机,状态,报文,UPDATE,RFC4271,---,OPEN
From: https://blog.51cto.com/basilguo/7178105

相关文章

  • 20天 hot 100 速通计划-day13
    回溯131.分割回文串给你一个字符串s,请你将s分割成一些子串,使每个子串都是回文串。返回s所有可能的分割方案。回文串是正着读和反着读都一样的字符串。示例1:输入:s="aab"输出:[["a","a","b"],["aa","b"]]示例2:输入:s="a"输出:[["a"]]提示:1&......
  • Kubernetes编程—— 编写 Operator 的方案 —— 2、基于 sample-controller
    编写Operator的方案——2、基于sample-controllerhttps://github.com/kubernetes/sample-controller 首先我们将基于k8s.io/sample-controller来实现cnat,通过直接使用client-go完成。 sample-controller使用k8s.io/code-generator来生成强类型的客户端、Infor......
  • 数论-同余与扩展欧几里得详解(附例题及代码)
    数论-同余与扩展欧几里得详解(附例题及代码)注意:这篇文章的信息量会有一点多,请耐心看完一.同余1.1同余的定义给定一个正整数m,如果两个整数a和b满足a-b能够被m整除,即(a-b)/m得到一个整数,那么就称整数a与b对模m同余,记作a≡b(modm)简单来说,对于x,y,若x%p=y%p,即x,y对于p的余数......
  • 数据治理专业认证CDMP学习笔记(思维导数据治理专业认证CDMP学习笔记(思维导图与知识点)-
    大家好,我是独孤风,一位曾经的港口煤炭工人,目前在某国企任大数据负责人,公众号大数据流动主理人。在最近的两年的时间里,因为公司的需求,还有大数据的发展趋势所在,我开始学习数据治理的相关知识。数据治理需要进行系统的学习才能真正掌握,也需要进行专业的考试认证才能证明自己在数据治理......
  • CSS基础-定位
    CSS中通常使用position属性,决定元素的定位方式。常用的定位方式通常有值意义relative相对定位absolute绝对定位fixed固定定位相对定位position设置为relative。相对定位是元素相对于自己原来的位置通过使用top、left等属性进行移动,使其显示在新的位......
  • Codeforces Round 893 (Div. 2) A-C题解
    CF893(Div.2)A.Buttons签到题。两人会优先选择c中的按钮来,避免自己的按钮消耗同时减少对方可选择的按钮。所以c%2==1等价于a的按钮数+1,c%2==0时相当于c按钮不存在,比较ab按钮的数量来得出答案即可。#include<iostream>usingnamespacestd;typedeflonglong......
  • kotlin协程异常处理之-CoroutineExceptionHandler
    转载请标明出处:https://www.cnblogs.com/tangZH/p/17307406.htmlkotlin协程小记协程的async使用kotlin协程异常处理之-trycatchkotlin协程异常处理之-CoroutineExceptionHandlerCoroutineExceptionHandler用于在协程中捕获异常。一、CoroutineExceptionHandler只能处......
  • 北大ACM poj3589 Number-guessing Game
    Number-guessingGameTimeLimit:1000MS MemoryLimit:65536KTotalSubmissions:5805 Accepted:4204DescriptionLarrylikesplayingthenumber-guessinggame.Twoplayersareneededinagame.SupposetheyareXandY,andXpresentsanumberforYtogu......
  • 北大ACM poj1002 487-3279
    487-3279TimeLimit:2000MS MemoryLimit:65536KTotalSubmissions:191845 Accepted:33280DescriptionBusinessesliketohavememorabletelephonenumbers.Onewaytomakeatelephonenumbermemorableistohaveitspellamemorablewordorphrase.......
  • SSO-Cookie介绍
    1.cookie是一个存储在客户端的字符串属性,可以用它对当前网页的cookie进行读,写,增,删等操作;javascript能够用document对象的cookie属性对cookie进行操作; 2.cookie的四个可选属性:2.1cookie的生存期属性:expires;默认情况下,cookie只在浏览器会话期存在.退出浏览器就丢失;......