4-静态路由实验部署

1. 网络畅通的条件

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

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

这里写图片描述
图1-网络畅通的条件

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

  当PC1跟PC2进行通信,沿途经过的R2,R3,R4路由设备必须要有到达目标网络192.168.1.0的路由信息。同理,PC2要跟PC1进行通信的话,沿途经过的R4,R3,R2路由设备必须要有到达目标网络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,大概的意思就是源地址172.16.0.2到目标地址192.168.0.2是主机不可达,因此这时我们应该找到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发送了回复包,但是PC1没有到达R2的路由,因此R2给PC1发送了一个主机不可达的ICMP差错报告报文,那么PC2也就不能收到PC1的回复包了。
这里写图片描述



我们回到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    然后再打开路由表

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

猜你喜欢

转载自blog.csdn.net/qq_35733751/article/details/80283049