BGP简介

目录

BGP简介

BGP协议的关注点

BGP的数据包

BGP的状态机

BGP工作过程

BGP的路由黑洞

BGP的防环机制——水平分割

BGP的基本配置

BGP的路由聚合

BGP的路由反射器

BGP的联邦​​​​​


BGP——边界网关协议

在介绍BGP之前我们首先回顾一下AS

AS——自治系统——由单一机构或组织管理的一系列IP网络及其设备的集合

特点:

1.网络范围太大,协议运行繁忙,需要进行划分

2.自治管理

为了方便区分和标定不同的AS,我们给每个自治系统设计了一个编号——AS号——16位二进制

AS号取值范围<1-65534> 其中64512-65534称为私有AS号

这个取值范围存在不够用的问题,所以目前也存在拓展版的AS号——32位构成

大的EGP协议包括BGP,BGP的前身是小的EGP,目前AS之间使用最广泛的就是BGP协议

因为小的EGP功能优秀,后来在其基础上进行优化和改进,生成现在的BGP协议

在目前的IPV4环境下,使用最广泛的BGP版本是BGPV4,目前市场上已经存在BGPV4plus——MPBGP(多协议BGP版本,可以支持多重地址簇使用)

在没有BGP协议的情况下,也可以实现AS之间的路由信息的共享,

但之所以不采用的原因

1.重发布技术存在缺陷——在多点重发布当中,因为种子度量值的问题,必然造成选路不佳

2.ASBR设备的归属问题

BGP之间传递路由信息的方式和RIP相似,通过传递路由条目来时间

之所以不使用拓扑信息,因为:

1.拓扑信息资源占用量太大,而BGP要传递的数量是巨大的

2.拓扑信息将暴露AS内部的拓扑链接情况

BGP——无类别的路径矢量型协议

Rip的距离矢量型协议

距离矢量和路径矢量简单介绍区分

距离矢量——在距离矢量协议当中,距离是开销的体现,将跳数作为开销值的评判标准,将一个路由器看做一个单位计算距离,距离矢量是算法的概念,因为IGp协议本身需要通过计算出位置网段的路由信息

路径矢量——将一个AS看做一个整体,路径矢量不牵扯算法,因为BGP仅仅是将IGP计算出的路由信息发送发其他AS之中,相当于仅将现成的路由进行传递而不进行计算

BGP协议的关注点

1.可控性——AS之间需要传递大量的路由,需要更方便的干涉选路,更容易做路由策略

为了保证可控性——BGP舍弃了开销值,BGP给每条路由信息附加了很妒忌路径属性,

之后可以通过这些属性来选路,因为多种属性的存在,将导致选路变得更加的灵活方便

使得BGP协议具有强大的可操控性

因为BGP协议需要传递大量的路由信息,所以,它不可能存在周期更新机制,仅存在出发更新

2.可靠性——需要保证数据传输的可靠性,BGP为了保证传输的可靠性,其传输协议直接选择了TCP协议,使用TCP协议的179号端口进行工作

IGP不选择使用TCP的原因

1.TCP传输效率低

2.TCP传输占用资源大

3.TCP协议只能实现单播,所以无法通过组播或者广播的形式发送,

则将导致IGP协议无法自动发现邻居,只能手工指定

因为BGP选择使用的是TCP协议,所以,BGP需要手工建立邻居关系

BGP因为传输层使用的TCP协议,所以只要在TCP'协议可以正常建立会话的基础上可以完成BGP的建邻工作——BGP支持非非直连建邻(网络可达)——BGP的非直连建立在IGP(静态也可)之上

在BGP中我们将邻居关系称为对等体关系,(因为个人习惯所以还是喜欢叫做邻居)

EBGP对等体关系

EBGP对等体关系——如果建立对等体关系的两台路由器位于不同的AS当中,则他们的关系被称为EBGP对等关系(EGBP一般直连建立,所以对等体之间发送的数据包的TTL值设置为1,如果需要进行非直连建邻那么需要手工设置TTl)

IBGP对等体关系

