BGP简介、BGP与IGP的区别、BGP的优势有哪些?

2023-11-08 23:59
文章标签 优势 区别 简介 bgp igp

本文主要是介绍BGP简介、BGP与IGP的区别、BGP的优势有哪些?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

BGP的背景

 为方便管理规模不断扩大的网络,网络被分成了不同的AS(Autonomous System,自治系统)。

 早期,EGP(Exterior Gateway Protocol,外部网关协议)被用于实现在AS之间动态交换路由信息。但是EGP设计得比较简单,只发布网络可达的路由信息,而不对路由信息进行优选,同时也没有考虑环路避免等问题,很快就无法满足网络管理的要求。

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

 BGP是一种实现自治系统AS之间的路由可达,并选择最佳路由的路径矢量路由协议(Path-Vector Routing Protocol)。

在这里插入图片描述

BGP的优势

相较于传统的IGP协议:

1、BGP使用TCP作为其传输层协议(端口号为179),使用触发式增量路由更新,而不是周期性路由更新。

 这一点就注定了BGP在运行商及公网环境下的地位会比IGP高,因为IGP协议路由更新之后可能会造成网络的波动,甚至可能影响正常业务的转发。

2、只传递路由信息,不会暴露AS内的拓扑信息。

3、BGP能够承载大批量的路由信息,能够支撑大规模网络。

 IGP协议均共用一个IGP路由表,而BGP单独使用一个BGP路由表,两表之间互不关联。

4、BGP提供了丰富的路由策略,能够灵活的进行路由选路,并能指导对等体按策略发布路由。

5、BGP能够支撑MPLS/VPN的应用,传递客户VPN路由。

6、BGP提供了路由聚合和路由衰减功能用于防止路由振荡,通过这两项功能有效地提高了网络稳定性。

总结:BGP更安全可靠、增量路由更新、支持超大型网络、具备更多的选路工具

IGP与BGP

BGP的建立与路由交互大致过程是怎样的?与IGP路由协议的邻居建立与交换路由过程有何区别?

1、BGP通过TCP报文建立邻居与发送路由信息,因为基于TCP建立邻居,所以只要两个路由器底层路由可达都有建立BGP邻居并交互路由。

2、BGP建立优先发起TCP建立连接,连接成功之后发送相关BGP报文请求建立BGP邻居,建立成功之后再发送BGP路由。

IGP协议通常都是完成邻居建立之前就已经交互完了路由信息,如OSPF建立完成邻接状态之后路由也完成了收敛。

而BGP是先建立好关系之后,再发送路由。因为BGP路由条目居多如果在建立过程中就发送路由,将会消耗大量时间在关系建立上。

如果要跨设备建立邻居的话,说明跨设备的底层路由已经打通了,那为何要在已经建立了底层IGP的网络上再建立一个BGP邻居呢?

1、论应用场景而定,如果是在企业内部网络部署IGP,的确已经足够。

2、但如果是运营商或一些大型网络中,路由条目较多,网络拓扑较为复杂的场景。使用IGP协议虽然可以运行,但网络拓扑发生细微变更将会导致整个网络拓扑变更,造成网络动荡,路由条目越多,收敛时间越慢。

3、而如果使用IGP为基础建立BGP邻居,相互学习BGP路由。当网络拓扑变更的时候,受到影响的设备只需要发送变更的路由条目发送给其它BGP邻居即可,稳定性显而易见。

BGP的基础名词

AS自治系统

 autonomous system,在互联网中,一个自治系统(AS)是一个有权自主地决定在本系统中应采用各种路由协议的小型单位。可理解为网络中的一个小帮派。

 不同AS通过AS号区分,AS号存在16bit、32bit两种表示方式。

在长度为16bit的AS号表示方式中:64512-65534为私有AS号。
在长度为32bit的AS号表示方式中:4200000000-4294967294为私有AS号。

 由IANA负责AS号的分发(同时它也是分发公网IP地址的那个组织)。

IANA的所有任务可以大致分为三个类型:
一、域名。IANA管理DNS域名根和.int,.arpa域名以及IDN(国际化域名)资源。
二、数字资源。IANA协调全球IP和AS(自治系统)号并将它们提供给各区域Internet注册机构。
三、协议分配。IANA与各标准化组织一同管理协议编号系统。

 当不同AS之间需要进行通信时,在AS之间使用BGP路由协议进行路由的传递。

BGP发言者(BGP Speaker)

 运行BGP的路由器都被称为BGP发言者或BGP路由器

