4-静态路由实验部署

1. 网络畅通的条件

  通过前面的学习可知,源主机把一个数据发送出去可能在网络中经过多个路由器,最终才到达目标主机,那我们怎么来判断这个网络是否畅通呢?

  简单来说,网络畅通的条件就是数据有来有回,同时这也是我们排除网络故障的基本思路。

这里写图片描述

图1-网络畅通的条件

  如图1所示,PC1主机处于192.168.0.0网络下,PC2主机处于192.168.1.0网络下,而这两个网络中间还连接着多个路由器,可以理解为这些路由器连接着这两个网络。

  当PC1跟PC2进行通信,沿途经过的R1,R2,R3路由设备必须要有到达目标网络192.168.1.0的路由信息。同理,PC2要跟PC1进行通信的话,沿途经过的R3,R2,R1路由设备必须要有到达目标网络192.168.0.0网络的路由信息,可以说,路由是路由器进行路由寻址,转发数据的重要依据

  在PC1去ping PC2时,如果沿途中的路由器有任何一个缺少到达目标网络192.168.1.0/24的路由,那么该路由器将返回一个目标主机不可达的ICMP包给PC1,因为该路由器没有到达192.68.1.0网络的路由信息。

  如果PC1发送的数据包能够到达PC2,但是PC2返回给PC1的响应数据包时,沿途的路由器有任何一个缺少到达192.168.0.0/24网段的路由,那么PC2返回的数据报就不能到达PC1,该路由器将返回一个请求超时的错误信息给PC1。

  通过上面这两种情况说明,PC1发送的数据能到达PC2并不代表网络是通的,如果PC2返回的响应数据包能到达PC1,说明数据有来有回,这时PC1和PC2之间的网络才是通畅的。

   我们可以基于上面网络畅通的条件来进行网络排错:

   先检查数据包是否能到达目标网络,再检查数据包是否能够返回,如果网络不通,就要检查计算机的ip,子网掩码,网关是否配置正常,再逐一检查沿途路由器上的路由表,查看是否有到达目标网络的路由;然后依次排查沿途路由上的路由表,检查路由表中是否有返回的数据包所需的路由。


  那么问题来了

  路由器又是如何知道网络中有哪些路由信息的呢,以及应该转发到的下一跳地址和接口呢?其实路由器中有一张路由表,该表记录了网段的下一跳应该转发给那个地址,我们可以通过静态路由技术和动态路由技术来构建路由表中的信息。


2. 静态路由原理

  先来看一下静态路由技术(英文:Static routing)。

  静态路由的路由项(routing entry)是完全由手动配置的,通常是固定的,不会改变,即使网络状况发生改变或重组。一般静态路由是由网络工程师手动加入路由表,因为路由器本身是不知道怎么转发数据的,想要实现任意两个节点通信,必须通过手动配置路由信息告诉路由器数据转发路径。


3. 静态路由部署实验

  在添加静态路由时,需要先进入全局配置模式,通过ip route命令添加静态路由,后面是目标网段,子网掩码,下一跳的ip地址。比如在R1设备上添加172.16.0.0网络的路由,然后所有172.16.0.0网络的流量都从R1设备的f0/1口转发出去,那么下一跳的地址就应该写成R1的f0/1口的ip地址172.16.0.1。


  命令为:R1(config)#ip route 172.16.0.0 255.255.255.0 172.16.0.1,在这条命令中172.16.0.0是路由信息,255.255.255.0是子网掩码,172.16.0.1是下一跳地址。


静态路由部署实验要求如下图所示:

这里写图片描述

图2-静态路由实验

  PC1和PC2实际上是用了两台路由器来充当PC,因此我们需要给PC1和PC2配置ip地址,同时还要把其他网段的路由都加入进来。

  选择PC1设备,进入全局配置模式,把172.16.0.0网络,172.16.1.0网络,192.168.1.0网络全部都加进来,下一跳ip地址为R1设备的f0/0口的192.168.0.1地址。

PC1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
PC1(config)#ip route 172.16.0.0 255.255.255.0 192.168.0.1
PC1(config)#ip route 172.16.1.0 255.255.255.0 192.168.0.1
PC1(config)#ip route 192.168.1.0 255.255.255.0 192.168.0.1
PC1(config)#exit
PC1#
*Mar  1 00:05:29.851: %SYS-5-CONFIG_I: Configured from console by console
PC1#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     172.16.0.0/24 is subnetted, 2 subnets
//S是static的缩写,说明这是一条静态路由
S       172.16.0.0 [1/0] via 192.168.0.1
S       172.16.1.0 [1/0] via 192.168.0.1
C    192.168.0.0/24 is directly connected, FastEthernet0/0
S    192.168.1.0/24 [1/0] via 192.168.0.1
PC1#

  同理,选择PC2设备添加路由信息,把172.16.0.0网络,172.16.1.0网络,192.168.1.0网络全部都加进来,下一跳ip地址为R3设备的f0/0口的192.168.1.1地址,如下所示:

