接入层交换机最大的特点就是具有流量控制功能,但是其只能对经过端口的各类流量进行简单的速率限制,功能还不是很完全。利用抓包工具,笔者经常捕获到大流量的异常报文,它们一方面消耗网络带宽,另一方面消耗网络设备的资源,影响网络的正常运行。
单播类异常报文:单播流量大多数是发送给网关,网关设备根据路由表对这些报文做出转发或丢弃处理。对私有IP地址,公网接入层交换机或路由器会自动丢弃单播流量。如果用户已经获得一个公网IP地址,这些单播流量就会被转发出去,进而影响更大范围的网络。以冲击波病毒为例,中毒主机只要监测到网络可用,就会启动一个攻击传播线程,不断随机生成攻击地址进行攻击。在冲击波发作严重的阶段,网络速度明显变慢,一些接入层交换机和一些小型路由器甚至崩溃,核心三层交换机的CPU利用率达到100%,运营商不得不采取屏蔽ICMP报文的办法加以应对。
广播类异常报文:广播是实现某些协议的必要方式。广播报文会发送给特定网段内的所有主机,每台主机都会对收到的报文进行处理,做出回应或丢弃的决定,其结果是既消耗网络带宽又影响主机性能。利用端口隔离技术,用户可以限制广播报文只发往上行端口,这样可以减小对本网段链路和主机的影响,但无法解决对汇聚层和核心层设备造成的影响。如果在汇聚或核心设备上将多个小区划在一个VLAN内,广播类流量就会通过上层设备返回到其他小区,进而继续占用这些小区的链路带宽并影响主机性能,这种配置方法在当前宽带网络中广泛存在。
组播类异常报文:组播类信息本来只服务于网络内的部分用户,其目的地址是网络内申请加入组播组的主机。一些主机并没有申请加入组播组,这些组播报文本不应该转发给这些主机,但是事实上这些主机还是收到了组播信息。是什么原因导致组播报文转发给没有申请加入的主机呢?原来,为了实现组播,二层交换机使用GMRP组播注册协议或IGMP Snooping协议来维护一个动态组播表,然后把组播报文转发给与该组播组成员相关的端口,以实现在VLAN 内的二层组播,如果没有运行IGMP Snooping,组播报文将在二层广播,这就是导致组播泛滥的原因。
随着宽带网络的进一步普及以及视频应用的逐渐增加,组播技术将会得到更广泛地应用,那时组播类异常流量不仅会出现在网络的第二层,而且还会路由到整个组播树。加上视频类信息流量较大,很难区分正常流量和不正常流量。因而对组播进行控制也就更加困难了。
总之,局域网内的应用存在被病毒利用的可能性,如果不有效限制异常流量,就会对网络带宽以及网络设备造成资源消耗。因此,为面向用户的二层交换机增加智能,把问题隔离在最小的范围内,就显得尤为重要。
化解风险的对策
利用接入层交换机的流量控制功能,我们能够把流经端口的异常流量限制在一定的范围内。例如,接入层交换机具有基于端口的流量控制功能,能够实现风暴控制、端口保护和端口安全。风暴控制能够缓解单播、广播或组播包导致的网络变慢,通过对不同种类流量设定一个阈值,接入层交换机在端口流量达到设定值时启动流量控制功能甚至将端口宕掉。端口保护类似于端口隔离,设置了端口保护功能的端口之间不交换任何流量。端口安全是对未经许可的地址进行端口级的访问限制。无独有偶,华为交换机提供流量控制和广播风暴抑制比等端口控制功能。流量控制功能用于交换机与交换机之间在发生拥塞时通知对方暂时停止发送数据包,以避免报文丢失。广播风暴抑制可以限制广播流量的大小,对超过设定值的广播流量进行丢弃处理。
不过,接入层交换机的流量控制功能只能对经过端口的各类流量进行简单的速率限制,将广播、组播的异常流量限制在一定的范围内,而无法区分哪些是正常流量,哪些是异常流量。同时,如何设定一个合适的阈值也比较困难。如果需要对报文做更进一步的控制用户可以采用ACL(访问控制列表 )。ACL利用IP地址、TCP/UDP端口等对进出接入层交换机的报文进行过滤,根据预设条件,对报文做出允许转发或阻塞的决定。Cisco和华为的交换机均支持IP ACL和MAC ACL,每种ACL分别支持标准格式和扩展格式。标准格式的ACL根据源地址和上层协议类型进行过滤,扩展格式的ACL根据源地址、目的地址以及上层协议类型进行过滤。
通过细分不同的网络流量,用户可以针对性地对异常流量分别进行控制。通过IP报文的协议字段控制单播类异常流量,通过以太帧的协议字段控制广播类异常报文,通过IP目的地址段控制组播类报文。除了这些控制手段之外,网络管理员还需要经常注意网络异常流量,及时定位异常流量的源主机,并且排除故障。 |