ACL-NAT-VLAN-DHCP综合实验配置
 
实验拓扑图:
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
实验目的:
(一)禁止pc3上网,其他局域网内主机不受影响
(二)使局域网内所有主机都能上网。(只有一个公网地址)
(三)局域网内主机ip地址自动获取。
(四)r1提供单臂路由和dhcp功能,实现vlan间通信

结合上面的要求,要让所有主机都能上网,并只有一个公网地址,所以要用NAT,因为要禁止pc3上网,要配置ACL,因为所有主机的ip地址是从dhcp自动获取,所以限制pc3不能基于ip地址(如果是静态分配的地址,那pc3也可以更改ip地址),可以划分vlan来实现。
 
因为要禁止pc3,所以把pc3单独放到vlan2里。然后禁止vlan2所有成员也就禁止了pc3,就算pc3更改ip地址也不能上网。
 
基本信息配置(略)

r1(config)#in f0/0
r1(config-if)#no ip add            //主接口不能有ip地址
r1(config-if)#no shut              //主接口必须激活,否则子接口不能激活
r1(config-if)#in f0/0.1            //进入子接口
r1(config-subif)#encapsulation dot1Q 1    //封装类型为dot1q并给vlan1使用
r1(config-subif)#ip add 192.168.1.1 255.255.255.0    //配ip地址,也是vlan的网关地址
r1(config-subif)#no shut                 //激活子接口
r1(config-subif)#in f0/0.2              
r1(config-subif)#encapsulation dot1Q 2   //封装类型为dot1q并给vlan2使用
r1(config-subif)#ip add 192.168.2.1 255.255.255.0
r1(config-subif)#no shut
r1(config-subif)#in f0/0.3
r1(config-subif)#encapsulation d 3      //封装类型为dot1q并给vlan3使用
r1(config-subif)#ip add 192.168.3.1 255.255.255.0
r1(config-subif)#no shut
r1(config-subif)#exi
r1(config)#ip dhcp pool v1        //建一个名为v1的ip地址池
r1(dhcp-config)#network 192.168.1.0 /24    //要分配的ip地址池                
r1(dhcp-config)#default-router 192.168.1.1  //网关地址
r1(dhcp-config)#lease 4                     //租约为4天
r1(dhcp-config)#exi
r1(config)#ip dhcp pool v2
r1(dhcp-config)#netw 192.168.2.0 /25
r1(dhcp-config)#default-router 192.168.2.1
r1(dhcp-config)#lease 4
r1(dhcp-config)#exi
r1(config)#ip dhcp pool v3
r1(dhcp-config)#netw 192.168.3.0 /24
r1(dhcp-config)#default-router 192.168.3.1
r1(dhcp-config)#lease 4
r1(dhcp-config)#exi
r1(config)#ip dhcp excluded-address 192.168.1.1     //指定不分发的ip地址
r1(config)#ip dhcp excluded-address 192.168.2.1
r1(config)#ip dhcp excluded-address 192.168.3.1
 
 
vlan划分规划:vlan1(sw1和sw3)vlan2(pc3)vlan3(pc2和pc4)

sw1(config)#in vlan 1
sw1(config-if)#ip add dhcp    //ip地址从dhcp获取
sw1(config-if)#exi
sw1(config)#vlan 2      //新建vlan2
sw1(config-vlan)#name v2  //给vlan2取名
sw1(config-vlan)#vlan 3
sw1(config-vlan)#name v3
sw1(config-vlan)#exi
sw1(config)#in f1/2
sw1(config-if)#switchport mode access    //接口模式设为访问端口
sw1(config-if)#switchport access vlan 3  //接口加入vlan 3
sw1(config-if)#exi
sw1(config)#in f1/0
sw1(config-if)#swi m trunk     //接口模式为中继端口
sw1(config-if)#swi t en d      //封装类型为dot1q
sw1(config-if)#exi
sw1(config)#in f1/15
sw1(config-if)#swi m t
sw1(config-if)#swi t en d     //必须和对端的封装类型一样
sw1(config-if)#exi
sw1(config)#vtp m server      //vtp服务端
sw1(config)#vtp domain sw     //vtp域名
sw1(config)#vtp pass abc      //vtp密码
sw1(config)#vtp pruning       //vtp修剪

