IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> bgp协议基本内容 -> 正文阅读

[网络协议]bgp协议基本内容

BGP


**BGP**(边界网关路由协议)是自治系统间的路由协议。是一种无类别路径矢量EGP协议。BGP交换的网络可达性信息提供了足够的信息来检测路由回路并根据性能优先和策略约束对路由进行决策**

1. BGP概述

**边界网关协议BGP(Border Gateway Protocol)**是一种实现自治系统AS(Autonomous System)之间的路由可达,并选择最佳路由的距离矢量路由协议。

早期发布的三个版本分别是BGP-1(RFC1105)、BGP-2(RFC1163)和BGP-3(RFC1267),1994年开始使用BGP-4(RFC1771),2006年之后单播IPv4网络使用的版本是BGP-4(RFC4271),其他网络(如IPv6等)使用的版本是MP-BGP(RFC4760)。

MP-BGP是对BGP-4进行了扩展,来达到在不同网络中应用的目的,BGP-4原有的消息机制和路由机制并没有改变。MP-BGP在IPv6单播网络上的应用称为BGP4+,在IPv4组播网络上的应用称为MBGP(Multicast BGP)。

为方便管理规模不断扩大的网络,网络被分成了不同的自治系统。1982年,外部网关协议EGP(Exterior Gateway Protocol)被用于实现在AS之间动态交换路由信息。

但是EGP设计得比较简单,只发布网络可达的路由信息,而不对路由信息进行优选,同时也没有考虑环路避免等问题,很快就无法满足网络管理的要求。

BGP是为取代最初的EGP而设计的另一种外部网关协议。不同于最初的EGP,BGP能够进行路由优选、避免路由环路、更高效率的传递路由和维护大量的路由信息。

虽然BGP用于在AS之间传递路由信息,但并不是所有AS之间传递路由信息都需要运行BGP。比如在数据中心上行的连入Internet的出口上,为了避免Internet海量路由对数据中心内部网络的影响,设备采用静态路由代替BGP与外部网络通信。

BGP从多方面保证了网络的安全性、灵活性、稳定性、可靠性和高效性:

1、BGP采用认证和GTSM的方式,保证了网络的安全性。

2、BGP提供了丰富的路由策略,能够灵活的进行路由选路。

3、BGP提供了路由聚合和路由衰减功能用于防止路由振荡,有效提高了网络的稳定性。

4、BGP使用TCP作为其传输层协议(端口号为179),并支持BGP与BFD联动、BGP Tracking和BGP GR,提高了网络的可靠性。

2. BGP基本概念

1.自治系统(autonomous system),一段互联网IP地址的管理者,或者称ISP(互联网服务提供者)。自治系统内,管理者可以自主决定路由的所有操作,自治系统之间的访问,通过BGP等外部路由协议交换信息。提供互联网服务的ISP必须经过注册并分配AS号,该AS号全网唯一,中国的AS号管理者是中国互联网络信息中心(cnnic)。

2.对等体(peer),BGP连接是一对一连接,建立BGP连接的双方称为对等体,对等体通过AS号进行识别,相同AS号的称内部对等体,使用IBGP协议,不同AS号的称外部对等体,使用EBGP。

3. BGP状态机

在这里插入图片描述BGP对等体的交互过程中存在6种状态机:空闲(Idle)、连接(Connect)、活跃(Active)、Open报文已发送(OpenSent)、Open报文已确认(OpenConfirm)和连接已建立(Established)。在BGP对等体建立的过程中,通常可见的3个状态是:Idle、Active和Established。

1、Idle状态是BGP初始状态。

在Idle状态下,BGP拒绝邻居发送的连接请求。只有在收到本设备的Start事件后,BGP才开始尝试和其它BGP对等体进行TCP连接,并转至Connect(连接)状态。

Start事件是由一个操作者配置一个BGP过程,或者重置一个已经存在的过程或者路由器软件重置BGP过程引起的。

任何状态中收到Notification(通告)报文或TCP拆链通知等Error事件后,BGP都会转至Idle状态。

2、在Connect(连接)状态下,BGP启动连接重传定时器(Connect Retry),等待TCP完成连接。

如果TCP连接成功,那么BGP向对等体发送Open报文,并转至OpenSent状态。

如果TCP连接失败,那么BGP转至Active(活跃)状态。

如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么BGP继续尝试和其它BGP对等体进行TCP连接,停留在Connect状态。

3、在Active状态下,BGP总是在试图建立TCP连接。

如果TCP连接成功,那么BGP向对等体发送Open报文,关闭连接重传定时器,并转至OpenSent状态。

