路由与交换--ACL基本命令及其实验配置
Posted chenjin2018
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了路由与交换--ACL基本命令及其实验配置相关的知识,希望对你有一定的参考价值。
1 ACL 的配置
1.1 创建 ACL
标准 ACL
router(config)#access-list <ACL表号> {permit|deny}{<源IP|host><反掩码>|any} //表号1~99
扩展 ACL
router(config)#access-list <ACL表号> {permit|deny}{<协议名称>|<端口号>}{<源IP><反掩码>}{<目的IP><反掩码>}{<关系><协议名称>} //表号101~199
1.2 应用 ACL
router(config-if)#{协议栈} access-group <ACL表号> {in|out} //协议栈可以为IP或IPX
2 ACL 上机实验
2.1 ACL 配置举例 1
router(config)#access-list 1 deny 10.0.0.1 0.0.0.0 //ACL表号为1,丢弃10.0.0.1发出的数据包,相当于 deny host 10.0.0.1 router(config)#access-list 1 permit any router(config)#access-list 2 permit any //ACL表号为2,可以转发任意数据包 router(config)#int s0/0 router(config-if)#ip access-group 1 in //该接口输入方向应用ACL列表组1,拒绝来自10.0.0.1的数据包 router(config-if)#ip access-group 2 out //该接口输出方向应用ACL列表组2,允许发出流经该路由器的所有数据包
2.2 ACL 配置举例 2
router(config)#access-list 101 deny tcp 172.16.0.0 0.0.255.255 host 192.168.1.1 eq telnet //不允许172.16.0.0网络的数据包telnet主机192.168.1.1 router(config)#access-list 101 permit ip any any //允许转发其他任何数据包 router(config)#int s0/0 router(config-if)#ip access-group 101 in
2.3 ACL 配置举例 3
限制只允许 192.168.2.2 访问 192.168.1.2 的 80 端口,192.168.3.2 访问 192.168.1.2 的 DNS。
router(config)#ip access-list extended cj router(config ext-nacl)#permit udp host 192.168.3.2 host 192.168.1.2 eq 53 router(config ext-nacl)#permit tcp host 192.168.2.2 host 192.168.1.2 eq 80 router(config ext-nacl)#exit router(config)#int f0/0 router(config-if)#ip access-group cj out
2.4 ACL 配置举例 4
要求:只允许 172.16.4.0/24 网络的主机通过端口 E0 进入网络 172.16.3.0/24,其他的被禁止。
为了实现上面的实验要求,我们将网络拓扑进行简化,PC1 的 IP 设置为 172.16.4.2,PC2 的 IP 设置为 172.16.0.2,PC3 的 IP 设置为 172.16.3.2,最终要达到的要求为 PC1 网段的主机可以访问 PC3 网段的主机,PC2 网段的主机不能访问 PC3 网段的主机。需要注意的是这里的路由器的选择,如果选择不恰当会导致端口不够用,可以参照下面的网络拓扑图中所选路由器。
先对路由器进行配置,让三台 PC 之间都可以通信。
Router>enable Router#conf t Router(config)#int gig0/0 Router(config-if)#ip add 172.16.4.1 255.255.255.0 Router(config-if)#no shut Router(config-if)#exit Router(config)#int gig0/1 Router(config-if)#ip add 172.16.0.1 255.255.255.0 Router(config-if)#no shut Router(config)#int gig0/2 Router(config-if)#ip add 172.16.3.1 255.255.255.0 Router(config-if)#no shut
路由器配置完成后给各台 PC 分配 IP,并设置其网关,先来验证 PC1 和 PC2 都能 ping 通 PC3 。
上述结果表明,在没有做 ACL 限制前,PC 之间是可以相互通信的,现在来设置 ACL 规则,让 PC1 可以 ping 通 PC3,而 PC2 不能 ping 通 PC3。
Router(config)#access-list 5 permit 172.16.4.0 0.0.0.255 Router(config)#int gig0/2 Router(config-if)#ip access-group 5 out
现在再来验证 PC 之间的通信。
PC1 可以 ping 通 PC3,但 PC2 不能 ping 通 PC3,达到实验要求。这里并没有 deny any 的语句,是因为路由隐含在每个 ACL 列表的最后有一句拒绝所有数据包访问的语句,所以不用再专门写出了。
2.5 ACL 配置举例 5
要求:
(1)禁止从 172.16.4.0/24 通过 FTP 访问 172.16.3.0/24;
(2)除此以外的其他访问和数据流都允许。
为了验证上述实验,这里将网络拓扑图进行简化,由于 172.16.3.0 网段涉及 FTP 登录,这里用一台服务器来代替该网段,并设置 FTP 的登录账号和密码。
以下是简化的网络拓扑图和对 server 的 FTP 的配置 。
对路由器进行配置,配置好后为 PC 和 server 分配 IP,并设置其网关,然后验证 PC1 在没有做 ACL 限制前可以访问 FTP。
Router>enable Router#conf t Router(config)#int gig0/0 Router(config-if)#ip add 172.16.4.1 255.255.255.0 Router(config-if)#no shut Router(config-if)#exit Router(config)#int gig0/1 Router(config-if)#ip add 172.16.0.1 255.255.255.0 Router(config-if)#no shut Router(config-if)#exit Router(config)#int gig0/2 Router(config-if)#ip add 172.16.3.1 255.255.255.0 Router(config-if)#no shut Router(config-if)#exit
现在对路由器做 ACL 限制,让 PC1 无法再登录 server 的 FTP。
Router(config)#access-list 105 deny tcp 172.16.4.0 0.0.0.255 172.16.3.0 0.0.0.255 eq 20 Router(config)#access-list 105 deny tcp 172.16.4.0 0.0.0.255 172.16.3.0 0.0.0.255 eq 21 Router(config)#access-list 105 permit ip any any Router(config)#int gig0/0 Router(config-if)#ip access-group 105 in
验证 PC1 是否还能继续登录 server 的 FTP,由结果可以看出已经达到实验要求 。
列表最后要有一句 permit ip any any,这个必须加上,因为一个列表中至少要有一句 permit 语句。
2.6 ACL 配置举例 6
要求:
(1)拒绝 172.16.2.0/24 这个网段的主机访问 SERVER1;
(2)拒绝 PC1 访问 SERVER1;
(3)只允许 PC1 对 R2 进行远程连接管理。
R2(config)#access-list 1 deny 172.16.2.0 0.0.0.255 R2(config)#access-list 1 deny host 172.16.1.10 R2(config)#access-list 1 permit any R2(config)#access-list 2 permit host 172.16.1.10 R2(config)#int f0/0 R2(config-if)#ip access-group 1 out //对端口 R2(config)#line vyt 0 4 R2(config-line)#password fsh R2(config-line)#access-class 2 in //对线模式
2.7 ACL 配置举例 7
要求:
(1)211.12.3.0/24 这个网段不能访问 SEREVER2 的网页和 FTP,其他服务可以访问;
(2)所有设备都能 ping 通 PC4,但反之不行(单向 ping)。
控制访问类别
R2(config)#access-list 101 deny tcp 211.12.3.0 0.0.0.255 host 172.16.1.100 eq 80 R2(config)#access-list 101 deny tcp 211.12.3.0 0.0.0.255 host 172.16.1.100 eq 20 R2(config)#access-list 101 deny tcp 211.12.3.0 0.0.0.255 host 172.16.1.100 eq 21
控制单向 ping
R2(config)#access-list 101 permit icmp 211.12.3.0 0.0.0.255 any echo-reply //echo-reply表示ICMP响应 R2(config)#access-list 101 deny icmp 211.12.3.0 0.0.0.255 any //拒绝211.12.3.0/24到其他任何网络的icmp包 R2(config)#access-list 101 permit ip any any R2(config)#int f0/1 R2(config-if)#ip access-group 101 in
2.8 ACL 配置举例 8
要求:
(1)VLAN 10 不能访问 VLAN 30;
(2)其余 VLAN 之间可以自由访问。
1、划分 VLAN,并将各接口分配至 VLAN中。
Switch>enable Switch#conf t Switch(config)#vlan 10 Switch(config-vlan)#exit Switch(config)#vlan 20 Switch(config-vlan)#exit Switch(config)#vlan 30 Switch(config-vlan)#exit Switch(config)#int fa0/1 Switch(config-if)#switchport mode access Switch(config-if)#switchport access vlan 10 Switch(config-if)#exit Switch(config)#int fa0/2 Switch(config-if)#switchport mode access Switch(config-if)#switchport access vlan 20 Switch(config-if)#exit Switch(config)#int fa0/3 Switch(config-if)#switchport mode access Switch(config-if)#switchport access vlan 30 Switch(config-if)#exit
2、开启交换机路由功能,并给各虚拟 VLAN 接口配置 IP 地址,此接口和地址将成为 vlan 中主机的网关。
Switch(config)#ip routing Switch(config)#int vlan 10 Switch(config-if)#ip add 10.0.0.1 255.255.255.0 Switch(config-if)#exit Switch(config)#int vlan 20 Switch(config-if)#ip add 20.0.0.1 255.255.255.0 Switch(config-if)#exit Switch(config)#int vlan 30 Switch(config-if)#ip add 30.0.0.1 255.255.255.0 Switch(config-if)#exit
3、配置访问控制列表,并应用。
Switch(config)#access-list 1 deny 10.0.0.0 0.0.0.255 Switch(config)#access-list 1 permit any Switch(config)#int vlan 30 Switch(config-if)#ip access-group 1 out
4、配置各主机的 IP 地址及网关,通过 ping 检验各 vlan 之间的通信情况。
PC1 去 ping 另外两台 PC 。
另外两台 PC 的通信 。
2.9 ACL 单向 ping
实验要求:
(1)配好设备 IP 后,先相互 ping,能 ping 通;
(1)设置 ACL,使得:
1. 所有设备能 ping 通 PC3,即 PC3 能对所有 ping 请求作响应;
2. PC3 不能 ping 其他设备。
对交换机进行设置,将交换机与路由器相连的接口设置为 trunk 模式。
Switch>enable Switch#conf t Switch(config)#int fa0/3 Switch(config-if)#switchport mode trunk
对路由器进行设置。
Router>enable Router#conf t Router(config)#int fa0/0 Router(config-if)#ip add 10.0.0.1 255.255.255.0 Router(config-if)#no shut Router(config-if)#exit Router(config)#int fa1/0 Router(config-if)#ip add 20.0.0.1 255.255.255.0 Router(config-if)#no shut
上述配置完成后给各台 PC 分配 IP,并设置它们的网关,然后验证它们之间的通信。这里的通信比较简单,自行去验证。
ping 的动作总共分为两部分,一是源主机将数据包发送给目标主机,二是目标主机收到数据包后给源主机响应。由于 PC3 不能 ping 通其他 PC,而其他 PC 能够 ping 通 PC3,说明 PC3 能给其他所以 PC 响应,为了简化 ACL 配置,这里以 PC3 为源主机,允许它的所有 icmp 的响应,其他的 icmp 被限制,由于 PC3 为源主机,则数据包是经过路由器的 fa1/0 进入网络的,下面是 ACL 规则的配置。
Router(config)#access-list 101 permit icmp 20.0.0.0 0.0.0.255 any echo-reply Router(config)#access-list 101 deny icmp 20.0.0.0 0.0.0.255 any Router(config)#access-list 101 permit ip any any Router(config)#int fa1/0 Router(config-if)#ip access-group 101 in
对结果进行验证,用 PC3 去 ping 其他两台 PC 。
其他两台 PC 去 ping 主机 PC3 。
2.10 ACL 控制 VLAN 之间的访问
实验要求:
(1)开启三层交换机路由功能,PC1,PC2,PC3,PC4 和 server 分别在 vlan10,vlan20,vlan30,vlan40 和 vlan50;
(2)查看路由表,确实各 VLAN 之间可以互通;
(3)设置访问控制列表,使 VLAN 10 和 VLAN 20 之间不可以相互访问,VLAN 30 和 VLAN 40 与服务器所在的 VLAN 50 不可以相互访问;
(4)其余所有的访问都是允许的。
1、划分 VLAN,并将各接口分配至 VLAN 中。
Switch>enable Switch#conf t Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#vlan 10 Switch(config-vlan)#exit Switch(config)#vlan 20 Switch(config-vlan)#exit Switch(config)#vlan 30 Switch(config-vlan)#exit Switch(config)#vlan 40 Switch(config-vlan)#exit Switch(config)#vlan 50 Switch(config-vlan)#exit Switch(config)#int fa0/1 Switch(config-if)#switchport mode access Switch(config-if)#switchport access vlan 10 Switch(config-if)#exit Switch(config)#int fa0/2 Switch(config-if)#switchport mode access Switch(config-if)#switchport access vlan 20 Switch(config-if)#exit Switch(config)#int fa0/3 Switch(config-if)#switchport mode access Switch(config-if)#switchport access vlan 30 Switch(config-if)#exit Switch(config)#int fa0/4 Switch(config-if)#switchport mode access Switch(config-if)#switchport access vlan 40 Switch(config-if)#exit Switch(config)#int fa0/5 Switch(config-if)#switchport mode access Switch(config-if)#switchport access vlan 50 Switch(config-if)#exit
2、开启交换机路由功能,并给各虚拟 VLAN 接口配置 IP 地址,此接口和地址将成为 vlan 中主机的网关。
Switch(config)#int vlan 10 Switch(config-if)#ip add 10.0.0.1 255.255.255.0 Switch(config-if)#exit Switch(config)#int vlan 20 Switch(config-if)#ip add 20.0.0.1 255.255.255.0 Switch(config-if)#exit Switch(config)#int vlan 30 Switch(config-if)#ip add 30.0.0.1 255.255.255.0 Switch(config-if)#exit Switch(config)#int vlan 40 Switch(config-if)#ip add 40.0.0.1 255.255.255.0 Switch(config-if)#exit Switch(config)#int vlan 50 Switch(config-if)#ip add 50.0.0.1 255.255.255.0 Switch(config-if)#exit
3、配置 vlan 10 与 vlan 20 不能相互访问的控制列表,并应用。
Switch(config)#access-list 1 deny 20.0.0.0 0.0.0.255 Switch(config)#access-list 1 permit any Switch(config)#int vlan 10 Switch(config-if)#ip access-group 1 out Switch(config-if)#exit Switch(config)#access-list 2 deny 10.0.0.0 0.0.0.255 Switch(config)#access-list 2 permit any Switch(config)#int vlan 20 Switch(config-if)#ip access-group 2 out Switch(config-if)#exit
4、验证设置 ACL 后 vlan 10 与 vlan 20 之间的通信,结果表明设置的 ACL 已经生效,vlan 10 与 vlan 20之间不能相互访问 。
5、配置 vlan 30 和 vlan 40 与 vlan 50 不能相互访问的控制列表,并应用。
Switch(config)#access-list 3 deny 50.0.0.0 0.0.0.255 Switch(config)#access-list 3 permit any Switch(config)#int vlan 30 Switch(config-if)#ip access-group 3 out Switch(config-if)#exit Switch(config)#int vlan 40 Switch(config-if)#ip access-group 3 out Switch(config-if)#exit Switch(config)#access-list 4 deny 30.0.0.0 0.0.0.255 Switch(config)#access-list 4 deny 40.0.0.0 0.0.0.255 Switch(config)#access-list 4 permit any Switch(config)#int vlan 50 Switch(config-if)#ip access-group 4 out
6、验证设置 AC L后 vlan 30 和 vlan 40 与 vlan 50 之间的通信,结果表明设置的 ACL 已经生效,vlan 30 和 vlan 40 与 vlan 50 之间不能相互访问。这里以 vlan 50 去访问 vlan 30 与 vlan 40为例,其他的通信情况自行测试 。
2.11 ACL 综合练习
实验要求:
(1)PC1 和 PC2 在 10.0.0.0 网段,server 在 20.0.0.0 网段,PC3 在 30.0.0.0 网段。在服务器 server 开启 HTTP 和 FTP 功能,设置 FTP 登录用户名、密码和访问权限;
(2)10.0.0.0 网段可以访问 server 的 FTP,其他访问均被拒绝;
(3)PC3 可以访问 server 的 HTTP,但不可以访问 server 的 FTP;
(4)服务器 server 可以 ping 通所有设备,但所有设备不可以 ping 服务器 sever。
对交换机进行配置。
Switch>enable Switch#conf t Switch(config)#int fa0/3 Switch(config-if)#switchport mode trunk
对路由器进行配置,设置各台 PC 的网关及其掩码。
Router>enable Router#conf t Router(config)#int gig0/0 Router(config-if)#ip add 10.0.0.1 255.255.255.0 Router(config-if)#no shut Router(config-if)#exit Router(config)#int gig0/1 Router(config-if)#ip add 30.0.0.1 255.255.255.0 Router(config-if)#no shut Router(config-if)#exit Router(config)#int gig0/2 Router(config-if)#ip add 20.0.0.1 255.255.255.0 Router(config-if)#no shut Router(config-if)#exit
配置访问控制列表,并应用。
Router(config)#access-list 101 permit tcp 10.0.0.0 0.0.0.255 20.0.0.0 0.0.0.255 eq 20 Router(config)#access-list 101 permit tcp 10.0.0.0 0.0.0.255 20.0.0.0 0.0.0.255 eq 21 Router(config)#access-list 101 permit tcp 30.0.0.0 0.0.0.255 20.0.0.0 0.0.0.255 eq 80 Router(config)#access-list 101 permit icmp any 20.0.0.0 0.0.0.255 echo-reply Router(config)#access-list 101 deny icmp any 20.0.0.0 0.0.0.255 Router(config)#int gig0/2 Router(config-if)#ip access-group 101 out
给所有 PC 和 server 分配 IP,并设置其网关,对 server 进行设置,开启 FTP 并添加用户,FTP 的设置可以参考前面的配置。验证 10.0.0.0 网段可以访问 server 的 FTP,其他访问被拒绝是否生效。由结果可以看出配置已经成功 。
验证 PC 可以访问 server 的 HTTP,但不能访问 server 的 FTP 是否生效,结果表明 ACL 配置已经成功 。
验证 server 可以 ping 通所有设备,所有设备不能 ping 通 server:
server 去 ping 其他网段的 PC ;
10.0.0.0 网段的 PC ping server ;
30.0.0.0 网段的 PC ping server 。
上述结果表明,已经达到实验要求。
对 ACL 设置的小结:在应用 ACL 的时候,大部分同学可能会在判断是进入接口还在出接口的地方感到疑惑,解决这个问题最好的办法就是去看自己写的 ACL 规则,ACL 规则里面都有源主机地址,不论是标准还是扩展,都会写上源地址,那么从源地址出发到目标主机,看它经过的设备,这样能够一目了然看出应该应用在接口的出还是进。
以上是关于路由与交换--ACL基本命令及其实验配置的主要内容,如果未能解决你的问题,请参考以下文章