sw2(config)#in f1/15
sw2(config-if)#swi m t
sw2(config-if)#swi t en d
sw2(config-if)#exi
sw2(config)#in vlan 1
sw2(config-if)#ip add dhcp
sw2(config-if)#exi
sw2(config)#vtp m c
sw2(config)#vtp domain sw
sw2(config)#vtp pass abc
sw2(config)#vtp pru
sw2(config)#in f1/1
sw2(config-if)#swi m a
sw2(config-if)#swi a v 3
sw2(config-if)#exi
sw2(config)#in f1/0
sw2(config-if)#swi m a
sw2(config-if)#swi a v 2
sw2(config-if)#exi

所有pc的配置一样,如下:
pc2(config)#in f0/0
pc2(config-if)#ip add dhcp   //从dhcp获取
pc2(config-if)#no shut
pc2(config-if)#exi

测试:
pc2(config)#do p 192.168.3.3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.3.3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/26/64 ms
pc2(config)#do p 192.168.2.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.2.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/41/76 ms
相同vlan间能通信,不同vlan间也能通信。

r1(config)#in s1/0
r1(config-if)#ip add 219.146.0.1 255.255.255.0
r1(config-if)#no shut
r1(config-if)#exi
r2(config)#in s1/0
r2(config-if)#ip add 219.146.0.2 255.255.255.0
r2(config-if)#no shut
r2(config-if)#exi
 
测试pc2和外网的连通性:
pc2(config)#do p 219.146.0.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 219.146.0.2, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
 
不能通信,因为路由没有私有地址的路由表
 
r1(config)#access-list 10 permit 192.168.1.0 0.0.0.255  //新建列表10,允许192.168.1.0网段的地址  
r1(config)#access-list 10 permit 192.168.2.0 0.0.0.255  //添加列表10的项。允许192.168.2.0网段的地址
r1(config)#access-list 10 permit 192.168.3.0 0.0.0.255  //添加列表10的项。允许192.168.3.0网段的地址

r1(config)#in s1/0
r1(config-if)#ip nat out    //标记为外部接口
r1(config-if)#in f0/0.1     //必须进入子接口,应用在主接口上没有作用
r1(config-subif)#ip nat in  //标记为内部接口
r1(config-subif)#in f0/0.2
r1(config-subif)#ip nat in
r1(config-subif)#in f0/0.3
r1(config-subif)#ip nat in
r1(config-subif)#exi

测试:
r1(config)#ip nat inside source list 10 interface s1/0 overload
pc2(config)#do p 219.146.0.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 219.146.0.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 60/113/188 ms

pc3(config)#do p 219.146.0.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 219.146.0.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 28/65/148 ms
现在所有内网主机都能和外网通信。

现在要禁止pc3的上网服务,这里以telnet为例:
r1(config)#access-list 110 deny tcp 192.168.2.0 0.0.0.255 any eq telnet  //拒绝192.168.2.0网段的主机和任何人telnet。
r1(config)#access-list 110 permit ip a a   //允许所有人的所有服务
r1(config)#in f0/0.2
r1(config-subif)#ip access-group 110 in    //必须在子接口应用
r1(config-subif)#exi

测试:
pc3(config)#do telnet 219.146.0.2
Trying 219.146.0.2 ...
% Destination unreachable; gateway or host down
已经不能telnet,测试一下其他服务:
pc3(config)#do p 219.146.0.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 219.146.0.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 20/113/220 ms
可以,说明已经做成功了。
再测试一下其他主机:
pc2(config)#do telnet 219.146.0.2
Trying 219.146.0.2 ... Open

User Access Verification
Password:
r2>
r2>
r2>exi
[Connection to 219.146.0.2 closed by foreign host]
没问题。实验完成。
 
常用调试命令:
show vtp status:           查看vtp状态
show vlan-switch brief     查看vlan信息
show ip access-lists       查看ip访问列表
show access-lists          查看所有访问列表
show ip nat translations   查看所有活动的转换条目
show ip nat statisics      查看所有静态转换条目
clear ip nat translation * 清除所有动态的转换条目