刚做完网络层动态路由选择的实验,写下此篇记录实验过程,巩固学习成果。
参考书目:《计算机网络》北京理工大学出版社-刘阳老师编
路由选择可分为两种策略:
- 静态路由选择策略
- 动态路由选择策略
静态路由即管理员手动配置路由信息,在网络拓扑结构发生变化时,需要网络管理员或者用户手动修改路由信息。此种路由策略简单、开销小,对于机器负担小,适用于小型、结构较为固定的网络。
动态路由也叫做自适应路由选择,该种策略的路由信息由路由器内部某些算法根据网络状况计算得到,当网络拓扑结构发生改变时,算法会自动更新路由信息,而无需人为调整。由于需要频繁运行算法并监测网络状况,该种策略对机器开销较大。
本文将会简单介绍动态路由选择策略中的两种内部网关协议:RIP(路由信息协议,Routing Infor Protocol)、OSPF(开放最短通路优先协议,Open Shortest Path First)。
一、路由信息协议 RIP
(一)RIP工作内容
RIP通过距离向量算法来动态选择路由,其评价路由好坏的标准为距离的大小:路由器将与它直接连接的设备的距离定义为 1,非直连网络的距离则是路径上路由器的数量加 1,距离值越小,则认为路由越优。
RIP协议规定一条路径中最大距离不超过 15,当距离为 16 时,说明该网络不可达。
RIP仅与相邻路由器交换路由信息,交换内容为本路由器路由表中的所有内容。RIP规定相邻路由器之间每隔 30 秒就应当进行一次数据分享,当收到来自邻居的路由表时,路由器将会采用距离向量算法更新自己的路由表
(二)距离向量算法
1. 算法描述
在接收到邻居路由器R传来的路由表信息后,针对其中的每一条路由,算法按如下步骤处理:
- 将路由下一条地址改为路由器 R
- 将跳数(距离)加 1
- 若路由表中不存在该路由,则直接添加到路由表中
若存在该路由,且下一条地址相同,则用该路由替换旧路由信息
若该路由跳数小于已存在的,则替换旧路由
当 3 分钟内没有收到相邻路由器的路由表信息时,将该路由器标记为不可达(16 跳)
2. 缺陷
采用距离向量算法会产生“慢收敛”现象,当某个网络出现故障时(如下图所示),与其相邻的路由器 R1 将把该网络标记为不可达(距离设为16),假若 R2 路由更新提前于 R1,R2中传来的通往故障网络的路由将会取代 R1 中原本被标记为不可达的路由(算法第3步第3条),在经过很长时间,路由跳数才慢慢抵达 16 跳。
3. 改进办法
①传递路由时,不将该路由从接受此信息的端口送出。②当得知路由不可达的 60 s内,不再接收关于该网络可达的信息。同时立刻向邻居广播此信息。
(三)在ENSP中调试RIP
在ENSP中新建如下拓扑
为路由器各个端口配置IP地址
【R1】
system
sysname R1
interface g0/0/0
ip address 12.0.0.1 30
quit
interface LoopBack 0
ip address 1.1.1.1 32
quit
【R2】
system
sysname R2
interface g0/0/0
ip address 12.0.0.2 30
quit
interface g0/0/1
ip address 23.0.0.2 30
quit
interface LoopBack 0
ip address 2.2.2.2 32
quit
【R3】
system
sysname R3
interface LoopBack 0
ip address 3.3.3.3 32
quit
interface g0/0/0
ip address 23.0.0.1 30
quit
IP地址配置完成后,进行连通性测试:
ping 12.0.0.2
ping 23.0.0.1
可以发现,直连网络可以成功ping通,而非直连网络无法ping通
接下来为三个路由器配置RIP协议
【R1】
interface g0/0/0
rip version 2
quit
rip
version 2
network 1.0.0.0 // 配置直连地址
network 12.0.0.0
undo summary // 取消路由聚合
quit
【R2】
inter g0/0/0
rip version 2
quit
inter g0/0/1
rip version 2
quit
rip
version 2
net 2.0.0.0
net 12.0.0.0
net 23.0.0.0
undo summary
quit
【R3】
inter g0/0/0
rip version 2
quit
rip
version 2
net 3.0.0.0
net 23.0.0.0
undo summary
quit
配置完成后,测试网络连通性
Ping 23.0.0.1
通过连通性测试发现,在没有手动配置路由表的情况下,两个网络之间可以相互通讯,说明路由器通过运行RIP协议,相邻路由器之间共享路由表的方式获得了包含了所有网络的路由表。
查看R1路由表
display ip routing-table
从中也可以发现由RIP产生的路由信息。
二、开放最短通路优先 OSPF
(一)OSPF工作内容
OSPF的路由选择算法是基于Dijkstra提出的最短路径算法,该算法通过多个度量值评价路由的好坏:距离、延时、带宽等。仅在链路状态发生改变时,OSPF协议向本自治系统中所有路由发送信息(泛洪法),发送的是与本路由器相邻的所有路由器的链路状态(注意与RIP不同,OSPF不会直接发送自己的所有信息,而是只发送一个概览)。除此之外,OSPF也会定期交换信息(周期较长)。
OSPF协议根据路由器之间信息,会总结出一个包含了网络拓扑图的链路状态数据库。
(二)OSPF区域
为适应大规模网络路由,将自治系统进一步划分为更小的区域,每个区域有一个32位的标识符(点分十进制表示)。区域分为两级:一个主干区域和多个其他区域,主干区域标识符固定为0.0.0.0,每个区域至少有一个路由器连接到主干区域。
(三)在NESP中调试OSPF
在ensp中建立如下拓扑:
为各个接口分配并配置IP地址,并划分为三个区域:黄色—area1、蓝色(主干区域)—area0、青色—area2
AR1:
ospf 1 r 1.1.1.1
area 1
network 10.1.12.0 0.0.0.255 // 注意这里子网掩码要使用反码
AR2:
un in en
ospf 1 r 2.2.2.2
area 1
network 10.1.12.0 0.0.0.255
area 0
network 10.1.23.0 0.0.0.255
AR3:
un in en
ospf 1 r 3.3.3.3
area 0
network 10.1.23.0 0.0.0.255
area 2
network 10.1.34.0 0.0.0.255
AR4:
un in en
ospf 1 r 4.4.4.4
a 2
n 10.1.34.0 0.0.0.255
测试网络连通性
(忘记截图了,略过)
使用OSPF相关命令,可以帮助我们查看OSPF是怎样工作的
display ospf peer //查看OSPF邻居的信息
display ospf interface //查看OSPF接口的信息
display ip routing-table protocol ospf //查看路由器上的OSPF路由表
display ospf lsdb //查看链路状态数据库
用上面的命令查看一下路由器R2
ospf接口信息:
邻居信息:
接口状态数据库:
路由表