首页 > 其他分享 >职场小白必备知识点-RIP&OSPF​路由协议

职场小白必备知识点-RIP&OSPF​路由协议

时间:2023-11-16 18:04:12浏览次数:105  
标签:知识点 LSA OSPF RIP BDR DR 路由 路由器




路由简介

作为网络工程师,你需要为某园区规划网络,预计有路由器若干,网络拓扑如下:规划网络之前,我们先来了解一下路由的相关知识。

什么是路由

所谓的路由,通俗来说就是路由器后台里,一张由目的地址、子网掩码、下一跳构成的表;它的作用是告知路由器需要如何处理收到的数据包;比如,路由器收到了一个数据包之后,先拆掉二层,然后看三层的数据,假如目的ip是自己,则继续往下拆,自己处理;假如目的ip不是自己,则开始查路由,看看自己的路由表是否有这个包的下一跳,若是有的话,则送往下一跳;没有的话,则直接丢掉这个包;由此可见,路由表的下一跳不能是路由器本身,必须是对端,这个是写路由的时候常见的错误;路由表类似于我们现在的公交站牌,这站牌表是否包含你的目的地,有的话,则从这个站上车去往下一站,没有的话,就离开。

静态路由与动态路由

既然有动态路由,那么静态路由又是怎么回事呢?

在小型网络里,或者为了某个需求,或者临时需要,我们可以手动地在路由器上写路由表,告知路由器收到这个包的时候,可以送往某下一跳;这样的路由,称之为静态路由;可以预见这样的做法,假如是需求很多,网络很大,那是非常费力的;另外,数据的通畅必须要保障来回都可以通,那么手动写路由的话就要保证来回的都有。往往不是只写一条就可以完成的;因此,动态路由,应运而生;

在一个有众多路由器的网络里,为了让网络连通正常,每个路由器都需要知道各个其他路由器上的路由,动态路由正是这样的一种机制,同一区域里的各个路由器之间相互交换、相互学习路由表,并计算出最优路径。而且,还会根据网络拓扑的变化重新计算、重新学习;我们常见的两款动态路由是RIP和OSPF;

RIP

(Routing Information Protocol)我们可以将RIP理解为路由器上的某一个应用,它使用UDP的520端口进行数据应用;所有的RIP信息都封装在DUP中,源、目端口都是520;RIP路由器之间通过交换UDP520的信息构建路由表;

RIP的工作原理:

1 、初始化——RIP初始化时,会从每个参与工作的接口上发送请求数据包。该请求数据包会向所有的RIP路由器请求一份完整的路由表。该请求通过LAN上的广播形式发送LAN或者在点到点链路发送到下一跳地址来完成。这是一个特殊的请求,向相邻设备请求完整的路由更新。

2 、接收请求——RIP有两种类型的消息,响应和接收消息。请求数据包中的每个路由条目都会被处理,从而为路由建立度量以及路径。RIP采用跳数度量,值为1的意为着一个直连的网络,16,为网络不可达。路由器会把整个路由表作为接收消息的应答返回。

3、接收到响应——路由器接收并处理响应,它会通过对路由表项进行添加,删除或者修改作出更新。

4、 常规路由更新和定时——路由器以30秒一次地将整个路由表以应答消息地形式发送到邻居路由器。路由器收到新路由或者现有路由地更新信息时,会设置一个180秒地超时时间。如果180秒没有任何更新信息,路由的跳数设为16。路由器以度量值16宣告该路由,直到刷新计时器从路由表中删除该路由。刷新计时器的时间设为240秒,或者比过期计时器时间多60秒。Cisco还用了第三个计时器,称为抑制计时器。接收到一个度量更高的路由之后的180秒时间就是抑制计时器的时间,在此期间,路由器不会用它接收到的新信息对路由表进行更新,这样能够为网路的收敛提供一段额外的时间。

5、 触发路由更新——当某个路由度量发生改变时,路由器只发送与改变有关的路由,并不发送完整的路由表。

RIP的特点:

  1. 仅和相邻的路由器交换信息。如果两个路由器之间的通信不经过另外一个路由器,那么这两个路由器是相邻的。RIP协议规定,不相邻的路由器不交换信息。
  2. RIP只有两种信息:request message、response message;路由器交换的信息是当前本路由器所知道的全部信息。即自己的路由表。
  3. 按固定时间交换路由信息,每隔30秒,根据收到的路由信息更新路由表。
  4. 能使用的最大距离为15(16表示不可达),这限制了只能用于中小型网络;
  5. RIP协议采用广播或组播进行路由更新,其中RIPv1使用广播,而RIPv2使用组播(224.0.0.9)
  6. RIP是一种距离矢量路由选择协议,通过上游邻居向下游路由器传递自己知道的全部路由信息,非常依赖邻居。