IBGP对等体关系——如果建立对等体的两台路由器位于同一个的AS当中,则他们的关系被称为IBGP对等关系(非直连建立,一般TTL设置为255)

3.AS-BY-AS——在BGP当中,我们将一个AS看做一个整体

在BGP协议当中不支持负载均衡,而会通过路径属性来选择一条最优的加载到路由表中

BGP的数据包

BGP协议所有数据包的传输可靠性均由TCP协议来抱枕,所有BGP数据包均基于TCP建立的会话通道发送

对比OSPF

OSPF的hello包——周期性的发现,建立和保活邻居关系

在BGP中,发现邻居关系的过程变为由人手工指定,主要因为iTCP协议需要建立会话通道,之后才会基于通道发送数据包

1.OPEN包——建立BGP对等体关系——邻居关系的建立无非就是参数协商的过程,BGP建立对等关系需要通过open包来携带参数,进行比对协商

AS号——在创建对等关系时,需要指定对等体所在的AS号,这个参数将被携带在open报文中,

对方将比对这个AS好和本地所在的AS号是否一致,如果一直,则可以正常建立对等关系

认证——BGP建邻也可以做认证,做完认证后,open报文将携带认证口令,认证口令双方要比对

一致则可以正常建立邻居关系

RID——----区分和标定路由器——32位二进制构成,以IP地址的格式表示

同样的,它也可以手工配置

如果是自动获取的话,先看设备是否有环回接口,有的话RID=环回接口IP地址最大者

如果没有环回接口,啧再物理接口汇总选择ip地址最大的作为RID

对端会检测RID,如果和本地的RID不同,则将可以正常的建立邻居关系

手工建立邻居关系的时候所指定的建邻的ip地址必须和收到的数据包中的源ip地址相同才能正常建立对等关系,否则对等关系建立失败

Holdtime——保活时间——默认为180S,在这个时间内,如果没有收到对方发送的keeplive包或者updata包,则将端来BGP邻居关系,这个参数在open报文中会被携带,但是双方的值不一致不会影响邻居关系的建立,但是再执行是,这个时间必须是一致的,会采用双方中较小的保活时间来使用

路由器是否支持刷新功能也将成为open报文中所携带的一个协商参数

2.keeplive包——周期保活——周期发送时间等于保活时间的1/3,默认保活时间180S,则默认的发送周期为60S

除了保活之外keeplive包还在open报文协商参数是临时充当确认包的作用

TCP协议进行确认的目的是为了保证数据传输的可靠性,而keeplive报文确认的是为了确认认可对方发送的open报文的参数

3.updata包——更新包——携带需要传输的路由信息的数据包,表示一条路由条目信息

需要携带的参数主要就是目标网络号和子网掩码信息,以及路径属性

在更新包中存在一个撤销路由条目的字段,在这个字段下的路由条目将需要对端删除而不在需要通过带毒传输的方式来表达

4.notification包——BGP中设计的一个告警机制

5.route-refresh包——用于改变路由策略变更后请求对等体重新发送路由信息(需要双方都支持路由刷新)

BGP的状态机

BGP的状态机描述的是BGP对等体的建立过程中状态的变化,因为BGP这个协议可以将邻居建立过程和路由收发过程分开进行

BGP状态机——六种

1.IDLE——空闲状态

路由器启动BGP进程之后,将处于IDLE状态,当你手工指定邻居关系后,BGP将进入到一个检查环节(一个动作),检查指定的ip地址在本地的路由表中是否可以到达,可达,则将进入下一个状态——connect

2.connecti——连接状态,该状态完成TCP会话的建立。

如果TCP会话建立成功,则将进入到opensent状态,发送open报文

如果TCP会话建立失败,则进入active状态,尝试重新建立tcp会话

在建立TCP会话过程中,隐双方都会主动发起建立会话过程而最终建立的都是双向的一个会话,所以最终只需要保持一个会话通道即可。选择方式是通过后续open报文中的RID进行比较,选择保留RID大的设备发起TCP会话

3.opensent

