交换机划分与Snmp协议
1.交换机划分方式
交换方式
1.直通式: 直通方式的以太网交换机可以理解为在各端口间是纵横交叉的线路矩阵电话交换机。它在输入端口检测到一个数据包时,检查该包的包头,获取包的目的地址,启动内部的动态查找表转换成相应的输出端口,在输入与输出交叉处接通,把数据包直通到相应的端口,实现交换功能。由于不需要存储,延迟非常小、交换非常快,这是它的优点。它的缺点是,因为数据包内容并没有被以太网交换机保存下来,所以无法检查所传送的数据包是否有误,不能提供错误检测能力。由于没有缓存,不能将具有不同速率的输入/输出端口直接接通,而且容易丢包。
2.存储转发 :存储转发方式是计算机网络领域应用最为广泛的方式。它把输入端口的数据包先存储起来,然后进行CRC(循环冗余码校验)检查,在对错误包处理后才取出数据包的目的地址,通过查找表转换成输出端口送出包。正因如此,存储转发方式在数据处理时延时大,这是它的不足,但是它可以对进入交换机的数据包进行错误检测,有效地改善网络性能。尤其重要的是它可以支持不同速度的端口间的转换,保持高速端口与低速端口间的协同工作。
3. 碎片隔离 这是介于前两者之间的一种解决方案。它检查数据包的长度是否够64个字节,如果小于64字节,说明是假包,则丢弃该包;如果大于64字节,则发送该包。这种方式也不提供数据校验。它的数据处理速度比存储转发方式快,但比直通式慢。
三层交换机
1.直通式: 直通方式的以太网交换机可以理解为在各端口间是纵横交叉的线路矩阵电话交换机。它在输入端口检测到一个数据包时,检查该包的包头,获取包的目的地址,启动内部的动态查找表转换成相应的输出端口,在输入与输出交叉处接通,把数据包直通到相应的端口,实现交换功能。由于不需要存储,延迟非常小、交换非常快,这是它的优点。它的缺点是,因为数据包内容并没有被以太网交换机保存下来,所以无法检查所传送的数据包是否有误,不能提供错误检测能力。由于没有缓存,不能将具有不同速率的输入/输出端口直接接通,而且容易丢包。
2.存储转发 :存储转发方式是计算机网络领域应用最为广泛的方式。它把输入端口的数据包先存储起来,然后进行CRC(循环冗余码校验)检查,在对错误包处理后才取出数据包的目的地址,通过查找表转换成输出端口送出包。正因如此,存储转发方式在数据处理时延时大,这是它的不足,但是它可以对进入交换机的数据包进行错误检测,有效地改善网络性能。尤其重要的是它可以支持不同速度的端口间的转换,保持高速端口与低速端口间的协同工作。
3. 碎片隔离 这是介于前两者之间的一种解决方案。它检查数据包的长度是否够64个字节,如果小于64字节,说明是假包,则丢弃该包;如果大于64字节,则发送该包。这种方式也不提供数据校验。它的数据处理速度比存储转发方式快,但比直通式慢。
SNMPv1使用基于团体名进行报文认证
SNMPv2第二版SMI在RFC 2578之中描述,它在SNMP第一版的SMI规格资料型态上进行增加和强化,例如位元串(bit strings)、网络位址(network addresses)和计数器(counters)
SNMPv3第三版SNMP第三版由RFC 3411-RFC 3418定义,主要增加SNMP在安全性和远端配置方面的强化
但必须注意的是,禁用SNMP服务会影响服务的发现操作以及利用SNMP获取设备状态的端口监视机制。
SNMP背景知识
SNMP开发于九十年代早期,其目的是简化大型网络中设备的管理和数据的获取。许多与网络有关的软件包,如HP的Open View和Nortel Networks的Optivity Network Management System,还有Multi Router Traffic Grapher(MRTG)之类的免费软件,都用SNMP服务来简化网络的管理和维护。
由于SNMP的效果实在太好了,所以网络硬件厂商开始把SNMP加入到它们制造的每一台设备。今天,各种网络设备上都可以看到默认启用的SNMP服务,从交换机到路由器,从防火墙到网络打印机,无一例外。
仅仅是分布广泛还不足以造成威胁,问题是许多厂商安装的SNMP都采用了默认的通信字符串(例如密码),这些通信字符串是程序获取设备信息和修改配置必不可少的。采用默认通信字符串的好处是网络上的软件可以直接访问设备,无需经过复杂的配置。
通信字符串主要包含两类命令:GET命令,SET命令。GET命令从设备读取数据,这些数据通常是操作参数,例如连接状态、接口名称等。SET命令允许设置设备的某些参数,这类功能一般有限制,例如关闭某个网络接口、修改路由器参数等功能。但很显然,GET、SET命令都可能被用于拒绝服务攻击(DoS)和恶意修改网络参数。
最常见的默认通信字符串是public(只读)和private(读/写),除此之外还有许多厂商私有的默认通信字符串。几乎所有运行SNMP的网络设备上,都可以找到某种形式的默认通信字符串。
SNMP2.0和SNMP1.0的安全机制比较脆弱,通信不加密,所有通信字符串和数据都以明文形式发送。攻击者一旦捕获了网络通信,就可以利用各种嗅探工具直接获取通信字符串,即使用户改变了通信字符串的默认值也无济于事。
近几年才出现的SNMP3.0解决了一部分问题。为保护通信字符串,SNMP3.0使用DES(DataEncryptionStandard)算法加密数据通信;另外,SNMP3.0还能够用MD5和SHA(SecureHashAlgorithm)技术验证节点的标识符,从而防止攻击者冒充管理节点的身份操作网络。
虽然SNMP3.0出现已经有一段时间了,但目前还没有广泛应用。如果设备是2、3年前的产品,很可能根本不支持SNMP3.0;甚至有些较新的设备也只有SNMP2.0或SNMP1.0。
即使设备已经支持SNMP3.0,许多厂商使用的还是标准的通信字符串,这些字符串对黑客组织来说根本不是秘密。因此,虽然SNMP3.0比以前的版本提供了更多的安全特性,如果配置不当,其实际效果仍旧有限。
禁用SNMP
要避免SNMP服务带来的安全风险,最彻底的办法是禁用SNMP。如果你没有用SNMP来管理网络,那就没有必要运行它;如果你不清楚是否有必要运行SNMP,很可能实际上不需要。即使你打算以后使用SNMP,只要现在没有用,也应该先禁用SNMP,直到确实需要使用SNMP时才启用它。
下面列出了如何在常见的平台上禁用SNMP服务。
■Windows XP和Windows 2000
在XP和Win2K中,右击“我的电脑”,选择“管理”。展开“服务和应用程序”、“服务”,从服务的清单中选择SNMP服务,停止该服务。然后打开服务的“属性”对话框,将启动类型改为“禁用”(按照微软的默认设置,Win2K/XP默认不安装SNMP服务,但许多软件会自动安装该服务)。
■WindowsNT4.0
选择“开始”→“设置”,打开服务设置程序,在服务清单中选择SNMP服务,停止该服务,然后将它的启动类型改为禁用。
■Windows9x
打开控制面板的网络设置程序,在“配置”页中,从已安装的组件清单中选择“MicrosoftSNMP代理”,点击“删除”。检查HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices和HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run注册键,确认不存在snmp.exe。
■Cisco Systems硬件
对于Cisco的网络硬件,执行“noSNMP-server”命令禁用SNMP服务。如果要检查SNMP是否关闭,可执行“showSNMP”命令。这些命令只适用于运行CiscoIOS的平台;对于非IOS的Cisco设备,请参考随机文档。
■HP硬件
对于所有使用Jet Direct卡(绝大部分HP网络打印机都使用它)的HP网络设备,用telnet连接到Jet Direct卡的IP地址,然后执行下面的命令:
SNMP-config:0
quit
这些命令将关闭设备的SNMP服务。但必须注意的是,禁用SNMP服务会影响服务的发现操作以及利用SNMP获取设备状态的端口监视机制。
■RedHatLinux
对于RedHatLinux,可以用Linuxconf工具从自动启动的服务清单中删除SNMP,或者直接从/etc/services文件删除启动SNMP的行。对于其他Linux系统,操作方法应该也相似。
保障SNMP的安全
如果某些设备确实有必要运行SNMP,则必须保障这些设备的安全。首先要做的是确定哪些设备正在运行SNMP服务。除非定期对整个网络进行端口扫描,全面掌握各台机器、设备上运行的服务,否则的话,很有可能遗漏一、二个SNMP服务。特别需要注意的是,网络交换机、打印机之类的设备同样也会运行SNMP服务。确定SNMP服务的运行情况后,再采取下面的措施保障服务安全。
■加载SNMP服务的补丁
安装SNMP服务的补丁,将SNMP服务升级到2.0或更高的版本。联系设备的制造商,了解有关安全漏洞和升级补丁的情况。
■保护SNMP通信字符串
一个很重要的保护措施是修改所有默认的通信字符串。根据设备文档的说明,逐一检查、修改各个标准的、非标准的通信字符串,不要遗漏任何一项,必要时可以联系制造商获取详细的说明。
■过滤SNMP
另一个可以采用的保护措施是在网络边界上过滤SNMP通信和请求,即在防火墙或边界路由器上,阻塞SNMP请求使用的端口。标准的SNMP服务使用161和162端口,厂商私有的实现一般使用199、391、705和1993端口。禁用这些端口通信后,外部网络访问内部网络的能力就受到了限制;另外,在内部网络的路由器上,应该编写一个ACL,只允许某个特定的可信任的SNMP管理系统操作SNMP。例如,下面的ACL只允许来自(或者走向)SNMP管理系统的SNMP通信,限制网络上的所有其他SNMP通信:
access-list 100 permit iphost w.x.y any
access-list 100 deny udp any any eq snmp
access-list 100 deny udp any any eq snmp trap
access-list 100 permit ip any any
这个ACL的第一行定义了可信任管理系统(w.x.y)。利用下面的命令可以将上述ACL应用到所有网络接口:
interface serial0
ip access-group 100 in
总之,SNMP的发明代表着网络管理的一大进步,现在它仍是高效管理大型网络的有力工具。然而,SNMP的早期版本天生缺乏安全性,即使最新的版本同样也存在问题。就象网络上运行的其他服务一样,SNMP服务的安全性也是不可忽视的。不要盲目地肯定网络上没有运行SNMP服务,也许它就躲藏在某个设备上。那些必不可少的网络服务已经有太多让人担忧的安全问题,所以最好关闭SNMP之类并非必需的服务——至少尽量设法保障其安全。
交换机的堆叠与级联
交换机的堆叠是相对级联而言的,堆叠和级联都是扩充交换机端口数量的方法,但是堆叠后的设备理论上还是一台设备,也就是可以实现统一管理。但是级联的话是不具备这种功能的。
堆叠可以分为物理堆叠和虚拟堆叠,前者是专门的堆叠端口,通过堆叠线把交换机连接在一起,可以分为星型堆叠和环形堆叠;虚拟堆叠不需要专门的堆叠口,交换机一般通过级联连接在一起,但是可以通过软件设置实现单IP统一管理。
是不是有点搞不清楚级联和堆叠。简单来说,级联:相当于把一个端口进行扩展成多个端口,扩展的端口总带宽=级联口的带宽;堆叠:相当于往交换机上增加端口,所有增加的端口跟之前的端口共享交换机的背板带宽。
级联和堆叠的区别见下表
级联和堆叠示意图
级联交换机连接图
堆叠交换机连接图
总结交换机堆叠与级联的区别,主要有以下六点:
1、对设备要求不同。级联可通过一根双绞线在任何网络设备厂家的交换机之间,或者交换机与集线器之间完成。而堆叠只有在自己厂家的设备之间,并且该交换机必须具有堆叠功能才可实现。
2、对连接介质要求不同。级联时只需一根跳线,而堆叠则需要专用的堆叠模块和堆叠线缆,当然堆叠模块是需要另外订购的。
3、最大连接数不同。交换机间的级联,在理论上没有级联数的限制。但是,叠堆内可容纳的交换机数量,各厂商都会明确地进行限制。
4、管理方式不同。堆叠后的数台交换机在逻辑上是一个被网管的设备,可以对所有交换机进行统一的配置与管理。而相互级联的交换机在逻辑上是各自独立的,必须依次对其进行配置和管理每台交换机。
5、设备间连接带宽不同。多台交换机级联时会产生级联瓶颈,并将导致较大的转发延迟。例如,4台百兆位交换机通过跳线级联时,彼此之间的连接带宽也是100Mbps。当连接至不同交换机上的计算机之间通信时,也只能通过这条百兆位连接,从而成为传输的瓶颈。同是,随着转发次数的增加,网络延迟也将变得很大。而4台交换机通过堆叠连接在一起时,堆叠线缆将能提供高于1Gbps的背板带宽,从而可以实现所有交换机之间的高速连接。尽管级联时交换机之间可以借助链路汇聚技术来增加带宽,但是,这是以牺牲可用端口为代价的。
6、网络覆盖范围不同。交换机可以通过级联成倍地扩展网络覆盖范围。例如,以双绞线网络为例,一台交换机所覆盖的网络直径为100m,2台交换机级联所覆盖的网络直径就是300m,而3台交换机级联时的直径就可达400m。而堆叠线缆通常只有0.5~1m,仅仅能够满足交换机之间互联的需要,不会对网络覆盖范围产生影响。