BGP距离协议①

2023-11-13

边界网关协议:

边界网关协议分为内部网关协议和外部网关协议

        IGP:内部网关协议(RIP,OSPF)

        EGP:外部网关协议(BGP)

AS自治系统:

        由单一的机构/组织所管理的一系列IP网络及设备所构成的集合。使用AS自治系统来划分内部和外部网关协议

划分AS的原因:

        ①网络范围太大,协议收敛较慢

        ②自治管理

        为了方便对自治系统的管理,给每个自治系统设置一个号码(AS号:0-2^16)其中0和65535为保留,所以可以范围:1-65534,而其中64512-65534被设定为私有AS号,剩下的为公有AS号。而因为传统的AS号不够用,所以目前大部分设备均支持扩展AS号(32位二进制构成)。

重发布的问题:    

AS间相互获取路由信息可以使用重发布,但是以重发布存在有很多的问题:

        选路不佳:重发布导入路由时会刷新开销值

        ASBR的归属问题(ASBR保存两个AS区域的信息,且ASBR的维护成本较高)

BGP协议:

BGP协议是无类别的路径矢量协议(区别距离矢量链路协议)

        BGP的无类别表示的是传递路由信息携带子网掩码

        而BGP的路径矢量性体现在:

        ①距离矢量中的距离指的是协议将一个路由器作为一跳来计算开销路径矢量是以一个AS作为一个单位来传递信息的

        ②距离矢量型协议是根据算法来区分,BGP不存在算法的概念,因为BGP不需要去计算路由,只需要将现有路由传递到自己的邻居即可

目前在IPV4环境下主要使用BGPV4,也存在BGPV4+(在BGPV4的基础上,支持多种地址族)

BGP的评判标准:

IGP的评判标准是参考选路,收敛,占用资源

相比之下EGP的评判标准则更加的简单:        

        ①可控性:AS区域之间需要传递大量的路由信息(包含了一个AS的所有路由信息),所有需要EGP可以方便的干涉选路,更容易做策略,以弥补重发布的不足

        为了保证路由传递的可控性,更方便干涉选路,BGP舍弃了开销值,取而代之的是为他选路信息设计了很多路径数据。可以通过属性进行选路,使得选路更加灵活,可控性更高

        ②可靠性:BGP为了保证传输的可靠性,选择使用TCP协议作为传输层协议来完成数据传输与接收。BGP使用的是TCP的179号端口

        而使用TCP协议通讯存在传输效率较低且只能实现单播通讯(TCP需要建立会话),占用资源大的问题,而且使用TCP便不能通过广播和组播去发现邻居进行通信(BGP需要手工建立邻居关系)

        ③AS-BY-AS:BGP将作为一个单位(BY)来看待,并且BGP不支持负载均衡

BGP的对等体:

        BGP协议可以实现非直连建邻,非直连建邻的前提条件是邻居双方网络可达(BGP的非直连建邻是建立在IGP的基础上)

        而可以根据邻居关系(对等体)的建立情况,将BGP的邻居关系分为两种(AS之间,AS内部)

        ①AS之间:EBGP对等体(建立对等体的两台路由器位于不同AS中,则他们的关系被称为EBGP对等体关系)

        ②AS内部:IBGP对等体(建立对等体的两台路由器位于同一个AS中,则他们的关系被称为IBGP对等体关系)

        EBGP对等体之间的一般采用直连建邻的方式,使用EBGP的TTL为1,IBGP对等体之间需要非直连建邻,所以IBGP对等体之间的TTL为255。

        如果EBGP对等体之间需要非直连建邻,则需要手工修改TTL    (非直连建邻的前提条件是邻居双方网络可达)

BGP的数据包:

        BGP的数据包和OSPF的数据包类似,但是又不同,首先OSPF的hello包有周期发现,建立和保活邻居关系的作用,在BGP中,也使用了类似open包和keep包来模拟hello包的作用。

        在BGP中由手工指定邻居关系来完成OSPF的邻居发现的任务,在BGP中由OPEN包来表示邻居关系建立的任务,在BGP中由Keeplive包来进行邻居的保活任务(相当于模拟了hello包)

        BGP的数据包是在TCP连接建立下进行传输的 

