第五章 IP路由
本章中讲学习如何配置并验证Cisco路由器上的IP路由。
内容包括:
1.  静态路由
2.  默认路由
3.  静态路由
路由基础
要完成对数据包的路由,一个路由器必须至少了解以下内容:
1.  目的地址
2.  项链路由器,并可以从哪里获得远程网络的信息
3.  到所有远程网络的可能路由
4.  到达每个远程网络的最佳路由
5.  如何维护并验证路由信息
在网络上配置IP路由
不同路由类型是
1.  静态路由
2.  默认路由
3.  动态路由
静态路由
用手工的方式将路由添加到每台路由器的路由表中去,这种方式就是静态路由。
静态路由有优点,也有缺点。
有以下优点:
1.  对于路由器的CPU没有管理性开销。
2.  在路由器之间没有带宽占用。
3.  他增加了安全性,因为管理员可以有选择地允许路由之访问特定的网络。
有以下缺点:
1.  管理员必须真正的了解所配置的互联网络,以及每台路由器应该如何正确的连接以正确配置这些路由。
2.  如果某个网络加入到互联的网络中,管理员必须在所有的路由器上通过人工添加对它的路由。
3.  对于大型网络,这几乎不可行,因为静态路由会导致巨大的工作量。
添加静态路由到路由表的语法如下:
Ip route [destination_network] [mask] [next-hop_address] [administrative_distance] [permanent]
命令中每个字段的描述:
1.  Ip route 用于创建静态路由的命令。
2.  Destination_network 在路由表中要防止的网络号。
3.  Mask 在这一网络上使用的子网掩码。
4.  Next-hop_address 下一跳路由器的地址。
5.  administrative_distance 默认时,静态路由有一个取值为1的管理性距离。在这个命令的尾部添加管理权来修改这个默认值。
6.  Permanent 如果这个接口被关闭或路由器不能与下一跳路由器进行通信,这一路由将会自动从路由表中删除。
静态路由举例:
配置Lab_A静态路由:
Lab_A了解自己的网络192.168.10.0和192.168.20.0(直接相连),所以RouterA的路由表必须加入192.168.30.0和192.168.40.0, 192.168.50.0的信息,注意下1跳接口,如下:
Lab_A(config)#ip route 192.168.30.0 255.255.255.0 192.168.20.2
Lab_A(config)#ip route 192.168.40.0 255.255.255.0 192.168.20.2
Lab_A(config)#ip route 192.168.50.0 255.255.255.0 192.168.20.2
配置Lab_B静态路由:
配置如下:
Lab_B(config)#ip route 192.168.10.0 255.255.255.0 192.168.20.1
Lab_B(config)#ip route 192.168.50.0 255.255.255.0 192.168.40.2
配置RouterC静态路由:
配置如下:
Lab_C(config)#ip route 192.168.10.0 255.255.255.0 192.168.40.1
Lab_C(config)#ip route 192.168.20.0 255.255.255.0 192.168.40.1
Lab_C(config)#ip route 192.168.30.0 255.255.255.0 192.168.40.1
默认路由
使用默认路由可以转发那些在路由表中没有列出的远端目的网络的数据包到下一跳路由器。
举例:
Cisco(config)#ip route 0.0.0.0 0.0.0.0 192.168.40.1
意思是,路由表里面没有的路由条目,就直接扔给下一跳IP192.168.40.1这个路由器。如果不能到达目的网络,那么直接把包扔掉。
动态路由
使用协议来查找并更新路由表的配置,就是动态路由。
动态路由举例:

Lab_a(config-if)#int s 0/0
Lab_a(config-if)#ip address 192.168.20.1 255.255.255.0
Lab_a(config-if)#no shut
Lab_a(config-if)#^Z
Lab_a#copy run start
Lab_b(config-if)#int s 0/0
Lab_b(config-if)#ip address 192.168.20.2 255.255.255.0
Lab_b(config-if)#clock rate 64000
Lab_b(config-if)#no shut
Lab_b(config-if)#ip address 192.168.40.1 255.255.255.0
Lab_b(config-if)#clock rate 64000
Lab_b(config-if)#no shut
Lab_b(config-if)#^Z
Lab_b#copy run start
Lab_c(config-if)#int s 0/0
Lab_c(config-if)#ip address 192.168.40.2 255.255.255.0
Lab_c(config-if)#no shut
Lab_c(config-if)#^Z
Lab_c#copy run start
路由选择协议基础
管理距离
管理距离(AD)是用来衡量接收来自相邻路由器上路由选择信息的可信度的。
默认的管理距离 路由源
 默认AD
 
