公司买了好多Quidway S2318TP-EI,用于连接客户端电脑。一直也相安无事。上周,仓库的的员工要访问合作伙伴公司的服务器。通过internet访问太慢,索性我就拉了一条光纤连接到他们的办公室,拉过去才发现,他们那边是用几个tp-link加上ADSL modem上网的。通过ADSL modem自动分配IP地址,我们这边也是自动分配IP地址的。
这下子好了,由于两边的网络都是二层,我们的员工能获取到他们的IP地址,他们的也能获取到我们的网络IP地址。更要命的是,两个局域网IP地址网段还相同。天煞的!
怎么办?首先想到在我们的Quidway S2318TP-EI上做ACL,进行过滤。由于对华为的设备不熟悉,所以要摸索一下。由于我们只要访问他们的端口为25004的一台服务器,其他都不用访问,所以,我们写了一个访问列表,然后配合traffice policy进行配置。如下:
acl number 3002
rule 1 permit tcp source-port eq 25004 //因为只能做inbound顾虑,所以只能这样写了。
#
traffic classifier tc02_suqi
if-match acl 3002
#
traffic behavior tb02_suqi
permit
#
traffic policy tp01_suqi
classifier tc02_suqi behavior tb02_suqi
#
interface Ethernet0/0/16
description to_SuQi_server
port default vlan 1
traffic-policy tp01_suqi inbound //应用策略
配置后,进行测试,你猜怎么着?和没有配置policy一样。难道我是因为我不熟悉导致配的不对还是?有点不敢想了。
后来仔细看文档,发现,如果behavior是permit,此时对应的acl列表,不管是deny还是permit,结果都是permit。
如果behavior是deny,此时对应的acl列表,不管是deny还是permit,结果都是deny。
这是有个疑问,当behavior是permit时,默认操作是什么?就是没有写的,是拒绝还是允许?
带着这个疑问,只能一步一步测试了。关键是网上的资料还是比较少,针对这个问题的更少了。
经过测试发现:
behavior是permit,此时对应的acl列表,不管是deny还是permit,结果都是permit。默认操作还是permit。这个最奇葩了。不明白这个有何意义?
behavior是deny,此时对应的acl列表,不管是deny还是permit,结果都是deny。默认是permit。
既然这个知道,我就只能这样写了:
acl number 3002
rule 1 deny udp destination-port eq bootps //为了让双方获取到对方的IP地址。阻止DHCP包
rule 2 deny udp destination-port eq bootpc//为了让双方获取到对方的IP地址。阻止DHCP包
rule 3 deny udp source-port eq bootps//为了让双方获取到对方的IP地址。阻止DHCP包
rule 4 deny udp source-port eq bootpc//为了让双方获取到对方的IP地址。阻止DHCP包
rule 5 deny tcp source-port eq 445 //拒绝访问文件共享访问
rule 6 deny tcp source-port eq telnet //拒绝telnet
rule 7 deny tcp source-port eq www //拒绝访问他们的80web服务器。
//默认是permit,没有写的都允许。
#
traffic classifier tc02_suqi
if-match acl 3002
#
traffic behavior tb02_suqi
deny
#
traffic policy tp01_suqi
classifier tc02_suqi behavior tb02_suqi
#
interface Ethernet0/0/16
description to_SuQi_server
port default vlan 1
traffic-policy tp01_suqi inbound //入方向过滤。
测试结果,不会发生双方互相活动对方IP地址的情况了。最后,我还是把我们的IP地址网段该了。防止地址冲突。