Open包

        Open包主要用来建立邻居,而建立邻居关系需要几个确认(AS号,认证,RID),只有这三样相同才能建立起邻居关系。OPEN包中也会携带自身是否支持路由刷新,路由纠错等功能的相关参数,然后在邻居双方进行协商,如果双方都支持则开启相关功能

        ①AS号:在手工建立邻居关系时,声明的邻居的AS号,对端收到后,会检查其是否和本地AS号一致,一致则正常建立邻居关系(对等体)

        ②认证:BGP也可以在建邻时做认证,需要比对双方的认证口令,不一致则无法建立邻居关系(对等体)

        ③Route-ID:主要为了区分和标定路由器。open包携带RID的目的是为了确保双方的RID不一致(确保其唯一性,如果相同则无法建立邻居关系),主要作用在域内建立对等体

        RID是由32位二进制构成,并且遵循IP地址的格式,可以通过是手工配置和自动获取。BGP会先在自己的路由器的环回接口中选择最大的IP地址作为RID,如果没有环回接口则再物理接口中选择IP地址最大的作为RID

        在接受邻居数据包时,其中的源ip必须和手工指定的邻居的ip地址一致才可以正常建立邻居关系(这个地址将作为之后的更新源地址)

        OPEN包在建立邻居关系的时候会携带保活时间(hold time)这个参数默认为180s(双方建邻时携带这个值,但并不要求必须相同),但是在BGP传输执行时,必须相同(选择保活时间较小的作为执行时间)。若180s内收到对方发送的Keeplive包/Update包,则会刷新计时器;若收不到则判定BGP链接中断(此时会中断TCP连接)

Keeplive包

        Keeplive包主要就是周期保活TCP会话,不需要携带太多的参数。Keeplive包还有一个作用就是在接收到对方发送的OPEN包后,临时充当确认包的作用。目的:用来确认OPEN包的数据参数,如果认同对方的参数则回复keeplive包进行确认    

        keep包的发送周期为1/3的hold time (hold time默认180s)

Update包

        Update更新包,携带路由信息的数据包(包括目标网段,子网掩码信息,以及BGP的各种属性)

        在UPdate包中存在有撤销路由字段,可以在直接不可达的路由信息放在该字段下进行通告,以达到传递失效信息的目的,而不会RIP一样带毒传输(占用路由资源)。

Notification包

        BGP数据包中的一个告警机制(错误检查包)

        当BGP检测到一个错误的时候,他将会用这个包进行告警,告知对端错误点在哪

Route-refresh包

        不常用,用于改变路由策略后请求对等体重新发送路由信息

        前提要求对等体双方均支持路由刷新

BGP的状态机:

        BGP的状态机只是描述BGP对等体建立过程中的状态变化。BGP可以做到建立邻居关系和发布路由分开完成(不同于OSPF)

IDLE状态(空闲状态)  

        一开始启动BGP之后,会先处于IDLE状态,之后手工指定邻居关系

        当手工指定好邻居之后,BGP将会先开启检查步骤。将需要确认指定的IP地址在本地路由表中是否路由可达。如果可达,则开始尝试建立TCP会话,并进入下一个状态;如果不可达,则停留在IDLE状态。

connect状态(连接状态)  

        进行TCP会话的连接状态。如果TCP建立成功则进入OPENsent状态;如果TCP建立失败则停留在Active状态

        在建立TCP会话连接时,双方都会尝试连接,一方建立成功则将创建一个双向的TCP通道;双方都建立成功则会出现两个双向通道。需要关闭其中的一个TCP通道,而通过OPENsent状态发送OPEN包,并通过比较其中携带RID,仅保留RID大的一段发起的TCP连接,而RID小的一段发起的TCP通道将会被断开

Active状态

        这个状态代表着TCP连接没有建立成功,双方会不断尝试进行TCP连接

OPENsent状态(开始发送状态)

        邻居开始互相发送OPEN包,包中携带建立邻居关系所需的参数。当收到对端发送的OPEN包,将进行参数效验和检测,如果参数没有问题则会回复一个keeplive包作为确认,此时进入openconfirm状态

OPENconfirm状态(open确认状态)

        对端收到本端的OPEN包,在确认参数无误后,则发送keeplive包进行确认。此时则代表双方的OPEN包中的参数都确认无误就进入Established状态(open包中的参数协商完成)