发出本地的open报文,收到对端发送的open报文,查看里面的参数,之后确认参数无误,之后将恢复keeplive报文作为确认

4.openconfirm——open报文确认状态

——等待对端的keeplive确认报文,如果确认无误进入establish状态

5.establish——建立状态——标志着对等体关系的建立

BGP工作过程

1.基于IGP实现IP可达

2.指定邻居关系,通过三次握手,建立TCP会话通道,之后所有的BGP数据都将基于TCP会话通道来传递

3.使用open报文和keeplive报文进行邻居关系的建立,之后将邻居干洗收集到一张表中——邻居表

4.通过update报文传递路由信息。传递的路由条目信息中主要包含目标网络号,掩码信息,以及各种路径信息,之后设备会降所有自己发出的以及收到的路由新消息记录在一张表中——BGP表

5.之后将BGP表中最优的路径加载到——路由表中

6.收敛完成之后,BGP将周期使用keeplive报文进行保活

7.若出现错误信息,将使用notification报文进行告警

8.若发生结构突变,则将使用update报文进行触发更新

BGP的路由黑洞

由于BGP协议支持非直连建立,可能会出现BGP协议跨越未运行BGP协议的路由器,导致BGP路由传递后,控制层面可达,但是数据层面在经过未运行BGP协议的路由器上时无法通过,形成路由黑洞

解决方法

1.将BGP的协议的路由信息重发布到IGP当中——但开销值规则不明,占用资源大

2.直接再未运行的BGP协议的路由器上运行BGP协议

3.MPLS技术

同步机制

为了避免路由黑洞的情况产生,BGP提出了同步机制——及当一台路由器从自己的IBGP对等体学习到一条BGP路由时,他将不能吧他桐高给自己的EBGP对等体,除非他又从IGP协议当中学习到这条路由

BGP的防环机制——水平分割

1.EBGP的水平分割——一种专门应用在EBGP对等体之间,用来解决EBGP之间可能出现的环路问题

AS PATH——记录AS路径的一个属性——用于水平分割和

BGP将会在路由条目中记录所经过的AS编号,也就是AS PATH,

接受到的BGP路由条目中,其中的AS_PATH属性中,如果存在本地的AS号,则将拒绝接受

2.IBGP的水平分割——一种专门应用在IBGP对等体之间,用来解决EBGP之间可能出现的环路问题

IBGP水平分割——当一个路由从一个IBGP对等体出学习到某条BGP路由时,不能再将这条路由信息通告给其他的IBGP对等体关系——这种规则会导致IBGP对等体之间的路由信息只能传递一条,在这种情况下可能导致通信障碍

解决方法

1.构建全连的IBGP对等关系——但这将会导致资源消耗增加和网络扩展性降低

2.路由反射器

3.联邦