如果TCP连接失败,那么BGP停留在Active状态。

如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么BGP转至Connect状态。

4、在OpenSent状态下,BGP等待对等体的Open报文,并对收到的Open报文中的AS号、版本号、认证码等进行检查。

如果收到的Open报文正确,那么BGP发送Keepalive报文,并转至OpenConfirm状态。

如果发现收到的Open报文有错误,那么BGP发送Notification报文给对等体,并转至Idle状态。

5、在OpenConfirm状态下,BGP等待Keepalive或Notification报文。如果收到Keepalive报文,则转至Established状态,如果收到Notification报文,则转至Idle状态。

6、在Established状态下,BGP可以和对等体交换Update、Keepalive、Route-refresh报文和Notification报文。

如果收到正确的Update或Keepalive报文,那么BGP就认为对端处于正常运行状态,将保持BGP连接。

如果收到错误的Update或Keepalive报文,那么BGP发送Notification报文通知对端,并转至Idle状态。

Route-refresh报文不会改变BGP状态。

如果收到Notification报文,那么BGP转至Idle状态。

如果收到TCP拆链通知,那么BGP断开连接,转至Idle状态。

4.BGP与IGP

BGP对等体之间的交互原则

BGP设备将最优路由加入BGP路由表,形成BGP路由。BGP设备与对等体建立邻居关系后,采取以下交互原则:

1、从IBGP对等体获得的BGP路由,BGP设备只发布给它的EBGP对等体。
2、从EBGP对等体获得的BGP路由,BGP设备发布给它所有EBGP和IBGP对等体。
3、当存在多条到达同一目的地址的有效路由时,BGP设备只将最优路由发布给对等体。
4、路由更新时,BGP设备只发送更新的BGP路由。
5、所有对等体发送的路由,BGP设备都会接收。

BGP引入IGP路由

BGP与IGP在设备中使用不同的路由表,为了实现不同AS间相互通讯,BGP需要与IGP进行交互,即BGP路由表和IGP路由表相互引入。

BGP协议本身不发现路由,因此需要将其他路由引入到BGP路由表,实现AS间的路由互通。

当一个AS需要将路由发布给其他AS时,AS边缘路由器会在BGP路由表中引入IGP的路由。为了更好的规划网络,BGP在引入IGP的路由时,可以使用路由策略进行路由过滤和路由属性设置,也可以设置MED值指导EBGP对等体判断流量进入AS时选路。

BGP引入路由时支持Import和Network两种方式:

1、Import方式是按协议类型,将RIP、OSPF、ISIS等协议的路由引入到BGP路由表中。为了保证引入的IGP路由的有效性,Import方式还可以引入静态路由和直连路由。

2、Network方式是逐条将IP路由表中已经存在的路由引入到BGP路由表中,比Import方式更精确

5. BGP属性特点

BGP属性有:公认必遵,公认任意,可选过渡,可选非过渡
在这里插入图片描述

1.Origin

Origin属性定义路径信息的来源,标记一条路由是怎么成为BGP路由的
① AS 200内运行OSPF协议,200.0.0.0/24网段宣告到OSPF中。RTB通过network方式将200.0.0.0/24的路由变为BGP路由通告给RTA,RTC通过import方式将200.0.0.0/24的路由变为BGP路由通告给RTA
② BGP在AS之间传递信息,承载大量的路由。如果到达同一目的IP有多条路径,且BGP学到这些路由通过不同的方式,则Origin属性是决定最优路径的一个因素,用于标明路由的起源
在这里插入图片描述Origin的3种属性:
① i表明BGP路由通过network命令注入
② e表明BGP路由是从EGP学来的,EGP协议在现网中很难见到,但可以通过路由策略将路由的Origin属性修改为e(了解即可)
③ ?即Incomplete(未知)表明BGP路由通过其它方式学到路由信息,如使用import命令引入的路由。
④ 3种Origin属性的优先级为:i>e>Incomplete(?)

2.AS_Path

As-path:指示出了该路由信息经过了哪些AS路径,主要作用是保证AS间无环路(如果收到的路径出现本自治系统的号码,则拒绝接收),一般当本自治系统的路由离开自治系统的时候会添加本自治系统的号码,BGP路由选路的时候,会优先选择AS-PATH短的路由。

3.Next_hop

下一跳属性,需要注意的是当边界设备学习到EGP对等体发布的路由的时候,传递给IBGP对等体的时候,不会修改路由的下一跳。

4.Local_Preference

