VLAN技术是解决DDOS攻击、IP地址冲突等问题的良好解决方案,但其本身却存在一个严重问题:不同VLAN网络间不能直接通信,这将如何办?
作者:论坛管理 来源:zdnet安全频道 2009年1月10日
关键字: VLAN
VLAN技术是解决DDOS攻击、IP地址冲突等问题的良好解决方案,但其本身却存在一个严重问题:不同VLAN网络间不能直接通信,这将如何办?
很多企业部署VLAN之后,由于处于不同VLAN的计算机之间不能直接通信,使网络的安全性能得到了很大提高。但事实上在很多网络中要求不是这样的,如何解决VLAN间的通信问题是我们在规划VLAN时必须认真考虑的问题。在网络组建初期,网络中只有10%~20%的信息在VLAN之间传播,但随着用户应用的增多,VLAN之间信息的传输量增加了许多倍,如果VLAN之间的通信问题解决得不好,将严重影响网络的使用和安全。
VACL(VLAN ACL)和定时访问列表、动态访问列表、自反访问列表一样都属于ACL扩展应用的一部分,它定义了基于3层以上的信息流量,而所对应的参数则用于2层的VLAN。VACL多是针对硬件里面应用,比传统的路由器访问列表处理速度明显快的多。本文将介绍VACL的应用和操作步骤。
一.COS系统下的VACL
任何一中流量控制的策略必须要首先制定要控制的是哪一种流量,以及如何处理这些流量。VACL与普通的ACL的相同,列表也是按照顺序进行匹配的。ACL 号相同的所有ACL形成一个组,在判断一个数据帧时,使用同一组中的条目从上到下逐一进行判断,一遇到满足的条目就终止对该数据帧的判断。基本的配置方法如下:
1.配置ACL
Set security acl ip {acl_name} {permit |deny |redirect mod/port} {protocol} {sourceaddress mask} [op] [srcport] {dest mask} [op] [destport] [before editbuffer_index |modify editbuffer_index] [log]
Set security acl ip命令后面指定IP ACL的名字,后面是协议的说明和采取的措施。
Permit |deny分别对应为:Permit是允许通过,deny是丢弃包。如果加上Redirect选项就代表不使用CAM(content addressable memory),而把流量发送到交换机上一个指定的mod/port对应的端口上。对于COS的交换机来说ACL直到被提交之前都首先写入一个特殊的缓冲区,并不作为交换机当前运行的条目,before和modify参数是指将配置的acl条目放到某条列表之前或者修改其实的参数。
2.写入到TCAM
前面已经说到了,在配置完ACL之后,它只在编辑缓冲区里面,我们必须同过commit security acl命令将配置写入到TCAM(ternary content addressable memory)。完整的命令参数如下:
commit security acl {name | all }
name 选项为只提交指定的名称列表(可以使用show security acl ip name editbuffer 查看编辑缓冲区内未被提交到内容的控制条目),all 选项指提交所有未写入的VACL。
3.映射到VLAN
VACL与ACL都需要在提交之后把它们对应到作用对象上,如interface vlan1///ip access-group 101 out:这两句将access-list 101应用到vlan1接口的out方向。其中101是ACL号,和相应的ACL进行关联。Out是对路由器该接口上哪个方向的包进行过滤,可以有in和out两种选择。COS VACL的配置同上面的道理一样,具体体现在:一个VLAN只能有一个VACL映射对其起作用,但一个VACL可以同时被多个VLAN同时调用。命令参数如下:
Set security acl map acl_name vlan
除了使用show security acl ip name editbuffer 可以查看编辑缓冲区的内容以外,在应用到VLAN以后,我们可以使用 show security acl info 和show security acl map 核实对配置和映射的结果。
二.IOS系统下的VACL
1.编写ACL
(1)表准访问控制列表
一个标准IP访问控制列表匹配IP包中的源地址或源地址中的一部分,可对匹配的数据包采取“拒绝”或“允许”两个操作。编号范围是从1到99的访问控制列表是标准IP访问控制列表。语法如下:
router(config)#access-list [list number][permit | deny | remark][host/any][source a ddress][wildcard-mask][log]
(2)扩展访问列表
扩展访问列表主要增加报文过滤能力,一个扩展的IP访问表允许用户根据内容过滤报文的源和目的地址的协议、端口以及在特定报文字段。协议项定义了需要被过滤的协议,例如IP、TCP、UDP、ICMP等,协议选项是区别标准的访问列表的特征之一。扩展的列表标号从100~199,2000~2699。
(3)基于名称的访问列表
基于名称的访问列表遵守和数字的IP访问控制列表一样的逻辑,名字可以更加容易的记住访问控制列表的功能,命名的列表允许使用超过99个标准控制列表和100个扩展控制列表。优于编号的控制列表的特点是可以删除特定的一条语句,而编号访问控制列表只能删除整个访问控制。语法如下:
router(config)#ip access-list {standard | extended} name
这表示要进入的name所指定的列表配置模式,所有的permit和deny操作都是进入到这个模式下进行配置的。
2.创建映射
VACL主要区别于上述ACL操作的方法,就是将已经创建好的ACL映射到一个VLAN上。创建映射分为3步,命令与法和解释如下:
命令一:(global) vlan access-map name [number]
vlan access-map后面的名字定义的时候最好有针对性或者提示性,而后续的设置的子句都使用number选项。如果在这里进行了分组的设置,每一个子句都要经过匹配检测,直到没有发现匹配语句才丢弃分组。
命令二:(vlan-map) match ip address {aclname | aclnumber}
执行完第一步实际上是进入了访问映射的配置模式。match ip address后面的参数是你在前面配置ACL的名称或编号,而ACL定义的permit语句在这里表示匹配的意思,deny表示不匹配。
命令三:(vlan-map) action {drop | forward}
交换机根据匹配ACL确定的匹配,action命令后面的参数才是代表流量是允许(forward)还是丢弃(drop)。
3.应用与检查
完成之前的配置后,需要用vlan filter命令把访问列表应用到交换机。格式如下:
(global) vlan filter mapname vlan-list list
Mapname参数对应的是vlan access-map命令创建的映射名称,list是vlan的序号。都配置完成之后,可以利用show命令检查VACL工作的状态,命令如下:
* show ip access-lists [number | name]
* show vlan access-map [mapname]
* show vlan filter [access-map name | vlan vlan-id]
* show ip interface type number
三.VACL应用范例
1.协议与端口访问控制
很多企业中的Windows服务器都开启了远程管理服务,但管理员又不希望,所有员工都能访问到这台服务器的端口。此时就可以使用VACL来助阵了。
(1)配置一个ACL,以判断数据包是否是通过TCP端口3389进入的:
Sw3750(config)# access-list 100 permit tcp any any eq 3389
(2)配置VLAN访问映射表:
Sw3750(config)# vlan access-map TSServer 100
Sw3750(config-access-map)# match ip address 100
Sw3750(config-access-map)# action drop
(3)将VLAN访问控制列表应用于VLAN
Sw3750(config-access-map)# vlan filter TSServer vlan-list 10-20
2.主机访问控制
这里有一个非常简单的范例,根据下图要求,我们将针对VLAN 10定制VACL,只拒绝Host A和Host B对Server的访问,其他主机是可以通过的。
命令如下:
Sw3750(config)# access-list 101 deny ip host 10.1.1.100 host 10.1.1.1
Sw3750(config)# access-list 101 deny ip host 10.1.1.200 host 10.1.1.1
Sw3750(config)# access-list 101 permit ip any any
Sw3750(config)# vlan access-map Server 101
Sw3750(config-access-map)# match ip address 101
Sw3750(config-access-map)# action forward
Sw3750(config-access-map)# vlan filter Server vlan-list 10