PIR的配置:(配置RIP主要的两条命令:开启RIP、宣告网段)

职场小白必备知识点-RIP&OSPF​路由协议_路由表


职场小白必备知识点-RIP&OSPF​路由协议_链路_02


职场小白必备知识点-RIP&OSPF​路由协议_OSPF_03


职场小白必备知识点-RIP&OSPF​路由协议_路由表_04


这里可以指定或者不指定版本,根据路由器的默认值来决定是version1还是version2;

整个工作过程,可以通过debug过程来看;调试完之后,一定要关闭debug;

职场小白必备知识点-RIP&OSPF​路由协议_路由表_05


OSPF (Open Shortest Path First开放式最短路径优先)

与RIP相比,她更受网络管理员青睐,主要优点如下:

(1)OSPF是一种链路状态协议,通过邻居得到的是链路状态信息,形成链路状态数据库,然后以自己为根通过SPF算法计算最优路径形成路由表;

(2)收敛速度快,能在最短的时间内将路由变化传递到整个自治系统;

(3)使用区域的概念,有利于减轻对路由器内存和CPU等资源的消耗,也可减少网络上的协议流量。

(4)没有跳数的限制,适用于更大的网络;

直接封装在IP层即第三层,所以只有协议号,是89.端口号相当于是对上层应用的一个标识,协议号是IP报头中的一个字段,用来标识上层协议。

OSPF的工作过程:

职场小白必备知识点-RIP&OSPF​路由协议_链路_06


OSPF的数据包结构:

职场小白必备知识点-RIP&OSPF​路由协议_链路_07


OSPF的数据字段包含5种OSPF报文类型的其中一种,依据运行情况决定;

IP数据报头中,协议号为89,代表OSPF;目的地址为224.0.0.5 or 224.0.0.6(DRother用224.0.0.6发送LSA给DR和BDR,DR用224.0.0.5给所有路由器发包)

以太网的mac地址=01-00-5e-00-00-05 or 01-00-5e-00-00-06

(因为发的是组播报文,所以不是封装对端的mac)

相关OSPF的几个术语简介

邻居(Neighbor)

只有邻接状态才会交换LSA,路由器会将链路状态数据库中所有的内容毫不保留地发给所有邻居,要想在OSPF路由器之间交换LSA,必须先形成OSPF邻居,OSPF邻居靠发送Hello包来建立和维护,Hello包会在启动了OSPF的接口上周期性发送,在不同的网络中,发送Hello包的间隔也会不同,当超过4倍的Hello时间,也就是Dead时间过后还没有收到邻居的Hello包,邻居关系将被断开。


Router-ID

网络中每台OSPF路由器都相当于一个人,OSPF路由器之间相互通告链路状态,就等于是告诉别人可以帮别人的忙,如此一来,如果路由器之间分不清谁是谁,没有办法确定各自的身份,那么通告的链路状态就是毫无意义的,所以必须给每一个OSPF路由器定义一个身份,就相当于人的名字,这就是Router-ID,并且Router-ID在网络中绝对不可以有重名,否则路由器收到的链路状态,就无法确定发起者的身份,也就无法通过链路状态信息确定网络位置,OSPF路由器发出的链路状态都会写上自己的Router-ID,可以理解为该链路状态的签名,不同路由器产生的链路状态,签名绝不会相同。

每一台OSPF路由器只有一个Router-ID,Router-ID使用IP地址的形式来表示,确定Router-ID的方法为:

★1 .手工指定Router-ID。

★2 .路由器上活动Loopback接口中IP地址最大的,也就是数字最大的,如C类地址优先于B类地址,一个非活动的接口的IP地址是不能被选为Router-ID的。

★3 .如果没有活动的Loopback接口,则选择活动物理接口IP地址最大的。

注:如果一台路由器收到一条链路状态,无法到达该Router-ID的位置,就无法到达链路状态中的目标网络。

Router-ID只在OSPF启动时计算,或者重置OSPF进程后计算。


邻接(Adjacency)

两台OSPF路由器能够形成邻居,但并不一定能相互交换LSA,只要能交换LSA,关系则称为邻接(Adjacency)。邻居之间只交换Hello包,而邻接(Adjacency)之间不仅交换Hello包,还要交换LSA。


DR/BDR

