1。静态路由:是指用户或网络管理员手工配置的路由信息。当网络拓扑结构或链路状态发生改变时,需要网络管理员手工配置静态路由信息。
相比较动态路由协议,静态路由无需频繁的交换各自的路由表,配置简单,比较适合小型、简单的网络环境。不适合大型和复杂的网络环境的原因是:当网络拓扑结构和链路状态发生改变时,网络管理员需要做大量的调整,工作量繁重,而且无法感知错误发生,不易排错。
2。默认路由:是一种特殊的静态路由,当路由表中与数据包目的地址没有匹配的表项时,数据包将根据默认路由条目进行转发。默认路由在某些时候是非常有效的,例如在末梢网络中,默认路由可以大大简化路由器的配置,减轻网络管理员的工作负担。
(1)掌握静态路由(指定接口)的配置方法;
(2)掌握静态路由(指定下一跳IP地址)的配置方法;
(3)掌握静态路由连通性的测试方法;
(4)掌握默认路由的配置方法;
(5)掌握默认路由的测试方法;
(6)掌握在简单网络中部署静态路由时的故障排除方法;
(7)掌握简单的网络优化方法;
在三台路由器所组成的简单网络中,R1和R3各自连接着一个主机,现在要求通过配置基本的静态路由和默认路由来实现主机PC-1与PC-2之间的正常通信。
1。基础配置
根据实验的要求进行相应的配置,使用ping命令检测各直连链路的连通性。
在各直连链路间的IP连通性测试完之后,可以尝试在主机1上直接ping主机2。
???问题:为什么两个主机之间无法正常通信,是什么原因导致的?
若假设主机1和主机2之间可以正常的通信,即可以正常的连通,则主机1将发送数据给其网关设备R1;而R1在收到其数据之后,根据数据包中的目的地址查看自己的路由表,找到相应的目的网络的所在的路由条目,并根据该条目中的下一跳和出接口信息将该数据转发给下一个路由器R2;同时R2采用相同的方式将数据转发给R3,最后R3页同样的将数据转发给与自己直接相连的主机2;主机2在收到数据后,与主机1发送数据到主机2的过程一样,再发送相应的回应信息给主机1。
现在查看主机1与其网关设备R1间的连通性的状态:
可以看出主机与网关之间的连通性正常,接下来检查网关设备与R1上的路由表:使用 display ip routing-table 命令。
通过路由表上显示的信息,可以看到路由表上没有关于主机2所在网段的信息,同样可以使用相同的方法查看路由器R2和R3上的路由表信息。
经过查看,可以看到:在路由器R2上没有关于主机1和主机2所在网段的信息,R3上没有关于主机1所在网段的信息。
所以,以上的步骤验证了:在初始情况下各路由器的路由表上仅包含了与自己本身直接相连的网络的路由信息。
因为现在的主机1和主机2之间跨越了若干个不同的网段,若要实现两者之间的通信,通过简单的IP地址等基础配置是不能实现的,需要在3台路由器上添加相应的路由信息,可以通过配置静态路由的方法来实现。
2。实现主机1和主机2之间的通信:
现在,在R1上配置目的网段为主机2所在网段的静态路由,即目的IP地址为192.168.20.0,掩码为255.255.255.0。相对应R1来讲,倘若要发送数据到主机2,则必须先发送给R2,所以R1的下一跳路由器是R2,R2与R1所在的直连链路上的物理端口S1/0/1接口 的IP地址即为下一跳IP地址,即10.0.12.2。
[R1]ip route-static 192.168.20.0 255.255.255.0 10.0.12.2
配置之后,查看R1的路由表:
可以看出在路由器R1上已存在主机2所在网段的路由信息。
接下来,采取同样的方式在R2上配置目的网段为主机2所在网段的静态路由,配置过后,查看其路由表。
[R2]ip route-static 192.168.20.0 255.255.255.0 10.0.23.3
[R2]dis ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
Destinations : 13 Routes : 13
Destination/Mask Proto Pre Cost Flags NextHop Interface
10.0.12.0/24 Direct 0 0 D 10.0.12.2 Serial1/0/1
10.0.12.1/32 Direct 0 0 D 10.0.12.1 Serial1/0/1
10.0.12.2/32 Direct 0 0 D 127.0.0.1 Serial1/0/1
10.0.12.255/32 Direct 0 0 D 127.0.0.1 Serial1/0/1
10.0.23.0/24 Direct 0 0 D 10.0.23.2 Serial1/0/0
10.0.23.2/32 Direct 0 0 D 127.0.0.1 Serial1/0/0
10.0.23.3/32 Direct 0 0 D 10.0.23.3 Serial1/0/0
10.0.23.255/32 Direct 0 0 D 127.0.0.1 Serial1/0/0
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
192.168.20.0/24 Static 60 0 RD 10.0.23.3 Serial1/0/0 //已存在
255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
此时,用主机1ping主机2,观察现象:
发现,两台主机之间仍然无法正常互通。在主机1上的E0/0/1接口上进行数据抓包,观察现象:
可以看到:此时主机1只发送了ICMP请求消息,而且也并没有得到任何的回应消息。
原因:现在仅是实现主机1能够通过路由器将数据正常的转发给主机2,而主机2并没有实现,仍然是无法发送数据给主机1的。
现在需要在R2和R3上的路由表中添加主机1所在网段的信息:
在R3上配置目的网段为主机1所在网段的静态路由,目的IP地址为192.168.10.0,目的地址的掩码除了采用点分十进制的格式表示之外,还可以采用直接使用掩码长度的方式表示,即用24来表示。相对应R3来讲,要发送数据到主机1上,首先发送给路由器R2,所以R3和R2所在直连链路上的物理接口S1/0/0即为数据转发口,也称为出接口,在配置中指定该接口即可。
[R3]ip route-static 192.168.10.0 24 s1/0/1 //配置目的网段为主机1所在网段的静态路由
[R2]ip route-static 192.168.10.0 24 s1/0/1
配置过后,查看各路由器的路由表信息:
经过路由表的查看,你会看到每台路由器上都拥有了主机1和主机2所在网段的路由信息。再次在主机1上ping主机2,观察现象。
3。实现全网全通来增强网络的可靠性
按照上面的操作,现在已实现主机1和主机2之间的互通。若假设现在的网络出现了故障,主机1一侧的网络管理员发现无法正常的与主机2通信,于是先测试与网关设备R1和R3的连通性。
可以看到:主机1无法与主机2的网关设备R3正常通信,所以此时网络管理员无法通过主机1登录到R3上进一步排查故障。
现在的解决方法是:在R1的路由表中添加R2与R3间直连网段的路由信息,同样也在R3的路由表上添加R1与R2之间的直连链路的路由信息,已至实现全网的互通。
配置之后,查看各路由器的路由表信息,查看内容;再由主机1ping主机2的网关设备R3。
测试成功,主机1可以与R3正常通信,同样的主机2此时也可以与R1正常通信。
4。使用默认路由实现简单的网络优化
通过适当减少设备上的配置工作量,能够帮助网络管理员在进行故障排除时更轻松的排除故障,且相对较少的配置量也能减少在配置时出错的可能,另一方面,也能够相对减少对设备本身硬件的负担。
现在,在R1上配置一条默认路由,即目的网段和掩码都是0,表示任何网络,下一跳为10.0.12.2,并删除先前配置的两条静态路由。
[R1]ip route-static 0.0.0.0 0 10.0.12.2 //配置默认路由
[R1]undo ip route-static 10.0.23.3 24 10.0.12.2 //删除静态路由
[R1]undo ip route-static 192.168.20.0 24 10.0.12.2
再次测试主机1与主机2之间的通信。
该通信是正常的,证明了使用默认路由不但能够实现与静态路由同样的效果,还能减少配置量。同时在R3上也做相应的配置。
[R3]ip route-static 0.0.0.0 0 s1/0/1 //配置默认路由
[R3]undo ip route-static 10.0.12.0 24 s1/0/1
[R3]undo ip route-static 192.168.10.0 24 10.0.23.2
再次测试主机1与主机2之间的通信。
可以看到主机1与主机2之间的通信正常。
强调:在配置过程中,顺序是先配置默认路由,再删除原有的静态路由配置,这样的操作可以避免网络出现通信中断,即要在配置过程中注意操作的规范性和合理性。
???思考:在静态路由配置当中,可以采取指定下一跳IP地址的方式,也可以采取指定出接口的方式,这两种方式存在着什么区别?
答:(1)在路由查找上:指定下一跳,会多进行一次路由的递归查找,拿下一跳去进行递归,得出出接口。
(2)二层地址解析:指定下一跳使用最后一次递归的下一跳IP地址去解析下一跳二层地址。如果指定出接口的路由,数据包匹配到后直接用目的地址去解析下一跳地址。