连接接口
 0
 
静态路由
 1
 
EIGRP
 90
 
IGRP
 100
 
OSPF
 110
 
RIP
 120
 
Externat EIGRP
 170
 
未知
 255(这个路由将绝不会被使用)
 

路由选择协议
1.  距离矢量
2.  链路状态
3.  混合型
距离矢量路由选择协议
某个网络可能会有多个链路可以到达统一个远程网络。如果这一情况出现,管理举例首先将被检查。如果AD是相同的,协议将会使用其他量度值来决定到达远程网络的最佳路径。
路由环路
距离矢量路由选择协议会通过定期的广播路由更新所有激活的接口,来跟踪互联网络中的任何变化。
路由环路的发生是由于每台路由器不能同时或接近同时的完成路由表的更新。
最大跳计数
由于环路的问题可以简单的描述为无穷大计数,它是由于通告互联网络通信和传播的传言及错误的信息所造成的。
水平分割
另一个解决路由环路问题的方案被称为水平分割。
路由毒杀
另一个避免有不一致更新造成的问题并组织网络环路产生的方法是路由毒杀。
保持关闭
保持关闭可以组织定期的更新消息去恢复一个不断开闭的路由。
当出发更新重新设置保持关闭定时器时,会有三种情况发生:
1.  保持关闭定时器期满
2.  另一个带有更好的度量更新被接收到
3.  刷新定时,即一个路由在被删除之前,从路由表中删除该路由需要保持的时间。
路由信息协议(RIP)
RIP是一个真正的距离矢量路由选择协议。它每隔30秒钟就送出自己完整的路由表到所有激活的接口。RIP只使用跳计数来决定到达远程网络的最佳方式,并且在默认时它所允许的最大跳计数为15条,16跳的距离将被认为是不可达的。
RIP定时器
1.  路由更新定时器
2.  路由失效定时器
3.  保持失效定时器
4.  路由刷新定时器
配置RIP路由
Lab_A(config)#router rip
Lab_A(config-router)#network 192.168.10.0
Lab_A(config-router)#network 192.168.20.0
Lab_A(config-router)#^Z
Lab_A#
Lab_B(config)#router rip
Lab_B(config-router)#network 192.168.20.0
Lab_B(config-router)#network 192.168.30.0
Lab_B(config-router)#network 192.168.40.0
Lab_B(config-router)#^Z
Lab_B#
Lab_C(config)#router rip
Lab_C(config-router)#network 192.168.50.0
Lab_C(config-router)#network 192.168.40.0
Lab_C(config-router)#^Z
Lab_C#
内部网关路由协议(IGRP)
内部网管协议是一个Cisco专用的距离矢量路由选择协议。要使用igrp的话,所用的路由器必须是Cisco的路由器。
IGRP的最大跳计数值为255,默认时为100。
RIP所不具备的IGRP特性:
1.  IGRP可以被用于大型网络
2.  IGRP使用自治系统号
3.  IGRP每90秒发送一次全路由表更新
4.  IGRP使用宽带和线路延迟做为度量(最低的合成度量)
IGRP定时器
1.  更新定时器
2.  失效定时器
3.  保持关闭定时器
4.  刷新定时器
配置EIGRP路由
Lab_A(config)#router igrp ?
<1-65535> Autonomous system number
Lab_A(config)#router igrp 100
Lab_A(config-router)#netw 192.168.10.0
Lab_A(config-router)#netw 192.168.20.0
Lab_A(config-router)#^Z
Lab_A#
Lab_B(config)#router igrp 100
Lab_B(config-router)#netw 192.168.20.0
Lab_B(config-router)#netw 192.168.30.0
Lab_B(config-router)#netw 192.168.40.0
Lab_B(config-router)#^Z
Lab_B#
Lab_C(config)#router igrp 100
Lab_C(config-router)#netw 192.168.40.0
Lab_C(config-router)#netw 192.168.50.0
Lab_C(config-router)#^Z
Lab_C#