交换机的风险
利用抓包工具,笔者经常捕捉到大流量的异常报文,它们一方面消耗网络带宽,另一方面消耗网络设备的资源,影响网络的正常运行。
单播类异常报文:单播流量大多数是发送给网关,网关设备根据路由表对这些报文做出转发或丢弃处理。对私有IP地址,公网三层交换机或路由器会自动丢弃单播流量。假如用户已经获得一个公网IP地址,这些单播流量就会被转发出去,进而影响更大范围的网络。以冲击波病毒为例,中毒主机只要监测到网络可用,就会启动一个攻击传播线程,不断随机生成攻击地址进行攻击。在冲击波发作严重的阶段,网络速度明显变慢,一些接入层交换机和一些小型路由器甚至崩溃,核心三层交换机的CPU利用率达到100%,运营商不得不采取屏蔽ICMP报文的办法加以应对。
广播类异常报文:广播是实现某些协议的必要方式。广播报文会发送给特定网段内的所有主机,每台主机都会对收到的报文进行处理,做出回应或丢弃的决定,其结果是既消耗网络带宽又影响主机性能。利用端口隔离技术,用户可以限制广播报文只发往上行端口,这样可以减小对本网段链路和主机的影响,但无法解决对汇聚层和核心层设备造成的影响。假如在汇聚或核心设备上将多个小区划在一个VLAN内,广播类流量就会通过上层设备返回到其他小区,进而继续占用这些小区的链路带宽并影响主机性能,这种配置方法在当前宽带网络中广泛存在。
组播类异常报文:组播类信息本来只服务于网络内的部分用户,其目的地址是网络内申请加入组播组的主机。一些主机并没有申请加入组播组,这些组播报文本不应该转发给这些主机,但是事实上这些主机还是收到了组播信息。是什么原因导致组播报文转发给没有申请加入的主机呢原来,为了实现组播,二层交换机使用GMRP组播注册协议或IGMP Snooping协议来维护一个动态组播表,然后把组播报文转发给与该组播组成员相关的端口,以实现在VLAN 内的二层组播,假如没有运行IGMP Snooping,组播报文将在二层广播,这就是导致组播泛滥的原因。
随着宽带网络的进一步普及以及视频应用的逐渐增加,组播技术将会得到更广泛地应用,那时组播类异常流量不仅会出现在网络的第二层,而且还会路由到整个组播树。加上视频类信息流量较大,很难区分正常流量和不正常流量。因而对组播进行控制也就更加困难了。
总之,局域网内的应用存在被病毒利用的可能性,假如不有效限制异常流量,就会对网络带宽以及网络设备造成资源消耗。因此,为面向用户的二层交换机增加智能,把问题隔离在最小的范围内,就显得尤为重要。
化解风险的对策
利用交换机的流量控制功能,我们能够把流经端口的异常流量限制在一定的范围内。例如,Cisco交换机具有基于端口的流量控制功能,能够实现风暴控制、端口保护和端口安全。风暴控制能够缓解单播、广播或组播包导致的网络变慢,通过对不同种类流量设定一个阈值,交换机在端口流量达到设定值时启动流量控制功能甚至将端口宕掉。端口保护类似于端口隔离,设置了端口保护功能的端口之间不交换任何流量。端口安全是对未经许可的地址进行端口级的访问限制。无独有偶,锐捷网络系列STAR-S2126G/S2150G接入交换机提供流量控制和广播风暴抑制比等端口控制功能。流量控制功能用于交换机与交换机之间在发生拥塞时通知对方暂时停止发送数据包,以避免报文丢失。广播风暴抑制可以限制广播流量的大小,对超过设定值的广播流量进行丢弃处理。
不过,交换机的流量控制功能只能对经过端口的各类流量进行简单的速率限制,将广播、组播的异常流量限制在一定的范围内,而无法区分哪些是正常流量,哪些是异常流量。同时,如何设定一个合适的阈值也比较困难。假如需要对报文做更进一步的控制用户可以采用ACL(访问控制列表 )。ACL利用IP地址、TCPUDP端口等对进出交换机的报文进行过滤,根据预设条件,对报文做出答应转发或阻塞的决定。Cisco和华为的交换机均支持IP ACL和MAC ACL,每种ACL分别支持标准格式和扩展格式。标准格式的ACL根据源地址和上层协议类型进行过滤,扩展格式的ACL根据源地址、目的地址以及上层协议类型进行过滤。
通过细分不同的网络流量,用户可以针对性地对异常流量分别进行控制。通过IP报文的协议字段控制单播类异常流量,通过以太帧的协议字段控制广播类异常报文,通过IP目的地址段控制组播类报文。除了这些控制手段之外,网络治理员还需要经常注重网络异常流量,及时定位异常流量的源主机,并且排除故障。
Greenfoot是一款简单易用的Java开发环境,该软件界面清爽简约,既可以作为一个开发框使用,也能够作为集成开发环境使用,操作起来十分简单。这款软件支持多种语言,但是默认的语言是英文,因此将该软件下载到电脑上的时候,会发现软件的界面语言是英文版本的,这对于英语基础较差的朋友来说,使用这款软件就会...
07-05
Egret UI Editor是一款开源的2D游戏开发代码编辑软件,其主要功能是针对Egret项目中的Exml皮肤文件进行可视化编辑,功能十分强大。我们在使用这款软件的过程中,可以将一些常用操作设置快捷键,这样就可以简化编程,从而提高代码编辑的工作效率。但是这款软件在日常生活中使用得不多,并且专业性...
07-05
KittenCode是一款十分专业的编程软件,该软件给用户提供了可视化的操作界面,支持Python语言的编程开发以及第三方库管理,并且提供了很多实用的工具,功能十分强大。我们在使用这款软件进行编程开发的过程中,最基本、最常做的操作就是新建项目,因此我们很有必要掌握新建项目的方法。但是这款软件的专业性...
07-05
Thonny是一款十分专业的Python编辑软件,该软件界面清爽简单,给用户提供了丰富的编程工具,具备代码补全、语法错误显示等功能,非常的适合新手使用。该软件还支持多种语言,所以在下载这款软件的时候,有时候下载到电脑中的软件是英文版本的,这对于英语基础较差的小伙伴来说,使用这款软件就会变得十分困难,...
07-05