HCIP的学习(16)

news2024/11/26 14:55:09

BGP的状态机

​ OSPF的状态机是在描述整个协议的完整工作过程,而BGP的状态机仅描述的是对等体关系建立过程中的状态变化。-----因为BGP将邻居建立过程以及BGP路由收发过程完全隔离

​ IGP协议在启动后,需要通过network命令激活接口,从而使接口具备处理IGP协议报文的能力。且network命令另一重含义就是发布路由,所以IGP协议无法将邻居建立过程以及路由收发过程隔离。

​ 但是BGP协议在启动后,每一个接口都具备处理BGP报文的能力,不需要其他任何操作,所以可以将邻居建立过程以及路由收发过程进行分割。

在这里插入图片描述

  • Idle----空闲状态
    • 等待网络管理员手工指定邻居信息,IP地址以及AS号
    • 当指定邻居信息后,会进入一个检查环节,需要检查手工指定的IP地址在本地路由表中是否可达,只有可达,才可以正常建立TCP会话,如果不可达,则邻居关系建立失败,停留在Idle状态。
  • Connect----连接状态
    • 该状态会开启一个连接重传定时器—32秒
      • 当该计时器时间超时,则本端重新发送一次TCP连接请求报文。在该时间段内没有收到任何一个回复报文。
    • 如果此时本地判断TCP状态进入到establish状态,则认为TCP连接建立成功,进入到opensent状态。
    • 如果此时本地收到的是拒绝报文,则认为TCP连接建立失败,进入到Active状态。
    • 如果BGP在连接重传定时器时间内,没有收到对等体的响应,那么BGP会继续尝试与对等体建立TCP会话,并一直处于该状态
  • Active----尝试状态
    • 第一次TCP会话建立失败,则进入该状态。
    • 如果建立成功,则进入opensent状态;如果建立失败,则停留在active状态。
    • 使用在connect状态开启的连接重传定时器来发送链接建立请求报文,当建立成功后,该计时器才会被关闭。
  • opensent状态
    • 本端处于opensent状态,然后对端刚从Idle状态变为Connect状态,对端重新申请建立连接,先发送RST报文(本端opensent状态不会变,除非对面发的是FIN报文),然后和之前一样,最后选择后建立的连接
    • 本地发送出open报文,同时也将收到对端发送的open报文,并予以回复。
    • 如果收到的open报文中的参数本端认可,则回复keepalive报文;否则回复notification报文。
    • 如果回复keepalive报文,则进入openconfirm状态;如果回复notification报文,则进入idle状态。
  • openconfirm状态
    • 等待对等体对于本地发出的open报文参数的回复。
    • 如果收到的是keepalive报文,则认为BGP会话建立成功,进入到establish状态。
    • 如果收到的是notification报文,则认为BGP会话建立失败,断开TCP连接,回到idle状态。
  • Establish状态----建立状态
    • BGP会话建立的标志
    • 在该状态可以发送除了open报文以外的所有BGP数据报文。
    • 一但接收到错误的keepalive报文或TCP的FIN报文,本端会发送notification报文,然后进入idle状态。

在这里插入图片描述

BGP的工作过程

  1. 基于IGP、静态、直连路由协议实现IP可达---->前置要求,不是BGP工作过程
  2. 启动BGP协议,并指定邻居关系。
    1. 邻居之间使用单播进行数据传输,通过三次握手,建立TCP会话通道。
    2. 之后所有的数据通讯均基于TCP会话通道来传输,并由TCP协议来提供传输的可靠性机制。
  3. 使用open报文和keepalive报文进行邻居之间参数的协商,以及对等体关系的建立。
    1. open报文用来携带参数信息
    2. keepalive报文用来进行参数确认
    3. 最终生成BGP邻居表
  4. 使用update报文来传输BGP路由信息。该信息中将携带前缀信息、前缀长度以及路径属性。
    1. 设备会将自己发送的以及收到的所有BGP路由信息记录在BGP路由表中。
    2. 设备会对比不同路由表单,将其中最优的路由信息加载到全局路由表中。
  5. 此时路由收敛完成,BGP对等体之间使用keepalive报文进行周期保活(可选)。默认为180S,可以设置为0关闭周期保活性质。
  6. 如果出现出错误,使用notification报文告警;如果出现结构突变,使用update报文进行增量更新。

