一个朋友问,明明有BGP,为什么需要OSPF和RIP这样的IGP呢?
这个问题……就像为什么会有局域网,以及是否需要广域网一样。
而且,这个问题其实我可以从两个角度来论证。 历史发展角度技术角度。 以下各受访者各有角度,但总体上是这两个方向。
淡淡的金鱼想做一点补充,稍微降低一下理解这个问题的门槛。 毕竟,当这些名词放在一起时,bzdfh有很大概率变得无知。 淡淡的金鱼先帮你理清关系。
乍一看,这个问题是BGP和IGP能否二选一,对吧?
但事实上:
IGP (内部网关协议)对应于EGP外部网关协议,它是相同的订单,并且可以进行比较。
因为边界网关协议(BGP )是外部网关协议(EGP )的最新版本,所以可以对它们进行比较。
在这个过程中,又必须采用AS自主系统(autonomous system )这个新名词。 这就是IGP和BGP这些孩子们的游乐场。 没有它,他们俩就不会辛苦,也就没有取舍的问题。
所以,先弄清楚这三种玩法是什么,然后我们再往下分析。
1、什么是自治系统(AS )
AS的全名是自动系统。 从英文名中可以看出,自治系统是由为互联网执行通用路由策略的管理机构(如运营商)管理的整个路由器和网络组。
移动、联通、电信三大巨头,他们各自有自治系统,他们之间相互独立,但各自运营商的自治系统内部按照一定的规则稳定运行。
这样的自治系统有很多。 像一个个的大型局域网一样,自治系统内部需要按照规则进行管理,外部也只有通过手段相互连接才能自由通信。
也就是说,对于互联网来说,一个AS是独立的整体网络。
在内部管理和外部沟通的双重目标下,出现了IGP和EGP两种“管理措施”,以保证运行顺畅。
2、什么是IGP?
互联网路由协议(IGP )是指在自主系统(AS )内部使用的路由协议,一般分为距离向量路由协议和链路状态路由协议两种。
其中,问题中涉及的OSPF和RIP位于此处。
一个AS中有多个路由器可以管理多个网络,并且需要路由信息才能了解每个路由器之间子网的可用性信息。 IGP负责管理这些内部路由,IGP中最典型的代表是RIP和OSPF。
RIP是谣言路由,主要动作是记录从离自己最近的路由器发送来的现成路由表。 这些路由条目不需要自己计算,而且机制非常简单,因此可以很容易地学习错误的路由。
只需倾听邻居的话,并将邻居用作到无直接连接的网络的下一跳。
OSPF是最佳路由,主要操作是收集网络中的各种信息,独立构建拓扑图,通过自己的独立计算到达目标。
运行OSPF的路由器知道网络的拓扑后,会根据拓扑计算路由。
乍一看OSPF很好,但唇语有点愚蠢,对吧?
其实这两个人在运用过程中都有自己的优点和缺点:
唇构成简单方便,容易买到,但唇的明显缺陷是容易学习错误路由,再加上唇收敛时间长,也是卡点。
OSPF的信息收集确实很细致,每个细节都不放过,但同时太大了,我很累。
3、什么是BGP?
边界网关协议(BGP )是运行在自制系统之间的路由协议,主要用作域间路由协议。 这可以说是网上核心的去中心化自主路由协议。 其目的是为了达成各网络的自治而进行中心化。
因为BGP是外部网关协议(EGP )发展20多年后的最新成果,可以与IGP (内部网关协议)进行呼应和对比。
IGP是自己的性格,BGP可以理解为社交手段。 必要时需要采取强硬手段震慑敌军,以便我们的国家始终对人温和谦虚。 这是两种方法,但目的是为了更好地运行自己。
BGP是APP应用层协议,传输层使用TCP,缺省端口号为179。 BGP是使用TCP作为传输层的唯一路由协议,并且其他路由协议可能不能返回至传输层。
因为是APP应用层协议,所以连接被认为是可靠的,不需要考虑fragment、确认、重发等基本任务。
因此,BGP是最复杂的路由协议,可以说根据所接收的信息判断决策,应用于路由表。
在基于EGP发展起来的当前,BGP被分为两种类型:外部BGP (外部BGP )不同的AS之间的BGP连接)和ibgp (边界BGP )相同的AS之间的连接。
关键是,这个IBGP明确表示可以适用于AS内部,所以会不会和IGP有冲突呢?
所以,为什么需要IBGP? 为什么IGP还在使用呢?
4、既然有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的,只是本身设计时就是为了大型网络而设的,你小型网非要用,负荷那么大,不必强撑。
听点话,大家都这么用当然都是有自己的道理。
杀鸡焉用牛刀?但你非要用也不是不行,用呗,咱够豪横(手动狗头)
原创: 淡然的金鱼丨8年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部