既然已经有了BGP,为什么还需要OSPF与RIP这一类IGP?

计算机路由协议中会使用BGP协议,其中又分为AS间协议EBGP与AS内的IBGP。既然我们已经有了IBGP用于AS内部路由,那么OSPF与RIP这些内部路由IGP为啥还要支持呢?通用BGP岂不是最方便省事?

既然已经有了BGP,为什么还需要OSPF与RIP这一类IGP?

这个地球如果是一个一元的世界,呆在地球上的你会像马斯克一样,向往多元的、未知的世界,也许在火星上有更加绚烂多彩的生活。。。 这个世界永远是多元的,作为最快的交通工具的飞机,诞生之后并没有淘汰汽车、自行车。高铁的诞生之后,也没有淘汰速度不那么快的绿皮火车。虽然绿色能源汽车蓬勃发展,也许过若干年以后是主流的交通工具,但是燃油汽车依然还会有庞大的粉丝群购买。 目前在用的业界标准路由协议,主要有RIP,OSPF,ISIS,BGP。当然Cisco的产品线还有EIGRP,OMP,PIMPv6等私有路由协议。今天的文章只聊业界标准的路由协议。而要聊这些协议以及它们的应用场合,首先要了解这些协议,找出其优点及不足,这样才会在特定的网络场景下,选择最适合自己的路由协议。 RIP

  • 黄蓉在桃花岛的入口处拿着一个小喇叭喊:距离桃花岛有一座桥的距离。
  • 郭靖听到了,也拿起小喇叭向外广播:距离桃花岛有二座桥的距离。
  • 杨康听到了郭靖的广播,继续向外扩散:距离桃花岛有三座桥的距离。
  • 丘处机听到了杨康的广播,继续用喇叭向外扩散:距离桃花岛有四座桥的距离。

丘处机的广播,正好被路过的江南七怪听到,江南七怪要到桃花岛找黄药师聊聊。于是顺着路线à丘处机à杨康à郭靖à黄蓉à黄药师,一路顺利到达黄药师的老巢。
 有一天,桃花岛上的桥塌掉了。黄蓉急忙拿起话筒喊:距离桃花岛无穷远(17座桥)。郭靖听到了,会理睬黄蓉吗?会将消息扩散出去吗? 不会的,也不会将消息扩散出去。因为黄蓉喊得新距离(17座桥)> 当前正在使用的最优距离(1座桥)。 郭靖依然需要周期性(60秒)地广播自己路由表里的路由:距离桃花岛有二座桥的距离。这个消息一直扩散到丘处机,丘处机距离桃花岛依然有四座桥的距离。 欧阳锋听到了,要到桃花岛找黄药师麻烦。顺着路线走:à丘处机à杨康à郭靖à黄蓉,来到黄蓉处,发现通向桃花岛的桥断了。欧阳锋急得跳江了。。。 后面还有源源不断的黑帮势力,如欧阳克之流,顺着路线图来找黄药师的麻烦。但是都被桃花岛的断桥挡住了去路。通向桃花岛的小路客流异常拥挤,最后依然上不了桃花岛,但是却造成了道路资源的浪费。做为读者的你一定非常好奇,黄蓉已经将桥断的消息扩散出去了,为什么游客还要来桃花岛旅游观光呢? 问题就出在路由算法上。因为郭靖只接受路由距离≤自己路由距离的路由更新,而黄蓉的路由更新显然不满足这个前提条件。 郭靖会一直周期性扩散“距离桃花岛有二座桥的距离”吗?不会的,因为这条路由,由于一直没有来自黄蓉的刷新(拒绝了)。超出预先设定的超时定时器,从路由表里删除。不再周期性广播给自己的邻居。很快,其它邻居的定时器也纷纷超时,将该路由从路由表里删除。 当所有人的路由表达成了一致的认识:距离桃花岛无穷远(17座桥),网络才真正收敛完成。想去桃花岛的人,第一时间会知道到桃花岛的路断了,就不去了。用不着再跑冤枉路了。但是从黄蓉发现桥断了,到所有人发现桥断了,这个时间很漫长,取决于定时器的大小,以及扩散消息网络直径的大小。 在定时器固定的前提下,只有限制网络直径的大小,才能限制整体的网络收敛的时间。所以RIP协议的设计者,将网络直径设定为16跳。超出16跳的路径,就是无穷远的距离,在路由器的眼里,就是没有办法到达。 还是上面的游戏规则,假如洪七公用喇叭喊:距离桃花岛有16座桥的距离,老顽童听到了,会接受吗?不会的,意味着老顽童距离桃花岛有17座桥的距离,因为老顽童要+和洪七公之间一座桥的距离。 RIP路由优点与不足

  • 配置简单,没有任何网络基础的都会配置
  • 网络收敛慢,整体收敛时间在3分钟以上
  • RIP使用在小型的网络,或学生做路由实验,对收敛时间不在意

