单位有三层交换机划分为vlan10(192.168.10.0/24)和vlan100(192.168.100.0/24),现在禁止vlan100 访问vlan10内的服务器:
acl advanced 3300
rule 10 deny ip source 192.168.100.0 0.0.0.255
把acl应用的vlan10上
int vlan 10
packet-filter 3300 inbound (无法outbound)
应用后,vlan100的机器无法ping通vlan10内的机器,但是可以ssh和web访问vlan10内的机器。说明acl对tcp没起作用。
麻烦各位帮忙分析一下,是什么问题?谢谢
(0)
最佳答案
ACL应用方向错误(核心原因):
在VLAN接口10的inbound
方向应用ACL,只能过滤进入本VLAN接口的数据包(如访问设备自身IP)。
跨VLAN访问的流量路径:
从VLAN100 → VLAN10的流量,在交换机内部流程是:
此类流量本质是从VLAN接口10的出方向(outbound) 转发,而非进入接口的入方向。
ACL未指定目的地址:
rule 10 deny ip source 192.168.100.0 0.0.0.255
缺少destination
参数,实际匹配的是源为VLAN100、去往任意目的的流量(包括网关自身、其他VLAN等)。
流量特殊路径:
ICMP包目标若是VLAN10的网关自身(如192.168.10.1
),属于inbound
流量被ACL拒绝。
TCP包目标为VLAN10的服务器(如192.168.10.100
),属于三层转发流量(outbound
),未被ACL拦截。
// 修改ACL规则(明确源和目的网段)
acl advanced 3300
rule 10 deny ip source 192.168.100.0 0.0.0.255 destination 192.168.10.0 0.0.0.255
quit
// 应用在VLAN接口10的出方向
interface Vlan-interface 10
packet-filter 3300 outbound // 关键修改!
acl advanced 3300
rule 10 deny ip source 192.168.100.0 0.0.0.255 destination 192.168.10.0 0.0.0.255
quit
// 应用在VLAN100的入方向
interface Vlan-interface 100
packet-filter 3300 inbound // 在源VLAN入口拦截
若交换机不支持VLAN接口出方向ACL:
// 创建ACL匹配目标服务器网段
acl advanced 3300
rule 10 deny ip source 192.168.100.0 0.0.0.255 destination 192.168.10.0 0.0.0.255
quit
// 配置策略路由
policy-based-route block-vlan100 permit node 10
if-match acl 3300
quit
// 应用在VLAN100接口入方向
interface Vlan-interface 100
ip policy-based-route block-vlan100
# 查看ACL匹配统计(确认规则生效)
display acl 3300
# 查看包过滤统计(检查inbound/outbound流量)
display packet-filter inter Vlan-interface 10
display packet-filter inter Vlan-interface 100
# 实时调试(观察丢弃包)
debugging ip packet-filter 3300 // 临时开启调试
terminal monitor
terminal debugging
ACL方向黄金法则:
过滤跨VLAN访问 → 源VLAN的inbound
或目标VLAN的outbound
过滤本设备管理流量 → 目标VLAN接口的inbound
必加目的地址限制:
避免误封禁去往其他网段的流量:
rule deny ip source 192.168.100.0 0.0.0.255 destination 192.168.10.0 0.0.0.255
硬件限制确认:
部分老型号交换机可能限制VLAN接口出方向ACL(S5500V3通常支持),若不支持则用方案2或3。
策略路由优先级:
当同时配置ACL和PBR时,PBR优先级更高,确保逻辑不冲突。
✅ 推荐采用 方案1(VLAN接口10出方向ACL),这是最直接有效的解决方式。修改后VLAN100访问VLAN10的所有IP流量(TCP/ICMP)均会被拦截。
(0)
首先ping不通可能是因为设备ping保护机制导致的,你想实现tcp单通是这样实现的
例:
在交换机上配置ACL rule时,tcp established匹配的是带有ack标志位的tcp连接报文,而tcp匹配的是所有tcp连接报文。在配置Qos策略时,匹配流分类和流行为要注意顺序,先匹配permit的,再匹配deny的。这样的结果是在入方向deny了不带有ack标志位的tcp连接报文,其它tcp连接报文均能正常通过。因此主机B所在网段发起tcp连接时第一个请求报文被deny而无法建立连接,主机A所在网段发起tcp连接时,主机B所在网段发送的都是带有ack标志位的tcp连接报文,连接可以顺利建立。
#配置接口地址(此处省略)
#创建ACL,其中第1条匹配TCP连接请求报文,第2条匹配TCP连接建立报文
[H3C] acl advanced 3100 //创建acl 3000
[H3C-acl-ipv4-adv-3100]rule 0 permit tcp established source 192.168.20.0 0.0.0.255 destination 192.168.10.0 0.0.0.255 //匹配源是192.168.20.0/24段到目的192.168.10.0/24段tcp连接请求的报文
[H3C-acl-ipv4-adv-3100]quit //退出当前视图
[H3C]acl advanced 3200 //创建acl 3200
[H3C-acl-ipv4-adv-3200]rule 0 permit tcp source 192.168.20.0 0.0.0.255 destination 192.168.10.0 0.0.0.255 //匹配源是192.168.20.0/24段到目的192.168.10.0/24段tcp连接建立的报文
[H3C-acl-ipv4-adv-3200]quit //退出当前视图
#创建流分类,匹配相应的ACL
[H3C]traffic classifier 1 //创建流分类1
[H3C-classifier-1]if-match acl 3100 //匹配acl 3100
[H3C-classifier-1]quit //退出当前视图
[H3C]traffic classifier 2 //创建流分类2
[H3C-classifier-2]if-match acl 3200 //匹配acl 3200
#创建流行为,permit TCP连接建立报文,deny从 Vlan 20发送到vlan10的TCP连接建立请求报文
[H3C]traffic behavior 11 //创建流行为11
[H3C-behavior-11]filter permit //为流行为配置允许数据包通过的过滤动作
[H3C-behavior-3]quit //退出当前视图
[H3C]traffic behavior 22 //创建流行为22
[H3C-behavior-22]filter deny //为流行为配置丢弃数据包的过滤动作
[H3C]qos policy 3 //创建qos策略3
[H3C-qospolicy-3]classifier 1 behavior 11 //关联流分类1和流行为11
[H3C-qospolicy-3]classifier 2 behavior 22 //关联流分类2和流行为22
#在Vlan 20端口入方向下发Qos策略
[H3C]interface GigabitEthernet 1/0/20 //进入g1/0/20接口
[H3C-GigabitEthernet1/0/20]qos apply policy 3 inbound //在g1/0/20接口入方向下发qos3策略
#保存配置
[H3C]save force //保存配置
(0)
暂无评论
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
暂无评论