BGP对等体(Peer)

 两个建立了BGP会话的路由器互为对等体,也称BGP邻居。

 BGP存在两种对等体关系类型:EBGP与IBGP对等关系

 1、EBGP(External BGP):位于不同自治系统的BGP对等体关系。

 2、IBGP(Internal BGP):位于相同自治系统的BGP对等体关系。

BGP路径属性(Path attribute)

 每条BGP路由都携带多种路径属性,BGP可以通过这些路径属性控制路径选择,而不像IS-IS、OSPF只能通过Cost控制路径选择,因此在路径选择上,BGP具有丰富的可操作性,可以在不同场景下选择最合适的路径控制方式。
在这里插入图片描述

更多相关笔记,观看CSDN:HCIA~HCIE个人笔记

这篇关于BGP简介、BGP与IGP的区别、BGP的优势有哪些?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/373159

相关文章

kotlin中const 和val的区别及使用场景分析

《kotlin中const和val的区别及使用场景分析》在Kotlin中,const和val都是用来声明常量的,但它们的使用场景和功能有所不同,下面给大家介绍kotlin中const和val的区别,... 目录kotlin中const 和val的区别1. val:2. const:二 代码示例1 Java

CSS Padding 和 Margin 区别全解析

《CSSPadding和Margin区别全解析》CSS中的padding和margin是两个非常基础且重要的属性,它们用于控制元素周围的空白区域,本文将详细介绍padding和... 目录css Padding 和 Margin 全解析1. Padding: 内边距2. Margin: 外边距3. Padd

Springboot @Autowired和@Resource的区别解析

《Springboot@Autowired和@Resource的区别解析》@Resource是JDK提供的注解,只是Spring在实现上提供了这个注解的功能支持,本文给大家介绍Springboot@... 目录【一】定义【1】@Autowired【2】@Resource【二】区别【1】包含的属性不同【2】@

Java中的String.valueOf()和toString()方法区别小结

《Java中的String.valueOf()和toString()方法区别小结》字符串操作是开发者日常编程任务中不可或缺的一部分,转换为字符串是一种常见需求,其中最常见的就是String.value... 目录String.valueOf()方法方法定义方法实现使用示例使用场景toString()方法方法

分辨率三兄弟LPI、DPI 和 PPI有什么区别? 搞清分辨率的那些事儿

《分辨率三兄弟LPI、DPI和PPI有什么区别?搞清分辨率的那些事儿》分辨率这个东西,真的是让人又爱又恨,为了搞清楚它,我可是翻阅了不少资料,最后发现“小7的背包”的解释最让我茅塞顿开,于是,我... 在谈到分辨率时,我们经常会遇到三个相似的缩写:PPI、DPI 和 LPI。虽然它们看起来差不多,但实际应用

GORM中Model和Table的区别及使用

《GORM中Model和Table的区别及使用》Model和Table是两种与数据库表交互的核心方法,但它们的用途和行为存在著差异,本文主要介绍了GORM中Model和Table的区别及使用,具有一... 目录1. Model 的作用与特点1.1 核心用途1.2 行为特点1.3 示例China编程代码2. Tab

Nginx指令add_header和proxy_set_header的区别及说明

《Nginx指令add_header和proxy_set_header的区别及说明》:本文主要介绍Nginx指令add_header和proxy_set_header的区别及说明,具有很好的参考价... 目录Nginx指令add_header和proxy_set_header区别如何理解反向代理?proxy

Java中&和&&以及|和||的区别、应用场景和代码示例

《Java中&和&&以及|和||的区别、应用场景和代码示例》:本文主要介绍Java中的逻辑运算符&、&&、|和||的区别,包括它们在布尔和整数类型上的应用,文中通过代码介绍的非常详细,需要的朋友可... 目录前言1. & 和 &&代码示例2. | 和 ||代码示例3. 为什么要使用 & 和 | 而不是总是使

C++中函数模板与类模板的简单使用及区别介绍

《C++中函数模板与类模板的简单使用及区别介绍》这篇文章介绍了C++中的模板机制,包括函数模板和类模板的概念、语法和实际应用,函数模板通过类型参数实现泛型操作,而类模板允许创建可处理多种数据类型的类,... 目录一、函数模板定义语法真实示例二、类模板三、关键区别四、注意事项 ‌在C++中,模板是实现泛型编程

Spring中@RestController和@Controller的使用及区别

《Spring中@RestController和@Controller的使用及区别》:本文主要介绍Spring中@RestController和@Controller的使用及区别,具有很好的参考价... 目录Spring中@RestController和@Controller使用及区别1. 基本定义2. 使