分享

多交换机互联场景下应用ACL来控制VLAN间流量互访所导致的问题

 昵称11935121 2018-09-26

1,问题描述

如图所示,两台交换机互联,互联接口配置trunk类型允许所有VLAN通过,交换机与下挂PC之间使用access类型连接。

图示 多交换机互联场景下,应用基于ACL的流策略来控制VLAN间流量互访组网图

多交换机互联场景下应用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间的流量访问控制时,要注意实际策略的生效接口,严格按照产品文档来进行配置设计及验证。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多