当多台OSPF路由器连到同一个多路访问网段时,如果每两台路由器之间都相互交换LSA,那么该网段将充满着众多LSA条目,为了能够尽量减少LSA的传播数量,通过在多路访问网段中选择出一个核心路由器,称为DR(Designated Router),网段中所有的OSPF路由器都和DR互换LSA,这样一来,DR就会拥有所有的LSA,并且将所有的LSA转发给每一台路由器;DR就像是该网段的LSA中转站,所有的路由器都与该中转站互换LSA,如果DR失效后,那么就会造成LSA的丢失与不完整,所以在多路访问网络中除了选举出DR之外,还会选举出一台路由器作为DR的备份,称为BDR(Backup Designated Router),BDR在DR不可用时,代替DR的工作,而既不是DR,也不是BDR的路由器称为Drother,事实上,Dother除了和DR互换LSA之外,同时还会和BDR互换LSA。

其实不难看出,DR与BDR并没有任何本质与功能的区别,只有在多路访问的网络环境,才需要DR和BDR,DR与BDR的选举是在一个二层网段内选举的,即在多个路由器互连的接口范围内,与OSPF区域没有任何关系,一个区域可能有多个多路访问网段,那么就会存在多个DR和BDR,但一个多路访问网段,只能有一个DR和BDR;选举DR和BDR的规则为:

★比较接口优先级

选举优先级最高的成为DR,优先级数字越大,表示优先级越高,被选为DR的几率就越大,次优先级的为BDR,优先级范围是0-255,默认为1,优先级为0表示没有资格选举DR和BDR。

★Route-Id大小

如果在优先级都相同的情况下,Route-Id 最大的成为DR,其次是BDR,数字越大,被选为DR的几率就越大。

因为所有路由器都能与DR和BDR互换LSA,所以所有路由器都与DR和BDR是邻接(Adjacency)关系,而Drother与Drother之间无法互换LSA,所以Drother与Drother之间只是邻居关系。

在一个多路访问网络中,选举DR和BDR是有时间限制的,该时间为Wait时间,默认为4倍的Hello时间,即与Dead时间相同,如果OSPF路由器在超过Wait时间后也没有其它路由器与自己竞争DR与BDR的选举,那么就选自己为DR;当一个多路访问网络中选举出DR与BDR之后,在DR与BDR没有失效的情况下,不会进行重新选举,也就是在选举出DR与BDR之后,即使有更高优先级的路由器加入网络,也不会影响DR与BDR的角色,在越出选举时间(Wait时间)后,只有DR与BDR失效后,才会重新选举。DR失效后,会同时重新选举DR与BDR,而在BDR失效后,只会重新选举BDR。DR和BDR与Drother的数据包处理会有所不同,

所有OSPF路由器,包括DR与BDR,都能够接收和传递目标地址为224.0.0.5的数据包。只有DR和BDR才能接收和传递目标地址为224.0.0.6的数据包。

由此可见,Drother路由器将数据包发向目标地址224.0.0.6,只能被DR和BDR接收,其它Drother不能接收;而DR和BDR将数据包发向目标地址224.0.0.5,可以被所有路由器接收。


链路状态(Link-State)

链路状态(LSA)就是OSPF接口上的描述信息,例如接口上的IP地址,子网掩码,网络类型,Cost值等等,OSPF路由器之间交换的并不是路由表,而是链路状态(LSA),OSPF通过获得网络中所有的链路状态信息,从而计算出到达每个目标精确的网络路径。OSPF路由器会将自己所有的链路状态毫不保留地全部发给邻居,邻居将收到的链路状态全部放入链路状态数据库(Link-State Database),邻居再发给自己的所有邻居,并且在传递过程中,绝对不会有任何更改。通过这样的过程,最终,网络中所有的OSPF路由器都拥有网络中所有的链路状态,并且所有路由器的链路状态应该能描绘出相同的网络拓朴。


OSPF区域

因为OSPF路由器之间会将所有的链路状态(LSA)相互交换,毫不保留,当网络规模达到一定程度时,LSA将形成一个庞大的数据库,势必会给OSPF计算带来巨大的压力;为了能够降低OSPF计算的复杂程度,缓存计算压力,OSPF采用分区域计算,将网络中所有OSPF路由器划分成不同的区域,每个区域负责各自区域精确的LSA传递与路由计算,然后再将一个区域的LSA简化和汇总之后转发到另外一个区域,这样一来,在区域内部,拥有网络精确的LSA,而在不同区域,则传递简化的LSA。区域的划分为了能够尽量设计成无环网络,所以采用了Hub-Spoke的拓朴架构,也就是采用核心与分支的拓朴,如下图:


职场小白必备知识点-RIP&OSPF​路由协议_OSPF_08


