实验拓扑图:
实验环境说明:1、将路由器R1的Fa0/0接口的
ip设为:192.168.0.1/24;将S1/2接口的ip设为:192.168.1.1/24;
2、将路由器R2的Fa0/0接口的ip设为:192.168.2.2/24;将S1/2接口的ip设为:192.168.1.2/24;
3、将路由器R3的Fa0/0接口的ip设为:192.168.0.3/24;关闭其路由功能,模拟PC使用;
实验结果要求:
1、在R2上做访问控制列表,使R3不能telnet到R2;
2、在R1上做访问控制列表,使R1不能ping通R2 。
实验环境的基本配置:
R1配置清单:
1、为R1的Fa0/0接口配置IP,并设为全双工模式:
R1(config)#int fa0/0
R1(config-if)#speed 100
R1(config-if)#duplex full
R1(config-if)#ip add 192.168.0.1 255.255.255.0
R1(config-if)#no shut
R1(config-if)#exit
2、为R1的S1/2接口配置IP:
R1(config)#int s1/2
R1(config-if)#ip add 192.168.1.1 255.255.255.0
R1(config-if)#no shut
R1(config-if)#exit
R2的配置清单:
1、为R2的Fa0/0接口配置IP,并设为全双工模式:
R2(config)#int fa0/0
R2(config-if)#speed 100
R2(config-if)#duplex full
R2(config-if)#ip add 192.168.2.2 255.255.255.0
R2(config-if)#no shut
R2(config-if)#exit
2、为R2的S1/2接口配置IP:
R2(config)#int s1/2
R2(config-if)#ip add 192.168.1.2 255.255.255.0
R2(config-if)#no shut
R2(config-if)#exit
3、在R2上增加一条静态路由以实现和R3通信:
R2(config)#ip route 192.168.0.0 255.255.255.0 192.168.1.1
4、在R2上设置用户密码和线路密码,为下一步的telnet服务:
R2(config)#enable pass
Word 123456
R2(config)#line vty 0 4
R2(config-line)#password 123456
R3的配置清单:
R3(config)#no ip routing //关闭路由功能,模拟PC
R3(config)#int fa0/0
R3(config-if)#speed 100
R3(config-if)#duplex full
R3(config-if)#ip add 192.168.0.3 255.255.255.0
R3(config-if)#no shut
R3(config-if)#exit
SW1的配置清单:
分别将fa1/13、fa1/14、fa1/15接口设为全双工模式:
SW1(config)#int fa1/13
SW1(config-if)#speed 100
SW1(config-if)#duplex full
SW1(config-if)#exit
SW1(config)#int fa1/14
SW1(config-if)#speed 100
SW1(config-if)#duplex full
SW1(config-if)#exit
SW1(config)#int fa1/15
SW1(config-if)#speed 100
SW1(config-if)#duplex full
SW1(config-if)#exit
所有的基本配置完成后,我们测试从R3tenlnet到R2,结果如下:
R3#telnet 192.168.1.2
Trying 192.168.1.2 ... Open
Password:
R2>en
Password:
R2#exit
[Connection to 192.168.1.2 closed by foreign host]
上面的结果说明我们的配置是正确的,现在我们就来在R2上配置访问控制列表,以实现“R3 不能telnet到R2”的实验要求。因为我们的拓扑中只用一台路由器模拟PC,所以我们的访问控制列表就设置为:拒绝R3这个源地址而答应其他主机可以访问R2 。
实验结果要求1的实现:
1、在R2上配置访问控制列表,拒绝R3这个源地址的访问:
R2(config)#access-list 50 deny host 192.168.0.3
R2(config)#access-list 50 permit any
2、将访问控制列表应用到VTY虚拟终端线路上:
R2(config)#line vty 0 4
R2(config-line)#access-class 50 in
R2(config-line)#exit
配置完访问控制列表后,我们来验证一下:
R3#telnet 192.168.1.2
Trying 192.168.1.2 ...
% Connection refused by remote host
从上面的结果中我们可以看到,R3根本找不到R2这台主机,说明R3的访问被R2拒绝了,下面我们来看看在R2上的访问控制列表中是否有拒绝R3访问的匹配数据:
R2#show access-lists
Standard IP access list 50
10 deny 192.168.0.3 (1 match)
20 permit any
看到了吧,来自R3(192.168.0.3)的访问被拒绝了!假如我们把R3的IP改为192.168.0.4,那么它就可以telnet到R2,这就印证了我们访问控制列表中的第二条语句:permit any
实验结果要求2的实现:
我们都知道,访问控制列表只能过滤流经路由器的流量,而对路由器自身发出的数据包不起作用。而ping命令就是路由器自身所发出的数据包,所以我们就要改变思路,既然无法过滤发出的数据包,那么我们就来拒绝返回的数据包,这样也就实现了R1不能ping通R2的要求,因为涉及到对协议的检查,所以我们要使用扩展访问控制列表:
1、在R1上配置访问控制列表:
R1(config)#access-list 105 deny icmp host 192.168.1.2 host 192.168.1.1 echo-reply
R1(config)#access-list 105 permit ip any any
2、将访问控制列表应用到R1的S1/2接口:
R1(config)#int s1/2
R1(config-if)#ip access-group 105 in
下面我们验证一下,先从R1上ping R2,结果如下:
R1#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 0 percent (0/5)
上面的结果显示,R1是ping不通R2的,现在我们再来看看R1上的访问控制列表是否有拒绝的匹配数据:
R1#show access-list
Extended IP access list 105
10 deny icmp host 192.168.1.2 host 192.168.1.1 echo-reply (15 matches)
20 permit ip any any
看到了吧,实验完成!