前言

  本实验希望通过packet-tracer模拟器实现两个PC之间的单向发送icmp报文,提供两种方法。

实验文件

  基于Packet-Tracer5.2,已经完成了下述的两种方法的拓扑,右边的是方法一,左边的是方法二。
可以下载查看拓扑文件

实验准备

原理解释

  何为单向发送icmp报文,即一个PC向另一个PC能够成功的发送icmp报文但是另一个PC由于无法向发送端回应所以ping是不可能能通的,所以应该得到的反馈是两边都不能ping通但是两边的报错是不一样的,我的实验结果是一边是host unreachable而另一边是timeout。

终端IP分配表

设备 IP地址 网关地址
PC0 192.168.1.2 192.168.1.1
PC1 192.168.3.2 192.168.3.1

路由器IP分配表

设备 fa0/0 s2/0
Router0 192.168.1.1 192.168.2.1
Router1 192.168.3.1 192.168.2.2

实验步骤

方法一:ACL防火墙设置(由大佬Dart提供)

1.将三台设备相连

用交叉双绞线连接PC和路由器,最后的效果拓扑为这样(注:在没配置之前线上的点是红色的,配置成功后为绿色)

拓扑图

2.设置两台PC

PC0设置

PC1设置

3.设置router0各个端口

在CLI或者是图形界面进行相应的设置,图形界面操作如下:

fa0/0配置

fa0/配置

4.在Router上配置access-list来实现拦截PC0向PC1发出的icmp报文

在配置模式下输入下图指令

access-list配置

配置成功后可以进入特权模式查看

查看

5.将access list应用到端口

注意区分选择的端口与源地址的远近关系(近的用out,远的用in),本次实验配置在fa0/0,源地址是PC1,因此是in

应用到端口

6.尝试ping命令

PC0 ping PC1:

PC0 ping PC1

PC1 ping PC0:

PC1 ping PC2

方法二:静态路由设置

1.将四台设备相连

用交叉双绞线连接PC和路由器,用DTE线将两个路由器相连,最后的效果拓扑为这样。

拓扑图

2.设置Router0的各个端口

在CLI或者是图形界面进行相应的设置,代码如下:

1
2
3
4
5
6
en
conf t
int fa0/0
ip address 192.168.1.1 255.255.255.0
no shut
exit
1
2
3
4
5
6
7
en
conf t
int s2/0
ip address 192.168.2.1 255.255.255.0
clock rate 64000
no shut
exit

实际效果如图:

Router0设置图

3.设置Router1的各个端口

1
2
3
4
5
6
en
conf t
int fa0/0
ip address 192.168.3.1 255.255.255.0
no shut
exit
1
2
3
4
5
6
7
en
conf t
int s2/0
ip address 192.168.2.2 255.255.255.0
clock rate 64000
no shut
exit

实际效果如图:

Router1设置图

4.设置Router0的静态路由跳转

代码如下(环境如下Router(config)#):

1
ip route 192.168.3.0 255.255.255.0 192.168.2.2

这里不在单独展示效果图,配置完成。

5.设置两台PC

设置两台PC的网关和IP地址,效果见下两图:

PC0设置图

PC1设置图

6.尝试ping命令

在PC0中尝试ping 192.168.3.2,效果如下:

PC0中ping示意图

在PC1中尝试ping 192.168.1.2,效果如下:

PC1中ping示意图

实验总结

  由于ping命令需要双边通信才能有TTL的返回值,所以单边的ICMP报文是无法返回的,在这个实验中第二种方法的实验让Router0能够收到目的网段为192.168.3.0的请求后跳转到下一个路由,可以让目标PC收到icmp报文,但是由于Router1在返回的时候并不知道如何跳转,所以无法返回,导致PC0中的ping命令最后返回了Request timed out,而PC1中的ping命令由于根本找不到跳转路由返回了Destination host unreachable。这样整个实验就算是完成了。