区域的命名可以采用整数数字,如1、2、3、4,也可以采用IP地址的形式,0.0.0.1、0.0.0.2,因为采用了Hub-Spoke的架构,所以必须定义出一个核心,然后其它部分都与核心相连,OSPF的区域0就是所有区域的核心,称为BackBone 区域(骨干区域),而其它区域称为Normal 区域(常规区域),在理论上,所有的常规区域应该直接和骨干区域相连,常规区域只能和骨干区域交换LSA,常规区域与常规区域之间即使直连也无法互换LSA,如上图中Area 1、Area 2、Area 3、Area 4只能和Area 0互换LSA,然后再由Area 0转发,Area 0就像是一个中转站,两个常规区域需要交换LSA,只能先交给Area 0,再由Area 0转发,而常规区域之间无法互相转发。


是如何工作以及工作工作过程只需了解即可;详情可参考思科PPT;

的相关命令:

职场小白必备知识点-RIP&OSPF​路由协议_路由表_09


标签:知识点,LSA,OSPF,RIP,BDR,DR,路由,路由器
From: https://blog.51cto.com/lifulin/8429947

相关文章

  • JavaScript判断图片是否已经加载完毕的方法汇总_javascript技巧
    在网上有很多关于判断图片是否已经加载完毕的文章,但是有的浏览器并不适合,下面小编给大家分享一些有关JavaScript判断图片是否已经加载完毕方法汇总,具体内容如下所示:一.onload事件通过监听图片的onload事件,可以判断图片是否已经加载完成,兼容所有的浏览器(w3c推荐方法),代码示例如下......
  • 微信小程序TypeScript请求封装(TS+request)
    目录结构-WxApp-api请求方式-index.ts统一输出api接口-base.ts环境判断-user对应数据请求-userApi.ts-utils-request.ts封装请求封装request首先,我们先搞w......
  • 初中数学核心知识点整理汇总大全
    七年级数学(上)知识点人教版七年级数学上册主要包含了有理数、整式的加减、一元一次方程、图形的认识初步四个章节的内容.第一章有理数1.有理数:(1)凡能写成形式的数,都是有理数.正整数、0、负整数统称整数;正分数、负分数统称分数;整数和分数统称有理数.注意:0即不是正数,......
  • JavaScript: Checkbox onChange event is differently processed by IE and FF
     DropDownList onchange=""TextBoxonchange=""CheckBoxonclick=""RadioButtononclick="" JavaScript:CheckboxonChangeeventisdifferentlyprocessedbyIEandFFTrytoclick thefollowingbuttonsonIEandFirefox.U......
  • Setence Case using Javascript/SQL Server
    Howto ChangeaaaorAAAtobeAaa<scripttype="text/javascript"language="javascript">functionCorrectName(e){if(e.value!=""&&/^[a-zA-Z]/.test(e.value)){e.value=e.valu......
  • ECMAScript 6 (ES6)
    ECMAScript6.0(以下简称ES6)是JavaScript语言的新一代标准,2015年6月正式发布。ECMAScript和JavaScript的关系ES是推荐和标准的浏览器脚本的规格,Javascript是对ES的一种实现,未来有可能会新的脚本,现在主流浏览器也开始淡化Javascript这个名称,一个原因是Javascript其实和Java......
  • noscript 元素用来定义在脚本未被执行时的替代内容(文本)
    NOSCRIPT标签是做什么用的?A制止脚本的运行B防止区域脚本被js修改(例如aDiv.innerHTML='something'将会不起作用)C用来定义在脚本未被执行时的替代内容DNOSCRIPT标签并不存在正确答案:Cnoscript元素用来定义在脚本未被执行时的替代内容(文本)。<body>......Y......
  • JavaScript 的数组方法
    数组方法构成了任何编程语言中数组的基本方面。这些方法使程序员能够操作、迭代和转换数组,为各种任务提供有效的解决方案。无论是排序、过滤还是映射数据,理解和利用数组方法都是释放代码全部潜力的关键值()该方法返回一个迭代器,为数组中的每个索引提供一个值,不需要任何参数。长度......
  • setTimeout 是浏览器环境提供的,JS 标准没有规定。不是JavaScript的全局函数,是浏览器(宿
    下列哪些函数是JavaScript的全局函数?AencodeURIBparseFloatCsetTimeoutDeval正确答案:ABD答案:A、B、D个人记忆方法:6(编码相关)+2(数据处理)+4(数字相关)+1(特殊)编码相关:escape()、unescape()、encodeURI()、decodeURI()、encodeURIComponent()、decodeURIComponent......
  • SQL常用知识点
    1.join多表连接查询innerjoin:只显示连接条件不为空的数据,如果on后面的连接数据为空则查询不到。selecta.name,b.namefromaaaasainnerjoinbbbasbona.id=b.idwherea.age=18andb.add='qwe'leftjoin:以表aaa为主表,会把连接之后......