Local_Pref属性仅在IBGP邻居之间有效,不通告给其他AS。它表明路由器的BGP优先级,用于判断流量离开AS时的最佳路由 值越大越优 其默认值为100

5.MED

MED(Multi-Exit-Discriminator)属性仅在相邻两个AS之间传递,收到此属性的AS不会再将其通告给任何其他第三方AS,用于判断流量进入AS时的最佳路由

6.BGP选路规则

在这里插入图片描述
比较前提,多条BGP路由目标相同,且均可优(下一跳可达、同步关闭),具有相同的优先级(管理距离)

  1. 优选Preference_Value值最高的路由(私有属性,仅本地有效)。
    不传递 权限最高属性 可以干涉EBGP/IBGP选路
  2. 优选本地优先级(Local_Preference)最高的路由。IBGP邻居关系间传递,最常干涉IBGP关系的选路
  3. 优选手动聚合>自动聚合>network>import>从对等体学到的。
  4. 优选AS_Path短的路由。
    EBGP/IBGP关系均可被干涉,但只能在EBGP邻居间修改;
  5. 起源类型IGP>EGP>Incomplete。
    起源属性 i>e>?; 可在控制层面任意接口修改;
  6. 对于来自同一AS的路由,优选MED值小的。默认为0,宣告或重发布(关闭自动汇总)路由时携带本地到达目标的cost,最常用于干涉EBGP选路的属性
  7. 优选从EBGP学来的路由(EBGP>IBGP)。
  8. 优选AS内部IGP的Metric最小的路由。
  9. 优选Cluster_List最短的路由。
  10. 优选Orginator_ID最小的路由。
  11. 优选Router_ID最小的路由器发布的路由。
  12. 优选具有较小IP地址的邻居学来的路由。

7.BGP路由黑洞处理方法

全互联

在这里插入图片描述如图: AS2中AR2分别与AR3和AR4建立邻,R4与R3建邻,并且修改下一条属性(缺点:配置量大,全部路由都要传递,占用链路资源)

反射器

联邦

联盟配置,现网中已经很少用到

MPLS

MPLS标签技术:有了这个标签分发技术,就可以在2层与3层之间弄出一个2.5层,路由器通过MPLS的压标签弹标签进行路由的传递,来解决BGP路由黑洞的问题

原因其实很简单:

AR4收到AR2的BGP路由,它发现自己的FIB表并没有这条路由,这时AR3会基于这条路由进行本地的递归查找,最后递归发现AR3本地的FIB表中有这条BGP路由的下一跳,即AR2的BGP建邻环回地址,这样就会给AR2的BGP路由贴上环回的标签,通过这条环回的MPLS的标签隧道,从AR4->AR3->A2,到了AR2后撕掉建邻环回的标签,发现是要到本地的另一个环回,这样就可以访问到了,所以MPLS是这样从根本解决BGP路由黑洞

8. BGP扩展特性

1.安全特性

1.安全特性
MD5认证
BGP使用TCP作为传输层协议,
为提高BGP的安全性,在建立TCP连接时进行MD5认证。
BGP的MD5认证并不能对BGP报文认证
在TCP连接设置MD5认证密码,由TCP完成认证。如果认证失败,则不建立TCP连接。(自然导致BGP邻居无法建立)

2.路由衰减

2.1解决路由不稳定的问题,BGP主要应用于复杂的网络环境中,路由变化十分频繁。为了防止持续的路由震荡带来的不利影响,BGP使用路由衰减来抑制不稳定的路由

2.2实现抑制不稳定的路由

使用惩罚值(penalty value)来衡量一条路由的稳定性
惩罚值越高说明路由越不稳定,最高为16000,路由没发生一次震荡,增加1000惩罚值,惩罚值超过抑制阈值(Suppress Value)2000时,路由被抑制
震荡:路由从激活状态变为未激活状态。实际中就是先network,再取消
路由被抑制:路由不加入到路由表中,也不再向其他BGP对等体发布更新报文
当路由惩罚值达到最大抑制值(Maximum suppress Value)16000,不会再增加
确保路由在非常短的时间内震荡十几次后,不会将惩罚值累计到一个很高的、持续保持被抑制状态的值
被抑制的路由经过一段时间没有震荡,惩罚值减半,称为半衰期(Half-life),默认15分钟
当惩罚值降到再使用阈值(reuse value)750时,路由变为可用并被加入到路由表中,同时向其他BGP对等体发布更新报文
路由衰减只适用于EBGP路由,对于从IBGP收到的路由不能进行衰减

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-07-31 16:59:17  更:2021-07-31 16:59:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 18:19:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码