评论
1
分享

熊猫同学技术观察丨如果大家都只用BGP协议,世界会变成怎么样?

熊猫同学SPOTO

2021-09-28 16:40

66873 1 0



有小友提问说,既然有了BGP,为什么还需要OSPF和RIP这种IGP?

这个问题问的就像是……为什么有了局域网,还要广域网?


而且这个问题其实可以从两个角度来自我论证:

①历史发展角度 

②技术角度


熊猫同学想做点补充,降低一点这个问题的理解门槛,毕竟这几个名词放在一起,小白大概率会懵逼,熊猫同学先给你先理清一下关系。


乍一看,这题问的是BGP和IGP能不能二选一,对吧?


但实际上:


IGP(内部网关协议)对应的是EGP(外部网关协议),这两个才是相同量级,可以进行比较的。


BGP(边界网关协议)是EGP(外部网关协议)的发展到现如今的最新版本,所以这俩才能对比。


这个过程里又不得不提到一个新的名词,叫做AS自治系统(autonomous system),这就是IGP和BGP这俩小朋友的游乐场,没有它,他俩没地儿折腾,也不存在什么取舍问题了。


所以,咱们先把这仨玩意儿到底是啥搞清楚,我们再往下分析。




一、什么是自治系统(AS)


AS的全称就是autonomous system,从英文名其实就可以看出来,所谓的自治系统就是处于一个管理机构(比如运营商)控制之下的路由器和网络群组的全体,它们对互联网执行共同的路由策略。


移动、联通、电信三大巨头,他们各自都有自治系统,他们之间是相互独立的,但每一个运营商的自治系统内部都是按照一定规律在稳定运行的。


这样的自治系统有很多很多,就像一个又一个大型的局域网,自治系统内部需要规则来管理,外部也需要通过手段让彼此之间互联互通,才可以自由通信。


也就是说,对于互联网来说,一个AS是一个独立的整体网络。


在这个内部管理和外部交流的双重目标之下,就出现了IGP和EGP这两个“管理措施”,保证运转畅通。




二、什么是IGP(内部网关协议)?


IGP(内部网关协议)指的是在一个自治系统(AS)的内部所使用的一种路由协议,它一般分为2种类型:距离-矢量路由协议和链路状态路由协议。


其中,问题里涉及的OSPF和RIP就在这里头。


一个AS内部可以有多个路由器管理多个网络,各个路由器之间需要路由信息以知道子网络的可达信息,IGP起到的就是用来管理这些内部路由的作用,IGP里最典型的代表就是RIP和OSPF。


RIP是一种谣传路由,它主要的动作就是记录下离自己最近的路由器发来的现成的路由表,这些路由条目不用自己计算,机制非常简单,所以但非常容易学到错误路由。


它就只是听从邻居的话,使用邻居做为去往一个又一个非直连网络的下一跳。


OSPF是一种最佳路由,它主要的动作是收集网络中的各种信息并独立构建出拓扑图,再通过自己的独立计算到达目标地。

运行OSPF的路由器是先知道网络的拓扑,再基于拓扑计算路由。


乍一看OSPF挺好,RIP有点憨批是吧?


其实这俩在运用过程里都有自己优点和缺陷:


RIP配置很简单方便,很容易上手,但RIP显而易见的缺陷就是容易学到错误路由,除此之外,RIP的收敛时间比较长,也是一个卡点。


OSPF收集信息的确很精细,每个细节都不放过,但同时也太多大庞大了,很是负累。




三、什么是BGP(边界网关协议)?


BGP(Border Gateway Protocol)是指边界网关协议,它是运行在自制系统间的路由协议,主要作用交换域间路由协议。


可以说,它是互联网上一个核心的去中心化自治路由协议。它存在的目的就是去中心化,以达到各个网络自治。


BGP是EGP(外部网关协议)发展了20多年以后的最新成果,所以和IGP(内部网关协议)可以形成呼应和对比。


可以理解为,IGP是自身性格,BGP就是社交手段。就像我们国家对人始终温和谦逊,但必要的时候也需要采取强硬手段震慑敌军,这是两种方式,但目的都是为了自身更好的运转。


