6600x做列入交换机 划分vlan102,地址范围*.*.32.128-192,计划实现对vlan102的访问控制,配置如下 acl advanced 3102 rule deny icmp source *.*.33.241 0 rule permit icmp rule permit udp rule permit tcp interface vlan-interface 102 packet-filter 3102 inbound packet-filter 3102 outbound 但是使用*.*.33.241可以正常ping *.*.32.129
ACL规则匹配顺序问题:
acl advanced 3102
rule deny icmp source *.*.33.241 0
rule permit icmp
rule permit udp
rule permit tcp
当数据包从*.*.33.241访问*.*.32.129时,匹配过程是这样的:
ICMP包首先匹配到第一条规则:deny icmp source *.*.33.241 0→ 应该被拒绝
但随后又匹配到第二条规则:permit icmp→ 又被允许
看起来矛盾,实际原因是H3C ACL的工作机制:
可能的根本原因
1. ACL规则的掩码配置问题
您的配置中*.*.33.241 0使用的是全0掩码,这表示精确匹配单个IP地址*.*.33.241。但可能存在问题:
2. ACL应用方向问题
您配置了双向过滤:
packet-filter 3102 inbound
packet-filter 3102 outbound
对于从*.*.33.241到*.*.32.129的ping:
入方向:从外部进入VLAN 102接口
出方向:从VLAN 102返回给*.*.33.241
解决方案
方案一:优化ACL规则顺序和配置
# 先创建更精确的拒绝规则
acl advanced 3102
# 明确拒绝特定源访问特定目的
rule deny icmp source *.*.33.241 0 destination *.*.32.128 0.0.0.63
# 或者拒绝整个VLAN 102的访问
rule deny icmp source *.*.33.241 0 destination *.*.32.128 0.0.0.63
# 允许其他ICMP
rule permit icmp
rule permit udp
rule permit tcp
# 注意:ACL隐含拒绝所有,最后需要明确允许其他流量
方案二:分拆ACL,简化配置
# 创建一个专门用于过滤的ACL
acl advanced 3102
rule deny icmp source *.*.33.241 0
# 如果不加这条,ACL最后会有隐含的deny any,会拒绝所有其他流量
# 创建另一个ACL允许其他流量
acl advanced 3103
rule permit icmp
rule permit udp
rule permit tcp
# 应用到接口
interface vlan-interface 102
packet-filter 3102 inbound
packet-filter 3103 inbound
方案三:使用zone-pair和security-policy(推荐)
如果您的设备支持安全策略:
# 定义源区域和目的区域
zone-pair security source trust destination untrust
packet-filter 3102
# 或者直接在安全策略中应用
security-policy ip
rule 0 deny icmp source-zone trust source-ip *.*.33.241 0 destination-zone untrust
rule 1000 permit
诊断步骤
检查ACL匹配计数
display acl 3102
查看拒绝规则的匹配计数是否增加。
查看当前生效的策略
display packet-filter interface vlan-interface 102
检查会话表
display session table source-ip *.*.33.241 verbose
调试ICMP流量
debugging ip packet acl 3102
terminal monitor
terminal debugging
# 然后从*.*.33.241 ping
推荐配置
# 明确配置拒绝规则,并允许其他流量
acl advanced 3102
rule 0 deny icmp source *.*.33.241 0
rule 5 permit ip
# 或者明确允许其他协议
# rule 5 permit icmp
# rule 10 permit tcp
# rule 15 permit udp
interface vlan-interface 102
packet-filter 3102 inbound
# 出方向根据需求决定是否配置
# packet-filter 3102 outbound
重要提示
规则编号:建议使用rule 0、rule 5等方式明确指定规则顺序
测试步骤:
清除现有ACL计数:reset acl counter all
重新应用ACL
测试ping,然后查看ACL计数
考虑NAT:如果存在NAT转换,源IP可能会变化,需要考虑转换前后的IP
请先执行display acl 3102查看当前规则是否被匹配,然后根据结果调整配置。
..33.241 仍能 ping 通 ..32.129 的原因很可能是
ACL规则顺序和默认动作导致的。以下是关键点解析和解决方案:
原因分析
1. 规则顺序问题:
ACL规则按 rule-id 从小到大顺序匹配(您未指定 rule-id,系统自动分配:rule deny icmp 是 rule 0,rule permit icmp 是 rule 5)。
当 ..33.241 发送 ICMP 请求时:
首先匹配 rule 0(deny icmp source ..33.241 0),命中并被拒绝
。
但后续 rule 5(permit icmp)匹配 所有 ICMP 流量(未限定源地址),导致该请求被放行 。
2. 隐含的 "permit ip":
高级 ACL 末尾隐含一条 permit ip 规则(匹配所有 IP 流量)。即使没有 rule permit icmp,ICMP 流量也会被这条隐含规则允许。
解决方案
1. 删除或细化泛式允许规则:
删除过于宽泛的允许规则
undo rule 5 permit icmp
undo rule 10 permit udp 若存在类似宽泛规则也需删除
undo rule 15 permit tcp
替代方案:精确控制允许的流量(例如只允许特定网段):
rule permit icmp source <信任网段 0
destination <目标网段 0
rule permit tcp ...
2. 调整规则顺序(若需保留部分允许规则):
更明确的拒绝策略(置于末尾)
rule 20 deny icmp source ..33.241 0 拒绝特定主机
rule 25 deny icmp 拒绝所有其他ICMP(可选)
4. 简化接口应用方向:
inbound 方向通常足够:在接收流量的接口(Vlan-102)应用 inbound ACL 即可拦截外部访问。
除非有特殊需求,否则移除 outbound 应用:
undo packet-filter 3102 outbound
关键配置修正建议
acl advanced 3102
rule 0 deny icmp source ..33.241 0 拒绝特定主机ICMP
rule 5 permit ip source <信任网段 0
destination <目标网段 0 精确允许必要流量
rule 10 deny ip 拒绝其他所有IP流量(可选,根据需求)
interface Vlan-interface102
packet-filter 3102 inbound 仅保留inbound方向
提示:完成修改后,使用 display packet-filter interface
Vlan-interface102 查看ACL计数,验证规则是否按预期匹配。
通过调整规则顺序、删除冲突的泛式允许规则,并确保防火墙启用,即可解决访问控制失效问题。
暂无评论
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
暂无评论