PC2#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
PC2(config)#ip route 172.16.0.0 255.255.255.0 192.168.1.1
PC2(config)#ip route 172.16.1.0 255.255.255.0 192.168.1.1
PC2(config)#ip route 192.168.0.0 255.255.255.0 192.168.1.1
PC2(config)#exit
PC2#
*Mar  1 00:02:36.407: %SYS-5-CONFIG_I: Configured from console by console
PC2#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     172.16.0.0/24 is subnetted, 2 subnets
S       172.16.0.0 [1/0] via 192.168.1.1
S       172.16.1.0 [1/0] via 192.168.1.1
S    192.168.0.0/24 [1/0] via 192.168.1.1
C    192.168.1.0/24 is directly connected, FastEthernet0/0
PC2#


  选择R1设备,进入特权模式下,通过show ip route命令查看R1设备的直连路由信息:

R1#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     172.16.0.0/24 is subnetted, 1 subnets
C       172.16.0.0 is directly connected, FastEthernet0/1
C    192.168.0.0/24 is directly connected, FastEthernet0/0
R1#

  可以看到R1设备上看到了172.16.0.0和192.168.0.0两条路由信息,前面大小的C是Connected的简写,标识这是直连路由。

  我们需要在R1,R2,R3设备上添加静态路由。


  1. 在R1上添加172.16.1.0/24和192.168.1.0/24网段的路由信息。

R1(config)#ip route 172.16.1.0 255.255.255.0 172.16.0.2
R1(config)#ip route 192.168.1.0 255.255.255.0 172.16.0.2
R1(config)#exit
R1#
*Mar  1 00:18:03.759: %SYS-5-CONFIG_I: Configured from console by console
R1#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     172.16.0.0/24 is subnetted, 2 subnets
C       172.16.0.0 is directly connected, FastEthernet0/1
S       172.16.1.0 [1/0] via 172.16.0.2
C    192.168.0.0/24 is directly connected, FastEthernet0/0
S    192.168.1.0/24 [1/0] via 172.16.0.2
R1#

2.在R2设备上添加192.168.0.0/24和192.168.1.0/24的路由信息:
Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#ip route 192.168.0.0 255.255.255.0 172.16.0.1
Router(config)#ip route 192.168.1.0 255.255.255.0 172.16.1.2
Router(config)#exit
Router#show ip
*Mar  1 00:21:25.619: %SYS-5-CONFIG_I: Configured from console by console
% Incomplete command.

Router#show  ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     172.16.0.0/24 is subnetted, 2 subnets
C       172.16.0.0 is directly connected, FastEthernet0/0
C       172.16.1.0 is directly connected, FastEthernet0/1
S    192.168.0.0/24 [1/0] via 172.16.0.1
S    192.168.1.0/24 [1/0] via 172.16.1.2
Router#

3.在R3上添加192.168.0.0/24和172.16.0.0/24路由信息:
Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#ip route 192.168.0.0 255.255.255.0 f0/0
Router(config)#ip route 172.16.0.0 255.255.255.0 f0/0
Router(config)#exit
Router#
*Mar  1 00:25:54.191: %SYS-5-CONFIG_I: Configured from console by console
Router#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     172.16.0.0/24 is subnetted, 2 subnets
S       172.16.0.0 is directly connected, FastEthernet0/0
C       172.16.1.0 is directly connected, FastEthernet0/0
S    192.168.0.0/24 is directly connected, FastEthernet0/0
C    192.168.1.0/24 is directly connected, FastEthernet0/1
Router#

3. 通过ping和trace测试网络畅通性

  现在我们可以通过trace命令测试PC1和PC2链路的连通性,在PC1上测试PC2网络是否畅通。

//debug ip icmp  开启ICMP调试模式
PC1#debug ip icmp
ICMP packet debugging is on
PC1#
//ping PC2
PC1#ping 192.168.1.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.2, timeout is 2 seconds:
!!!!!     //6个叹号表示发了6个ICMP包,都收到了回应
Success rate is 100 percent (5/5), round-trip min/avg/max = 76/94/112 ms
PC1#
*Mar  1 00:02:28.907: ICMP: echo reply rcvd, src 192.168.1.2, dst 192.168.0.2    //icmp调试信息
*Mar  1 00:02:28.987: ICMP: echo reply rcvd, src 192.168.1.2, dst 192.168.0.2
*Mar  1 00:02:29.095: ICMP: echo reply rcvd, src 192.168.1.2, dst 192.168.0.2
*Mar  1 00:02:29.207: ICMP: echo reply rcvd, src 192.168.1.2, dst 192.168.0.2
*Mar  1 00:02:29.299: ICMP: echo reply rcvd, src 192.168.1.2, dst 192.168.0.2
PC1#

  我们还可以通过trace命令跟踪PC1和PC2通信的链路。通过跟踪的路径发现,192.168.0.1是R1设备,172.16.0.2是R2设备,172.16.1.2是R3设备,192.168.1.2是目标主机,大家可以根据上面的图对比一下,看是否一样。
PC1#trace 192.168.1.2

Type escape sequence to abort.
Tracing the route to 192.168.1.2

  1 192.168.0.1 48 msec 40 msec 56 msec
  2 172.16.0.2 100 msec 108 msec 100 msec
  3 172.16.1.2 196 msec 116 msec 108 msec
  4 192.168.1.2 196 msec 200 msec *