BGP是应用层协议,其传输层使用TCP,默认端口号是179。BGP是唯一使用TCP作为传输层的路由协议,其他的路由协议可能都还到不了传输层。


因为是应用层协议,可以认为它的连接是可靠的,并且不用考虑底层的工作,例如fragment,确认,重传等等。


所以,也可以说BGP是最复杂的路由协议,根据收到的信息判断决策,再应用到路由表。


在EGP的基础上不断发展至今,BGP又分成了EBGP(Exterior BGP:不同AS之间的BGP连接)和IBGP(Interior BGP :同一个AS之间的连接)两种类型。

关键来了,这个IBGP明确表示它可以应用于AS内部,那就和IGP有冲突了不是?


所以,为什么要有IBGP?为什么IGP还在用呢?




四、既然有了BGP,为啥还要OSPF/RIP?


不同的性格有着不同的优势,就像铲子和汤勺,筷子和叉子,都是餐具,但使用场景不同,效果不同。


你吃意面用筷子吃也不是不行,但你用叉子卷着吃速度更快;有的时候用筷子夹汤圆吃也不是不行,但勺子吃更方便。


所以,各类的路由协议也有自己的优势和短板,这是IGP没有被替换掉的原因。


IBGP和IGP一定是2选1吗?显然不是。


那作为同样都应用于AS内部的协议,为什么不能只选其中一个来用呢?


传统的解释看着累赘,我们简化一下理解。



我们来假设一下,如果没有IGP,只有IBGP的话,会变成什么样子:


IBGP是通过TCP连接的,IBGP·1号和IBGP·2号之间很可能没有实际的物理链路,如果没有IGP来提供路由,那么IBGP就毫无用处。


我们再来假设一下,如果没有IBGP,只有IGP,会变成什么样子:


IGP在内部好用是好用,但是处理路由的条目有限,路由表的数量一旦超过某个极限值,IGP就无法处理了。


再加上按照IGP那么“死板”的处理原则,只要其中有一条路由出现问题,那用IGP的这台路由器就要全部重新路由,10条可以,100条可以,10万条呢?


别说路由器受不受得住,带宽占用率也要哀嚎了。


而有IBGP就可以解决这个问题。


举个例子:


现在AS50/60/70里各有300台路由器,那这个时候AS50想要把其中的20000+路由传递到AS70之中,和AS60没有太大关系。


如果这时候没有IBGP的话,这20000+的路由都会被送到AS60的IGP之中去;如果时候有IBGP的话,那就只有AS70可以收到这20000+路由,提高效率不说,也突出了IBGP的路由控制能力。


你从这个例子里也可以看出,IBGP突出的能力其实是基于大基数的数据量来看的。BGP对于路由的学习,是比较特殊的适用于大型企业网。所以一般用于在各个企业网之间使用。


如果是一些小型网络,操作简单快捷才是最重要的,那这时候IGP里的其中一员猛将OSPF,OSPF的设备要比支持BGP的要多,选它不是更好吗?


具体问题具体分析,因地制宜制定策略,才可以高效行事。


全部都用BGP不是不行,理论上是ok的,只是本身设计时就是为了大型网络而设的,你小型网非要用,负荷那么大,不必强撑。


听点话,大家都这么用当然都是有自己的道理。杀鸡焉用牛刀?但你非要用也不是不行用呗,咱够豪横。


—— END ——

熊猫同学一个是面向全球152个国家和地区的IT新职业教育平台,是一家专注于IT国际认证人才培养的国家级高新技术企业,先后被坚果资本和腾讯投资。

熊猫同学旗下拥有网络人才教育「SPOTO思博网络」、鸿蒙开发人才教育「编程熊猫」、管理类人才教育「思博盈通」、出海IT教育「SPOTO」等多个数字人才品牌。


本文为凯迪网自媒体“凯迪号”作者上传发布,代表其个人观点与立场,凯迪网仅提供信息发布与储存服务。文章内容之真实性、准确性由用户自行辨别,凯迪网有权利对涉嫌违反相关法律、法规内容进行相应处置。
举报
投喂支持
点赞
发表评论
请先 注册 / 登录后参与评论
热门评论
这个是认证
终将变成的模样
二选一?
2021-09-28 18:02
0
0
推荐阅读