Established状态(建立完成状态)

        标志对等体建立完成

 BGP的工作过程:

        首先BGP路由器会先查看AS区域内的IP内容是否可以到达。

        然后会在邻居BGP上指定对应邻居关系(IP地址),邻居间通过IP地址建立TCP会话通道。BGP之后发送的所有数据包都是通过TCP会话通道发送,来保证其传输的可靠性的。在TCP连接建立完成后,BGP会使用OPEN报文和keeplive报文进行邻居关系的建立,并生成一个BGP邻居表。BGP路由器之间使用Update报文共享路由信息,信息中携带目标网络号,掩码信息及各种属性;然后BGP会将收集和发送的所有路由信息记录在一张表中:BGP表。之后,再将BGP表中的最优路径加载到路由表中。(到达同一个目标网段可能收到多条路由信息,BGP仅加载一条(BGP不存在负载均衡)最优路径,最优路径是通过属性来选择的)。此时BGP路由信息收敛完成,将使用keeplive包进行邻居间的周期保活,默认保活时间为180S,周期发送时间为60S。邻居间若出现错误信息,将使用notification报文进行告警。若AS内发生结构突变,则将直接发送UPdate报文进行触发更新。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

BGP距离协议① 的相关文章

  • 【HTML】前端必须要知道的html中的meta标签,有哪些属性?

    概览 meta标签一般放在整个html页面的head部分 是在head区域中的一个辅助性标签 不包含任何内容 用于提供有关页面的元信息 比如针对搜索引擎和更新频度的描述和关键词 meta标签的属性定义了与文档相关联的名称 值对 在MDN中对
  • MicroPython基础知识总汇

    MicroPython的系统结构 MicroPython系统的经典结构由三部分组成 分别是微控制器硬件 MicroPython固件 用户程序 MicroPython支持的其它类型开发板 需要自己编译源代码 产生固件 并将固件下载到微控制器中
  • 计量模型、实证stata代码合集,附顶刊示例

    超强整理 计量实证常用代码合集 1 指标说明 包含以下资料 中介效应 三步回归 Sobel检验 Bootstrap自抽样检验 Heckman两阶段回归结果 分组回归 组间系数检验 工具变量回归模型 2SLS模型 调节效应 包含画图分析 中位
  • 结构体与函数

    1 结构体 1 1 为什么有结构体 数组只能存储相同类型数据项的变量 实际生活中一类物体的各个数据参数类型大概率不相同 结构体使我们描述物体更加全面准确 1 2 什么是结构体 结构体是一种用户自定义的可用的数据类型 它允许用户存储不同类型的
  • 阿里云智能编码插件,Cosy文档搜索上新了

    大家好 我们来自阿里云云效代码团队 上一集我们说到 我们的星辰大海是打造最Cosy的开发体验 更早下班 历时一个月我们功能上新了 为了和这样的情况 Say Bye Bye 我们推出了 全新参考文档功能 1 IDE内置社区问答搜索 Cosy侧