BGP——边界网关协议简介相关推荐

  1. 【博客465】BGP(边界网关协议)-----BGP路由黑洞及路由反射器与联盟

    BGP(边界网关协议)-----BGP路由黑洞及路由反射器与联盟 路由黑洞的场景 黑洞出现场景: 两台非直连路由器可以建立BGP邻居关系,传递BGP路由.如果中间路由器没有运行BGP协议,可能会出现路 ...

  2. BGP边界网关协议线路优势

    BGP线路,说到这个词相信大家都不陌生,但是说到具体的解释可能并不是非常的了解. 什么是BGP线路?边界网关协议(BGP)是运行于TCP上的一种自治系统(AS)的路由协议,是唯一能够妥善处理不相关路由 ...

  3. 互联网协议 — BGP 边界网关协议 — Overview

    目录 文章目录 目录 AS(自治系统)与 BGP 协议 BGP 协议的诞生与发展历程 基于 E-BGP 的大规模数据中心 AS(自治系统)与 BGP 协议 随着整个Internet 规模的扩大,动态路 ...

  4. 详细了解BGP—边界网关协议

    BGP 一.BGP基本概念 1.自治系统 2.BGP路由协议的特点 3.BGP分类 4.BGP工作原理 4.1.5种报文 4.2.BGP6种状态机 4.3.BGP对等体之间的9个交互原则 5.建立对等 ...

  5. 互联网协议 — BGP 边界网关协议 — Router(路由器)

    目录 文章目录 目录 BGP Router 的角色类型 BGP Router 的状态机 BGP Router 的邻居关系建立 I-BGP 邻居关系的建立 I-BGP Router 的组网模式 Full ...

  6. 互联网协议 — BGP 边界网关协议 — Route(路由信息)

    目录 文章目录 目录 BGP Route(路由信息) BGP Msg Header BGP Msg Type Open Msg Update Msg Keepalive Msg Notificatio ...

  7. 互联网协议 — BGP 边界网关协议 — BGP-LS

    目录 文章目录 目录 BGP-LS BGP-LS Route Msg Node Route Link Route Prefix Route BGP-LS 在 SR TE 中的应用 BGP-LS 的组网 ...

  8. 【计算机网络】网络层 : BGP 协议 ( BGP 协议简介 | BGP 协议信息交换 | BGP 协议报文格式 | BGP-4 常用报文 | RIP 、OSPF、BGP 协议对比 )

    文章目录 一.路由选择协议分类 二.BGP 协议 简介 三.BGP 协议 信息交换过程 三.BGP 协议 报文格式 四.BGP 协议 特点 五.BGP-4 协议的 四种报文 六.RIP .OSPF.B ...

  9. 前置:API:DSP:核心交换机:边界网关协议:边界:(防御)防火墙:负载均衡:摆渡机:名词解释

    前置:API:DSP:核心交换机:边界网关协议:边界:(防御)防火墙:负载均衡:摆渡机:名词解释 前置: 前置,拼音qián zhì,游戏术语,在即时战略游戏(RTS)中,将建筑物建造在作战前线(例如 ...

最新文章

  1. 涉密计算机格式化维修,涉密计算机中的涉密信息被删除或格式化后,不可复原,可以连接互联网 - 作业在线问答...
  2. 掌握好这些不变的底层知识,任他东西南北风!
  3. 从茶叶蛋到互联网思维
  4. java font是什么意思_font-family of a font,它是什么?
  5. .net core ef动态orderby
  6. 实现option上下移动_js: 实现Select的option上下移动 | 学步园
  7. springboot中getOutputStream() has already been called for this response和java.io.FileNotFoundException
  8. 给各位ACMer,OIer详细介绍一下Codeforces比赛
  9. CVPR | 旷视提出Meta-SR:单一模型实现超分辨率任意缩放因子
  10. c++用一级运算比较大小_孩子数学运算难?小学数学速算技巧顺口溜都在这里了!...
  11. 特斯拉CEO马斯克再次动员员工 加快季度末交付
  12. php 位运算 负数,php的位运算详解
  13. 错误: 代理抛出异常错误: java.rmi.server.ExportException: Port already in use: 1099; nested exception is
  14. 认知的四个层次,读懂改变一生
  15. php excel 下拉菜单,Laravel Excel库(Maatwebsite):如何在导出中创建下拉列表 - php
  16. 支付宝app支付签约开通详解,快速开通支付宝APP支付手机网站支付过风险开通,支付宝App支付签约不通过的解决办法。
  17. 小微信贷传统风控模型的痛点
  18. 简转繁等中文转换(Golang)
  19. SQL——PostgreSQL Driver
  20. 马来西亚房产是否值得投资?

热门文章

  1. 用于通用前向纠错的 RTP 有效载荷格式 (RFC-5109)
  2. 小米笔记本pro15.6黑苹果+win10双系统/多系统
  3. 2021唯品会JAVA后台开发暑假实习(一面)
  4. WCF服务引用的两种方法
  5. 如何从0设计一套实用可靠的支付服务系统?
  6. 2016年美的校招面试
  7. 用sklearn的PCA
  8. 第一次在CSDN上发表,瑟瑟发抖
  9. 从远程计算机获取WMI数据
  10. Python怎样实现清空终端