BGP知识点总结(一)
动态路由协议(工作范围)
1、自治系统内部的路由协议-IGP:工作在同一个AS内,主要用来发现和计算路由,为AS内提供路由信息的交换(ospf,rip,isis)
2、自治系统之间的路由协议-EGP:工作在AS和AS之间,着重于控制路由的传播和选择最优的路由,在AS间提供无环路的路由信息交换,BGP是EGP的一种。
自治系统定义:由同一个技术管理机构管理、使用统一选路策略的一些路由器的集合。
自治系统的编号范围(1~65535);公有编号(1~64511);私有编号(64512~65535)。
BGP特征(增强的距离矢量路由协议)
1、可靠的路由跟新机制
2、丰富的Metric度量方法
3、从设计上避免了环路的发生
为路由附带属性信息
支持CIDR
丰富的路由过滤和路由策略
增量更新计算
BGP路由的传递
因为要先建立TCP连接,所以两端的路由器必须知道对方的IP地址,可以通过直连端口,静态路由或者IGP学习。
BGP路由更新
传输协议:TCP,端口号179(目的端口号),源端口号随机产生(1024~50000).
无需周期性更新
路由更新:只发送增量更新
周期性发生keepAlive报文检测TCP的连通性
BGP报文类型
1、Open:负责和对等体建立连接
2、keepAlive:该消息在对等体之间周期性的发送,用以维护连接
3、Update:该消息被用来在BGP对等体之间传递路由信息
4、Notification:当BGP Speaker检测到错误的时候,就发送该消息给对等体
5、Router-refresh:用来通知对等体自己支持路由刷新能力
BGP报文头
1、Header
Marker(16B)
Length(2B)
Type(1B)
2、Message
3、Data
Open报文
Version(1B) #现在用的V4
My Autonomous System(2B) #我自己的AS号码
Hold Time(2B) #建立的时间,180S,超过180S,对等体down了。
BGP Identifier(4B) #router Id
Opt Param Len(1B)#可选字段
Optional Parameters(variable)
Open错误码
1 不支持的版本号
2 错误的对等体AS号
3 错误的BGPid
4 不支持可选参数
keepalive报文 #检测邻居状态,时间间隔60S,开始重置。
只有报文头
Marker(16B)
Length(2B)
Type(1B)
Update报文
Withdrawn Routes Length(2B)#承载不可达路由信息
Withdrawn Routes(可变长度) #承载不可达路由信息,IP地址前缀部分
PathAttribute Length(2B)
PathAttribute(可变长度)# 路径属性
Network Layer Reachability Information(可变长度)#可达信息
Notification报文
Error Code(1B)
Error SubCode(1B)
Data(可变长度)
Error Code 错误类型
1 消息头错误
2 OPEN消息超时
3 UPDATE消息超时
4 保持时间超时
5 状态机错误
6 终止
Router-refresh报文
AFI(2B)
Res.(1B)
SAFI(1B)
BGP协议的应用
1、通过TCP建立BGP连接,发送OPEN消息
2、连接建立后,如果有路由需要发送或路由发生变化时,发送UPDATE消息通告对端
3、稳定后要定时发送KEEPALIVE消息保持BGP连接的有效性
4、当本地BGP在运行中发现错误时,要发送NOTIFICATION消息通告BGP对等体
5、ROUTE-REFRESH消息来通告对等体自己支持路由刷新
BGP状态机(状态迁移)

