业务需求
需要在三层核心交换机(S5700)上通过MAC地址限制终端访问外网,但不影响其访问内网其它网段。


网络拓扑

【方案1】

说明:下面示例以内网网段为192.168.0.0/16,限制两台终端的MAC地址为例。如果还需要增加限制的终端,参见蓝色部分继续增加ACL规则即可。

配置思路:通过高级ACL允许内网互访,通过二层ACL拒绝MAC地址,然后在同一个策略中应用两个CB对(先允许内网IP互访,再拒绝终端MAC)。

#
acl number 3001                                                          //定义访问规则,允许内网网段互访
  rule 5 permit ip source 192.168.0.0 0.0.255.255 destination 192.168.0.0 0.0.255.255
#
acl number 4001                                                          //定义访问规则,只拒绝某个终端的MAC地址
 rule 5 deny source-mac 5489-9887-5c67
 rule 10 deny source-mac 5489-98a4-196e
#
traffic classifier lan.ip operator and
 if-match acl 3001
traffic classifier deny.smac operator and
 if-match acl 4001
#
traffic behavior test1
#
traffic policy test1                                                         //这果要注意配置CB对的顺序(先允许内网IP互访,再拒绝终端MAC)
 classifier lan.ip behavior test1
 classifier deny.smac behavior test1
#
traffic-policy test1 global inbound                               //在全局应用流策略
#

【方案2

说明:下面示例以内网网段为192.168.0.0/16,限制两台终端的MAC地址为例。如果还需要增加限制的终端,参见蓝色部分继续增加相应的CB对即可。

配置思路:通过高级ACL制定不允许访问外网的规则,再利用流分类的逻辑“与”的关系,将高级ACL和源MAC作为条件进行访问控制。

# 

acl number 3002                                                         //定义访问规则,只允许访问内网网段
 rule 5 permit ip source 192.168.0.0 0.0.255.255 destination 192.168.0.0 0.0.255.255 
 rule 1000 deny ip
#
traffic classifier deny.smac1 operator and                  //创建流分类,注意这里必须指定operator为“and”
 if-match acl 3002
 if-match source-mac 5489-9887-5c67                      //设置被限制终端的MAC地址
traffic classifier deny.smac2 operator and
 if-match acl 3002
 if-match source-mac 5489-98a4-196e
#
traffic behavior test2
#
traffic policy test2
 classifier deny.smac1 behavior test2
 classifier deny.smac2 behavior test2
#
traffic-policy test2 global inbound                             //在全局应用流策略
#

注意流分类中的“与”是指ACL规则与非ACL规则之间的关系,即假设在流分类中同时配置两个ACL(比如高级ACL和二层ACL),设备将会按ACL配置的顺序依次进行匹配,匹配上后则不再匹配后面配置的ACL规则,直接去和非ACL规则进行“与”,而不是这两个ACL之间进行“与”,达不到预期的效果。

总结与建议:

如果有多个终端MAC要拒绝的话,建议使用【方案1】,后期添加终端MAC时更方便。

如果只是临时拒绝单个终端MAC的话,【方案2】相对更简洁

通过这两个方案,可以让我们对流策略与ACL之间关系的理解更加深入一些。