一、动态路由
(1)、动态路由协议基础
1、动态路由概述
Ø动态路由是网络中路由器之间互相通信,传递路由信息、利用收到的路由信息更新路由表的过程。它能实时地适应网络结构的变化
Ø如果路由更新信息表明确网络发生了变化,路由选择软件就会重新计算路由,并发出新的路由更新信息
Ø如果路由器配置了接口的IP地址后,就会将直连网段存储在路由表中
Ø如果使用静态路由,对于非直连的网段,需要在路由器上配置到达目标网段需要经过的下一跳地址,也就是说,需要人为指定一条数据传输的路径,手工构造路由表
Ø如果使用动态路由协议,路由器之间就会将自己的路由信息向相邻的路由器发送,并接收相邻路由器发过来的路由信息,有选择地保存这些路由信息,生成自己的路由表
【如图所示】
A.R1会将直连网段10.0.0.0和20.0.0.0的信息向R2发送
B.R2就能学习到10.0.0.0网段,R2将10.0.0.0保存在自己的路由表中,还会向R3发送10.0.0.0、20.0.0.0和30.0.0.0网段的信息
C.R3就能学习到10.0.0.0和20.0.0.0网段
【动态路由的特点】
动态路由适用于网络规模大、网络拓扑复杂的网络
A.减少了管理任务:动态路由的过程全是由路由器自己完成的,路由学习、路由转发、路由维护的任务都是由动态路由自己完成的
B.占用了网络的带宽:因为动态路由是通过与其他路由器通信来了解网络的每个路由器都要告诉其他路由器自己所知道的网络信息,同时还要从其他路由器学习自己所不知道的网络信息,这样就不可避免地发送包,而这些路由信息包会占用一定的网络流量
2、动态路由协议
【动态路由协概述】
Ø动态路由协议是基于某种路由协议(Routing Protocol)来实现的
Ø路由协议定义了路由器在与其他路由器通信时的一些规则,也就是说,路由协议规定了路由器是如何来学习路由的,是用什么标准来选择路由以及维护路由信息的
Ø动态路由协议就像路由器之间用来交流信息的语言,通过它,路由器之间可以共享网络连接信息和状态信息
Ø动态路由协议不局限于路径的选择和路由表的更新,当到达目的网络的最优路径出现问题时,动态路由协议可以在剩下的可用路径中,选择下一个最优路径进行替代
【路由选择算法几个必要的步骤】
a)向其他路由器传递路由信息
b)接收其他路由器的路由信息
c)根据收到的路由信息计算出到每个目的网络的最优路径,并由此生成路由表
d)根据网络拓扑的变化及时做出反应,调整路由生成新的路由表,同时把拓扑变化以路由信息的形式向其他路由器宣各
【度量值】
当到达同一个网段有两条或两条以上不同路径的时候,动态路由协议会选择一条最优的路径传输数据
【注意】:
不同的路由协议使用不同的度量,有时还使用多个度量
a)跳数:(Hop count)跳数度量可以简单地记录路由器的跳数。如图所示,R1要到达192.168.1.0网段,如果选择跳数作为度量值来衡量链路的优势,那么就会选择路数较少的路径转发数据,即R1→R3→192.168.1.0....但是 R1→R3真的是最优的路径吗?R1到R3之间链路的带宽只有19.2kb/s,而R1→R2→R3的路径带宽却是2Mb/s
b)带宽:(Bandwidth)带宽度量将会选择高带宽路径,而不是低带宽路径,如图所示,如果将带宽作为度量值,选择路径应该会是R1→R2→R3。然而带宽本身可能不是一个好的度量。例如,一条被其他流量过多占用的2Mb/s的链路,那么与一个128kb/s的空亲链路相比到底谁更好呢?或者与一条高带宽但时延也很大的链路相比又如何呢?
c)负载:(Load)负载度量反映了占用沿途链路的流量大小。最优路径应该是负载最低的路径。不像跳数和带宽,路径上的负载会发生变化,因而度量也会跟着变化。这时需要注意的是,如果度量变化过于频繁,路由摆动可能经常发生。路由摆动会对路由器的CPU,数据链路的带宽和全网稳定性产生负面影响
d)时延:(Delay)时延度量数据包经过一条路径所花费的时间。使用时延作为度量值的路由选择协议时将会选择使用最低时延的路径作为最优路径
e)可靠性:(Reliability)可靠性度量用来度量链路在某种情况下发生故障的可能性。可靠性可以是变化的或固定的,链路发生故障的次数或特定时间间隔内收到错误的次数都是可变可靠性度量的例子。固定可靠性度量是基于管理员确定的一条链路的已知量。可靠性最高的路径将被最优选择
f)成本(cost)成本是用来描述路由优劣的一个通用术语,最小成本、最高成高或最短、最长仅仅指的是路由协议基于自己特定的度量对路径的一种看法。网络管理员可以地cost进行手工定义
【收敛】
Ø使所有路由表都达到一致状态的过程叫做收敛(Convergence)
Ø全网实现信息共享以及所有路由器计算最优路径所花费的时间的总和就是收敛时间
3、静态路由和动态路由
Ø动态路由协议就是自动监测并随着网络拓扑的变换更新路由表
Ø在所有的路由中,除直连路由外静态路由的优先级最高
Ø当一个包在路由器中进行路径选择时,路由器首先查找静态路由,如果查到,则根据相应的静态路由进行转发分组,否则再查找动态路由
Ø当静态路由与动态路由发生冲突时,以静态路由为准
(2)、动态路由协议分类
Ø路离失量路由协议依据从源网络到目标网络所经过的路由器的个数来选择路由,典型的协议如“RIP和IGRP”
Ø链路状态路由协议会综合考虑从源网络到目标网络的各条路径情况来选择路由,典型的协议如“OSPF、IS-IS”
1、距离失量路由协议
Ø路离失量名称的由来是因为路由以失量(距离、方向)的方式被通告出去的,其中距离是根据度量定义的,方向是根据下一跳路由器定义的
Ø每个路由器向邻接路由器学习它们所观察到的路由信息,然后再向外通告自己观察到的路由信息,所以距离失量路由选择有时又被称为“依传闻进行路由选择”
2、链路状态路由协议
Ø距离失量路由协议所使用的信息可以比喻为路标提供的信息,而链路状态路由协议更像是一张公路线路图
二、RIP路由协议
(1)、RIP路由协议工作原理
a)定期更新(Periodic UPdates):30秒更新一次,要注意“如果更新信息的发送对于频繁可能会引起拥塞,但如果更新信息发送不频繁,网络收敛时间可能长得难以接受”
b)邻居(Neighbors):邻居通常意味着共享相同数据链路的路由器,距离失量路由选择协议向邻居路由器发送更新消息,并依赖邻居向它的邻居中传递更新信息。因此,距离失量路由协议被说成是使用“逐跳更新方式”
c)广播更新(Broadcast Update):当路由器首次在网络上被激活时,路由器怎样寻找其他路由器呢?它又是怎样宣布自己的存在呢?最简单地方法是向广播地址(在IP网络中,广播地址是255.255.255.255)发送更新信息。使用相同路由选择协议的邻居路由器将会收到广播数据包,并采取相应的动作。不关心路由更新信息的主机和其他设备会丢弃该数据包。
d)全路由表更新(Full Routing Table Update):大多数距离失量路由协议使用非常简单的方法告诉邻居它所知的一切,该方法就是广播它的整个路由表。邻居在收到这些更新信息之后,会收集自己需要的信息,其他则被丢弃
1、路由表的形成
Routing Table |
Routing Table |
Routing Table |
|||||||||||
NET |
Next hop |
Metric |
NET |
Next hop |
Metric |
NET |
Next hop |
Metric |
|||||
C |
10.0.0.0 |
0 |
C |
20.0.0.0 |
0 |
C |
30.0.0.0 |
0 |
|||||
C |
10.0.0.0 |
0 |
C |
30.0.0.0 |
0 |
C |
40.0.0.0 |
0 |
图:路由表的形成(1)
Routing Table |
Routing Table |
Routing Table |
|||||||||||
NET |
Next hop |
Metric |
NET |
Next hop |
Metric |
NET |
Next hop |
Metric |
|||||
C |
10.0.0.0 |
0 |
C |
20.0.0.0 |
0 |
C |
30.0.0.0 |
0 |
|||||
C |
20.0.0.0 |
0 |
C |
30.0.0.0 |
0 |
C |
40.0.0.0 |
0 |
|||||
R |
30.0.0.0 |
20.0.0.2 |
1 |
R |
10.0.0.0 |
20.0.0.1 |
1 |
R |
20.0.0.0 |
30.0.0.1 |
1 |
||
R |
40.0.0.0 |
20.0.0.2 |
2 |
R |
40.0.0.0 |
30.0.0.2 |
1 |
R |
10.0.0.0 |
30.0.0.1 |
2 |
图:路由表的形成(2)
2、RIP的度量值与更新时间
【RIP的度量值】
ØRIP路由协议使用“跳数”作为唯一的度量值
ØRIP中规定了跳数的最大值为15。16跳被视为不可达,RIP所以不太适用于大型的广域网
【RIP更新时间】
ØRIP使用“UDP协议”,端口号是520
Ø路由启动后,平均每隔30s就从每个启动RIP协议的接口不断地发送出路由更新消息
3、水平分割(Split Horizon)
原理:从一个接口学习到路由信息,不再从这个接口发送出去
作用:水平分割不仅能够阴止路由环路的产生,同时也能减少路由更新信息占用的链路资源
(2)、RIP路由协议的配置和验证
【启动RIP进程】
Router(config)# router rip
【将路由器上启动RIP的接口的主网络号宣告出去】
Router(config)# network network-number
【查看路由表】
Router# show ip route
【查看路由协议的配置】
Router# show ip protocols
【路由表内容信息】
[120/1]:120表示管理距离 1表示度量值
0表示直连、1为静态、110为OSPF、120为RIP
《注意》
管理距离是一种优先级度量,当两路路由方式到达同一网络时,路由器会选择管理距离较小的路由来达到目标网段
(3)、RIPv1与RIPv2
#RIPv1广播发送路由更新,广播地址为255.255.255.255
#RIPv2组播发送路由更新,组播地址为224.0.0.9
#RIPv1是有类路由协议(classful),它们在宣告路由信息时不携带网络掩码
#RIPv2是无类路由协议(classless),它们在宣告路由信息时携带网络掩码
《有类路由协议的另一个特点是在边界路由器上进行路由汇总》
(4)、RIPv2的配置
【配置RIP协议,使用版本V2】
Router(config)# router rip
Router(config-router)# version 2
【关闭路由汇总功能】
Router(config-router)# no auto-summary
(ripv2默认情况下在主网络边界上进行路由汇总,因此要关闭)
【例如】:
Router(config)# router rip
Router(config-router)# version 2
Router(config-router)# no auto-summary
Router(config-router)# network 10.0.0.0
(10.0.0.0网段对应的所有接口都运行RIP,并从运行RIP的接口中将实际的子网宣告出去)