BGP的防环

EBGP的水平分割机制

​ 专门为了解决EBGP对等体之间的环路问题

​ 通过AS_Path属性进行防环,该属性会记录下该路由信息所经过的所有AS的AS号。当设备收到一条路由信息时,会查看该属性内容,如果其中存在有与本地AS号相同的信息,则不接受该路由信息。

IBGP的水平分割机制

在这里插入图片描述

BGP规定:当路由器从一个IBGP对等体学习到某条BGP路由时,它将不能再把这条路由信息通告给任何IBGP对等体------IBGP水平分割机制

解决思路:

  1. 将原本的IBGP对等体关系替换为EBGP对等体关系----在同一个AS下--------联邦
  2. 手工设定让某台路由器将从IBGP学习到的路由信息传递给某个IBGP对等体-----路由反射器
  3. 构建全互联的IBGP对等体关系。----暂时常用。

BGP的路由黑洞

在这里插入图片描述

BGP同步更新规则----为了避免BGP路由黑洞问题

当一台路由器从自己的IBGP对等体学习到一条IBGP路由时,它将不能使用这条路由或者将这条路由通告给其他设备,除非他又从IGP协议中学习到这条路由信息------要求IBGP路由与IGP路由同步

华为与思科默认禁止使用该规则,华为不允许打开该规则,思科允许打开该规则

解决方法:

  1. 让两台运行BGP设备在物理或逻辑上直连
  2. 所有设备运行BGP协议----暂时最常用
  3. 将BGP路由引入到IGP中。
  4. MPLS----多协议标签交换----现网环境使用的解决方案

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1671444.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

运筹系列92:vrp算法包VROOM

1. 介绍 VROOM is an open-source optimization engine written in C20 that aim at providing good solutions to various real-life vehicle routing problems (VRP) within a small computing time. 可以解决如下问题: TSP (travelling salesman problem) CVRP …

三极管 导通条件

一、三极管理解 三极管是电子行业常用的元器件之一,他是一种电流型控制的器件,他有三种工作状态:截止区,放大区、饱和区。当三极管当做开关使用时,他工作在饱和区。下面简短讲解三极管作为开关使用的方法,只…

2025考研 | 北京师范大学计算机考研考情分析

北京师范大学(Beijing Normal University)简称“北师大”,由中华人民共和国教育部直属,中央直管副部级建制,位列“211工程”、“985工程”,入选国家“双一流”、“珠峰计划”、“2011计划”、“111计划”、…

C--贪吃蛇

