實驗拓撲圖:
實驗環境說明: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
看到了吧,實驗完成!