当前位置: 首页 > news >正文

BGP学习一:关于对等体建立和状态组改变

目录

一.BGP基本概念

(1).BGP即是协议也是分类

1.早期EGP

2.BGP满足不同需求

3.BGP区域间传输的优势

(1)安全性——只传递路由信息

(2)跨网段建立邻居

4.BGP总结

5.BGP的应用

(1)大企业内部互通

(2)运营商网络(大骨干区域)

二.BGP特点

三.BGP对等体关系

(1).对等体类型

(2)建立Peer关系报文学习

1.Open报文

(2)

2.BGP Update

3.TCP连接接口源地址

四.BGP报文

1.BGP Header——BGP报文头部

2.BGP Packet——报文类型

(1) Open报文参数

(2).BGP Update

(3).Notification

(4)Keepalive

(5).Router—refresh

五.BGP状态组

(1)BGP不同状态

1.Idle

2.connect

3.Established

(2)BGP状态组如何改变

connect有3种可能

actvie有两种状态


一.BGP基本概念

(1).BGP即是协议也是分类

路由协议分类

那么我们可以发现,按照工作区域BGP是属于EGP,但按照工作机制,BGP好像不属于任何类型。那么我们可以了解到,BGP是一个全新的协议。

1.早期EGP

早期EGP在AS间动态传递路由信息(BGP可以看作是EGP的进化体)。哎,RIP也是传递路由信息,RIP是距离矢量路由信息。

BGP是路径矢量路由协议,不仅是协议,也是一个类型。

2.BGP满足不同需求

早期EGP只传递路由信息,产生次优路径问题不同的网络有不同的需求,如视频要求时延低,传输文件要求带宽高,EGP不能满足根据不同需求筛选不同网络的需求。

BGP代替EGP,加入很多路径属性,如COST,优先级,掩码,路由来源信息。可以筛选出更能满足需求的路径。

3.BGP区域间传输的优势

(1)安全性——只传递路由信息

OSPF传递,会传递路由信息和拓扑信息,使其他区域网络学习到自己区域的内部网络,不安全

BGP只传递路由信息,其他区域不能学习到自己区域的内部网络,而且BGP因为路由属性多,还可以进行筛选,只传想传的。

(2)跨网段建立邻居

OSPF,ISIS建立邻居时,只能与直连网络建立,而且接口的IP地址/掩码必须属于同一网段

BGP只要可以Ping通就能建立邻居

4.BGP总结

(1)BGP封装在传输层TCP协议中,只要能Ping通就能建立邻居

(2)BGP只传递路由信息,不暴露AS内拓扑

(3)触发式更新(根据路由变化更新),不是周期性更新

5.BGP的应用

(1)大企业内部互通

总部分支互联,专线或运营商

(2)运营商网络(大骨干区域)

二.BGP特点

1.BGP使用TCP三次握手(179端口)建立邻居关系,用自己随机端口向对方TCP179发起三次握手,触发式更新

2.BGP承载大量路由信息,百万级别,ISIS十万,OSPF万级别

3.有丰富的路由策略,路由属性多。

三.BGP对等体关系

BGP对等体类似于邻居关系。

(1).对等体类型

(2)建立Peer关系报文学习

1.Open报文

先BGP使能,TCP3次握手(双向),有两个邻接关系,选择Router ID大的保留

open报文用来协商参数。

(2)

2.BGP Update

与对等体建立无关,触发式更新,第一次建立会发,主要是更新BGPLSBD信息

Withdrawn routes(第2个) :不可达路由信息

path attribute(第4个):路由属性,TLV三元组构成

NLRL(最后一个):可达路由信息

3.TCP连接接口源地址

BGP通过TCP3次握手建立连接,自己随机端口向对方TCP179发起三次握手,触发式更新。

那么这个随机端口就是TCP连接接口源地址,一般会选择出接口的IP地址,那么问题来了

假设BGP建立场景是这样

R1向R3发起3次握手,各个物理链路都可以使用,当R2路由器故障时

