动态路由.docx
- 文档编号:4099293
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:17
- 大小:403.69KB
动态路由.docx
《动态路由.docx》由会员分享,可在线阅读,更多相关《动态路由.docx(17页珍藏版)》请在冰豆网上搜索。
动态路由
第25章路由基础
教学导入:
TCP/IP网络中路由器的基本工作原理,介绍了IP路由器的几大功能,给出了静态路由协议和动态路由协议,以及内部网关协议和外部网关协议的概念,同时简要介绍了目前最常见的RIP、OSPF、BGP和BGP-4这几种路由协议。
教学内容:
1路由基础
2网络和主机地址
3路劲选择和包交换
4被路由的协议与路由选择协议
5网络层协议的运行
6静态路由和动态路由
5.2路由基础
一、什么是路由
路由是把信息从源穿过网络传递到目的的行为,在路上,至少遇到一个中间节点。
二、路由的组成
路由包含两个基本的动作:
确定最佳路径和通过网络传输信息。
在路由的过程中,后者也称为(数据)交换。
交换相对来说比较简单,而选择路径很复杂。
1、路径选择----:
路由规定把信息包从一个地址发送到另外一个地址的路径。
一条路由并不规定全部路由,仅仅只是主机到网关的一条路径,然后再由网关把包转发到目的地主机或另外一个网关。
网关:
网关是连接到多于一个网络的设备,它选择性的把数据从一个网络转发到其它网络。
网关连接两个或多个网络,并提供路由选择功能。
网关在网络层进行选择,一个网关从别的网关接收IP数据,为其选择路由,并按照选定的路由将IP数据报发送到其他网络。
网关周期性地检查相连的网络连接状态。
网关把报文按规定的路由发送到指定的目标网络,由目标网络负责把报文发送到目的主机。
metric是路由算法用以确定到达目的地的最佳路径的计量标准,如路径长度。
为了帮助选路,路由算法初始化并维护包含路径信息的路由表,路径信息根据使用的路由算法不同而不同。
2、交换
交换算法相对而言较简单,对大多数路由协议而言是相同的,多数情况下,某主机决定向另一个主机发送数据,通过某些方法获得路由器的地址后,源主机发送指向该路由器的物理(MAC)地址的数据包,其协议地址是指向目的主机的。
3.路由选择和包交换
三路由器如何将数据包从源端路由到目的端
路由器查看了数据包的目的协议地址后,确定是否知道如何转发该包,如果路由器不知道如何转发,通常就将之丢弃。
如果路由器知道如何转发,就把目的物理地址变成下一跳的物理地址并向之发送。
下一跳可能就是最终的目的主机,如果不是,通常为另一个路由器,它将执行同样的步骤。
当分组在网络中流动时,它的物理地址在改变,但其协议地址始终不变。
四路由类型:
一条路由并不完全描述一条完整的路径,它仅仅定义从一个主机到一个网关的路径段,或者一个网关到另外一个网关的路径段。
TCP/IP通常按照下列顺序搜索路由表以找到路由的最佳匹配:
(1)主机路由:
定义网关到一个指定主机的路由;
(2)网络路由:
定义网关到一个指定网段或网络的一条路由;
(3)缺省路由:
如果主机路由和网络路由都没有定义一条到目的地的路由,则使用缺省路由。
5.2.2网络和主机
1路由器使用地址来识别数据包的目标网络
5.2.4被路由协议与路由选择协议
1routedprotocol(可被路由的协议)和routingprotocol(路由协议)
可被路由的协议(RoutedProtocol)由路由协议(RoutingProtocol)传输,前者亦称为网络协议。
这些网络协议执行在源与目的设备的用户应用间通信所需的各种功能。
网络协议发生在OSI参考模型的上四层:
传输层、会话层、表示层和应用层。
routedprotocol在网络中被路由,例如IP、DECnet、AppleTalk、NovellNetWare、OSI、BanyanVINES和XeroxNetworkSystem(XNS)。
而路由协议是实现路由算法的协议,简单地说,它给网络协议做导向。
路由协议如:
IGRP、EIGRP、OSPF、EGP、BGP、IS-IS及RIP等
2路由选择协议通过度量值来决定到达目的地的最佳路径。
小度量值代表优选的路径;如果两条或更多路径都有一个相同的小度量值,那么所有这些路径将被平等地分享。
通过多条路径分流数据流量被称为到目的地的负载均衡。
第5章静态路由和动态路由
教学导入:
路由的过程可以概述为一个节点找到通往每个可能目的地的路径。
路由出现在从第一层到第七层的每一层中。
人们所熟悉的路由是出现在第三层(网络层)的,因此我们也只讨论第三层的IP路由
教学内容:
1静态路由和动态路由的用途
2如何使用缺省路由
3为什么需要动态路由
4动态路由选者工作原理
5如何用不同的度量值来标识网络路径的距离
6路由选择协议的分类
7收敛时间
5.3静态路由和动态路由
静态路由-----静态路由是在路由器中设置的固定的路由表。
除非网络管理员干预,否则静态路由不会发生变化。
动态路由-----动态路由是网络中的路由器之间相互通信,传递路由信息,利用收到的路由信息更新路由器表的过程。
它能实时地适应网络结构的变化。
如果路由更新信息表明发生了网络变化,路由选择软件就会重新计算路由,并发出新的路由更新信息。
这些信息通过各个网络,引起各路由器重新启动其路由算法,并更新各自的路由表以动态地反映网络拓扑变化。
动态路由适用于网络规模大、网络拓扑复杂的网络。
当然,各种动态路由协议会不同程度地占用网络带宽和CPU资源。
1静态路由的用途———由于静态路由不能对网络的改变作出反映,一般用于网络规模不大、拓扑结构固定的网络中。
静态路由的优点是简单、高效、可靠。
在所有的路由中,静态路由优先级最高。
当动态路由与静态路由发生冲突时,以静态路由为准。
静态路由是事先将路由表填入路由器的内部,使其能够立刻做路径的选择。
其主要的作用是提供有多条路径的内部网络提供路径。
配置静态路由
通过配置静态路由,用户可以人为地指定对某一网络访问时所要经过的路径,在网络结构比较简单,且一般到达某一网络所经过的路径唯一的情况下采用静态路由。
任务
命令
建立静态路由
iprouteprefixmask{address|interface}[distance][tagtag][permanent]
Prefix :
所要到达的目的网络
mask :
子网掩码
address :
下一个跳的IP地址,即相邻路由器的端口地址。
interface :
本地网络接口
distance :
管理距离(可选)
tagtag :
tag值(可选)
permanent :
指定此路由即使该端口关掉也不被移掉。
以下在Router1上设置了访问192.1.0.64/26这个网下一跳地址为192.200.10.6,即当有目的地址属于192.1.0.64/26的网络范围的数据报,应将其路由到地址为192.200.10.6的相邻路由器。
在Router3上设置了访问192.1.0.128/26及192.200.10.4/30这二个网下一跳地址为192.1.0.65。
由于在Router1上端口Serial0地址为192.200.10.5,192.200.10.4/30这个网属于直连的网,已经存在访问192.200.10.4/30的路径,所以不需要在Router1上添加静态路由。
Router1:
iproute192.1.0.64255.255.255.192192.200.10.6
Router3:
iproute192.1.0.128255.255.255.192192.1.0.65
iproute192.200.10.4255.255.255.252192.1.0.65
同时由于路由器Router3除了与路由器Router2相连外,不再与其他路由器相连,所以也可以为它赋予一条默认路由以代替以上的二条静态路由,
iproute0.0.0.00.0.0.0192.1.0.65
即只要没有在路由表里找到去特定目的地址的路径,则数据均被路由到地址为192.1.0.65的相邻路由器。
2距离矢量路由
距离矢量路由协议向路由器的所有邻居分发一张记录形式为<目标,开销>的列表。
这些记录为网络中的每个非本节点的其它节点赋上了开销这个值。
值得注意的是这些信息只分发给源路由器的邻路由器。
开销的意思是从源路由器到目标节点的链路开销的总和。
源路由器定期地刷新它的距离矢量记录并把记录分发给它的邻路由器。
邻路由器将过去接收到的记录与现在的比较,如果过去的开销较小路由器将沿过去接收的距离矢量记录所指的路径发送输出。
许多距离矢量在实际使用时将会碰到无穷大的问题。
例如,我们假设所有的链路都有一个开销单元并且每一对相邻节点之间的链路对应一个单元。
如果路由器X连接到路由器Y并且路由器Y连接到路由器Z如图1,我们将会发现无穷大的问题。
Y知道到Z要有1个单元的开销并且X知道到Z要2个单元的开销。
假设链路YZ关闭,这条链路的开销就成为无穷大(如图2)。
现在Y知道到达Z的开销是无穷大,它就将这个距离矢量路由发送给X。
假设X这时发送给Y一个距离矢量路由声称它到达Z要2个单元的开销。
现在Y就会认为它能通过X到达Z,它就发送给X一个刷新的距离矢量路由声称它到达Z的开销是3个单元(如图3)。
请注意X没有想到Y发给它的这个距离矢量路由是由它发送给Y的那个距离矢量路由推算来的。
这就是距离矢量路由的严重缺陷,在它们未改进的结构中不包含路由障碍的信息。
正如图例所示路由器将会不断改变到Z的路径信息。
X和Y这两个路由器将会永远交换这个有关Z路由器的路径信息或者直到开销单元的值到达某一个事先约定的无穷大的值(例如,在RIP中是15)。
X--------------------Y--------------------Z
Y:
1 X:
1 X:
2
Z:
2 Z:
1 Y:
1
[图一]
X--------------------Y--------**---------Z
Y:
1 <------------- Z:
无穷大
Z:
2 -------------> X:
1
[图二]
X--------------------Y--------**---------Z
Z:
无穷大(从Y)->X:
1
Y:
1 <------------- Z:
3
[图三]
使用路径矢量路由就可以解决无穷大的问题。
每个距离矢量也包括他所
通过的路径(如图4)。
路由器如果接收到一个路径矢量中包含自己的刷新记录,路由器将不会刷新该记录(如图5)。
边界网关协议(TheBorderGatewayProtocol)就使用了上述的方法以解决无穷大的问题。
很明显如果你想使路由表包含路由器所传输的AS(AutonomousSystemsontheinternet)路径信息,你将必须要向路由表中添入更多的信息。
因此BGP的设计者决定牺牲一点路由器能够承受的起的存储空间和处理能力。
X--------------------Y--------------------Z
Y:
1(Y) X:
1(X) X:
2(YX)
Z:
2(YZ) Z:
1(Z) Y:
1(Y)
[图四]
X--------------------Y--------**---------Z
Y:
1(Y) X:
1(X)
Z:
2(YZ) Z:
infinity
[图五]
另一个无穷大问题的解决之道是分离范围。
主要思想是,如果邻路由器处在通往目的地的路径上的第二个节点,路由器就不向该邻路由器广播该路径。
这个解决的办法可以用刚才的例子来说明。
因为到Z的路径是从X通过Y再到Z,又因为Y是X的邻路由器,所以该路径从X广播时Y不被广播。
链路状态路由
一个路由器在使用链路状态路由时,它将会向网络上所有其它的路由器分发它到它邻路由器的距离。
这就使每个路由器不用知道从某一源节点到目的节点的开销,该路由器就可以产生一张路由表。
环路的问题不会出现,因为每个路由器都拥有整个网络的拓扑。
主要思想是一个路由器产生有3个部分的记录包含源路由器(它自己)、邻路由器和到邻路由器的开销。
因此,如果路由器A通过一条开销为3的链路连接到路由器B,并且路由器A通过一条开销为5的链路连接到路由器C,那么路由器将会向网络上所有的路由器广播链路状态包(LSPs)和。
每个路由器将可以从接收到的LSPs中推算出一条通向目的节点的最短路径。
当使用序列码时会碰到序列码空间是有限这一问题。
LSPs可以用的序列码都被设置成有限值。
因此,当序列码到达最大值后,有要从最小值重新开始。
这就给路由器在比较链路状态的当前记录和刷新记录时带来困难,因为序列码大的有优先权。
为了解决这个问题,可以为LSP定义一个最大老化时间。
也就是说,如果路由器在X段时间内没有收到刷新记录,它就将现有的记录丢弃而去等待更新的记录。
要注意必须使到目的地的路径信息无效。
例如,当路由器Y连向某一局网的链路断开时,路由器Y向路由器Z广播了这条链路的信息,这时局网中的路由器们此时还在认为它们仍可以到达Z。
如果它们在最大老化时间内接收不到刷新记录,它们就会假设到Y的链路已经不可达。
这样所有的路由器的路由表才会一致,路由器Y和Z也可以使用有限的序列码。
序列码的初始化也是这个问题中另一个重要的方面。
假设路由器Y重起了,而此时网络又开始重新计算路径。
当该路由器的链路状态协议开始工作,它必须知道重新初始化它的序列码为何值以使它和其它路由器保持一致。
因此,它就广播一个带有特别的初始化集合的路径信息。
这条记录会告诉其它路由器它需要那个序列码,并且其它路由器会告诉它。
第5.2章动态路由基础
教学导入:
TCP/IP网络中路由器的基本工作原理,介绍了IP路由器的几大功能,给出了静态路由协议和动态路由协议,以及内部网关协议和外部网关协议的概念,同时简要介绍了目前最常见的RIP、OSPF、BGP和BGP-4这几种路由协议。
教学内容:
一动态路由基础
二路由协议分类:
可被路由协议和路由协议
三路由协议算法:
距离矢量算法|链路状态算法|混合路由协议算法
一动态路由基础
一路由特征:
1》路由器跳步数
2》带宽
3》负载
4》延迟
5》可靠性
6》代价
7》最大传输单元
二路由协议分类:
可被路由协议和路由协议
1可被路由的协议(routedprotocol)
可被路由的协议(RoutedProtocol)由路由协议(RoutingProtocol)传输,前者亦称为网络协议。
这些网络协议执行在源与目的设备的用户应用间通信所需的各种功能。
网络协议发生在OSI参考模型的上四层:
传输层、会话层、表示层和应用层。
routedprotocol在网络中被路由,例如IP、DECnet、AppleTalk、NovellNetWare、OSI、BanyanVINES和XeroxNetworkSystem(XNS)。
而路由协议是实现路由算法的协议,简单地说,它给网络协议做导向。
路由协议如:
IGRP、EIGRP、OSPF、EGP、BGP、IS-IS及RIP等
2路由协议(routingprotocol)
路由协议又可以分为:
内部网关协议IGP和外部网关协议EGP
常用的外部网关协议有:
BGP和BGP-4
常用的内部网关协议有:
RIP,IGRP,EIGRP,OSPF
3路由算法
其中采用距离矢量算法实现的有:
RIP和IGRP
采用链路状态算法实现的有:
OSPF
采用混合路由协议算法的有:
EIGRP
路由选择协议通过度量值来决定到达目的地的最佳路径。
小度量值代表优选的路径;如果两条或更多路径都有一个相同的小度量值,那么所有这些路径将被平等地分享。
通过多条路径分流数据流量被称为到目的地的负载均衡。
三路由算法:
距离矢量算法|链路状态算法|混合路由协议算法
《1》距离矢量算法:
RIP,IGRP
在距离向量法中,相邻路由器之间周期性地相互交换各自的路由表备份。
当网络拓扑结构发生变化时,路由器之间也将及时地相互通知有关变更信息。
在图1中,每一个路由器从与之直接相邻的路由器处获得对方的路由表。
例如,路由器B从路由器A和C获得路由信息后,对自己的路由表进行加工,加工后的路由表再传送给路由器A和C。
路由器通过这种方法不断地积累路由信息,直到最终收敛为止。
图1路由表传递示意
1.路由表的建立与更新
在图2中,有三个路由器:
A、B和C。
路由器A的两个网络接口E0和S0分别连接在10.1.0.0和10.2.0.0网段上;路由器B的两个网络接口S0和S1分别连接在10.2.0.0和10.3.0.0网段上;路由器C的网络接口S0和E0分别连接在10.3.0.0和10.4.0.0网段上。
图2路由表内容列表
如图2中各路由器路由表的前两行所示,通过路由器的网络接口到与之直接相连的网段的网络连接,其向量距离设置为0。
这即是最初的路由表。
当路由器B和A以及B和C之间相互交换路由信息后,它们会更新各自的路由表。
例如,路由器B通过网络端口S1收到路由器C的路由信息(10.3.0.0,S0,0)和(10.4.0.0,E0,0)后,在自己的路由表中增加一条(10.4.0.0,S1,1)路由信息。
该信息表示:
通过路由器B的网络接口S1可以访问到10.4.0.0网段,其向量距离为1,该向量距离是在路由器C的基础上加1获得的。
同样的道理,路由器B还会产生一条(10.1.0.0,S0,1)路由,这条路由是通过网络端口S0从路由器A获得的。
如此反复,直到最终收敛,形成图2所示的路由表。
概括地说,距离向量算法要求每一个路由器把它的整个路由表发送给与它直接连接的其他路由器。
路由表中的每一条记录都包括目标逻辑地址、相应的网络接口和该条路由的向量距离。
当一个路由器从它的邻居处收到更新信息时,它会将更新信息与本身的路由表相比较。
如果该路由器比较出一条新路由或是找到一条比当前路由更好的路由时,它会对路由表进行更新:
将从该路由器到邻居之间的向量距离与更新信息中的向量距离相加作为新路由的向量距离。
2.收敛
所谓收敛,是指直接或间接交换路由信息的一组路由器在网络的拓扑结构方面或者说在网络的路由信息方面达成一致。
路由协议必须通过某种算法使各路由器尽快达到收敛状态。
要实现收敛,必须解决路由器之间的路由环路(RoutingLoops)问题。
下面比较直观地举例讲述路由环路问题的产生。
假设在图2中,网络10.4.0.0发生故障,在网络发生故障前,路由器A、B、C的路由表已经收敛为图2的状态。
网络发生故障后,路由器C检测到故障,停止通过接口E0向外发送数据包,并通过接口S0通知路由器B。
在路由器A没有收到故障通知前,它仍然相信可以通过路由器B访问到10.4.0.0(路由器A路由表的最后一行),这条路径的距离为2。
由于路由器B的路由表中指示有一条通往10.4.0.0的路径,因此,如果路由器B在收到路由器C的故障通知前将路由表发送到C,C会认为通过B可以访问10.4.0.0,并在此基础上修改自己的路由表,将路由表中第二条记录修改为(10.4.0.0,S0,2),其中S0表示通过接口S0可以访问10.4.0.0,其距离为2。
这样一来,路由器A、B、C都认为通过其他的路由器存在着一条通往10.4.0.0的网络路径,结果导致目标地址为10.4.0.0的数据包在这三个路由器之间来回地传递,从而造成一条路由环路。
由于收敛速度过慢产生环路,一般地,人们采用4种方法解决路由环路问题。
(1)水平分割(splithorizon)
这种方法规定,路由器必须有选择地将路由表中的路由信息发送给相邻的其他路由器,而不是发送整个路由表。
具体地说,即一条路由信息不会被发送给该信息的来源方向。
这里仍以图2为例。
图3是图2中路由器B的路由表,通过图3中的注释我们可以看到,每一条路由信息都不通过该条路由信息中所指的网络端口向外发送。
这样就可以避免路由环路的产生。
(2)定义一个最大值最大值为16。
定义一个向量距离的最大值,可以在一定程度上防止形成路由环路,例如RIP协议定义HopCount的最大值为16。
使用这种方法,路由协议在向量距离超过协议允许的最大值前,允许路由环路的存在,一旦路由信息的向量距离超过规定的最大值,该路由信息将被标记为不可到达。
与此相关的另外一个概念是TTL(TimeToLive)。
TTL是一个包含在数据包中的参数,数据包每经过一次路由器的路由处理,TTL值减1,当TTL值等于0时,路由器将放弃对该数据包的处理,这样会避免数据包在某个环路中无休止的传递。
图3路由内容选择示意
(3)挂起计数器(Hold-DownTimers)
所谓挂起计数器是指路由器需要将某些可能导致路由环路的网络状态的变化值保留一段时间,在这段时间内,路由器将视情况对这些网络状态的变化所产生的路由信息进行更改。
下面是挂起计数器的具体工作过程。
●当一个路由器从它的邻居处收到以前某个可访问的网络现在变为不可访问的信息时,路由器将指向该网络的路由设置为不可访问,同时启动计数器。
●如果在计数器到期前,该路由器又从同一个邻居处收到该网络可以访问的信息,则它会重新将网络标记为可访问,并删除计数器。
●如果该路由器从另外一个邻居处收到一条比原路由更好的访问该网络的路由信息,它同样将该网络标记为可访问,以新的路由替代原路由,并删除计数器。
●如果在计数器到期前,该路由器从另外一个邻居处收到一条访问该网络的比原路由差的路由信息,这条信息将被忽略。
这样做能够使“网络不可访问”的信息有更多的时间在整个网络上传播。
●计数器到期后,该路由标记为不可到达,如果这时收到该网络可以访问的路由信息,路由器的处理方式同上。
需要注意的是,计数器计数时间应该略大于路由信息传遍整个网络所需的时间。
(4)触发式更新(TriggeredUpdates)
触发式更新已经不是新概念,简单地说,触发式更新是指路由器之间不单纯按照预定的时间周期进行路由信息交换,而是在路由表发生变化的时候及时地进行路由信息交换。
触发式更新普遍地应用在各种路由协议中。
一般来说,路由表在没有发生变化的情况下,将按照预定的时间周期进行交换,例如IPRIP协议规定路由器之间每隔30秒交换一次路由信息,IPXRIP协议则规定为60秒。
但是当路由表由于某种原因发生变化时,路由器立刻将路由表的变化
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 动态 路由