目录 前言 简单的准备工作 蛇的节点 开始前 void GameStart(pSnake ps) void WelcomeToGame() void CreateMap() void InitSnake(pSnake ps) void CreateFood(pSnake ps) 游戏进行 void GameRun(pSnake ps) int NextIsFood(pSnakeNode psn, pSnake ps) void NoFood(pSnak…

whisper之初步使用记录

文章目录 前言 一、whisper是什么? 二、使用步骤 1.安装 2.python调用 3.识别效果评估 4.一点封装 5.参考链接 总结 前言 随着AI大模型的不断发展,语音识别等周边内容也再次引发关注,通过语音转文字再与大模型交互,从而…

ssm125四六级报名与成绩查询系统+jsp

四六级报名与成绩查询系统的设计与实现 摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对四六级报名信息管理混乱&am…

外卖 点金推广实战课程,2024外卖 点金推广全流程(7节课+资料)

课程内容: 外卖点金推广实操课程 资料 01 1-了解外卖.mp4 02 第一节:点金推广的说明.mp4 03 第二节:如何降低点金推广的成本,mp4 04 第三节:如何计算点金推广的流速,mp4 05 第四节:如何提升点金的精准度,mp4 06 第五节:点金推广实操,mp4 07 点金推广高级教程…

UE4_照亮环境_不同雾效的动态切换

一、问题及思路: 我们在一个地图上,经常切换不同的区域,不同的区域可能需要不同的色调,例如暖色调的野外或者幽暗的山洞,这两种环境上,雾效的选用肯定不一样,夕阳西下的户外用的就是偏暖的色调&…

基于微信小程序+JAVA Springboot 实现的【马拉松报名系统】app+后台管理系统 (内附设计LW + PPT+ 源码+ 演示视频 下载)

项目名称 项目名称: 马拉松报名系统微信小程序 项目技术栈 该项目采用了以下核心技术栈: 后端框架/库: Java SSM框架数据库: MySQL前端技术: 微信开发者工具、uni-app其他技术: JSP开发技术 项目展示 …

CANopen总线_CANOpen开源协议栈

CANopen是自动化中使用的嵌入式系统的通信协议栈和设备配置文件规范。就OSI 模型而言,CANopen 实现了以上各层,包括网络层。 CANopen 标准由一个寻址方案、几个小型通信协议和一个由设备配置文件定义的应用层组成。通信协议支持网络管理、设备监控和节点…

防火墙远程桌面端口号修改,通过防火墙修改远程桌面的端口号详细操作步骤

使用防火墙修改远程桌面的端口号是一项涉及系统安全和网络配置的重要任务。 以下是详细的操作步骤,旨在确保您能够安全、有效地完成此操作: 一、准备阶段 1. 了解默认端口号:远程桌面端口号通常是3389,这是一个用于远程访问和控…

springboot+vue+mybatis生活废品回收系统+PPT+论文+讲解+售后

该生活废品回收系统采用B/S架构、前后端分离以及MVC模型进行设计,并采用java语言以及springboot框架进行开发。该系统主要设计并完成了管理过程中的用户登录、个人信息修改、义捐活动、在线咨询、订单评价、废品订单、废品、回收再利用技巧、废品回收员、用户等功能…

幻兽帕鲁(公益入库)教程

先安装“SteamtoolsSetup”, 安装好桌面会出来个steam图标的。然后打开“幻兽帕鲁文件夹” 把那2个脚本拖进去那个steam图标。只要显示“已编译了1个Lua脚本”“已更新了1个清单文件”将在Steam重启后生效。然后退出steam,然后重启steam就可以了&#xf…

霍金《时间简史 A Brief History of Time》书后索引(I--L)

A–D部分见:霍金《时间简史 A Brief History of Time》书后索引(A–D) E–H部分见:霍金《时间简史 A Brief History of Time》书后索引(E–H) 图源:Wikipedia INDEX I Imaginary numbers Ima…

新消息:2024中国(厦门)国际义齿加工产品展览会

DPE2024中国(厦门)国际义齿加工产品展览会暨学术研讨会 2024 China (Xiamen) International Denture Processing Products Exhibition 时 间:2024年11月1-3日 November 1-3, 2024 地 点:厦门国际会展中心 Xiamen Int…

强化训练:day7(字符串中找出连续最长的数字串、岛屿数量、拼三角)

文章目录 前言1. 字符串中找出连续最长的数字串1.1 题目描述1.2 解题思路1.3 代码实现 2. 岛屿数量2.1 题目描述2.2 题目描述2.3 代码实现 3. 拼三角3.1 题目描述3.2 解题思路3.3 代码实现 总结 前言 1. 字符串中找出连续最长的数字串   2. 岛屿数量   3. 拼三角 1. 字符串…

LVGL移植到ARM开发板(GEC6818)

源码下载:点击跳转 下载好三个文件后,将其解压缩,并合到一个文件夹里面—— 1、修改 Makefile 删除 -Wshift-negative-value 2、修改 main.c 3、修改 lv_drv_conf.h 在lv_drv_conf.h文件屏幕驱动文件刚好与开发板LCD驱动文件一致&#xff0c…

轻松掌握RAID级别

一、官方说明: RAID(英文全称 Redundant Array of Independent Disks)翻译成中文(独立磁盘冗余阵列)。 RAID 是一种将多块独立磁盘,组成一组逻辑磁盘的技术。RAID 级别分为 0、1、3、5、6等,可…

算法设计与分析(超详解!) 第三节 贪婪算法

1.贪心算法基础 1.贪心算法的基本思想 贪心算法是从问题的某一个初始解出发,向给定的目标推进。但它与普通递推求解过程不同的是,其推动的每一步不是依据某一固定的递推式,而是做一个当时看似最佳的贪心选择,不断地将问题实例归…

软件测试面试题100题

一、测试理论 3.1 你们原来项目的测试流程是怎么样的? 我们的测试流程主要有三个阶段:需求了解分析、测试准备、测试执行。 1、需求了解分析阶段 我们的 SE 会把需求文档给我们自己先去了解一到两天这样,之后我们会有一个需求澄清会议, …