先说结论:
ENSP模拟环境下,限制vlan b访问 vlan a的某个地址,只能在vlan b的inbound 方向上做策略,或者在vlan a的视图下做inbound,outbound无论是在vlan a或者vlan b视图下,都不起作用。
实际环境中,我今天下午测试的时候,交换机真机环境下没有问题。
以下是测试的过程:
最近工作中用到了traffic-policy ,之前用traffic-filter的时候在Inbound和outbound 的时候,在哪个方向上应用,没有迷惑,可是在用traffic-policy 的时候,发现只有在inbound方向上才有用,在vlan视图下用outbound,不起作用,
我用ensp做了个模拟,做了个最严格,或者说极端情况下的acl deny,结果还是能ping通,说明traffic-policy在vlan视图下,outbound是不起作用的。
正常情况:要想做到不让192.168.2.0网段Ping通192.168.1.2,只需要在vlan20视图下,做
traffic-policy inbound就可可以,配置如图,
acl number 3000
rule 5 deny icmp destination 192.168.1.2 0
#
traffic classifier 3000 operator and
if-match acl 3000
#
traffic behavior deny
deny
#
traffic policy 3000
classifier 3000 behavior deny
#
drop-profile default
#
vlan 20
traffic-policy 3000 inbound
#
interface Vlanif10
ip address 192.168.1.1 255.255.255.0
#
interface Vlanif20
ip address 192.168.2.1 255.255.255.0
#
interface MEth0/0/1
#
interface GigabitEthernet0/0/1
port link-type access
port default vlan 10
#
interface GigabitEthernet0/0/2
port link-type access
port default vlan 10
#
interface GigabitEthernet0/0/3
port link-type access
port default vlan 20
#
interface GigabitEthernet0/0/4
port link-type access
port default vlan 20
这样的配置下,在vlan 20 下的电脑是不能ping通192.168.1.2的
------------------------------------------------------------------------------------
异常情况:vlan 视图下outbound方向
基于上面正确的配置,是应用在vlan 20的inbound方向的,我考虑,我将数据包从vlan20送过去,用的inbound,那么到达vlan10以后,在发送给电脑,应该是outbound,于是我在vlan10下面配置了traffic-policy 3000 outbound,下面就只贴不一样的关键配置了
测试1:
测试1:
acl number 3000
rule 5 deny icmp destination 192.168.1.2 0
#
traffic classifier 3000 operator and
if-match acl 3000
#
traffic behavior deny
deny
#
traffic policy 3000
classifier 3000 behavior deny
#
vlan 10
traffic-policy 3000 outbound
#
结果这样的配置,vlan 20的电脑还是能Ping通192.168.1.2
基于上面的情况,我在想是不是destination和source不对,于是我就改成了这样
测试2:vlan10视图下的outbound
测试2:
acl number 3000
rule 5 deny icmp destination 192.168.1.2 0
rule 10 deny icmp source 192.168.1.2 0
#
traffic classifier 3000 operator and
if-match acl 3000
#
traffic behavior deny
deny
#
traffic policy 3000
classifier 3000 behavior deny
#
drop-profile default
#
vlan 10
traffic-policy 3000 outbound
结果这样,vlan 20 还是能ping通192.168.1.2
我已经在acl里禁止了source 和destination地址都是192.168.1.2的地址,然后应用在了vlan 10的outbound方向,结果在pc3上Ping 192.168.1.2还是可以通的。
后来我想干脆我给vlan10的icmp全禁止不就行了,
于是我做了极端情况下的acl配置,结果,vlan20还是能ping通192.168.1.2
测试3:禁止icmp的情况下,vlan10 outbound依然不起作用
【测试3:极端情况】
acl number 3000
rule 5 deny icmp
rule 10 deny ip
#
traffic classifier 3000 operator and
if-match acl 3000
#
traffic behavior deny
deny
#
traffic policy 3000
classifier 3000 behavior deny
#
drop-profile default
#
vlan 10
traffic-policy 3000 outbound
#
结果,这样的acl,vlan 20下的pc3依然能ping通192.168.1.2
到这里我就开始怀疑是不是ensp有Bug,从理论上来说,vlan10
不会跟外界有icmp通信的
同样的 ,将这个极端情况的acl应用在vlan 20视图下,依然不起作用。
测试4:禁止vlan 20视图下的icmp
测试4:
acl number 3000
rule 5 deny icmp
rule 10 deny ip
#
traffic classifier 3000 operator and
if-match acl 3000
#
traffic behavior deny
deny
#
traffic policy 3000
classifier 3000 behavior deny
#
vlan 20
traffic-policy 3000 outbound
结果,这样的情况下,vlan 20的PC3依然能ping通192.168.1.2 ^_^
到这里,traffic-policy 在vlan视图下的outbound,彻底给我整不会了,于是开始大量的查找资料,目前查到的资料里都说是在目的vlan下做outbound就可以,可是测试上却不可以,目前还没更好的例子,有大神知道这是为什么吗?
2022.5.31