请教包过滤的问题
如图,组网环境为接入-汇聚-核心,接入和汇聚交换机为二层交换机,网关在核心交换机上,办公室打印机与其他终端接在接入交换机上,现在想对打印机的访问进行限制只允许某些终端去访问打印机。各位看下这样配置是否有误,以及包过滤做在网关上的话是in方向还是out方向呢
acl advanced 3000
rule 0 permit ip source 192.168.1.1 0.0.0.0 destination 192.168.1.250 0.0.0.0
rule 5 permit permit ip source 192.168.1.2 0.0.0.0 destination 192.168.1.250 0.0.0.0
rule 10 deny permit ip source any destination 192.168.1.250 0.0.0.0
rule 1000 per ip #去访问其他业务流量
int vlan 10
ip add 192.168.1.254 255.255.255.0
packet-filter 3000
组网结构和图片信息,您当前的配置存在原则性偏差,这会导致访问控制完全失效。核心问题在于流量路径和ACL应用位置的理解。
1. 当前配置的主要问题
您提供的ACL 3000配置有语法错误,修正后逻辑如下:
acl advanced 3000
rule 0 permit ip source 192.168.1.1 0 destination 192.168.1.250 0 #允许终端1
rule 5 permit ip source 192.168.1.2 0 destination 192.168.1.250 0 #允许终端2
rule 10 deny ip source any destination 192.168.1.250 0 #拒绝其他所有IP访问打印机
rule 1000 permit ip #允许所有其他流量
致命问题:rule 1000 permit ip这条规则会允许所有IP流量(包括访问打印机的流量)。因为ACL按顺序匹配,当终端访问打印机时,会先匹配到rule 1000并被允许,根本不会走到前面的拒绝规则。
但这还不是最根本的问题。
2. 核心问题:流量路径与ACL生效点
在您的组网中(网关在核心,打印机与终端同属VLAN 10),访问打印机的流量根本不会经过核心交换机的三层接口,因此核心上的包过滤不会生效。
流量路径分析:
终端 (192.168.1.1) 访问 打印机 (192.168.1.250)
终端检查目标IP,发现与自己在同一网段 (192.168.1.0/24)
终端发送ARP请求获取打印机MAC地址,然后直接封装目的MAC为打印机MAC的帧
该数据帧在二层网络(接入→汇聚→核心二层转发)中直接送达打印机
流量不会上送到核心交换机的三层引擎(VLAN-interface 10)处理
因此,您在 interface vlan-interface 10上应用的 packet-filter对此类同网段访问完全无效。
3. 正确的解决方案
您需要在数据帧必经的二层路径上实施控制。根据您的网络设备和具体需求,有以下几个方案:
方案一:在接入交换机上配置(最推荐)
在连接打印机和终端的接入交换机端口上实施控制。
方法A:端口隔离(Port-isolate)
# 将连接打印机和所有终端的端口加入同一个隔离组(打印机端口除外)
interface GigabitEthernet1/0/1 # 连接打印机的端口
port link-mode bridge
port-isolate enable group 1
interface GigabitEthernet1/0/2 # 连接终端1的端口
port link-mode bridge
port-isolate enable group 1 # 与打印机端口隔离
interface GigabitEthernet1/0/3 # 连接终端2的端口
port link-mode bridge
# 不加入隔离组,即可与打印机通信
优点:配置简单,性能影响小。缺点:控制粒度较粗。
方法B:基于MAC的ACL(二层ACL)
# 创建基于MAC的ACL
acl mac 4000
rule 0 permit source-mac xxxx-xxxx-xxxx ffff-ffff-ffff dest-mac yyyy-yyyy-yyyy ffff-ffff-ffff # 允许特定终端MAC访问打印机MAC
rule 5 deny source-mac any dest-mac yyyy-yyyy-yyyy ffff-ffff-ffff # 拒绝其他MAC访问打印机
# 应用到打印机端口入方向
interface GigabitEthernet1/0/1
packet-filter mac 4000 inbound
优点:控制精确。缺点:需要维护MAC地址,配置较复杂。
方案二:在汇聚/核心交换机上配置VLAN ACL(VACL)
如果接入交换机是纯二层设备,可在汇聚或核心交换机上配置:
# 创建ACL(与您的3000类似,但去掉rule 1000)
acl advanced 3001
rule 0 permit ip source 192.168.1.1 0 destination 192.168.1.250 0
rule 5 permit ip source 192.168.1.2 0 destination 192.168.1.250 0
rule 10 deny ip destination 192.168.1.250 0 # 拒绝访问打印机,无需写source any
# 创建QoS策略并应用
traffic classifier printer_access
if-match acl 3001
traffic behavior printer_access
filter deny # 对匹配的流量执行拒绝
qos policy printer_policy
classifier printer_access behavior printer_access
# 在VLAN上应用策略
qos vlan-policy 10 policy printer_policy inbound # 对进入VLAN 10的流量生效
方案三:修改网络结构(长期建议)
将打印机划分到独立的VLAN(如VLAN 20),网关仍在核心:
核心交换机:vlan-interface 20地址为 192.168.20.254
接入交换机:连接打印机的端口配置为 access vlan 20
在核心交换机上配置ACL,控制VLAN 10到VLAN 20的访问
此时,因为跨网段访问,流量必须经过核心三层转发,您的包过滤配置就有效了:
acl advanced 3000
rule 0 permit ip source 192.168.1.1 0 destination 192.168.20.250 0
rule 5 permit ip source 192.168.1.2 0 destination 192.168.20.250 0
rule 10 deny ip destination 192.168.20.250 0
interface vlan-interface 10
packet-filter 3000 inbound # 从终端侧进入的流量
方向回答:这种情况下,在源VLAN的接口上应用inbound方向。
总结与建议
立即行动:您的当前配置因rule 1000 permit ip而完全无效,如需在核心上测试,请先删除此规则。
根本解决:对于同网段访问控制,不要在网关设备上尝试包过滤,它不生效。
推荐方案:
快速解决:在接入交换机上配置端口隔离。
精确控制:在接入交换机上配置基于MAC的ACL。
架构优化:将打印机划到独立VLAN,实现真正的三层访问控制。
根据您的设备型号和网络管理要求,选择最适合的方案。如果接入交换机是较老的二层设备,方案二(VACL)可能是最可行的选择。
感谢指点
1. ACL配置修正建议
acl advanced 3000
rule 0 permit ip source 192.168.1.1 0 destination
192.168.1.250 0 // 放行终端192.168.1.1访问打印机
rule 5 permit ip source 192.168.1.2 0 destination 192.168.1.250
0 // 放行终端192.168.1.2访问打印机
rule 10 deny ip destination 192.168.1.250 0 // 拒绝其他IP访问打印机(关键修正)
rule 1000 permit ip // 放行其他流量
修正说明:
规则10:需删除冗余的 permit 关键字,改为
deny ip destination 192.168.1.250 0,明确拒绝非授权终端访问打印机。
通配符优化:0 等价于 0.0.0.0,表示精确匹配单个IP,符合需求。
规则顺序:H3C ACL按规则ID从小到大匹配,当前顺序合理。
2. 包过滤方向选择(核心交换机VLAN接口)
正确方向:inbound
原因:
网关在核心交换机上时,终端访问打印机的流量进入VLAN接口方向为 inbound(源IP=终端,目的IP=打印机)。
配置命令:
interface Vlan-interface 10
ip address 192.168.1.254 255.255.255.0
packet-filter 3000 inbound // 在入方向应用ACL
3. 验证配置的关键命令
display packet-filter interface Vlan-interface 10 // 查看ACL应用状态
display acl 3000 // 检查ACL规则匹配计数
4. 注意事项
打印机主动访问:此ACL仅限制终端发起的访问。若需限制打印机主动访问终端(如SNMP),需额外配置反向ACL。
同网段直连访问:若终端与打印机在同一VLAN且直连接入交换机,流量可能不经过核心网关,此时需在接入层做端口隔离或MAC过滤。
H3C特性:ACL 3000的 rule 1000 可省略(H3C默认拒绝未匹配流量),但显式配置可提升可读性。
总结
配置正确性:修正后的ACL逻辑符合需求,在VLAN接口 inbound 方向应用可生效。
推荐方案:
acl advanced 3000
rule 0 permit ip source 192.168.1.1 0 destination
192.168.1.250 0
rule 5 permit ip source 192.168.1.2 0 destination
192.168.1.250 0
rule 10 deny ip destination 192.168.1.250 0
interface Vlan-interface 10
ip address 192.168.1.254 255.255.255.0
packet-filter 3000 inbound
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
感谢指点