可以看到,与R2连接的对端接口也down掉了

那么TCP无法正常建立连接。

我们就可以使用环回地址来发起TCP3次握手,这样比较稳定。

EBGP通过直连方式建立连接,AS单链路,环回口没那么重要。

四.BGP报文

1.BGP Header——BGP报文头部

只有3个参数

Marker:没那么重要,全为1

Length,Type:报文类型

2.BGP Packet——报文类型

我们上面已经提到了关于Open :维持对等体关系,keepalive :维持对等体关系,update.:与维持对等体关系无关。

(1) Open报文参数

version:BGP版本,已经更新到BGP 4,现在常用的是GBP 4+

MY Autonomous System用于区分是IGBP/EBGP

Hold Time可以看作是死亡时间,一般为180S,Keepalive用于维护邻接关系

BGP Identifier:要保证ROuter ID不冲突

(2).BGP Update

Withdrawn routes(第2个) :不可达路由信息

path attribute(第4个):路由属性,TLV三元组构成

NLRL(最后一个):可达路由信息

(3).Notification

:差错报文,终止对等体

(4)Keepalive

参数与BGP报文头部一样

Marker:没那么重要,全为1

Length,Type:报文类型

(5).Router—refresh

路由刷新,重新请求update报文

AFI:地址族标识,IPV4                       Res,全为0             SAFI:子地址族

五.BGP状态组

(1)BGP不同状态

1.Idle

初始状态

2.connect

连接状态,正在进行TCP连接

3.Established

3次挥手成功,开始update报文,触发更新

(2)BGP状态组如何改变

connect有3种可能

1.成功TCP3次握手,进入opensent

2.对端没收到3次握手,重复TCP,进入active状态

3.对端拒绝TCP3次握手,回到Idle状态

actvie有两种状态

1.重新发送TCP,对端收到,顺利进入opensent

2.重新发送又没收到TCP握手,回到connect

其他的就只有两种可能,成功顺利进行下一阶段,被拒绝回到Idle状态

BGP状态组非常重要,要记住哦,也可以像我一样,自己画一下过程,很方便记忆

现在附上华为教材中的BGP状态机改变的图

http://www.lryc.cn/news/347992.html

相关文章:

  • ETL工具kettle(PDI)入门教程,Transform,Mysql->Mysql,Csv->Excel
  • 常见地图坐标系间的转换算法JavaScript实现
  • 基于python的大麦网自动抢票工具的设计与实现
  • 2024年5月树莓集团快讯
  • 网站localhost和127.0.0.1可以访问,本地ip不可访问解决方案
  • Docker Dockerfile如何编写?
  • Python数独游戏
  • 24 | MySQL是怎么保证主备一致的?
  • 2.数据类型与变量(java篇)
  • QT设计模式:桥接模式
  • 简单粗暴的翻译英文pdf
  • UDP和TCP协议比较,TOE技术
  • 第十三节 huggingface的trainner解读与Demo
  • GO: json 处理
  • HarmonyOS开发案例:【生活健康app之实现打卡功能】(2)
  • Mockito框架,帮助创建模拟对象进行测试的利器
  • Spring Boot的工作原理
  • 单点登录和统一身份认证的区别
  • 革新机器人任务规划:TREE-PLANNER引领高效、准确的机器人动作生成新趋势
  • 【数据分析面试】42.用户流失预测模型搭建(资料数据分享)
  • 5.13号模拟前端面试10问
  • 学习使用jQuery将光标移动到textarea的末尾
  • 【送书福利第七期】你好!Java(文末送书)
  • 申贷时,银行级大数据自己能查到吗?
  • 【SVN-TortoiseSVN】SVN 的简介与TortoiseSVN 安装使用教程
  • 5.13学习日志
  • 8种常见的CMD命令
  • 版本控制工具之Git的基础使用教程
  • 五子棋对战(网页版)
  • 在 Ubuntu系统中,可以使用以下几种方法查看网络速率