我们知道,当我们在浏览器里面输入网址时,DNS服务器会自动把它解析为IP地址,
浏览器实际上查找的是IP地址而不是网址。那么IP地址是如何转换为第二层物理地址(即
MAC地址)的呢?在局域网中,这是通过ARP协议来完成的。ARP协议对网络安全具有重要
的意义。通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使
网络阻塞。所以网管们应深入理解ARP协议。

 
  一、什么是ARP协议

  ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中
,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主
机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是
如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前
将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址
,查询目标设备的MAC地址,以保证通信的顺利进行。

  二、ARP协议的工作原理

  在每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,表里的IP地址与MAC地址是一
一对应的,如附表所示。
附表
          ip地址       mac地址
       192.168.1.1    00-aa-00-62-c6-09
       192.168.1.2    00-aa-00-62-c5-03
       192.168.1.3    00-aa-01-75-c3-06
       ……           ……

  我们以主机A(192.168.1.5)向主机B(192.168.1.1)发送数据为例。当发送数据时
,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到了,也就知道了目标
MAC地址,直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到相
对应的IP地址,主机A就会在网络上发送一个广播,目标MAC地址是“FF.FF.FF.FF.FF.FF
”,这表示向同一网段内的所有主机发出这样的询问:“192.168.1.1的MAC地址是什么?
”网络上其他主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的
回应:“192.168.1.1的MAC地址是00-aa-00-62-c6-09”。这样,主机A就知道了主机B的
MAC地址,它就可以向主机B发送信息了。同时它还更新了自己的ARP缓存表,下次再向主
机B发送信息时,直接从ARP缓存表里查找就可以了。ARP缓存表采用了老化机制,在一段
时间内如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,
加快查询速度。
 
 

  三、如何查看ARP缓存表

  ARP缓存表是可以查看的,也可以添加和修改。在命令提示符下,输入“arp -a”就
可以查看ARP缓存表中的内容了.
  用“arp -d”命令可以删除ARP表中某一行的内容;用“arp -s”可以手动在ARP表中
指定IP地址与MAC地址的对应。 
网络管理之ICMP协议篇(zz)
  对TCP/IP协议你一定非常熟悉,但是对ICMP协议你可能就一无所知了。ICMP协议是一
个非常重要的协议,它对于网络安全具有极其重要的意义。下面我们就来谈谈ICMP协议。
 
 
  什么是ICMP协议

  ICMP是“Internet Control Message Protocol”(Internet控制消息协议)的缩写
。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息
是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并
不传输用户数据,但是对于用户数据的传递起着重要的作用。
  我们在网络中经常会使用到ICMP协议,只不过我们觉察不到而已。比如我们经常使用
的用于检查网络通不通的Ping命令,这个“Ping”的过程实际上就是ICMP协议工作的过程
。还有其他的网络命令如跟踪路由的Tracert命令也是基于ICMP协议的。

  ICMP的重要性

  ICMP协议对于网络安全具有极其重要的意义。ICMP协议本身的特点决定了它非常容易
被用于攻击网络上的路由器和主机。例如,在1999年8月海信集团“悬赏”50万元人民币
测试防火墙的过程中,其防火墙遭受到的ICMP攻击达334050次之多,占整个攻击总数的
90%以上!可见,ICMP的重要性绝不可以忽视!
  比如,可以利用操作系统规定的ICMP数据包最大尺寸不超过64KB这一规定,向主机发
起“Ping of Death”(死亡之Ping)攻击。“Ping of Death” 攻击的原理是:如果
ICMP数据包的尺寸超过64KB上限时,主机就会出现内存分配错误,导致TCP/IP堆栈崩溃,
致使主机死机。
  此外,向目标主机长时间、连续、大量地发送ICMP数据包,也会最终使系统瘫痪。大
量的ICMP数据包会形成“ICMP风暴”,使得目标主机耗费大量的CPU资源处理,疲于奔命

  应对ICMP攻击

  虽然ICMP协议给黑客以可乘之机,但是ICMP攻击也并非无药可医。只要在日常网络管
理中未雨绸缪,提前做好准备,就可以有效地避免ICMP攻击造成的损失。
对于“Ping of Death”攻击,可以采取两种方法进行防范:第一种方法是在路由器上对
ICMP数据包进行带宽限制,将ICMP占用的带宽控制在一定的范围内,这样即使有ICMP攻击
,它所占用的带宽也是非常有限的,对整个网络的影响非常少;第二种方法就是在主机上
设置ICMP数据包的处理规则,最好是设定拒绝所有的ICMP数据包。
  设置ICMP数据包处理规则的方法也有两种,一种是在操作系统上设置包过滤,另一种
是在主机上安装防火墙。具体设置如下:
  1.在Windows 2000 Server中设置ICMP过滤
  Windows 2000 Server提供了“路由与远程访问”服务,但是默认情况下是没有启动
的,因此首先要启动它:点击“管理工具”中的“路由与远程访问”,启动设置向导。在
其中选择“手动配置服务器”项,点击[下一步]按钮。稍等片刻后,系统会提示“路由和
远程访问服务现在已被安装。要开始服务吗?”,点击[是]按钮启动服务。
  服务启动后,在计算机名称的分支下会出现一个“IP路由选择”,点击它展开分支,
