路由器软件设计与实现.ppt
《路由器软件设计与实现.ppt》由会员分享,可在线阅读,更多相关《路由器软件设计与实现.ppt(135页珍藏版)》请在三一办公上搜索。
1、IP交换和路由技术,内容简介,第一章IP网络概述第二章路由器工作原理第三章路由器硬件组成第四章路由器软件设计与实现第五章IP网络设计与应用第六章IP交换技术第七章MPLS技术,第四章路由器软件设计与实现,4.1 引言4.2路由信息协议4.3开放最短路径优先协议4.4边界网关协议,4.1 引言,动态路由协议一般运行于路由器上,它们在整个路由器协议栈中所处的位置是位于IP之上的,它们利用TCP和UDP乃至IP本身作为自己的承载实体的一种特殊的应用。不同于其它应用的是,各动态路由协议的基本功能是为所传递的数据报文提供维护路由器路由转发表的功能。,4.2路由信息协议,4.2.1 RIP概述4.2.2
2、RIP基本工作原理4.2.3 RIP路由表的建立过程4.2.4 RIP配置4.2.5 基于IPv6的RIPng路由协议,4.2.1 RIP概述,RIP是路由协议中使用时间最长的协议之一,RIP是一组基于距离矢量路由算法协议中的一个。RIP的另一个名字是routed(路由守护神),来自一个实现它的程序。这个程序最初由加利福尼亚大学伯克利分校设计,用于给他们在局域网上的机器提供一致的选路和可达信息。它依靠物理网络的广播功能来迅速交换选路信息。它并不是被设计来用于大型广域网的(尽管现在的确这么用)。,在施乐(Xerox)公司的Palo Alto研究中心PARC早期所作的关于网络互连的研究的基础上,r
3、outed实现了起源于Xerox NS RIP的一个新协议,它更为通用化,能够适应多种网络。尽管在其前辈上做了一些小改动,RIP作为IGP流行起来并非技术上有过人之处,而是由于伯克利分校把路由守护神软件附加在流行的4BSD UNIX系统上一起分发,从而使得许多TCP/IP网点根本没考虑其技术上的优劣就采用routed并开始使用RIP。一旦安装并使用了这个软件,它就成为本地选路的基础,研究人员也开始在大型网络上使用它。,关于RIP的最令人吃惊的事可能就是它在还没有正式标准之前就已经广泛流行了。大多数的实现都脱胎于伯克利分校的程序,但是由于编程人员对未形成文档的微妙细节理解不同而造成了它们之间互操
4、作性限制。协议出现新版本后,出现了更多的问题。在1988年6月形成了一个RFC标准,这才使软件商解决了互操作性问题。,RIP协议的基础就是基于本地网的矢量距离选路算法的直接而简单的实现。它把参加通信的机器分为主动的(active)和被动的(passive或silent)。主动路由器向其他路由器通告其路由,而被动路由器接收通告并在此基础上更新其路由,它们自己并不通告路由。只有路由器能以主动方式使用RIP,而主机只能使用被动方式。目前RIP有两个版本RIPv1和RIPv2。,RIP有以下一些主要特性:RIP属于典型的距离向量路由选择协议。RIP消息通过广播地址255.255.255.255进行发送
5、,使用UDP 协议的520端口。RIP以到目的网络的最小跳数作为路由选择度量标准,而不是在链路的带宽和延迟的基础上进行选择。RIP是为小型网络设计的。它的跳数计数限制为16跳,这限制了网络的规模。RIP是一种有类路由协议,不支持不连续子网设计。RIP周期进行路由更新,将路由表广播给邻居路由器,广播周期为30秒。RIP的管理距离为120。,4.2.2 RIP基本工作原理,路由器的关键作用是用于网络的互连,每个路由器与两个以上的实际网络相连,负责在这些网络之间转发数据报。在讨论 IP 进行选路和对报文进行转发时,我们总是假设路由器包含了正确的路由,而且路由器可以利用 ICMP 重定向机制来要求与之
6、相连的主机更改路由。,但在实际情况下,IP 进行选路之前必须先通过某种方法获取正确的路由表。在小型的、变化缓慢的互连网络中,管理者可以用手工方式来建立和更改路由表。而在大型的、迅速变化的环境下,人工更新的办法慢得不能接受。这就需要自动更新路由表的方法,即所谓的动态路由协议,RIP协议是其中最简单的一种。,在路由实现时,RIP作为一个系统长驻进程(daemon)而存在于路由器中,负责从网络系统的其它路由器接收路由信息,从而对本地IP层路由表作动态的维护,保证IP层发送报文时选择正确的路由。同时负责广播本路由器的路由信息,通知相邻路由器作相应的修改。,RIP协议处于UDP协议的上层,RIP所接收的
7、路由信息都封装在UDP协议的数据报中,RIP在520号UDP端口上接收来自远程路由器的路由修改信息,并对本地的路由表做相应的修改,同时通知其它路由器。通过这种方式,达到全局路由的有效。,RIP路由协议用“更新(UNPDATES)”和“请求(REQUESTS)”这两种分组来传输信息的。每个具有RIP协议功能的路由器每隔30秒用UDP520端口给与之直接相连的机器广播更新信息。更新信息反映了该路由器所有的路由选择信息数据库。路由选择信息数据库的每个条目由“局域网上能达到的IP地址”和“与该网络的距离”两部分组成。请求信息用于寻找网络上能发出RIP报文的其他设备。,RIP用“路程段数”(即“跳数”)
8、作为网络距离的尺度。每个路由器在给相邻路由器发出路由信息时,都会给每个路径加上内部距离。,路由器3直接和网络C相连。当它向路由器2通告网络142.10.0.0的路径时,它把跳数增加1。与之相似,路由器2把跳数增加到“2”,且通告路径给路由器1,则路由器2和路由器1与路由器3所在网络142.10.0.0的距离分别是1跳、2跳。,RIP工作原理示例,然而在实际的网络路由选择上并不总是由跳数决定的,还要结合实际的路径连接性能综合考虑。在如下所示网络中,从路由器1到网络3,RIP协议将更倾向于跳数为2的路由器1-路由器2-路由器3的1.5Mbps链路,而不是选择跳数为1的56Kbps,直接的路由器1-
9、路由器3路径,因为跳数为1的56Kbps串行链路比跳数为2的1.5Mbps串行链路慢得多。,路由选择不仅限于“跳数”考虑的示例,4.2.3 RIP路由表的建立过程,在RIP中,每个路由器都周期性的向其直连的邻居路由器发送自己完全的路由表,并也从自己直连的邻居路由器接收路由更新信息。因为每个路由器都只从自己的邻居路由器了解路由信息,因此也将其称为谣言路由。在每个RIP协议路由更新报文中,最多可以携带25个子网的路由信息。如果数量多于此值,则通过发送多个RIP报文来实现。,运行RIP的路由器在决定发送一条路由更新消息之前,首先要检查待发送路由更新的网络或子网是否和路由更新送出接口属于同一个主网络。
10、如果不属于同一个主网络,则RIP会将待发送路由更新的网络在主网络边界进行自动总结。如果属于同一个主网络,而且二者的子网掩码相同则发送此路由更新,否则不发送此网络的路由更新信息。,1、路由更新的发送,运行RIP的路由器在决定发送一条路由更新消息之前,首先要检查待发送路由更新的网络或子网是否和路由更新送出接口属于同一个主网络。如果不属于同一个主网络,则RIP会将待发送路由更新的网络在主网络边界进行自动总结。如果属于同一个主网络,而且二者的子网掩码相同则发送此路由更新,否则不发送此网络的路由更新信息。,RIP路由更新的发送 首先对于子网络172.16.25.0/24,由于它和路由更新发出的接口Ser
11、ial1(172.17.26.1/24)不属于同一个主网络,所以RIP将子网172.16.25.0/24自动总结成为主网络:172.16.0.0/16并发送总结后的主网络。对于网络172.17.25.0/24,由于它的路由更新发出的接口Serial 1(172.17.26.1/24)属于同一个主网络(172.17.0.0/16)且二者的子网掩码相同。所以,该网络路由更新将被发送。,2、路由更新的接收,当运行RIP的路由器收到一条路由更新消息后,首先要检查收到的路由更新中的网络与接收更新的接口是否属于同一主网络。如果是,则路由更新中网络子网掩码将使用接收更新的接口的子网掩码。如果不属于同一主网络
12、,同时路由更新中的网络的任一子网已经存在于接收路由更新的路由器的路由表中了,而且是从另一接口收到的更新中学到的,则此路由更新被忽略。否则,安装此路由条目且使用路由更新中的网络所属主网络的子网掩码。,在RouterB上执行命令show ip route的输出,3、路由自环问题,路由自环问题-1,路由自环问题,路由自环问题-2,路由自环问题,路由自环问题-3,4、解决路由自环问题计数到无穷,在这种方案中,RIP将路由表中任一路由条目的代价值限制为15跳。同时,用代价值16表明一个网络不可达。但是,计数到无穷的提出限制了路由网络的规模。,5、解决路由自环问题水平分割,水平分割(网络复杂时失效),6、
13、解决路由自环问题触发更新,RIP规定:当网络发生变化(新网络的加入、原有网络的消失)时,路由器将立刻发送路由更新消息而不用等待更新计时器到时。触发更新只是在概率上降低了自环发生的可能性。,7、解决路由自环问题路由毒杀和反转毒杀,8、解决路由自环问题抑制定时器,发生路由自环问题的原因还在于RouterC在收到RouterB的关于网络的路由更新消息后,重新安装了一条到网络的路由,而且该路由的代价比原路由的代价更大。在RIP中定义了抑制定时器,当某个路由器得知一个网络不可达时,会启动此抑制定时器(如180秒)。在此抑制定时器到时之前,该路由器不会接收任何关于不可达网络重新可达的路由更新信息,除非收到
14、的到不可达网络的路由更新信息具有比原来更小(更好)的代价值。,9、RIP中的计时器,更新(Update)周期时间30秒 更新周期时间是指每个路由器发送路由更新消息的时间间隔。默认情况下路由表的更新周期时间为30秒。为了避免所有路由器在同一时刻发送路由更新信息,造成通信链路的拥塞。每个路由器都采用了修正了的更新周期时间,而不是精确的30秒。失效(Invalid)计时器180秒 当连续6个更新周期时间(180秒)内没有收到关于某个网络的路由更新信息时,该路由条目被标为失效。,清空(Flushed)计时器270秒 当一条路由条目被标为失效后再经过90秒,如果还没收到该网络的路由更新消息,则该路由被从
15、路由表中删除。抑制(Hold-down)计时器180秒 当一个路由器收到某个网络不可达的路由更新消息时,启动抑制计时器。在此抑制定时器到时之前,该路由器不会重新安装不可达网络的路由条目,除非收到具有比原来的代价值更小的,到不可达网络的路由更新消息。,RIP中的计时器,4.2.4 RIP配置,1基本配置 配置RIP的步骤很简单。首先启动RIP路由进程,然后声明RIP协议“关心”的网络。所谓“关心”的网络是指RIP将广播本路由器接口所在的这些网络的路由更新信息。在Router A上配置RIP协议的过程和命令,RIP基本配置,2被动接口(Passive Interface),有时出于某种目的,例如不
16、想公布自己某些网络的信息,这是可以采用被动接口。配置被动接口,RIP诊断,1show 命令show runshow ip routeshow ip protocols,显示动态路由协议的配置参数,2Debug命令,对RIP进行诊断,4.2.5 基于IPv6的RIPng路由协议,路由技术的发展是与整个因特网的发展密切相关的。随着因特网规模和负载的增长,产生了地址空间不足及路由器存储和交换的信息量急剧增加等一系列问题,使得 IPv6得以长足发展,并将最终取代IPv4。同时现有的基于IPv4的路由协议也必须加以改造,使之符合未来因特网的发展要求。,RIP作为一种成熟的路由标准,在因特网中有着广泛的应
17、用,特别是在一些中小型网络中。正是基于这种现状,同时考虑到RIP与IPv6的兼容性问题,IETF对现有技术进行改造,制定了IPv6下的RIP标准,即RIPng(RIP next generation)。下面将分别对RIPng的消息格式、工作原理、与RIPv1及RIPv2的主要差别、协议的缺点及改进方向、发展趋势等方面做简单的介绍。,RIPng的报文格式,RIPng是基于UDP的协议,并且使用端口号521发送和接收数据报。RIPng报文大致可分为两类:选路信息报文和用于请求信息的报文。它们都使用相同的格式,由固定的首部和路由表项RTE(Route Table Entry)组成,其中路由表项可以有
18、多个。首部包括命令字段和版本号字段。同RIP一样,命令字段用来区分报文要实现的各种操作。其中命令号1表示请求部分或全部选路信息,命令号2表示响应,其中包含一个或多个RTE。,路由器或主机可以通过发送请求命令向另一个路由器请求选路信息。路由器使用响应命令回答。版本号字段包含了协议的版本号(目前的版本号值为1),接收方会检测该字段,以确定对方运行的RIPng协议本地是否能进行正确的解释。报文的剩余部分是一个RTE序列,其中每一个RTE由目的IPv6前缀、路由标记、前缀的有效长度以及到目的网络的花费等4部分组成。,IPv6的地址为128bit,因此在RTE中占用16字节。路由标记字段是从RIP中保留
19、下来的,其最主要的用途是用来对外部路由做标志,以区分内部路由和外部路由,供外部网关路由协议(如EGP或BGP)使用。该字段也可用于其他目的,只要网络内所有运行RIPng的路由器对其解释是一致的。,前缀长度字段指明了前缀中有效位的长度,IPv6中使用了前缀长度的概念代替了IPv4中的子网掩码。由于IPv6地址的意义很明确,因此RIPng中不再区分网络路由、子网路由或主机路由。路由花费字段指明到目的网络的花费,由于RIPng的最大工作直径为15跳,因此该字段可以为1和15之间的任意值,16即意味着目的地不可达。RIPng中仍然使用固定的度量方式,即该字段的含义只能是跳数,路由器不能对其进行其他的解
20、释。,RIPng并没有限制报文的大小,RIPng报文所能携带的最大RTE的数目是由物理介质的MTU所决定的,计算公式如下:报文长度=RTE数目20+4其中RTE数目的计算公式如下:RTE数目=INT(MTU-IPv6首部长度-UDP首部长度-RIPng首部长度)/RTE长度,与RIPv2不同的是,RIPng的下一跳字段是由一个单独的RTE指定的。RIPng使用单独的RTE表示下一跳的原因是IPv6的地址多达 128bit,若将下一跳字段与目的网络地址放在同一个RTE中,则RTE的大小几乎将会增加一倍,因此RIPng中采取目的网络地址和下一跳分开的方法来减小RTE的长度。在表示下一跳的RTE中,
21、路由标记和前缀长度字段必须为零,而度量字段为0 xFF。,RIPng的工作原理,RIPng把参与通信的机器分为主动和被动两种方式。主动路由器向其他路由器通告路由,而被动路由器接收通告并更新其路由,被动路由器自己并不通告路由。只有路由器以主动方式使用RIPng,主机只能使用被动方式,因为主机并不了解路由信息。,运行RIPng的路由器维持一个到所有可能目的网络的路由表,路由器周期性地(RFC推荐为30s)向邻居节点发送该路由器的路由表,接收方通过接收邻居路由器的周期性通告更新自己的路由表。这种周期性的路由信息的交换使得每个路由器形成对网络拓扑结构的局部的认识。RIPng使用到达目的站点所经过的链路
22、数,即跳数来度量路由花费,同时RFC规定RIPng的工作范围为15跳,数值16表示无穷大,即意味着路由不可达。,路由器通常不会主动发出请求报文来进行路由请求,路由请求通常只是在路由器刚启动或是路由器正在寻找路由信息时才会发出请求报文以获得响应。路由器在查询响应、周期更新、触发更新三种情况下会收到响应报文。路由器根据响应报文判断是否对本地路由表进行更新。由于响应报文可能对本地路由表进行改动,因此对报文的来源必须进行严格的检查,以确认报文的合法性。,众所周知,基于距离矢量算法的路由协议会产生慢收敛和无限计数问题,这样就引发了路由的不一致。RIPng使用水平分割技术、毒性逆转技术、触发更新技术来解决
23、这些问题,但是这些技术的引入,同时又带来了另一些问题,如采用触发更新技术后,如果不对产生的报文进行合理的控制,很容易产生广播风暴。,路由器周期性的报文广播和触发更新给网络造成很多额外的负载,为减少路由信息的数量,RIPng可以采用多播技术发送更新报文,同时利用一个小的随机时延对触发更新报文进行抑制。介绍RIPng的工作原理就不能不提到定时器,定时器在RIPng中起着非常重要的作用,RIPng使用定时器来实现路由表的更新、报文的发送。周期性的报文广播是由定时器实现的,另外为防止路由表长时间未更新而失效,每个路由表项有两个定时器与之相联系,超时的路由表项最终将会被删除,以防止路由器广播和使用已经失
24、效的路由。,RIPng中使用的定时器主要有以下三个:(1)启动周期性广播的定时器。此定时器被设置成25s到35s之间的任一随机数。这样设置的目的是为了避免网络上所有路由器以相同的定时发送更新报文,利用随机间隔可以均衡通信量,从而减少路由器之间发生冲突的可能性。(2)期满定时器。路由器只要收到通往特定信宿路由,就对通往该信宿的期满定时器初始化。期满定时器被设定为180s,如果一条路由在期满定时器超时前未得到相关报文的更新,则该条路由不再有效,但仍保留在路由表中,以便通知其他路由器这条路由已经失效。,(3)垃圾收集定时器。路由器对无效路由打上尺度为无穷大的无效标记并将垃圾收集定时器初始化。此时,定
25、时器被设置为120s,在这段时间内这些路由仍然会被路由器周期性地广播,这样相邻路由器就能迅速从路由表中删除该路由。,RIPv1、RIPv2和RIPng的比较,根据上面的介绍,我们应该看到RIPng的目标并不是创造一个全新的协议,而是对RIP进行必要的改造以使其适应IPv6下的选路要求,因此RIPng的基本工作原理同RIP是一样的,其主要的变化在地址和报文格式方面。下面列举了一些RIPv1、RIPv2与RIPng之间的主要区别:,(1)地址版本。RIPv1、RIPv2是基于IPv4的,地址域只有32bit,而RIPng基于IPv6,使用的所有地址均为128bit。,(2)子网掩码和前缀长度。RI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 路由器 软件设计 实现
链接地址:https://www.31ppt.com/p-6441911.html