现在我们先复习下,什么是路由?
答:当路由器(或者其它三层设备)收到一个IP数据包时,会查看数据包的IP头部中的目的IP地址,并在路由表中进行查找,在匹配到最优路由后,将数据包扔向路由条目所批的下一跳或者出接口。
在静态路由使用中,我们要注意的是有种网络(MA网络、P2P网络)的配置区分。
1、MA网络中若只使用出站接口,因为无法知道去往目的网段的下一跳在哪儿,这就会导致真正的下一跳路由器使用代理ARP回应,随着路由条目的增多,代理ARP条目也会增大,因此建议在MA网络中使用下一跳地址;
2、P2P网络中若只使用下一跳地址,将会先查询路由表匹配下一跳地址,然后在根据下一跳地址匹配出站接口,造成了过多地延时,因此建议在P2P网络中使用出站接口
注:建议不管它是MA&P2P网络,我们在配置静态路由时,我们把下一跳的接口IP地址与出接口都配置上去。
看下配置过程:
看下效果:
在CISCO中中,路由协议分为静态路由协议与动态路由协议:
静态路由协议:由管理员根据数据访问需求手工在每台设备上进行添加与维护的。
动态路由协议:路由器自动进行路由信息的更新与同步,并且当网络拓扑出现变化时,能够自动收敛。
上一章我们已经学习过静态路由了,现在我们开始对动态路由协议的学习,下面我们先认识下动态路由协议常用的有那些,如下图:
距离矢量路由选择协议,使用距离矢量路由协议的路由并不清楚它们之间的网络拓扑,它只是知道:
1、自身与目的路由器之间的距离。
2、应该往哪个方向或者使用那个出接口传送数据包。
距离矢量协议的特点:
1、周期更新(广播的方式)整张路由表。
2、最初路由发现:直连网络直接写入路由表。
距离矢量协议的收敛完成标志:
1、当所有的路由表包含着相同的网络可达性信息。
2、网络进入一个稳定的稳态。
3、当无新的路由信息更新时,它表示路由收敛结束。
4、网络在路由没有达到收敛结束时,是无办法正常工作。
距离矢量协议的防环机制:
1、失效计时器(invalid timer):一台路由器认定一条路由成为故障路由之前所需要等待的时间,默认为180s。若180s后仍未收到更新,则将路由跳数设置为16条(路由表中显示possibly down),不过直到刷新计时器到期前此路由仍然可以使用。
2、抑制计时器(holddown timer):从路由的失效计时器到期时开始计算,在抑制计时器期间将不接受也不发送此路由,默认为180s。
3、刷新计时器(flush timer):和失效计时器的开始时间相同,默认为240s,当刷新计时器到期后,此路由将从路由表中删除。
4、计数最大值(maximum hop count):定义metric值为最大15跳,当跳数为16跳时,目标不可达,会将此路由条目删除。(因此RIP只能使用在小型网络环境中)
5、水平分割(split horizon):
普通的水平分割:一台路由器通过一个被宣告进协议进程的接口所发送的路由更新报文中,不能包含通过该接口所学习到的路由信息;
6、毒性逆转(poison reverse):一个接口所发送的路由更新中可以包含通过该接口学习到的路由信息,但是这些路由信息的度量值被置为无穷大,即16跳;
带有毒性逆转的水平分割会增加带宽的占用,但也会保证水平分割的完整性。
7、触发更新(trigger update):
当拓扑发送改变时,如果该变更影响到一台路由器的路由表,则此时该路由器会无视更新计时器是否到期,将立即发送RIP更新给所有邻居告知该拓扑变更;
动态路由协议我们首先接触的是:
RIP(Routing Information Protocol)路由信息协议
A、RIP的原理:
1、在同一个自治系统(AS)的路由器每隔30S与相邻的路由器交换路由信息,动态建立与更新路由表。
2、RIP允许的最大跳数(hops)为15跳,大于15跳标志为不可达。
3、RIP是以跳数作为metric度量值。(每经过一台路由器为1跳,下一跳加1,最大为15跳,RIP会选择到达目的路由跳数最少的路径来发送数据包)
B、RIP是应用层的协议:
C、RIP的默认管理距离是:120
其它路由的管理距离(DV):
直连:1 静态路由:1
EIGRP:1、汇总路由 5 2、外部路由 170 3、内部路由 90
BGP: 1、外部 20 2、内部 200
OSPF:110
IGP:100
RIP:120
D、RIP分为:RIP V1 & RIP V2
V1与V2的区别:
1、v1 为有类路由 V2 无类路由。
2、V1 不支持VLSM V2 支持VLSM
3、V1 通过广播(255.255.255.255)更新 V2 组播更新(224.0.0.9)
4、V1 自动汇总,不支持手动汇总 V2 自动汇总且可以手动关闭汇总,支持手动汇总
E、RIP的配置:
其实RIP的配置命令不多,也就是二、三个,注意下就OK!!!
R(config)#router rip
R(config-router)#version 2
R(config-router)#network 要宣告的网络号
查阅 router的命令:
R#show ip route
====================================================================================
实验:
R1的配置:
R1(config)#int e0/0
R1(config-if)#ip add 192.168.12.1 255.255.255.0
R1(config-if)#no sh
R1(config-if)#int lo 0
R1(config-if)#ip add 1.1.1.1 255.255.255.0
R1(config-if)#no sh
------------------------------------------------
R1(config)#router rip
R1(config-router)#version 2
R1(config-router)#net 1.1.1.0
R1(config-router)#net 192.168.12.0
R2的配置:
R2(config)#int e0/1
R2(config-if)#ip add 192.168.12.2 255.255.255.0
R2(config-if)#no sh
R2(config-if)#int lo 0
R2(config-if)#ip add 2.2.2.2 255.255.255.0
R2(config-if)#no sh
R2(config-if)#int e0/2
R2(config-if)#ip add 192.168.23.2 255.255.255.0
R2(config-if)#no sh
------------------------------------------------
R2(config)#router rip
R2(config-router)#version 2
R2(config-router)#net 2.2.2.0
R2(config-router)#net 192.168.12.0
R2(config-router)#net 192.168.23.0
R3的配置:
R3(config)#int e0/3
R3(config-if)#ip add 192.168.23.3 255.255.255.0
R3(config-if)#no sh
R3(config-if)#int lo 0
R3(config-if)#ip add 3.3.3.3 255.255.255.0
R3(config-if)#no sh
------------------------------------------------
R3(config)#router rip
R3(config-router)#version 2
R3(config-router)#net 3.3.3.0
R3(config-router)#net 192.168.23.0
注:
1、上面因为是手打的,若有错误话,请谅解。
2、其实我们在给每个路由器配置好IP地址后,不要急着配置路由协议,先PING下相邻路由,保证直连路由是否二二互通,这个是也排错的一步。
由上面可以看出来,直接相邻的路由是可以互相通信的。
经过上面的检查后,我们就可以直接配置路由协议了,下面我们看下结果:
从上面的路由表可以看出来,在R3上面已经学习到 192.168.12.0/24 & 1.0.0.0/8的路由。
现在我们来测试实验的成功与否?
检验最简单的方法:PING...
由上图可以看出来,我们的实验是成功的。
到这里,我们也算是简单的了解了 动态路由协议 的RIP,如果想要更深入的去学习,这个请自行找相关资料去,哈。。。
晚了,祝各位好运......洗洗准备睡觉!!!
本章提到的实验也可以直接下载附件!