再点击“常规”,会在右边出现服务器中的网络连接(即网卡)。用鼠标右键点击你要配
置的网络连接,在弹出的菜单中点击“属性”,会弹出一个网络连接属性的窗口,有两个
按钮,一个是“输入筛选器”(指对此服务器接受的数据包进行筛选),另一个是“输出
筛选器”(指对此服务器发送的数据包进行筛选),这里应该点击[输入筛选器] 按钮,
会弹出一个“添加筛选器”窗口,再点击[添加]按钮,表示要增加一个筛选条件。
  在“协议”右边的下拉列表中选择“ICMP”,在随后出现的“ICMP类型”和“ICMP编
码”中均输入“255”,代表所有的ICMP类型及其编码。ICMP有许多不同的类型(Ping就
是一种类型),每种类型也有许多不同的状态,用不同的“编码”来表示。因为其类型和
编码很复杂,这里不再叙述。
  点击[确定]按钮返回“输入筛选器”窗口,此时会发现“筛选器”列表中多了一项内
容(如图2所示)。点击[确定]按钮返回“本地连接”窗口,再点击[确定]按钮,此时筛
选器就生效了,从其他计算机上Ping这台主机就不会成功了。
2. 用防火墙设置ICMP过滤
  现在许多防火墙在默认情况下都启用了ICMP过滤的功能。如果没有启用,只要选中“
防御ICMP攻击”、“防止别人用ping命令探测”就可以了.
通过以上讲解,你现在知道ICMP的重要性了吧?赶紧给你的服务器设置ICMP过滤吧!
 
 网络管理之TCP/UDP篇(zz)
我们学习过什么是“数据包”。理解数据包,对于网络管理的网络安全具有至关重要
的意义。比如,防火墙的作用本质就是检测网络中的数据包,判断其是否违反了预先设置
的规则,如果违反就加以阻止。图1就是瑞星个人版防火墙软件设置规则的界面。细心的
读者会发现,图1中的“协议”栏中有“TCP”、“UDP”等名词,它们是什么意思呢?现
在我们就来讲讲什么是TCP和UDP。

 

面向连接的TCP
 
“面向连接”就是在正式通信前必须要与对方建立起连接。比如你给别人打电话,必
须等线路接通了、对方拿起话筒才能相互通话。
TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是
说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对
话”才能建立起来,其中的过程非常复杂,我们这里只做简单、形象的介绍,你只要做到
能够理解这个过程即可。我们来看看这三次对话的简单过程:主机A向主机B发出连接请求
数据包:“我想给你发数据,可以吗?”,这是第一次对话;主机B向主机A发送同意连接
和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包:“可以
,你什么时候发?”,这是第二次对话;主机A再发出一个数据包确认主机B的要求同步:
“我现在就发,你接着吧!”,这是第三次对话。三次“对话”的目的是使数据包的发送
和接收同步,经过三次“对话”之后,主机A才向主机B正式发送数据。
TCP协议能为应用程序提供可靠的通信连接,使一台计算机发出的字节流无差错地发往网
络上的其他计算机,对可靠性要求高的数据通信系统往往使用TCP协议传输数据。
我们来做一个实验,用计算机A(安装Windows 2000 Server操作系统)从“网上邻居”上
的一台计算机B拷贝大小为8,644,608字节的文件,通过状态栏右下角网卡的发送和接收指
标就会发现:虽然是数据流是由计算机B流向计算机A,但是计算机A仍发送了3,456个数据
包,如图2所示。这些数据包是怎样产生的呢?因为文件传输时使用了TCP/IP协议,更确
切地说是使用了面向连接的TCP协议,计算机A接收数据包的时候,要向计算机B回发数据
包,所以也产生了一些通信量。
如果事先用网络监视器监视网络流量,就会发现由此产生的数据流量是9,478,819字节,
比文件大小多出10.96%(如图3所示),原因不仅在于数据包和帧本身占用了一些空间,
而且也在于TCP协议面向连接的特性导致了一些额外的通信量的产生。

面向非连接的UDP协议

“面向非连接”就是在正式通信前不必与对方先建立连接,不管对方状态就直接发送
。这与现在风行的手机短信非常相似:你在发短信的时候,只需要输入对方手机号就OK了
UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连
接的协议,它不与对方建立连接,而是直接就把数据包发送过去!
UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境。比如,我们经常使用“
ping”命令来测试两台主机之间TCP/IP通信是否正常,其实“ping”命令的原理就是向对
方主机发送UDP数据包,然后对方主机确认收到数据包,如果数据包是否到达的消息及时
反馈回来,那么网络就是通的。例如,在默认状态下,一次“ping”操作发送4个数据包
(如图2所示)。大家可以看到,发送的数据包数量是4包,收到的也是4包(因为对方主
机收到后会发回一个确认收到的数据包)。这充分说明了UDP协议是面向非连接的协议,
没有建立连接的过程。正因为UDP协议没有连接的过程,所以它的通信效果高;但也正因
为如此,它的可靠性不如TCP协议高。QQ就使用UDP发消息,因此有时会出现收不到消息的
情况。
附表:tcp协议和udp协议的差别
             tcp          udp
是否连接   面向连接     面向非连接
传输可靠性 可靠的       不可靠的
应用场合   大量数据传输 少量数据传输
速度       慢           快
TCP协议和UDP协议各有所长、各有所短,适用于不同要求的通信环境。TCP协议和
UDP协议之间的差别如附表所示。