1,问题描述 如图所示,两台交换机互联,互联接口配置trunk类型允许所有VLAN通过,交换机与下挂PC之间使用access类型连接。 图示 多交换机互联场景下,应用基于ACL的流策略来控制VLAN间流量互访组网图 客户需求如下: VLAN30仅允许VLAN20的流量进入,同时拒绝其他所有流量。假设VLAN10的IP地址段为10.0.0.0/24,VLAN20的IP地址段为20.0.0.0/24,VLAN30的IP地址段为30.0.0.0/24。 接口配置可以参考图5-1,此处略去。 与流量控制相关的Switch2的关键配置如下: # acl name vlan30_inbound rule 5 permit ip source 20.0.0.0 0.0.0.255 destination 30.0.0.0 0.0.0.255 rule 10 deny ip # traffic classifier vlan30_inbound if-match acl vlan30_inbound # traffic behavior vlan30_inbound permit # traffic policy vlan30_inbound match-order config classifier vlan30_inbound behavior vlan30_inbound # vlan 30 traffic-policy vlan30_inbound inbound # 完成配置后,测试结果如下: 1、VLAN30网络只允许VLAN20的流量访问。 2、Switch1上的VLAN10的流量无法访问Switch2的VLAN20网络。 2,处理过程 首先,VLAN下基于ACL的流策略是对属于该VLAN的所有物理接口操作生效的。基于这个前提,在单台交换机的情况下,上述配置是可以完全达到要求的。但是,在多交换机互联的情况下,就没这么简单了。除了实现结果1的需求外,还带来了计划外的结果2(Switch1上的VLAN10的流量无法访问Switch2的VLAN20网络)。 这其中原因在于: 1、交换机之间通过trunk模式互联的场景下,互联trunk接口允许所有VLAN通过。 2、只在Switch2上配置,并应用于VLAN30上的报文过滤流策略除了在普通的属于VLAN30的access接口下生效外,在放行VLAN30的互联trunk端口下也生效了。 所以也就导致了以上问题的产生。 3,解决方案 由于华为交换机基于VLAN的报文控制使用的机制如上,所以解决上述问题最有效及快捷的方法是:创建一个新的报文过滤策略,允许所有流量通过,然后应用在级联trunk端口上。由于物理接口下的策略优先于VLAN下的策略,所有通过互联通道的流量不受VLAN下策略影响。 Switch2的具体配置如下: # acl 2000 rule permit ip # traffic classifier inter-permit if-match acl 2000 # traffic behavior inter-permit permit # traffic policy inter-permit classifier inter-permit behavior inter-permit # interface Eth-trunk 1----------------交换机之间的互联接口 traffic-policy inter-permit inbound # 4,建议与总结 此案例事实上是基于客户使用华为交换机替换友商C设备后,在实现报文过滤时,由于两家设备之间不同的配置及实现机制引出来的:客户在相同组网的情况下,使用友商C的设备实现相同的需求,只需要在Switch2上的interface vlanif30下应用ACL即可,不会引入多余的结果。所以,在使用华为交换机通过ACL来实现VLAN间的流量访问控制时,要注意实际策略的生效接口,严格按照产品文档来进行配置设计及验证。 |
|
来自: 昵称11935121 > 《未命名》