BGP数据库
IP路由表(IP-RIB)
全局路由消息库,包括所有IP路由信息。
BGP路由表(Loc-RIB)
BGP路由信息库,包括本地BGP Speaker选择的路由信息
邻居表
对等体邻居清单列表
Adj-RIB-In
对等体宣告给本地Speaker的未处理的路由信息库
Adj-RIB-Out
本地Speaker宣告给指定对等体的路由信息库
BGP知识点总结(一)的更多相关文章
- BGP - 1,基本概念
1,BGP知识点 a)AS号:私有(64512-65535),公有(0-64511). b)什么时候使用BGP:有数据穿越本AS前往其他AS:本AS有多条到其他AS的连接:必须要做策略. c)BG ...
- BGP路由协议详解(完整篇)
原文链接:http://xuanbo.blog.51cto.com/499334/465596/ 2010-12-27 12:02:45 上个月我写一篇关于BGP协议的博文,曾许诺过要完善这个文档,但 ...
- 计算机网络及TCP/IP知识点(全面,慢慢看)
TCP/IP网络知识点总结 一.总述 1.定义:计算机网络是一些互相连接的.自治的计算机的集合.因特网是网络的网络. 2.分类: 根据作用范围分类: 广域网 WAN (Wide Area Networ ...
- TCP/IP网络知识点总结
学完了计算机网络是时候整理一篇总结了,温故知新.注意:这篇博客很长长长(2.5万字+50图). TCP/IP网络知识点总结 一.总述 1.定义:计算机网络是一些互相连接的.自治的计算机的集合.因特网是 ...
- ASP.NET Core 中的那些认证中间件及一些重要知识点
前言 在读这篇文章之间,建议先看一下我的 ASP.NET Core 之 Identity 入门系列(一,二,三)奠定一下基础. 有关于 Authentication 的知识太广,所以本篇介绍几个在 A ...
- ASP.NET MVC开发:Web项目开发必备知识点
最近加班加点完成一个Web项目,使用Asp.net MVC开发.很久以前接触的Asp.net开发还是Aspx形式,什么Razor引擎,什么MVC还是这次开发才明白,可以算是新手. 对新手而言,那进行A ...
- UWP开发必备以及常用知识点总结
一直在学UWP,一直在写Code,自己到达了什么水平?还有多少东西需要学习才能独挡一面?我想对刚接触UWP的开发者都有这种困惑,偶尔停下来总结分析一下还是很有收获的! 以下内容是自己开发中经常遇到的一 ...
- C#高级知识点&(ABP框架理论学习高级篇)——白金版
前言摘要 很早以前就有要写ABP高级系列教程的计划了,但是迟迟到现在这个高级理论系列才和大家见面.其实这篇博客很早就着手写了,只是楼主一直写写停停.看看下图,就知道这篇博客的生产日期了,谁知它的出厂日 ...
- lucene 基础知识点
部分知识点的梳理,参考<lucene实战>及网络资料 1.基本概念 lucence 可以认为分为两大组件: 1)索引组件 a.内容获取:即将原始的内容材料,可以是数据库.网站(爬虫).文本 ...
- DoraCMS 源码知识点备注
项目需要研究了下DoraCMS这款开源CMS,真心做的不错:).用的框架是常用的express 4 + mongoose,代码也很规范,值得学习. 源码中一些涉及到的小知识点备注下: https:// ...
随机推荐
- 大佬们的博客 && 友链
博客 1.https://wiki.kimleo.net/ 查组合子查到的,活化石级别 2.https://tech.meituan.com/ 美团博客,查函数式查到的,我还看过一篇讲aop的非常经典 ...
- Git-01 简要介绍
1 git简介 Git 是一个免费的.开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目. Git 易于学习,占地面积小,性能极快. 它具有廉价的本地库,方便的暂存区域和多个工作流分支 ...
- 【TS】class类和接口
class可以用来做数据的存储与回显,能将页面的数据分离出来并提取到class内,函数也可以抽离到class,实例化class进行调用.ts中的class类与js的class类基本相同,不同点在于ts ...
- 图说论文《LSM-based Storage Techniques: A Survey》
本文从 <LSM-based Storage Techniques: A Survey> 摘取部分图片,来介绍 LSM tree 的相关内容.详细内容请查看论文原文. in-place u ...
- noip2020模拟赛 背包 (knapsack)
题目 区间 \(01\) 背包 \(1 \le l_i \le r_i \le n \le 20000,1 \le q \le 100000,1 \le m_i \le 500, 1 \le w_i ...
- CCRD_TOC_2008年第4期
中信国健临床通讯 2008年第4期 目 录 类风湿关节炎 1. 大型系统评价分析:生物制剂与传统DMARD联用是MTX难治性RA患者的最佳治疗策略 Donahue KE, et al ...
- Oracle 账户【2023/2/5最新】
下载Oracle产品一般都需要登录Oracle账户才可以下载,这里提供一个账户方便大家使用,觉得有用的希望能点个小小的赞! 账号:191049742@qq.com 密码:1234qwerASDF!@# ...
- 流浪地球2:AI人工智能+数字生命+元宇宙
推荐:将 NSDT场景编辑器 加入你的3D开发工具链 剧情介绍 太阳危机 太阳即将老化膨胀,吞没太阳系,地球上的人类构思了各种生存计划:其一是"数字生命计划",该计划制造强大的 ...
- linux系统安装MySQL服务,详细图文教程
注:linux系统在安装操作系统时,如果选择了开发工具和兼容库后,一般默认都会安装MySQL服务的部分程序包.如果我们要自定义的安装全新的MySQL服务,就必须先把这些已经安装的程序包都卸载掉.否则, ...
- C# 属性空引用警告
whereExpression = whereExpression.And(u => u.ValueInterger.ToString() != null &&** u.Valu ...