PC1#

4. 模拟网络故障

  在前面我们说过,网络畅通的条件就是数据有来有回,也就是说PC1发送的数据能到达PC2,PC2发送的数据能到达PC1里,这说明PC1和PC2的网络是通的。如果途中的路由器缺少到达192.168.1.0/24网络的路由,PC1 ping PC2的数据报就不能到达PC2,这就是主机不可达,PC1和PC2就不能通信了。

  因此,我们可以R2设备上到达PC2的192.168.1.0/24网络的路由删除掉,这样PC1发送的数据就不能到达PC2了,我们可以通过no ip route命令来删除路由:

R2#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R2(config)#no ip route 192.168.1.0 255.255.255.0 172.16.1.2
R2(config)#

  我们在退到特权模式下,通过show ip route命令查看,192.168.1.0网络的路由已经被删除掉了。

R2(config)#exit
R2#
*Mar  1 00:21:24.539: %SYS-5-CONFIG_I: Configured from console by console
R2#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     172.16.0.0/24 is subnetted, 2 subnets
C       172.16.0.0 is directly connected, FastEthernet0/0
C       172.16.1.0 is directly connected, FastEthernet0/1
S    192.168.0.0/24 [1/0] via 172.16.0.1
R2#

  选择PC1设备,然后PC1去ping PC2,发现ICMP调试信息返回了host unreachable信息,这说明,图中有由路由设备是没有到达PC2的路由信息的,假设现在我们不知道是哪一台路由设备有问题,那么我们怎么快速定位这个网络问题,并找出有问题的路由设备?

PC1#ping 192.168.1.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.2, timeout is 2 seconds:
UUUUU
Success rate is 0 percent (0/5)
PC1#
*Mar  1 00:17:38.163: ICMP: dst (192.168.0.2) host unreachable rcv from 172.16.0.2
*Mar  1 00:17:38.283: ICMP: dst (192.168.0.2) host unreachable rcv from 172.16.0.2
*Mar  1 00:17:38.399: ICMP: dst (192.168.0.2) host unreachable rcv from 172.16.0.2
*Mar  1 00:17:38.523: ICMP: dst (192.168.0.2) host unreachable rcv from 172.16.0.2
*Mar  1 00:17:38.631: ICMP: dst (192.168.0.2) host unreachable rcv from 172.16.0.2
PC1#

  我们再通过trace命令去跟踪到PC2的链路发现这么一条信息:dst (192.168.0.2) host unreachable rcv from 172.16.0.2,大概的意思就是主机不可达,这条ICMP差错报文是由ip地址为172.16.0.2的设备发送的(即R2设备),这时我们应该找到R2设备查看路由表,看是否真的没有到达目标地址192.168.0.2的路由信息。
这里写图片描述


  我们再从PC2去ping PC1时,发现PC2总共发了5个ICMP包,但是没有收到一个ICMP的回复包,因此显示请求超时。说明PC2发送的包能到达PC1,但是PC1回复的ICMP包到达不了PC2。

PC2#ping 192.168.0.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.0.2, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
PC2#

  PC1开启了ICMP的debug模式,我们查看PC1发现,PC1给PC2发送了回复包,但是R2没有到达PC2的路由,因此R2给PC1发送了一个主机不可达的ICMP差错报告报文,那么PC2也就不能收到PC1的回复包了,因此PC2就会显示请求超时。
这里写图片描述


我们回到R2设备,把192.168.1.0的路由再添加回去

R2(config)#ip route 192.168.1.0 255.255.255.0 172.16.1.2

然后PC1再去ping PC2,发现网络是通的。

PC1#ping 192.168.1.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 100/168/244 ms
PC1#
*Mar  1 00:32:52.931: ICMP: echo reply rcvd, src 192.168.1.2, dst 192.168.0.2
*Mar  1 00:32:53.175: ICMP: echo reply rcvd, src 192.168.1.2, dst 192.168.0.2
*Mar  1 00:32:53.327: ICMP: echo reply rcvd, src 192.168.1.2, dst 192.168.0.2
*Mar  1 00:32:53.499: ICMP: echo reply rcvd, src 192.168.1.2, dst 192.168.0.2
*Mar  1 00:32:53.603: ICMP: echo reply rcvd, src 192.168.1.2, dst 192.168.0.2
PC1#

5. show run命令使用


show run | include ip route  //表示查看静态路由的配置
show ip route  			//查看路由表
show run int f0/0 			//查看接口配置
show ip int brief			//查看接口IP地址
Show ip route static 		//查看静态路由

刷新静态路由表:

no ip routing  //先关闭路由功能(清除路由表)
ip routing     //然后再打开路由表

  总结:经过以上的配置,你会发现静态路由就是通过手动配置路由实现网络连通的方式,配置起来非常的麻烦,这在比较小型的网络还是能接受的,如果是比较大型的网络,需要一个一个路由的去配置,当其中一个路由器的路由信息有问题时,它还不能从其他路由器中学习到正确的路由信息,这让网络排错又增加了难度,因此静态路由是不适合应用在大型网络中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值