随机推荐

  • 2. SQL——DataGrip DML “表 ”中字段数据 更新(修改)与删除

    update student xingx xi set name 傻狗 where id 1 1 将ID为1的字段中的name属性值改为 傻狗 update student xingx xi set name 傻猪 age 3 xb 女 w
  • RISC-V指令集

    1 寄存器 RV32I有32个通用寄存器 以及一个PC寄存器 其中有一个通过硬件设置的值恒为 0 的 x0 寄存器 注 RISC V的32个寄存器x0 x31是用0 31这些数字来表示 2 基础指令 RISC V有六种基本指令格式 每个字段
  • D - Association for Control Over Minds(Kattis - control )

    You are the boss of ACM Association for Control over Minds an upstanding company with a single goal of world domination
  • java win10窗口启动假死_window执行jar包会出现假死现象解决

    windows jar包启动的几种方式介绍 java jar xxx jar jar包的路径 最普通简单的方式 通过windows的命令行窗口启动 并在命令行窗口运行 输出 可以在启动的时候增加参数指定启动的端口 server port 8
  • 阿里云服务器安装Nginx

    阿里云服务器安装Nginx 使用远程连接工具 我用的时Xshell 连接到我的阿里云服务器 安装nginx之前要安装需要的依赖 pcre zlib openssl 分别官网下载 下载时最好都下载 tar gz结尾的 方便后面安装 1 在Xf
  • Nginx前后端分离部署配置

    今天在虚拟机上尝试前后端分离式部署调用 记录下配置过程 1 前端打包 npm run build 会在项目根目录下生成一个dist的文件夹 这里我把dist下的文件及目录放在虚拟机 usr local src html位置 2 后端打包简略
  • Doris-07-索引的详细介绍(前缀索引、Ordinal索引、Zone Map索引、Bitmap索引、Bloom Filter索引、NGram BloomFilter索引、倒排索引)

    文章目录 索引 介绍 前缀索引 索引生成 查询过滤 Ordinal 索引 索引生成 查询过滤 Zone Map 索引 索引生成 查询过滤 Bitmap 索引 索引生成 查询过滤 适用场景 Bloom Filter 索引 索引生成 查询过滤
  • 设置myeclipse中.properties文件的编码方式

    打开myeclipse的 Window gt Perferences gt General gt Editors gt Context Types 或者 Window gt Perferences gt General gt Context
  • fluuter 包管理

    在pubspec yaml文件中 dependencies 字段下添加开发依赖 然后 运行 flutter pub get 获取依赖包
  • 编译 openwrt 及初始配置-及部分排错

    主机为 ubuntu 14 x64 硬件 优酷土豆宝 cpuMT7620A 内存128M flash 32M 有2个源 用哪个也可以 git clone https github com openwrt openwrt git git cl
  • baidu apollo(1)—启动环境分析

    apollo平台 1 5 目前是基于ros框架来实现 外围丰富了各种自己的感知 认知 决策 规划模块 docker 环境配置 bash docker scripts install docker sh install docker sh主要
  • Linux指令学习(CentOs6.5)tail指令

    本文转载至 CentOS里tail命令详解 tail 名称 tail output the last part of files 输出文件最后的那部分内容 功能描述 tail命令从指定点开始将文件写到标准输出 使用 f选项可以方便的查阅正在
  • 基于YOLOv7的室内场景智能识别系统(源码&教程)

    1 项目背景 近年来 随着移动互联网与定位技术的发展 基于位置服务越来越多地出现在人们的日常生活中 虽然智能手机都包含很多基于位置服务的应用 但是传统的基于位置服务常常将服务范围划分为室内与室外两种场景 室内外无缝定位系统是人们关注及研究的
  • STM32CubeMX配置GPIO外部中断

    前言 用PA0来检测按键的输入信号 当按键按下时会由低电平变为高电平 1 配置RCC时钟 将RCC的High Speed Clock HSE 配置为Crystal Ceramic Resonator 将主频设置为72MHz 2 配置GPIO
  • 将Qt、OpenGL、GLSL以及Qt的Graphics-View框架组合

    将Qt OpenGL GLSL以及Qt的Graphics View框架结合 将Qt OpenGL GLSL以及Qt的Graphics View框架结合 九月份都快过去了 学生们也都开学了 我想校园也会热闹许多吧 在希赛上也相应地热闹了一些
  • nginx--启动脚本

    bin bash Use Startup script for the nginx HTTP Server Definition Global environment variable IFS t n unset f unalias una
  • 瞎玩物联网系列--Hello 树莓派

    条件 Raspberry Pi 3b 32G存储卡 mac 网线 面包板 led灯 杜邦线 传感器若干 系统安装 各种下载 官方镜像下载 树莓派实验室地址 刻录工具 etcher Microsoft Remote Desktop for M
  • 二叉搜索树的定义、查找、插入和删除

    二叉搜索树的定义 查找 插入和删除 原创 2016年07月21日 21 59 00 二叉搜索树的定义 二叉搜索树 也称有序二叉树 排序二叉树 是指一棵空树或者具有下列性质的二叉树 1 若任意节点的左子树不空 则左子树上所有结点的值均小于它的
  • 不用swap分区,用交换文件(转)

    不用swap分区 用交换文件 转 more 安装linux时 一般系统都要求划分一个分区作为交换分区 但现时大家的电脑内存一般都很大 系统交换文件的机会会越来越少 就以我的来说 本人安装的是redhat linux V7 3 内存是256M
  • BGP距离协议①

    边界网关协议 边界网关协议分为内部网关协议和外部网关协议 IGP 内部网关协议 RIP OSPF EGP 外部网关协议 BGP AS自治系统 由单一的机构 组织所管理的一系列IP网络及设备所构成的集合 使用AS自治系统来划分内部和外部网关协