1、毕业论文(设计)复杂环境下网络嗅探技术的应用与防范措施论文(设计)题目: 学 院: 理工学院 专 业(方 向):计算机科学与技术(网络工程) 年 级、班 级: 网络1101 学 生 学 号: 1110712026 学 生 姓 名: 指 导 老 师: 2015年5月14日 三亚学院毕业论文(设计) 第II 页 论文独创性声明本人所呈交的毕业论文(设计)是我个人在指导教师指导下进行的研究工作及取得的成果。除特别加以标注的地方外,论文中不包含其他人的研究成果。本论文如有剽窃他人研究成果及相关资料若有不实之处,由本人承担一切相关责任。本人的毕业论文(设计)中所有研究成果的知识产权属三亚学院所有。本人保
2、证:发表或使用与本论文相关的成果时署名单位仍然为三亚学院,无论何时何地,未经学院许可,决不转移或扩散与之相关的任何技术或成果。学院有权保留本人所提交论文的原件或复印件,允许论文被查阅或借阅;学院可以公布本论文的全部或部分内容,可以采用影印、缩印或其他手段复制保存本论文。加密学位论文解密之前后,以上声明同样适用。论文作者签名: 年 月 日 毕业论文(设计) 第IV页复杂环境下网络嗅探技术的应用及防范措施摘要21世纪是信息社会,信息作为一种资源,它的普遍性、共享性、增值型、可处理性和多效用性,使其对于人类具有特别重要的意义。信息安全的实质就是要保护信息系统或信息网络中的信息资源免受各种类型的威胁、
3、干扰和破坏,即保证信息的安全性。信息安全是任何国家、政府、部门、行业都必须重视的问题,是一个不容忽视的国家安全战略。因此对计算机嗅探技术的研究已成为计算机信息安全领域的一个重点和热点。本文对复杂环境下网络嗅探攻击与防范技术进行了系统的分析和研究,对共享式局域网和交换式局域网嗅探的嗅探原理进行解析,在不同局域网环境下,其嗅探原理有所不同,关键在于数据包在不同连接设备中的转发方式。集线器(HUB)与交换机(Switch)是两种不同的局域网连接设备,有着不同转发方式。对于嗅探工具Wireshark的过滤器也做了深入的分析,其捕捉过滤器和显示过滤器有着重要的作用,可以使我们方便快捷的得到想要的数据包。
4、最后设计了计算机信息的搜素以及端口的扫描方法。对于网络嗅探技术的防范措施本文没有过多的进行探究,主要是因为在TCP/IP协议体制下没有对局域网中数据包的转发进行加密动作,同时又由于嗅探的隐秘性,所以很难真正意义上去彻底解决嗅探带来的问题。【关键词】 共享式局域网,交换式局域网,嗅探,ARP攻击,WiresharkThe applicationof network Sniffer technologyundercomplex environmentand preventive measuresAbstractTwenty-first Century is the information soci
5、ety, information as a resource, its universality, sharing, value-added, processing and multi utility, which is of special significance for human. The essence of information security is to protect the information systems or information network information resources from various types of threats, inte
6、rference and destruction, which is to ensure the safety of information. Information security is any country, government departments, industry, must pay attention to the issue, is an important national security strategy. So the research on computer Sniffer technology has become a focus and hot spot i
7、n the field of computer information security.This paper carried out a systematic analysis and Research on network Sniffer under complex environment and prevention technology, analyzes the principle of shared LAN Sniffer and switched LAN Sniffer, in LAN environment, the principle of Sniffer is differ
8、ent, the key lies in data packets in different devices forwarding mode. The HUB (HUB) and switch (Switch) are two different LAN connection equipment, there are different forwarding mode. design of computer information search and port scanning method.Not too much of this paper for preventive measures
9、 of network Sniffer technology, mainly because of the TCP/IP protocol system not of LAN packet forwarding is encrypted and hidden action, because of Sniffer, so it is difficult to truly up to completely solve the problems of Sniffer.【Key Words】Shared LAN,Switched LAN,Sniffer,ARP attacks,Wireshark目录1
10、 绪论11.1 嗅探技术研究的背景与意义11.2 网络嗅探的研究现状21.3 本课题研究的内容32 嗅探42.1概述42.2 嗅探的定义42.3 网络嗅探的原理52.3.1复杂网络环境52.3.2共享式局域网的嗅探原理52.3.3交换式局域网的嗅探原理73 嗅探协议和数据包的分析103.1 概述103.2 嗅探交换机工作原理103.3 嗅探交换机的数据转发方式和帧过滤133.4 嗅探数据包的转发过程153.4.1交换式局域网中数据的转发163.4.2共享式局域网中数据的转发174嗅探工具WIRESHARK184.1. 简介184.2主要应用184.3使用过滤器捕捉数据包194.4Wiresha
11、rk嗅探ICMP数据包255 嗅探攻防305.1搜集目标计算机的重要信息305.1.1获取目标计算机的IP地址305.1.2根据IP地址查看物理地址315.2扫描目标计算机的端口325.2.1认识端口扫描的原理325.2.2使用SuperScan扫描计算机的端口326 网络嗅探技术的防范346.1加密传输的数据346.2采用安全的拓扑结构347 结论35参考文献36致谢37 三亚学院毕业论文(设计) 第4页1 绪论1.1 嗅探技术研究的背景与意义随着社会的发展,人们越来越依赖互联网。因为互联网是社会进步和知识经济相结合的纽带,其改变了传统的社会的沟通方式,实现了无障碍的信息交流和信息共享,方便
12、了现代的人的很多需求,不仅让人们的精神文化生活变得丰富多彩,工作也变得更加高效和快捷。网络参与的平等性使得民众的主动性大大的增强。民众的很多需求,如知情需求、参与需求、表达需求以及监督需求等等通过互联网都得到了很大程度的实现。网络已经实实在在的走进了人们的生活。网络规模不断扩大,各种网络资源和网络业务应用也越开越丰富,互联网的影响与日俱增。伴随着计算机技术和网络技术在各行各业的广泛应用以及互联网的飞速发展,网络安全问题也日益突出。网络攻击的频率变得频繁,攻击范围开始扩大,技术也越来越先进。同时,网络攻击所造成的损失也越来越严重。根据公安部网络安全保卫局第九次全国信息网络安全状况与计算机病毒疫情
13、调查报告结果显示,2009年被调查对象发生网络安全事件的比例为43%,感染计算机病毒的比例为70.5%,两项比例均为调查活动展开以来历年最低,但网络安全仍然不容忽视。经过对6000多加政府网站监测显示,37%的政府网站存在网页安全漏洞,极易遭到网页篡改和网页挂马等形式的攻击和破坏1。当前,网络攻击不仅仅是来自网络外部,也就是外网,来自内网的攻击也日益增多。而且由于攻击者处于网络内部,对网络的组织结构和特性更加熟悉。因此,内网攻击的成功率比外部网络攻击高很多,并且,造成的损失也比外网攻击严重很多。所以防范内网攻击比外网攻击更加紧迫。这几年时间网内攻击频繁发生,造成很多信息暴漏的重大事故,内网的安
14、全问题已经成为人们关注的重要问题。现阶段网络攻击的主要手段之一就是内网的ARP攻击。我国在2006年爆发了大规模的ARP攻击事件,之后的几年陆续也有较大规模的ARP攻击事件发生,普通的ARP攻击事件更是无时无处不在。零星的ARP攻击较之大规模的ARP攻击更难于被网络管理者和用户发现,并且零星的ARP攻击带来的损失并不一定比大规模的ARP攻击小,这主要是因为大规模的ARP攻击主要是拒绝服务,而小规模的ARP攻击的主要目的是信息监听和会话劫持等,对信息安全的威胁更大。因为互联网在世界范围内的开放性和无管理性,以及TCP/IP协议、各种操作系统、应用程序的安全漏洞,造成当今互联网上各类安全事件层出不
15、穷,各种安全漏洞不断被发现。可以说互联网的本质是非常不安全的。随着网络技术的发展和网络应用的普及,越来越多的信息资源放在了互联网上,网络的安全性和可靠性显得越发重要2。因此,对于能够分析、诊断网络,测试网络性能与安全性的工具软件的需求也越来越迫切。网络嗅探器具有两面性,攻击者可以用它来监听网络中数据,达到非法获得信息的目的,网络管理者可以通过使用嗅探器捕获网络中传输的数据包并对其进行分析,分析结果可供网络安全分析之用。嗅探(Sniff),有时也被称为监听,在网络安全的范畴中,一般是指通过某种方式窃听不是发送给本机或本进程的数据包的过程。嗅探器(Sniffer),即能够实现嗅探的工具,有软件和硬
16、件两种类型3。网络嗅探技术在信息安全防御技术和黑客攻防技术中都处于非常重要的地位。了解网络嗅探技术的原理、应用和发展方向有助于防范由于嗅探技术滥用引发的信息安全问题;通过将网络嗅探技术应用在信息安全防御领域,可以协助信息安全人员进行安全体系、特别是安全监控体系的架构和实现。1.2 网络嗅探的研究现状 网络攻击可以分为两类:主动攻击和被动攻击。主动攻击指的是对互联网上传输和存储的数据进行插入、删除和假冒。被动攻击是指在不发送数据包的前提下,捕捉网络上所流经本机的数据包。表面上看,主动攻击的危害更大,但相对容易被检测出来。被动攻击则具有隐蔽性,可以长期在网络上侦听而不容易被发现,实际上具有更大的危
17、害性。网络嗅探技术就属于被动攻击的一种,由于网络中数据流量非常大,想要较实时地捕捉并分析所有的数据包是不可能的,当前的嗅探技术一般采用捕捉数据包的前两、三百个字节,并存储下来再分析的方式,因为这其中往往包含各类应用的用户账号和口令。而账号和口令对各类网上应用的重要性是众所周知的。对于网络嗅探技术的现状,许多领域内的专家已经进行了系统的研究分析,如李频教授于2006年发出的复杂环境下网络嗅探技术的应用与防范已经对网络嗅探技术做了十分全面系统的解析,对于ARP攻击和复杂环境都已经解析的十分全面。1.3 本课题研究的内容本文对网络嗅探技术在复杂环境下的嗅探进行了系统的分析和探究,主要的工作如下:(1
18、)对嗅探的基本概念进行系统说明、攻击机制进行剖析。(2)对嗅探的数据包进行了解,对数据包的种类、作用、内容进行了深入的解释和探究,方便我们对于嗅探本质的了解。(3)对嗅探常用的几种工具介绍和使用,进一步了解嗅探的本质。(4)在研究了嗅探技术、数据包和嗅探攻击常用的工具的基础上,进行嗅探的攻防演练。(5)对复杂环境下嗅探技术的防范进行说明和提出自己的见解。(6)对整个探究进行一个完整的总结,对于文章的不足之处提出自己的期望和改善。 三亚学院毕业论文(设计) 第5页2 嗅探2.1概述嗅探在现代已经不再是一个神秘的词汇,因为在网络日益扩展的时代里,人们对于网络技术的发展已经十分关注,对于局域网时常发
19、生的嗅探事件也很关注。Sniff就是嗅探器,就像是一种窃听器,悄悄的工作在网络的底层,把我们的秘密全部记录下来。Sniff既是软件,也是硬件。也分为不同的平台。有可以在UNIX上运行的TCPDUMP,也有在Window下运行的Wireshark和Sniff Pro,但是不管硬件软件,目标只有一个,就是获取在网络上传输的各种信息。本文仅仅介绍软件的Sniff4。在21世纪,大多数的人每天都要接触网络,我们需要网络带给我们的便利。在工作中,我们需要更快速的收发文件,需要坐在办公桌上就可以把自己辛苦书写的报告发给老板,需要不走一步就能让人送来饮料外卖。在生活中,我们需要更多的便利,在网店中购物,给同
20、学家人聊天,给老友发送EMAIL。但是你可曾想到,我们网络的下面有一双无形的手,在抓取着我们的信息、秘密。这是很可怕的,会让我们每个人都心惊胆战。是的,嗅探让我们的担心变成了真的。我们就是生活在这样一个暴露的网络环境中,甚至没有一丝的遮盖。这就使得嗅探技术的研究势在必行。现阶段,很多网吧的网络设备不具备高端网络设备的智能性、交互性等扩展性能,所以很容易发生各种事故。当网吧电脑出现掉线、大片的网络机器网络连接速度慢、网络流量超出限制等情况时,很多网络管理员都显得很无力。因为仅仅依赖网络管理员的经验和简单传统的排查方法,在时间和准确性上面都存在很大的误差,同时也影响了网吧的工作效率和正常业务的运行
21、。2.2 嗅探的定义网络嗅探是指利用计算机的网络接口截获目的地为其他计算机的数据报文的一种技术。网络嗅探工作在TCP/IP网络协议的底层,把数据链路层传输的数据包全都记录下来。许多攻击者就是使用嗅探软件,即Sniff来进行数据嗅探。嗅探多数情况下指的是嗅探器,可以窃听网络上流经的数据包。用集线器HUB组建的网络环境是基于共享的原理的,连接在共享式局域网内所有的计算机都接收由HUB转发的数据包,而网卡构造了硬件的过滤器是通过识别MAC地址过滤不是发给自己的信息,嗅探程序会关闭过滤器的功能,将网卡工作模式设置为混杂模式,然后就可以进行嗅探,从而得到网络中的数据包。用交换机Switch组建的网络是基
22、于交换原理的,其连接设备是二层交换机或者是三层交换机,交换机的转发方式不是把数据包发到所有的端口上,而是通过查询MAC地址表直接发到目的网卡所在的端口。嗅探程序一般利用ARP欺骗的方法,通过改变IP、MAC地址的对应关系,欺骗交换机将数据包发给本机所在的端口,嗅探程序分析完毕再转发出去。网络管理员可以用嗅探器进行网络情况的分析,监测网络流量是使用情况。攻击者使用嗅探器可以监听网络数据,从而可以得知网络用户的敏感信息,进行破坏活动。2.3 网络嗅探的原理 毕业论文(设计) 第39页2.3.1复杂网络环境现实生活中,我们所在的网络通常为局域网。局域网(Local Area Network,LAN)
23、可能是指我们所处在的一栋大楼、一个生活小区、一所学校等一个团体所在的生活区的网络链路连接,这一片地方的计算机通过网线进行连接,组成一个小范围的网络。网上可以是一座城市组成的城域网,甚至是广域网。就是这样大环套小环,一层层的推进,从而得到我们的局域网环境。而根据局域网环境所使用的连接设备又可以分为共享式局域网和交换式局域网。用集线器HUB组建的局域网是共享式网络,其传输的数据是发往每一个连接的主机。而通过交换机连接起来的子网称为交换局域网,由交换机构造一个“Mac地址-端口”映射表,交换机在转发数据包时,只发送到特定的端口上,也可以通过交换机的端口镜像功能把所有的数据包全都经过某一个端口转发出去
24、。2.3.2共享式局域网的嗅探原理计算机的以太网卡有两种工作方式:混杂模式和非混杂模式。一般来说,我们正常使用的计算机的网卡都是处于非混杂模式的,非混杂模式又可以分为了广播模式、组播模式和直接模式。广播方式:该模式下的工作的计算机可以接收网络中的广播信息。组播方式:设置在该模式下的计算机可以接收组播数据。直接方式:在这种模式下,只有计算机的MAC地址匹配才能接收该数据。而混杂模式则是不管数据帧中的目的地址是否与自己的MAC地址匹配,都会先接收下来,然后进行分析。正常情况下,局域网内计算机网卡应该只接收数据包目的MAC地址与自己相匹配的数据帧(单播包)、广播包Broadcast和属于自己的组播包
25、Multicast。而处于混杂模式的以太网卡,会接收不属于自己的任何数据帧。如图2-1。图2-1 共享式局域网嗅探拓扑图用图2-1举例来说明,在共享式局域网中,当C1要发一个数据包到C4时,当转发到HUB1时,HUB会同时转发给除C1外的所有主机,即C2、C3、C4、C5, 在C2、C3、C5接收后经过匹配数据包中的MAC地址,发现和自己的MAC地址不相符时,就会丢弃收到的数据包,而C4匹配合适后,发现与自己的MAC地址相同,就会接收数据包。 通过上面的例子可以看到,在共享式局域网中,集线器HUB会无条件的转发给每一个连接的主机,然后通过匹配MAC地址是否相同来确定数据包是否是发送给自己的,是
26、否接收。如果这个时候有一台主机的以太网卡的工作模式发生改变,从非混杂模式改为混杂模式,那么所有HUB转发过来的数据包,此主机都会无条件的接收,无论MAC地址是否匹配。这样就可以嗅探到局域网中的所有信息,达到了监听网络的目的,可以获得自己想要的数据信息。这种被动的接收信息的方式可以称为是被动攻击。被动攻击是指在本地主机不发送数据包的情况下,使用嗅探器捕捉网络上所流经本机的数据包的一种攻击方式。表面上看,嗅探攻击的危害不大,但被动攻击具有很强的隐蔽性,可以长期在局域网环境中侦听而不被发现,所以具有很大的危害性。网络嗅探技术是属于被动攻击的一种技术,但是由于网络中数据流量非常大,想要把所有的数据捕捉
27、并且分析,是不可能完成的工作。当前的嗅探技术大多采用捕捉数据包的前200-300个字节,然后存储下来进行解析的方法。但即使是这样也足够了,因为这其中很可能包含各类应用的用户账号和口令5。而账号和口令对我们来说在各类网络应用上的重要性是不言而喻的。2.3.3交换式局域网的嗅探原理交换式局域网络环境使用的是交换机Switch作为网络连接设备来连接各个网络节点。交换机通过查找自己自主学习的ARP缓存表来决定把数据报发送到目的主机所对应的端口,而不是把一个数据报发送给所有端口,让所有的主机都去验证这个数据包是否是发给自己的,这样做不仅提高了网络的性能,让网络的带宽无形中扩大,也间接的提高了网络的安全性
28、。在交换环境下,即使网卡的工作模式设置为混杂模式,也只能监听本机的数据包,因为交换机根本不会把其他节点的数据转发给嗅探主机,也就是说数据包根本不会发送给不是目的主机的端口进行验证MAC地址是否匹配。在交换式局域网中,经常发生各种事故,很多事故的发生大多是ARP攻击造成的。比如网络速度受到P2P终结者等的网管软件限制、网络掉线、本机提示IP冲突、担心QQ通讯数据受到监控、各种ARP攻击软件之苦等这些问题是我们上网时经常遇到的。由于各种ARP攻击软件的盛行,使我们遭受很多损失,甚至造成严重后果。正常网络通信的数据流向是从本机发送数据到远程网关然后通过解包匹配目的端口的MAC地址从而确定从网关哪个端
29、口转发到出去。ARP攻击后,数据包的转发途径是从本机到远程网关,远程网关的MAC地址被欺骗,发送给伪装的嗅探主机,嗅探主机分析后再转发给目的主机,甚至不再转发。所以ARP攻击成为交换式局域网中最主要的嗅探攻击方式,其次还有ARP欺骗,端口镜像等的攻击方式,这些攻击通常使用一些局域网攻击软件来实现,常见的网络嗅探工具有Sniff、Wireshark、TCPDump、Libcap(Winpcap)等。这些嗅探工具通过伪造ARP数据包来欺骗交换机,向交换机持续不断的发送ARP数据包,使交换机更新ARP缓存表来达到欺骗的目的。这样发送到目的主机的数据包就被转发到嗅探主机的端口,而目的主机不会接收到任何
30、的数据包。通过图2-2可以更加直观的了解ARP欺骗的攻击原理。攻击者C1通过不断的发送伪造的ARP响应,告诉主机C2:主机C3的IP地址是192.168.0.3对应的MAC地址是aa: aa: aa: aa: aa: aa,主机C2不会去探究这个信息是否正确,会把这个对应关系写入自己的ARP缓存表中,之后在发送数据时,将本应该发往主机B的数据发送给了攻击者C1。同样的,攻击者C1向主机C3也发送一个伪造的ARP响应,告诉主机C3:主机C2的IP地址192.168.0.2对应的MAC地址是aa: aa: aa: aa: aa: aa,主机C3也会更新自己的MAC地址表,同时也会将数据发送给攻击者
31、。在这个例子中,IP地址是不会起作用的,因为IP地址只能确定网络层的传输,对于链路层和物理层是没有用处的。这时攻击者C1就控制了主机C2和主机C3之间的流量,可以选择被动的监听,以期获得密码和其他一些秘密信息,当然攻击者也可以伪造双方之间的通信数据,当然这已经不是仅仅嗅探那么简单了,但无疑会造成更加严重的后果。 图2-2 ARP欺骗原理图3 嗅探协议和数据包的分析3.1 概述通过对嗅探的全面剖析可知,嗅探技术的主要应用在TCP/IP协议簇的数据链路层和网络层。主要应用的协议有地址解析协议ARP和逆向地址解析协议RARP。在数据传输的过程中,先是二进制比特流在物理层进行传输,通过在数据链路层解封
32、装去掉帧头和帧尾变成数据帧,经过地址解析协议ARP的IP地址和MAC地址的转换解析,物理地址MAC变为IP地址,在网络层开始往上层传输。这就需要我们了解在物理设备链路中的传输过程。3.2 嗅探交换机工作原理一个具有三层交换功能的设备,是一个带有第三层路由功能的第二层交换机,但它是二者的有机结合,并不是简单地把路由器设备的硬件及软件叠加在局域网交换机上。其原理是:假设两个使用IP协议的结点A、B通过第三层交换机进行通信,发送结点A在开始发送时,把自己的IP地址与结点B的IP地址比较,判断结点B是否与自己在同一子网内。若目的结点B与发送结点A在同一子网内,则进行二层的转发。若两个结点不在同一子网内
33、,如发送结点A要与目的结点B通信,发送结点A要向“缺省网关”发出ARP封包,而缺省网关的IP地址其实是三层交换机的三层交换模块。当发送结点A对“缺省网关”的IP地址广播出一个ARP请求时,如果三层交换模块在以前的通信过程中已经知道结点B的MAC地址,则向发送结点A回复结点B的MAC地址。否则三层交换模块根据路由信息向结点B广播一个ARP请求,结点B得到此ARP请求后向三层交换模块回复其MAC地址,三层交换模块保存此地址并回复给发送结点A,同时将结点B的MAC地址发送到二层交换引擎的MAC地址表中。从这以后,当结点A向结点B发送的数据报便全部交给二层交换处理,信息得以高速交换。由于仅仅在路由过程
34、中才需要三层处理,绝大部分数据都通过二层交换转发,因此三层交换机的速度很快,接近二层交换机的速度,同时比相同路由器的价格低很多。以太网交换机(以下简称交换机)是工作在OSI参考模型数据链路层的设备,外表和集线器相似。它通过判断数据帧的目的MAC地址,从而将帧从合适的端口发送出去。交换机的冲突域仅局限于交换机的一个端口上。比如,一个站点向网络发送数据,集线器将会向所有端口转发,而交换机将通过对帧的识别,只将帧单点转发到目的地址对应的端口,而不是向所有端口转发,从而有效地提高了网络的可利用带宽6。以太网交换机实现数据帧的单点转发是通过MAC地址的学习和维护更新机制来实现的。以太网交换机的主要功能包
35、括MAC地址学习、帧的转发及过滤和避免回路。以太网交换机可以有多个端口,每个端口可以单独与一个结点连接,也可以与一个共享介质式的以太网集线器(HUB)连接。如果一个端口只连接一个结点,那么这个结点就可以独占整个带宽,这类端口通常被称作专用端口;如果一个端口连接一个与端口带宽相同的以太网,那么这个端口将被以太网中的所有结点所共享,这类端口被称为共享端口。例如一个带宽为100Mbps的交换机有10个端口,每个端口的带宽为100Mbps。而HUB的所有端口共享带宽,同样一个带宽100Mbps的HUB,如果有10个端口,则每个端口的平均带宽为10Mbps,如图3-1所示。图3-1交换机数据转发原理图交
36、换机的MAC地址表中,一条表项主要由一个主机MAC地址和该地址所位于的交换机端口号组成。整张地址表的生成采用动态自学习的方法,即当交换机收到一个数据帧以后,将数据帧的源地址和输入端口记录在MAC地址表中。思科的交换机中,MAC地址表放置在内容可寻址存储器(Content-Address able Memory,CAM)中,因此也被称为CAM表。当然,在存放MAC地址表项之前,交换机首先应该查找MAC地址表中是否已经存在该源地址的匹配表项,仅当匹配表项不存在时才能存储该表项。每一条地址表项都有一个时间标记,用来指示该表项存储的时间周期。地址表项每次被使用或者被查找时,表项的时间标记就会被更新。如
37、果在一定的时间范围内地址表项仍然没有被引用,它就会从地址表中被移走。因此,MAC地址表中所维护的一直是最有效和最精确的MAC地址/端口信息。交换机的MAC地址表也可以手工静态配置,静态配置的记录不会被老化。由于MAC地址表中对于同一个MAC地址只能有一个记录,所以如果静态配置某个目的地址和端口号的映射关系以后,交换机就不能再动态学习这个主机的MAC地址。以图3-2所示为例,来说明交换机的地址学习过程图3-2 交换机地址学习图(1)最初交换机MAC地址表为空。(2)如果有数据需要转发,如主机PC1发送数据帧给主机PC3,此时,在MAC地址表中没有记录,交换机将向除向E0/1以外的其它所有端口转发
38、,在转发数据帧之前,它首先检查这个帧的源MAC地址M1,并记录与之对应的端口E0/1,于是交换机生成(M1,E0/1)这样一条记录,并加入到MAC地址表内。交换机是通过识别数据帧的源MAC地址学习到AMC地址和端口的对应关系的。当得到MAC地址与端口的对应关系后,交换机将检查MAC地址表中是否已经存在该对应关系。如果不存在,交换机就将该对应关系添加到MAC地址表;如果已经存在,交换机将更新该表项。(3)循环上一步,MAC地址表不断加入新的MAC地址与端口对应信息。直到MAC地址表记录完成为止。此时,如主机PC1再次发送数据帧给主机PC3时,由于MAC地址表中已经记录了该帧的目的地址的对应交换机
39、端口号,则直接将数据转发到E0/3端口,不再向其他端口转发数据帧。3.3 嗅探交换机的数据转发方式和帧过滤以太网交换机的数据交换与转发方式可以分为直接交换、存储转发交换和改进的直接交换3类。(1)直接交换在直接交换方式下,交换机边接收边检测。一旦检测到目的地址字段,便将数据帧传送到相应的端口上,而不管这一数据是否出错,出错检测任务由结点主机完成。这种交换方式交换延迟时间短,但缺乏差错检测能力,不支持不同输入/输出速率的端口之间的数据转发。(2)存储转发交换在存储转发方式中,交换机首先要完整地接收站点发送的数据,并对数据进行差错检测。如接收数据是正确的,再根据目的地址确定输出端口号,将数据转发出
40、去。这种交换方式具有差错检测能力并能支持不同输入/输出速率端口之间的数据转发,但交换延迟时间较长7。(3)改进的直接交换改进的直接交换方式是将直接交换与存储转发交换结合起来,在接收到数据的前64字节之后,判断数据的头部字段是否正确,如果正确则转发出去。这种方式对于短数据来说,交换延迟与直接交换方式比较接近;而对于长数据来说,由于它只对数据前部的主要字段进行差错检测,交换延迟将会减少。交换机建立起MAC地址表后,它就可以对通过的信息进行过滤了。以太网交换机在地址学习的同时还检查每个帧,并基于帧中的目的地址做出是否转发或转发到何处的决定。如图3-3所示为两个以太网和三台计算机通过以太网交换机相互连
41、接的示意图。通过一段时间的地址学习,交换机形成了图3-3所示的MAC地址表。图3-3 交换机的帧过滤假设主机A需要向主机G发送数据,因为主机A通过集线器连接到交换机的端口1,所以,交换机从端口1读入数据,并通过MAC地址表决定将该数据帧转发到哪个端口。在图3-3中,主机G通过集线器连接到交换机的端口5,于是,交换机将该数据帧转发到端口5,不再向端口1、端口2、端口3和端口4转发。假设主机A需要向主机B发送数据帧,交换机同样在端口1接收该数据。通过搜索地址映射表,交换机发现主机B与端口1相连,与发送的源主机处于同一端口。这时交换机不再转发,简单地将数据丢弃,数据帧被限制在本地流动。这是交换机和集
42、线器截然不同的地方。3.4 嗅探数据包的转发过程关于嗅探与ARP欺骗的原理,需要深刻的了解数据在网络中的转发过程。在不同网络环境中,数据的传输过程有着不同的传输过程。这里简单的分析在交换式和共享式局域网环境中的传输过程,对数据在传输过程中发生的变化,嗅探在其中扮演的角色,对于数据包的传输影响。因为嗅探包含主动嗅探和被动嗅探,而ARP欺骗又是一个单独的技术,欺骗的目的只是让数据经过本机,即:主动嗅探=ARP欺骗+抓包。其实真正在传输过程中是靠计算机的网卡地址即MAC来传输.有两台计算机A (IP : 192.168.0.1 MAC : AA-AA-AA-AA-AA-AA)、B (IP : 192
43、.168.0.100 MAC : BB-BB-BB-BB-BB-BB)。现在用A去ping B:看见Reply from 192.168.0.100: bytes=32 time10ms TTL=32 这样的信息。然后在命令行中输入 ARP -a,会看见192.168.0.100 BB-BB-BB-BB-BB-BB dynamic这样的信息。这就是ARP高速缓存中IP地址和MAC地址的一个映射关系,在以太网中,数据传递靠的是MAC,而并不是IP地址。其实在这背后就隐藏着ARP的秘密。但是网络上这么多计算机,A是怎么找到B的?那么下面就让我们就来分析一下细节。首先A并不知道B在哪里,那么A首先就
44、会发一个广播的ARP请求,即目的MAC为FF-FF-FF- FF-FF-FF,目的IP为B的192.168.0.100,再带上自己的源IP和源MAC。那么这个网段上的所有计算机都会接收到来自A的ARP请求,由于每台计算机都有自己唯一的MAC和IP,那么它会分析目的IP即192.168.0.100是不是自己的IP?如果不是,网卡会自动丢弃数据包。如果B接收到了,经过分析,目的IP是自己的,于是更新自己的ARP高速缓存,记录下A的IP和MAC。然后B就会回应A一个ARP应答,就是把A的源IP,源MAC变成现在目的IP,和目的MAC,再带上自己的源IP和源MAC,发送给A。当A机接收到ARP应答后,
45、更新自己的ARP高速缓存,即把ARP应答中的B机的源IP,源MAC的映射关系记录在高速缓存中。那么现在A机中有B的MAC和IP,B机中也有A的MAC和IP。请求和应答过程就结束了。由于ARP高速缓存是会定时自动更新的,在没有静态绑定的情况下,IP和MAC的映射关系会随时间流逝自动消失。在以后的通信中,A在和B通信时,会首先察看ARP高速缓存中有没有B的IP和MAC的映射关系,如果有,就直接取得MAC地址,如果没有就再发一次ARP请求的广播,B再应答即重复上面动作。3.4.1交换式局域网中数据的转发局域网数据包的传输过程十分复杂。在不同的TCP/IP协议的不同层次,数据的格式不同,作用不同。在公
46、网网络中,不考虑内网和私有网络,数据在交换网络中的转发过程如下图3-4表示。(1)PC1发现目标IP 110.1.1.2的网络号为110.1.1.0与本机不在同一网段内,掩码为24位,所以本机网络号为1.1.1.0,因此PC1会将数据包丢给网关,为了数据报文能够到达网关,PC1封装的报文里头会以网关的MAC作为目的MAC网络数据传输,源目的IP不变,源目的MAC通过三层网络时会不断改变。(2)数据报文到达二层交换机(这里只涉及二层交换,如果是三层交换机并设置了端口IP,则会有所不同)后,由于二层交换机拆解数据报文时只拆解到二层,即只拆解到源目的MAC,根本看不懂IP,所以会查找MAC-接口映射表,发现网关MAC对应的是E5口,则将数据包从E5口丢出去。(3)路由器R1收到数据报文后查看源目的IP。路由器属于三层设备,拆解数据包到IP层,查看数据包的目的IP为110.1.1.1,进而查找路由表,发现数据要到达目的网络,数据包必须往下一跳218.1.1.2发送,因此路由器对数据包进行重封装,查看ARP表,源目的IP保持不变,将源MAC修改成R1出接口(连接到R2的那个端口)的MAC地址,目的MAC改成R2的进接口(R2接R1的接口M