OSPF/ISIS这两个路由协议,有点类似某度地图/某德地图。还是上面的小游戏。现在使用OSPF/ISIS路由导航。 当桃花岛的桥断了,黄蓉将桥断的消息扩散出去。消息顺着消息链一路扩散了出去。不光郭靖知道,郭靖的邻居、以及邻居的邻居都知道桥断的事实。于是每个人都用自己最短路径算法,将桃花岛的桥剔除出去,重新计算到达桃花岛的最优路径。如果没有备选路径,那么到桃花岛就不可达。如果有备选路径,梅超风划着小船也可以到达桃花岛,那么大家就选择梅超风的路径,尽管划船比较耗时,但是好歹可以到岛上去。 OSPF/ISIS比RIP高明的地方,RIP只知道邻居选择告诉自己的消息。OSPF/ISIS邻居不会隐瞒任何消息,会毫不保留地将消息传递给整个参与OSPF/ISIS网络里的任何一台路由器。因为信息同步是OSPF/ISIS能够正常工作的前提。如果不同步,OSPF/ISIS有网络环路的可能。 在某大型公司工作期间,只有新加坡WAN路由器,以及PE路由器的权限。如果让你画整网的拓补,你怎么画呢?好在整个核心网运行了ISIS路由协议,ISIS Database数据库里有每一个链路的信息,链路的两端连接哪些设备,只要顺藤摸瓜,就可以将整网的拓扑画下来。换成RIP或者BGP你可以吗?当然不行,不信的同学可以试一试。 OSPF/ISIS适合运行在一个AS内部,可以将AS理解为一个有独立自治权的王国。这个王国可以是一个公司,也可以是一个校园网,也可以是一家运营商。 OSPF/ISIS优势精确知道每一条链路的状态,是UP的还是Down的,链路的相对带宽大小。这就好比一个王国的国王,知道自己王国每一条小马路的状况。每一条小马路有任何风吹草动(UP/Down),都会被国王知晓。 OSPF/ISIS的不足分享的信息太多、太精确了。一个国家内部可以自由分享这些信息,但是与别的国家也要分享这些全部的信息吗?显然不适合。那就相当于将自己整网的拓扑全部分享给别的运营商,或者其它公司,这显然是不安全的。 参与OSPF/ISIS的路由器需要信息完全同步,这就给路由过滤造成一个很大的挑战。既然信息都完全同步了,还怎么做路由过滤呢? 而要解决这些难题与挑战,那只有BGP了。 BGPBGP相当于国家之间在分享自己的路由资源,颗粒度很粗。比如中国的路由器向美国路由器宣告,我这里有通向上海、北京、广州、重庆的。。。路由?美国的路由器宣告,我这里有纽约、华盛顿、芝加哥的路由。这样双向开车就没有问题了。 也许有同学会疑惑地说,难道中国的路由器不能像美国宣告一条路由:中国的路由。美国的路由器向咱们宣告一条路由:美国的路由。这样双向开车不是也没有问题吗? 当然不会有问题,但是想过没有,一个国家的出口通常有好多,有广州的出口,上海的出口,大连的出口。美国开向中国广州的车子怎么开? 是先开到大连?还是上海?还是广州? 同学们会感觉很搞笑,那当然是开到广州最合理!当然我也是这么觉得。但是如果只有一条“中国的路由“,美国的路由器是无法知道如何到广州最合理。而使用较详细颗粒度的“广州路由”就可以解决以上难题。因为广州的出口宣告广州路由最佳,美国的车子会优先选择开到广州。如果广州的出口断了,退而求其次,可以选择开到上海、或者大连。 在BGP路由协议里,路由颗粒度是由路由前缀的长短决定的,比如17.0.0.0/8的颗粒度很粗,17.1.0.0/16就会稍细,当然17.1.1.0/24颗粒度会更细。但是颗粒度太细,又会造成路由表的臃肿不堪。当前对颗粒度的要求是,路由前缀的长度,要≤21。 BGP的应用场景BGP有强大的路由策略、路由过滤功能,可以提供运营商之间的路由过滤。通过路由过滤,可以对流量实现优化与调度,这点是其它路由协议很难实现的。 另外BGP设计之初,就是用于容纳超大容量的路由条目,这点也不是其它路由协议所能匹敌的。 当然,任何其它路由协议可以实现的路由,都可以用BGP 完全替代。在一个网络里只运行BGP协议也是可行的,但是BGP的配置复杂度、工作量都比较大,没有多年业界工作经验的工程师是很难完成的。 你要将网络的每一条链路都放入BGP进程,并且要保证每一个BGP进程与相邻的BGP进程,在没有OSPF/ISIS的帮助下能够建立起来。这不是一件轻松的事,你需要知道邻居的AS号、IP地址、当邻居和你是IBGP时,你可能还需要考虑RR,还要考虑Next-Hop是否可以到达。

来源:车小胖谈网络,本文观点不代表自营销立场,网址:https://www.zyxiao.com/p/86478

发表评论

电子邮件地址不会被公开。 必填项已用*标注

侵权联系
分享本页
返回顶部