思科交换机抑制广播风暴特性解析
在企业网络中,广播数据包是一把双刃剑。一方面其是进行正常网络连接所必须的一种数据包,如在自动获得IP地址方案中需要利用广播数据报来寻找可用的DHCP服务器。另一方面其又很容易被病毒或者黑客所利用,如通过DOS攻击等手段导致网络拥塞。为此在网络设计中,必须要对广播数据包进行合理的控制。
一、广播数据包的危害
广播数据包有一个很重要的特征,就是广播域中每台网络设备,包括PC或者交换机都需要处理广播数据包。可见,如果某个广播域中存在比较多的广播流量,那么所有的相关设备都会受到影响,因为他们必须抽出一定的资源来处理这些广播数据包。同时,这些广播数据包还会占用宝贵的带宽资源,如果网络中存在过多的广播数据包,则可能会导致网络拥塞,大大降低网络的性能与安全等级。所以,在网络设计中应当防止过量的广播流量所导致的非正常功能故障,同时需要注意由此可能带来的安全隐患。总之,在网络中如果发生意外情况,那么异常的设备就会发送大量的广播数据包流量。如果在每秒之内发生的广播数据报流量过多,那么就会直接导致交换机等网络设备的CPU利用率高,设置利用率会达到100%从而导致网络中断。为此一个安全的网络设计,都会采用各种各样的措施来抑制广播数据包的流量。
在传统的网络设计中,也有不少的措施可以用来减少网络中不必要的广播数据包。如可以将网络设计成多个网段,以减少广播域内设备的数量,从而实现减少广播包的目的。不过这些传统的方案,都需要增加一些额外的设备,而且实施起来也不是很方便。在思科系列的交换机中,本身就提供了广播抑制的方案。或许网络管理员可以换一种思路来解决这个问题。
二、思科交换机广播数据包抑制方案分析
为了缓解过量的广播数据报对网络带来的不利影响,思科系列的交换机特别设计了广播抑制特性。简单的说,交换机操作系统会自动监测经过其设备的网络流量。如果发现广播数据包比较多的话,这交换机会采取两个措施:要么是丢弃过量的广播数据包;要么就是禁用接收过量的流量端口。
如上图所示,假设现在主机A受到了攻击,中了某种病毒。此时其就会不断的向外面发送广播数据包,直到主机瘫痪为止。其发送的广播数据包都需要经过交换机来转发。此时交换机会监测到来自主机A的大量的广播数据包流量。监测到这种情况之后,交换机会采取哪种措施呢?交换机可能会将主机A发送过来的广播数据包流量丢弃掉,其他的数据流量正常转发,从而杜绝A主机发出的广播数据包对广播域内其他设备的影响。交换机也有可能关闭主机A连接的交换机端口,即来自主机A的所有数据流量都将无法通过交换机来转发,就好像是将A的网络断开了,从而防止主机A继续危害网络。交换机具体采用哪种措施,这主要看网络管理员的配置。
交换机在监测广播数据流量的时候,检测的频率还是很高的。通常情况下,其回监测1秒周期内进入端口的数据流量。如果广播数据包超过了所设置的最大值,那么交换机就会采用网络管理员预先配置的违规措施。所以采用交换机的广播数据包抑制方案,可以在最短时间内发现非正常的广播数据包,从而采取有效的措施来减少其对企业网络的危害。
三、CatOS软件与IOS软件配置的异同
在思科系列的交换机中,主要采用CatOS与IOS操作系统软件。这两种操作系统在配置广播数据包抑制上还是有一定的差异。如在基于CatOS操作系统的交换机上,主要是通过如下命令来启用广播数据包抑制特性。
Set port broadcast thresho1d% violation drop-packets/err-disable enable/disable
在这个命令中,主要注意两个参数。第一个参数就是thresho1d%,也就是允许通过的广播数据包流量的最大值。利用专业术语来说就是阀值。如果将这个参数设置为100%,那么交换机将不会限制任何的流量。也就是说不会限制任何的广播数据流量。如果将这个参数设置为0%,那么交换机将会抑制所有的数据流量。通常情况下,我们都不会采用这两个极端的值。那么这个参数到底设置为多少合适呢?通常情况下在选择这个参数大小的时候,需要根据企业现有的网络流量模式来定义。这里需要强调的是,不要一开始就将这个参数设置的比较低,因为其可能会错误的丢弃交换机的正常流量。我们在平时管理的时候,往往会先设置一个比较大的值,然后再慢慢的根据企业的网络流量来降低这个阀值,最终调整到最优的阶段。另外笔者建议各位网络管理员,不要在任何交换机上都启用这个特性。通常情况下只需要在接入层的用户端口上启用广播抑制特性即可。因为大部分情况下,我们只要限制特定的主机端口所能够发送到网络中的广播数据流量即可。在太多的交换机上启用这个特性,有时候会起到适得其反的效果,会影响网络的性能与稳定性。
第二个参数是violation,即当交换机发现广播数据流量超过规定的最大值时,该采用何种措施来处理?在思科系列的交换机中,主要有两种方式,分别为丢弃数据包或者将某个端口禁用掉(设置为err-disable状态)。具体采取哪种措施主要要看企业的网络需求。不过笔者的意见是,尽量少用 “err-disable”状态。因为如果交换机的某个端口进入到这个状态的时候,交换机将会显示错误信息,并且立即产生相关的信息通过管理员预先定义的方式来同志管理员这种情况。此时可能会影响到正常数据流量的转发。所以一般情况下笔者建议采用丢弃数据包的方式来处理。从而将广播数据包对网络的影响降低到最低。
如果网络管理员采用的是基于IOS操作系统软件的交换机,那么配置的灵活性要降低一点。在使用IOS的交换机中,广播数据包抑制又叫做风暴控制。在使用这个特性的时候,阀值的设置跟CatOS软件类似,主要是要看违规操作的设置。因为在IOS软件版本中,不同的版本的交换机其支持的违规操作方式是不同的。如在6500系列的基于IOS软件的交换机中,其支持的违规操作只有一项就是“丢弃数据包”。而在基于IOS软件的4500系列交换机中,其支持的违规操作就有两项,分别为”“丢弃数据包”与“关闭选项”。关闭选项同上面说到的设置为err-disable状态效果类似,只是称呼不同而已。所以如果网络管理员采用的是基于IOS的交换机,那么就需要注意这个不同的系列所支持的违规操作方式的不同。
另外需要提醒的是,如果企业采用的是6500系列的交换机,还有一个问题要引起大家的重视。网络管理员可以在6500系列交换机的吉比特以太网端口上配置多播或者单播抑制特性。这个特性跟上面所讲的广播抑制特性非常的相似。这个特性可以同时抑制广播流量、多播流量、单播流量等等。在比较复杂的网络设计中,可以直接启用这个特性来代替前面讲到的广播抑制方案。