posts - 17,  comments - 2,  trackbacks - 0

范伟导老师Sniffer课程资料(一)

本文来自网络分析专家论坛 http://www.netexpert.cn/

前言:

范老师现在是Sniffer中国技术服务中心的技术总监,是中国唯一的Sniffer大师(SCM),他有丰富的经验和经典案例,讲课讲得不错。
我是范老师的学生,我2005年学习了Sniffer,发现收获很大,但我不能透露我的单位,因为我想范老师不会允许我把他的讲课内容公开。
以下内容是我根据上课录音编写的,基本上是范老师的原话。我整理了一个星期才整理出来,因为范老师在上课时有很多笔书,整理起来很困难,有人会问,为什么不把录音共享出来,主要是课程中很多实验,只有录音,作用不大,我把他整理成文字,看起来会方便一些,当我全部整理完,估计可以出书了,版权费给谁呢?哈哈
我希望大家喜欢,如果反应良好,我把后面的内容也贴出来,很辛苦的,大家要珍惜。
大家不要放映,精华内容都在注释里。
大家有什么问题,可以发E-mail给范老师,fanweidao@hotmail.com,记住如果他问你是谁,你说是北京移动或广东移动或工商银行随便一个省分行的,因为这些单位的学生特别多,他肯定搞不清楚。哈哈,对不起了!范老师,我只是想帮你推广Sniffer.


大家好!欢迎大家参加Sniffer的认证课程!
先自我介绍一下!我叫范伟导,这是我的邮件,我现在没有工作(同学们:自由职业者)可以这么说。
介绍一下我的经历:毕业后我在一个台资电脑厂工作了一年,做硬件的。
后来到了日本三洋工作,作X400的软件开发,做ERP,用RPG开发,做了4年
后来到了神州数码,作CISCO网络,原来在技术中心做实施,后来在培训中心做讲师,一共做了5年。
现在我是CISCO和Sniffer的授权讲师,不过现在我不想做CISCO了,想做Sniffer,因为我觉得网络分析是一个很好的技术方向。等一下我还会跟大家聊一聊我们该往哪一个方向发展。
先看一下我们这个课程,这个课程事实上是两门课,第一门我们介绍怎样用Sniffer来做网络故障诊断,还有网络管理的一些方法和思路,第二门课我们介绍如何做应用的分析,这是Sniffer的新课程,我个人觉得非常好,以前的几个班学员也很喜欢。第一门课我们会讲3天,第二门课我们会讲2天。

接下来的半个小时我们不讲书本知识,讲讲我的经历和Sniffer究竟能用来做什么,我们为什么要学Sniffer,其实我的目的是提起大家的学习兴趣,大家愿意学,我才讲的起劲。要不我一边讲,大家在噼噼啪啪上网,那我就讲不下去了(同学们笑)。
大家做网络都很多年了,想想我们以前的10兆以太网,现在的万兆以太网,想想14.4k的modem,现在的2M宽带,以前的x25,桢中继,现在的SDH,MSTP,裸光纤。大家都经历这些,但我们才工作几年?就这几年,变化这么大,我不知道大家的工资有没有变化这么大,(同学们大笑),从10兆到万兆,1000倍,几年工资张1000倍。有点难(同学们:不是有点难,是很难,不可能)。
再看看我们工作的变化,以前能配配路由器就很牛了,现在似乎谁都会了,记得几年前,我帮一个小集成商配一台4000系列交换机,收了2000元,15分钟搞定。(同学们:好爽,介绍一些给我们做),没有了
说说你们的工作。平常工作中做些什么(同学们:做做网线,杀病毒,帮领导装机器)
大家想想,这是我们想做的工作吗,以前这些都不用我们做,现在大家感觉是不是地位在下降,工资也不涨,好歹我们也是蜘蛛级的人物呀,不是有个笑话说蜜蜂是空姐,做网络的是蜘蛛吗。(同学们笑)
我们该怎么办?

现在说说我的观点,我们都希望工资能年年涨,不要求1000倍,(同学们:不要求那么高,一年20%就行了),
20%?不止吧,从毕业到现在,你们工资不止年均涨不止20%吧。 (同学们:我们不能跟您比)
也有可能,你们的起点高,我毕业的时候才有650元。

大家回顾一下,做IT的谁的收入高?
1、销售
2、领导
3、咨询专家
4、售前工程师
5、售后工程师
我们在座的有3个是网络中心的主任或科长,他们的收入肯定比一般工程师高,我祝愿你们步步高升,收入节节高。
在座大多数是网络工程师,我们该怎么走,其实你们现在的单位都很好,但将来怎样很难知道,比如前几年银行的收入令人羡慕,现在他们却担心降工资,现在移动的收入不错吧,我有汽车厂商的学员,他告诉我他们的收入比移动好点,(同学们:哇)这是他们自己说的,好多少就没说了,还有某政府单位的,什么单位不便说,他们没告诉我他们的收入,只说,价格少于4万的笔记本他们不用,哇靠,4万的笔记本,什么配置?(同学们:那是服务器)
我们不能比,人比人,气死人。我们没法进入这些公司的,还是脚踏实地一点好,但我们做技术的也要考虑如何提高我们的收入,做技术的要提高收入,地位是关键,前面大家说只做做线,杀杀病毒,我们的地位在下降,工资怎么长得起来呢?想想我们做技术的,谁的收入高,做数据库的比做服务器的高,为什么Oracle那么火,做服务器的比写程序的高,写程序的比做网络高,这是普遍现象,不说特殊情况。其实大家发现一个特点没有,凡是掌握企业关键业务的收入都很高,你看作数据库的,数据库坏了,企业完蛋了,领导当然重视,现在不仅讲存储,还讲灾备,你看很多银行,北京一个数据中心,上海一个数据中心。
我们网络怎样,设计的都是高可靠性的端到端备份,出问题的机会很少,而当应用出什么问题,都说是网络问题。举个例子,有个单位(税务的学员告诉我的),有一天应用突然变慢,大家都说网络慢了,我们用尽troubleshooting的技术也发现不了问题,结果作数据库的工程师偷偷改一下表空间,好了,没问题了,我们不知道怎么好了,做数据库的不说他们有问题,还说网络好了,领导问我网络怎么好的,我不知道呀,领导说:赶快查出原因,避免再出现类似问题,哇塞,怎么查,本来网络就没问题,查什么查。(同学们笑)
所以现在大家用一个字来形容我们的工作?你们会用什么字(同学们:累、苦)
很贴切,苦、累
所以我们不能一直停留在网络的troubleshooting,我们必须提高我们的地位,要不我们会累死。
怎么提高地位,我们必须了解我们的业务,也就是要了解应用,了解应用在我们网络上的行为特征,很重要的一个词行为特征。当我们了解了业务的行为特征,我们能定位某一个问题的真正故障点,举个例子:网络应用变慢,可能的原因有什么?网络问题,服务器问题,数据库问题,应用程序问题,客户机问题。如果我们能够判断是哪一部分问题,我们就有发言权了,比如说刚才那种情况,如果我们直接说这是数据库问题,不是网络问题,领导会问,你凭什么说是数据库问题,你可以拿出Sniffer,专家系统上写着,DB Slow Server response诊断,(范老师在演示)再看解码,做一个用户验证操作,花了1.731秒,有根有据,大家想一想,有了Sniffer我们可以了解我们的业务行为特征,可以排除我们的责任,不但工作轻松了,地位也提高了。(同学们笑)

以前我们应用出现问题的时候我们总是分头查找问题,结果往往是没有结果,因为这种查找方式范围太大了,我们做troubleshooting第一步应该是:隔离故障。

如果我们有了Sniffer,首先用Sniffer看一下,最有可能是哪一部分问题,再安排检查,这样不但节省人力,速度会更快,效率也更高。

如果有人问我们Sniffer是什么?大家都会说是协议分析仪,你看sniffer网站(www.networkgeneral.com)
上说的是应用和网络分析系统。究竟Sniffer是什么样的一个东西,我们要了解他的发展过程。其实很多类似的产品比如ethereal,netscout,wildpacket等都有类似的发展过程

第一阶段是抓包和解码,也就是把网络上的数据包抓下来,然后进行解码,那时候谁能解开的协议多,谁就是老大,Sniffer当时能解开的协议最多,也就理所当然地成了老大,现在Sniffer能解开550种协议,还是业界最多的,
第二阶段是专家系统,也就是通过抓下来的数据包,根据他的特征和前后时间戳的关系,判断网络的数据流有没有问题,是哪一层的问题,有多严重,专家系统都会给出建议和解决方案,现在Sniffer的专家系统还是业界最强的
第三阶段:是把网络分析工具发展成网络管理工具,为什么要这样,如果Sniffer知识用作网络分析,那Sniffer的软件就够用了,现在软件的portable基本上都是盗版的,sniffer没钱赚了,所以它必须往网络管理方向转,要作为网络管理工具,就必须能部署在网络中心,能长期监控,能主动管理网络,能排除潜在问题,要做到这些,就要求有更高的性能,所以Sniffer就有了相应的硬件产品,比如说分布式硬件平台,InfiniStream等,我知道在座各位都买了Sniffer的硬件,这时候如果用软件的Sniffer性能就不行了。

我们看一下,Sniffer究竟有什么用?
第一,Sniffer可以帮助我们评估业务运行状态,如果你能告诉老板说,我们的业务运行正常,性能良好,比起你跟老板报告说网络没有问题,我想老板会更愿意听前面的报告,但我们要做这样的报告,光说是不行的,必须有根据,我们能提供什么样的根据呢。比如各个应用的响应时间,一个操作需要的时间,应用带宽的消耗,应用的行为特征,应用性能的瓶颈等等,到第二门课,我会告诉大家怎么做到有根有据。
第二,Sniffer能够帮助我们评估网络的性能,比如,各连路的使用率,网络的性能的趋势,网络中哪一些应用消耗最多带宽,网络上哪一些用户消耗最多带宽,各分支机构流量状况,影响我们网络性能的主要因素,我们可否做一些相应的控制,等等
第三,Sniffer帮助我们快速定位故障,这个大家比较有经验,我们记住Sniffer的三大功能:monitor,expert,decode这三大功能都可以帮助我们快速定位故障,我后面通过案例演示给大家看,大家再做做实验,很快就上手了(同学问:范老师,是否要学Sniffer必须对协议很熟,)不一定,我们可以通过Sniffer来学习各种协议,比如ospf,以前学网络的时候,讲OSPF的LSA好像很复杂,你用Sniffer看看,其实他的协议结构还是不复杂的,一般情况下,我会要求学Sniffer的学员有CCNP的基础,或者有几年的网络管理经验,我自己也是这样,刚开始只是用Sniffer抓抓包,抓下来也不知道怎么分析,当我学完CCNP后,学了CIT,以为自己不错了,会排除很多网络故障,但实际上很多问题我还是解决不了,比如网络慢,他又不断,断了我很快能解决,网络慢,或者丢包,一般的排错知识还是很难的,那时候开始学Sniffer,才发现很好用
第四,Sniffer可以帮助我们排除潜在的威胁,我们网络中有各种各样的应用,有一些是关键应用,有一些是OA,有一些是非业务应用,还有一些就是威胁,他不但对我们的业务没有帮助,还可能带来危害,比如病毒、木马、扫描等,Sniffer可以快速地发现他们,并且发现攻击的来源,这就为我们做控制提供根据,比如我们要做QOS,不是说随便根据应用去分配带宽就解决了,我们要知道哪一些应用要多少带宽,带宽如何分配,要有根有据。我们再回过头看一下Sniffer什么时候开始流行的,再2003年冲击波发作的时候,很多Sniffer的用户通过Sniffer快速定位受感染的机器,后来很多人都知道Sniffer可以用来发现病毒,Sniffer的知名度暴涨,盗版用户也暴涨(同学们大笑),后来震荡波发作的时候,很多人用Sniffer来协助解决问题。我想强调的是Sniffer不是防病毒工具,这也只是他的一个用途,而且只对蠕虫类型对网络影响大的病毒有效,对于文件型的病毒,他很难发现。
另外要说明的事,Sniffer还可以用来排除来自内部的威胁,现在我们网络中有各种各样的网络安全产品,防火墙、IDS、防病毒软件,他们都有相应的功能,但真的有效吗,能解决全部威胁吗,我们要进行评估,用Sniffer就能评估内网的安全状况,有没有病毒,有没有攻击,有没有扫描,像防火墙、IDS、防病毒软件他们都是后知后觉的,它必须有特征才能阻绝,而Sniffer是即时监控的工具,通过发现网络中的行为特征,判断网络是否有异常流量,所以Sniffer可能比防病毒软件更快地发现病毒。我在神州数码的时候,冲击波震荡波都是我县发现的,有趣的是当时我都在上Sniffer的课,中午休息,我把sniffer驾到公司网络,再Hosttable看到广州一台机器很多广播,接着广州另外一台机器也开始发广播,接着深圳也感染了,我马上通知IT管理人员,他们把这几台机器断网,后来才知道有冲击波病毒,防病毒软件还不能杀。
刚才讲到异常流量,这是一个很重要的概念,什么是异常流量?我们怎么判断是否异常,这又涉及另外一个概念,叫基准线分析,什么是基准线,基准线是指我们网络正常情况下的行为特征,包括利用率、应用响应时间、协议分布,各用户贷款消耗等,不同工程师会有不同基准线,因为他关心的内容不同,只有知道我们网络正常情况下的行为特征,我们才能判断什么是异常流量。
第五,做流量的趋势分析,通过长期监控,可以发现网络流量的发展趋势,为我们将来网络改造提供建议和依据
第六点就是应用性能预测,这点很有用,会用的人不多,我们第二门课会讲,Sniffer能够根据捕获的流量分析一个应用的行为特征,比如,你现在有一个新的应用,还没有上线,我能评估他上线后的性能,比如在用户在网络中心有多快,用户在省中心有多快,用户在市中心有多快,都可以提供量化的预测,准确率挺高的,误差不超过10%。我们还可以用她来评估应用的瓶颈在哪,不同应用瓶颈不同,比如有些应用慢了,增加网络带宽效果很明显,比如FTP这种应用,有些应用慢了增加带宽没什么效果,比如TELNET应用,我们还可以预测网络带宽增加的效果,比如我将2兆提高到8兆应用性能有多大的提升,Sniffer能比较准确地预测

在这里我们提到三个重要概念,网络行为特征,异常流量,基准线,大家理解了吗

在这里,我不想太多介绍产品,我不是来推销Sniffer的(同学们笑),我们主要探讨网络分析技术
Sniffer的便携式就是我们用的那种盗版软件(同学们笑),我不用介绍了,这门课我们用Sniffer的便携式来讲,因为分布式和InfiniStream也有一样的界面,上课的时候我们都是用便携式。
Sniffer的分布式包括4100和6040,主要是放在网络核心可以长期监控、分析,4100可以处理千兆流量,6040可以处理8千兆流量,这是业界性能最高的产品
Sniffer的InfiniStream的特点是可以长期抓包,最多有4个T的存储空间,可以长期抓包,可以进行回溯性分析,这点对有些用户来说很重要,比如今天早上10点半,某个应用很慢,十分钟后又正常了,如果没有InfiniStream,流量没有保存,我们就很难分析问题在哪,如果有了InfiniStream,这些流量都会保存下来,自动的,就是长期抓包,我们就可以找出当时的流量,进行分析,一个很好的设备,现在支持1800兆线速捕获,这也是其他厂商没有的。

这些你们买设备的时候代理都给你们说清楚了,我就不多讲了。

怎么样,听了这么久,感觉如何?有兴趣吗?
其实我个人是很喜欢Sniffer的,我当时从三洋出来的时候,错过了去IBM的机会,去了神州数码才知道,他们IBM需要做X400的人,去了神州数码,老板问我想做网络还是想做主机,我说做网络吧,那时一个CCIE 23十万的收入是有的,结果到我考过CCIE笔试的时候,CCIE就值10万吧,真是绝望了,(同学们笑)为什么当时不做主机呢,我那些做6000的同事现在都不错,又不累。做网络不就一个字:累吗(同学们笑)我也没有去考实验了,01年的时候我考了CCSI,就是CISCO授权讲师,后来讲了很多cisco的课,我CISCO的学员有1000个,后来又讲Sniffer的课,Sniffer的学员有300个,我的学员不少,有不少关系不错的,他们过的比我好(同学们笑,你做讲师也不错呀,收入不低吧),以前讲CISCO的时候收入不高,一天也就1000到1500,讲Sniffer会好一些,(同学们:讲Sniffer一天多少)这还不好公开,如果你们有兴趣开班,我们再聊(同学们笑)。后来我考过了SCM,Sniffer的最高级认证,叫Sniffer大师。中国就我一个人,(同学们:哇,难不难考,考几门),Sniffer的考试不难,这个我后面会讲,考过SCM的全球也只有62个,亚太区只有5个,所以Sniffer原厂的课程都是我讲的。在今年,我会去协助组建Sniffer中国技术服务中心,以后你们有什么问题都可以联系我,我在那里是技术总监。我们还有在各行各业的Sniffer专家小组,都是喜欢使用Sniffer的人在一起交流使用心得,分享一些案例,你们如有兴趣,到时我可以邀请你们参加,不过首先要认真听课。(同学们笑)

好了,讲了这么多,目标只有一个,提起大家的学习兴趣,接下来讲课程的内容,首先把Sniffer打开。


范伟导老师Sniffer课程资料(二)


好,大家都打开了吗,有问题随时告诉我,(跑去解答问题去了)如果大家在上课的时候有任何疑问,随时可以打断我,不用给我面子,我也不一定能回答所有问题,不过没关系,交流总会进步的。

好,我们继续第一个我要介绍的是local agent。
什么叫local agent,大家打开fileSelect settings
1.jpg

这时候,大家可能只看到一个local 下面是你的网卡,这就叫做一个local agent。
事实上,一个local agent 就像一个探针。
我们知道Sniffer的工作原理很简单,就是把网卡设成混杂模式(叫做promiscuous),所谓混杂模式,就是把所有数据包接受下来放入内存,大家知道一般情况下,PC机只接受目的mac地址为自己网卡或广播、组播的数据包。sniffer就是这样把所有数据包都接收下来,在进行分析。
大家看我这里有多个agent,怎样可以做多个agent呢,可以不同网卡做不同的agent,就像你们的分布式sniffer一样,有多个网卡,那就是多个agent,infinistream也一样。
其实一个网卡,也可以做多个agent,大家试一下,new一个,给他加上说明,就叫101把,选中你们的网卡,下面选no pod,copy setting留空,那个pod是你外接sniffer book时候用的。大家看看你们的agent多了一个,101括号local_2。对不对(同学们:对)
好,不错。
我们为什么建立多个agent 呢。不同的agent可以定义不同的阀值,可以有不同的过滤器,可以有不同的触发器,不同的地址本。
比如说,你们有一台笔记本装着sniffer,大家都用它,那不同的工程师可以自己定义一个agent,自己定义自己的过滤器,互不干涉,比如不同的网段有不同的阀值,也可以定义不同的agent。
那agent的参数保存在哪里呢,大家打开c:\program files\nai\sniffernt\program,大家看到local local_2,这就是两个不同的agent保存参数的地方。大家看到两个CSF文件,一个是sniffer.csf,另外一个是Snifferdisplay.csf。这是过滤器文件,当我们使用sniffer一段时间之后,大家会累积许多好的过滤器,一定记得保存下来,就是把这两个文件考出来就行了,如果你看到别人那里有好的过滤器,也可以拷过来。不过当你要倒回去的时候,4.8比较好办直接倒入就行了,4.75比较麻烦,我后面讲定义过滤器的时候再教大家。过滤器是sniffer最难、最有意思、最重要的一部分,大家放心,我能让大家成为高手。(同学们笑)
好,local agent讲完了,local agent是什么?事实上就是定义一个环境变量,不同的环境不同的参数。
好,休息一下,待会儿讲monitor功能。

中间休息的时候,我问了范老师一个问题:我看书上说,TCP是可靠的,UDP是不可靠的,那要不可靠UDP来干什么?(各位:我的问题是不是很傻?但我确实不知道呀)

范老师:不错,这个问题非常好!(嘿嘿!)
TCP叫传输控制协议,他的特点是:有连接,有流控,有顺序号/确认号,开销比较大,一般是20个字节的头。
UDP叫用户数据报协议,开销小,8个字节的头,无可靠保证。
我后面有详细介绍TCP和UDP,我们先看您的问题。
首先,UDP,不可靠,是指,在传输层不提供可靠保证,并不意味着所有使用UDP的应用都不可靠。
我们来比较几个应用(范老师用他的trace file 给我演示)

DNS,53端口,进行查询时,用的是UDP,因为要求速度快,比如我要查networkgeneral的地址,你只要告诉我ip是多少就行了,如果要进行3次握手建立连接,再去取到IP,那就慢了,所以用的是UDP,一个字:快。没响应怎么办,事实你看(他在演示)它会同时向多个DNS查询,所以没响应也没关系,你看这个响应名字错误,找不到。所以UDP还是有用的,特别是像DNS查询这种应用,丢了也就丢了,我再查。但DNS也有用TCP的时候,比如DNS服务器的同步,用的就是TCP的53端口

TFTP,您所了解的TFTP,用的是UDP吧,他不可靠吗,事实上文件传输,必须保证可靠。不但要保证能知道丢包重传,还要有顺序号,应付错序到达的情况,也就是我们常说的后发先至。事实上TFTP是怎样工作的,你看(他在演示),每一个数据块都有Id号,一块512字节,一次传输,一次确认,这就相当于TCP的顺序号和确认号。所以UDP是不可靠的,但很多使用UDP协议的应用是可靠的,只是在应用层去保证可靠性,很多人说用UDP效率高,事实上TFTP在传输大文件的时候,比FTP效率更地,我们后面有专门的实验。

视频流量,(没有演示)对于视频流量,也是需要可靠保证的,但要求不是很高,所以不会像TFTP那样每一个数据报都确认,而是传多个数据包确认一次,要不效率就太低了,究竟多少个数据包确认一次,开发人员需要不断测试。

我的解释清楚吗,(我说:明白了!谢谢!)

(确实看着演示,很容易就理解了,中间我们有许多对话,我省略了,确实如果只听录音是不明白的,这是我为什么要整理成文字给大家看,好累呀!大家给我加油!)

好,我们继续!

我们来看一下Sniffer的七大monitor功能,有Dashboard,hosttable,matrix,ART,protocol distribution,history sample,global statistics
我们一个一个来看,先看dashboard。

2.jpg

这个大家很熟悉了,我不用多讲,dashboard有3个仪表,分别是使用率,每秒钟包数量,每秒钟错误率,下面都有两个数字,前面一个表示当前值,后面一个表示最大值。
下面还有long term,和short term
Long term 每30分钟采样一次,一共可以采样24小时,short term 每30秒钟采样一次,可以采样25分钟
大家自己试一下,首先把file里面的loopback 选上,这样我们发的数据包就不会发到网络中去,然后打开101目录里的TCPdemo7a那个trace file ,再用packet general 发包,选send current buffer,连续发送。(我们是跟着范老师做的)

好了,大家试了一遍,感觉应该是一样的,就是这有什么用?没用,对吧,我也这样觉得(同学们笑)
但如果你要监控某一台服务器的时候,这个是有用的,比如你把一台服务器的接口monitor 过来,这样你就可以看到这台服务器的流量状况了,这就是一个很好的基准线呀。当然大家用的是硬件产品,就更方便了。
大家注意到下面还有错误报的统计,要注意的是一般的网卡是抓不了错误包的,要用专用网卡,一块网卡上万块,NG好黑呀(同学们笑)
其实大家知道通过交换机的存储转发,基本上很少错误包,所以不用关注它。

在这里我想解释一下以太网的错误包,这对大家学习网络是很有帮助的,特别是了解一下封装的概念。

(请看下一页:以太网为什么要64个字节)

3.jpg

(这是范老师的板书,我画不出来,大家将就点吧)

以太网是无连接的,不可靠的服务,采用尽力传输的机制。以太网CSMA/CD我就不多讲了,我相信大家都了解这个原理。
以太网是不可靠的,这意味着它并不知道对方有没有收到自己发出的数据包,但如果他发出的数据包发生错误,他会进行重传。以太网的错误主要是发生碰撞,碰撞是指两台机器同时监听到网络是空闲的,同时发送数据,就会发生碰撞,碰撞对于以太网来说是正常的。
我们来看一下,假设A检测到网络是空闲的,开始发数据包,尽力传输,当数据包还没有到达B时,B也监测到网络是空闲的,开始发数据包,这时就会发生碰撞,B首先发现发生碰撞,开始发送碰撞信号,所谓碰撞信号,就是连续的01010101或者10101010,十六进制就是55或AA。这个碰撞信号会返回到A,如果碰撞信号到达A时,A还没有发完这个数据包,A就知道这个数据包发生了错误,就会重传这个数据包。但如果碰撞信号会返回到A时,数据包已经发完,则A不会重传这个数据包。
我们先看一下,以太网为什么要设计这样的重传机制。首先,以太网不想采用连接机制,因为会降低效率,但他又想有一定的重传机制,因为以太网的重传是微秒级,而传输层的重传,如TCP的重传达到毫秒级,应用层的重传更达到秒级,我们可以看到越底层的重传,速度越快,所以对于以太网错误,以太网必须有重传机制。
要保证以太网的重传,必须保证A收到碰撞信号的时候,数据包没有传完,要实现这一要求,A和B之间的距离很关键,也就是说信号在A和B之间传输的来回时间必须控制在一定范围之内。IEEE定义了这个标准,一个碰撞域内,最远的两台机器之间的round-trip time 要小于512bit time.(来回时间小于512位时,所谓位时就是传输一个比特需要的时间)。这也是我们常说的一个碰撞域的直径。
512个位时,也就是64字节的传输时间,如果以太网数据包大于或等于64个字节,就能保证碰撞信号到达A的时候,数据包还没有传完。
这就是为什么以太网要最小64个字节,同样,在正常的情况下,碰撞信号应该出现在64个字节之内,这是正常的以太网碰撞,如果碰撞信号出现在64个字节之后,叫 late collision。这是不正常的。
我们以前学习CISCO网络的时候,CISCO交换机有一种转发方式叫fragment-free,叫无碎片转发,他就是检查64个字节之内有没有错误,有的话不转发,这样就排除了正常的以太网错误包。

 

(这是范老师的板书,我画不出来,大家将就点吧)
我们再来看一看以太网的帧结构。

4.jpg

要讲帧结构,就要说一说OSI七层参考模型。七层参考模型大家很熟悉,以前我们看书的时候会觉得不知所云,我刚学的时候就是这感觉,其实我们只要掌握两点就行了。
一个是访问服务点,每一层都对上层提供访问服务点(SAP),或者我们可以说,每一层的头里面都有一个字段来区分上层协议。
比如说传输层对应上层的访问服务点就是端口号,比如说23端口是telnet,80端口是http。IP层的SAP是什么?(同学们没说话)
其实就是protocol字段,17表示上层是UDP,6是TCP,89是OSPF,88是EGIRP,1是ICMP等等。
以太网对应上层的SAP是什么呢?就是这个type或length。比如 0800表示上层是IP,0806表示上层是ARP。我后面还会将各种以太网的帧类型。
第二个要了解的就是对等层通讯,对等层通讯比较好理解,发送端某一层的封装,接收端要同一层才能解封装。
我们再来看看帧结构,以太网发送方式是一个帧一个帧发送的,帧与帧之间需要间隙。这个叫帧间隙IFG—InterFrame Gap
IFG长度是96bit。当然还可能有Idle时间。
以太网的帧是从目的MAC地址到FCS,事实上以太网帧的前面还有preamble,我们把它叫做先导字段。作用是用来同步的,当接受端收到preamble,就知道以太网帧就要来了。preamble有8个字节前面7个字节是10101010也就是16进制的AA,最后一个字节是10101011,也就是AB,当接受端接受到连续的两个高点平,就知道接着来的就是D_mac。所以最后一个字节AB我们也叫他SFD(帧开始标示符)。
所以在以太网传输过程中,即使没有idle,也就是连续传输,也有20个字节的间隔。对于大量64字节数据来说,效率也就显得不高。
所以,有时我们用下载数据来检查我们的网速,这是不完全准确地,我们要了解他的传输特征,才能准确判断电信究竟给了你多少带宽。我有一个移动的学员,他说用户总怀疑我给他的带宽不够,其实我肯定给他两兆了,所以有时运营商也挺不容易(同学们笑)。后来我告诉他怎么样用sniffer来测带宽,不知道他后来成功了吗,我没有得到反馈。后面我会介绍怎样用Sniffer来做带宽测试,非常精确的喔。我给很多用户作过带宽测试,他们大多都是怀疑电信给的带宽不够。(同学们问:有没有不够的时候?)我测试的案例里还没有。还有就是帮集成商作方案验证,比如,集成商给用户作了多链路捆绑,或路由负载均衡,用户说比原来更慢了,我去证明给用户看,负载均衡确实做起来了,流量分担很正常。(同学们问:那为什么会慢呢),这就涉及到应用的特征和不同厂商采用均衡的机制。我还没试过作进一步分析。因为这是集成商的朋友叫我去帮忙的,我只要证明给用户看方案没问题,并告诉集成商如何给用户解释就行了,在做下去,就会画蛇添足了,因为可能让用户觉得我的水平比我朋友高,那不是帮倒忙了。(同学们笑)所以帮忙也要适可而止。 (同学们笑)
好了,有点扯远了。前面讲这些主要是帮大家复习以下以太网知识,大家别担心,时间是足够的,因为这门课里有很一些基础的知识,比如交换原理、vlan原理,那些知识我都会跳过,我第一天的内容不会很难,考虑到大家远道而来,第一天都很累。但后面回越来越难,大家要有心理准备。晚上要早点睡觉(同学们笑)。还有一个,就是大家别指望能记得住我讲得全部内容,今天讲得明天还记得一点,后天就全忘了,(同学们笑),到了课程结束的时候,基本上全忘光了,(同学们大笑),所以做笔记很重要,我建议大家把笔记写在书上,到时才对得起来。我也注意到一些同学在录音,我知道的,不用放在桌子底下(同学们笑),那样效果不好,(同学们大笑),其实这是不允许的,不过没关系,只有一个要求,不要放在互联网上。
(编者:写到这里,有点写不下去了,觉得很内疚,觉得对不起范老师。我参加过很多培训,范老师是我很喜欢的一个老师,他讲课不会非常幽默,但很实用,这是因为他有很多经历,他在讲课过程中,会补充很多课程以外的东西,比如很多网络中的细节知识,很多工作中的思路,我觉得这方面收获很大,我个人觉得是对我知识的全面补充,学完之后觉得不仅学会了Sniffer,网络管理的思路更清晰了,现在我指导工程师时,套了很多范老师的话,我觉得范老师很好。怎么办?我在进行思想斗争。。。该不该再写下去。我想在论坛里发起投票,听听大家的意见,我该不该再写下去。)
(编者:范老师的课程内容: 第一天 monitor功能,Sniffer的部署
第二天 expert,capture filter ,troubleshooting
第三天 decode,display filter ,trigger
第四天 应用的类型,应用的剖析,应用的分析思路
第五天 应用性能的分析,应用性能预测)
(编者:大家去投票吧,我不担心侵权,只是感情上过不去)
(编者:我明天回家了,过完年要到6个省视察工作,估计要到3月份才回北京,到时才看写不写下去)

 

范伟导老师Sniffer课程资料(三)

hosttable.gif
好,我们继续看第二个monitor功能,Host table,我们叫他主机列表
这是非常好用的一个功能,有什么用呢?
第一看流量最大的TOP10主机,
第二看广播量有多少,当时我发现冲击波、振荡波的时候,就是看这个host table,发现有大量的全子网广播
第三可以快速过滤单一主机流量。
第四通过过滤功能可以看到单一业务主机的流量分布,当然也可以通过镜像接口去实现
我们一个一个来看。
首先TOP10主机,
我们可以点击各列的标题来排序,方便我们分析,比如收发包情况。大家可以试一下。
第二广播量有多少
我们点击broadcast或multicast的标题,查看广播量,有一点要注意,不要忘记看MAC层的广播和组播,因为MAC的广播不一定有IP头,比如ARP,同样IP的广播在MAC也可能是单播,比如子网广播。
MAC层的广播是目的MAC为48个1,MAC层的组播为目的MAC第一个字节最低位是1。(范老师有板书,我的本子上有,懒得画了)
IP的广播有三种:255.255.255.255叫本地广播,也叫直播,direct broadcast,不跨路由器。
172.16.33.255叫子网广播,广播给172.16.33.0这个子网,可以跨路由器。
172.16.255.255叫全子网广播,广播给172.16.0.0这个主网,可以跨路由器。
大家以前学网络的时候,老师会给一个概念,说路由器是三层设备,隔离广播,对吧,我也是这样给同学介绍的,但我在后面会告诉同学,并不是所有广播都隔离。
事实上只有255.255.255.255这类本地广播,路由器才不转发,对于子网广播和全子网广播,路由器是转发的,这是为什么呢?
我们来看4个255的广播,在MAC的封装中,对应的目的MAC是广播,而子网广播和全子网广播,对应的目的MAC是单播,所以路由器会转发。(范老师在演示)所以我们注意到,路由器隔离的广播是目的MAC为全1的广播,对于目的MAC是单播的上层广播,路由器是不能隔离的。
现在想想冲击波震荡波为什么影响那么大,因为它采用的是全子网广播,可以跨路由感染。所以对于这种流量我们要小心,希望下次再出现蠕虫病毒时,大家能快速发现,做个世界第一(同学们笑),同样我们要关注MAC层的广播。
第三,就是我们可以关注单一主机流量。
第一种办法,抓包。选中主机,点一下抓蝴蝶的工具,这样通过专家系统和解码你就可以分析他在干什么了。这个我们后面再讲
第二种办法,用single station。选中主机,点一下下面这个电脑的图标,你可以看到他在跟谁通信,如果你看到他跟几十台、上百台机器同时通讯,可能是什么?(同学们:BT),对,像BT,电驴等P2P应用会有这个特征。
第四,就是我们如果我们把单一业务服务器的接口镜像过来,我们就可以看到这台机器的流量状况,我们也可以采用过滤的方式。
Sniffer有一种叫Monitor 过滤器。大家选中一台机器,假设这是你要关心的业务主机,再点一下这个定义过滤器的图标,(范老师在演示),你看他自动产生一个叫NEW1的过滤器,就是这台机器跟任何机器通讯这样的一个过滤器。我们点一下确定。
我们在选择monitor菜单上的select filter,选apply monitor filter,再选new1,确定。
大家注意到,现在host table就只有和这台机器通讯的所有主机流量情况。要注意一点是,monitor filter应用的时候,对所有monitor功能生效,所以在分析单一业务的时候,特别好用。当然如果你们买的是InfiniStream的话,就更方便了,想分析那个业务就分析哪个业务。
怎么样?Host table好用吧?
(同学问:为什么广播也是一台主机?不是说广播地址不会作为主机地址吗?)(编者:这个问题好像比较低级)
这是流量分析技术的特点,再流量分析中,它纯粹从包结构中去取得主机信息,也就是目的MAC,源MAC,目的IP,源IP,他都作为主机处理,广播地址不会在原地址中出现,但在目的地址中出现,也是一台主机。这并不影响我们分析。
好。还有什么问题吗?大家用5分钟自己试一下。


matrix1.gif

好,我们继续看第3个monitor功能,Matrix,我们叫他矩阵,其实就是主机会话情况,很多人用他来发现病毒,其实用他来评估网络状况,和异常流量,是一个很好用的工具。
大家看,一下子就满了,大多数网络中都是这样的,我们可以按一下崭停。
然后来分析
分析什么呢?
看那一台主机的连接数最多,要注意这个连接数不是传输层的连接数,是指谁跟最多的主机连接
按右建选zoom,放大。
找到对外连接最多的机器,选中,按右建,选show select nodes,大家自己试一下。


matrix2.gif

我们注意到这台机器跟很多机器通讯,这正常吗?(同学们:不正常)
这要看实际情况,如果这时一台业务主机,太正常了,如果这时一台PC机,或许在作P2P。
究竟在作什么呢

 

范伟导老师Sniffer课程资料(四)

matrix3.gif

我们注意到这台机器向公网发出大量的ICMP包,那是在作什么?(同学们:在ping)
对!PING采用ICMP协议,ping可以用来扫描,也可以用来攻击。
扫描就是看那一台机器活着,接着扫描端口,在攻击,所以扫描是攻击主机的前奏。
另外,还可以用ping 来冲击路由器,或占用带宽,是一种DOS攻击。
大家看这个过程更像哪一种类型。
(同学们:扫描,DOS攻击)
一般情况下,扫描会是比较连续的地址,我们看这个地址并不连续,我们先排除扫描,当然不是绝对的,也有比较聪明的扫描。
有同学说,这是DOS攻击,那是冲击路由器,还是占用带宽?
(同学们:冲击路由器)
嘿,这次比较统一,我也觉得他在冲击路由器,我们看,他的目标地址基本不在一个网段,这样路由器收到这样的数据包会消耗大量资源在查找路由表上面。所以对路由器有一定冲击。
一般来说,如果他想占用带宽的话,会发大包,我们发现,包的长度不大,并且一秒钟才发10几个包,所以对贷款冲击不大。
或许大家会觉得这没秒10几个包对路由器冲击也不大呀。大家想像一下,如果有很多机器在作这个操作,那影响就会很大。
大家自己在找一找,是否还有其他机器在作同类事情。
(同学们找出7台这样的机器)
好大家找出7台这样的机器,怎么找出来的?有同学用钢材的办法,有同学用过滤,都市好办法。
现在假设在你们的网络中出现这样的情况,我们发现了异常,接下来怎么做?
(同学们:找到这台机器)
然后呢?
我们可以看看这台机器的任务管理器,看看有什么不常见的进程,把他去掉,看是否解决。在看其他的机器,是否有类似的特征。
这是我的一个学员发给我的,当时他发现这7台机器都有一个特殊的进程,但是他的防病毒软件没有查出来。他手工解决了。
这很好说明用Sniffer可以比防病毒软件更快发现病毒,因为防病毒软件是后知后觉得,什么意思?防病毒软件必须有相应的特征才能查病毒。而Sniffer通过流量可以发现一些特征,一些异常。
但是有一点,我们不能拿Sniffer当防病毒软件用,那不是他的特长,同时也太低沽Sniffer的功能了(同学们笑)
好我们在看看扫描是怎么一回事,大家看这个trace file(范老师在演示,我就不写了)
先是ARP扫描,再端口扫描,接下来就是攻击了。
(编者:接着我们做了一个游戏,范老师让大家用Sniffer攻击他的机器,结果1台机器就把他的机器搞死了,这个就不细说了)

art4.gif


好,我们再看第四个monitor功能,ART,Application Response Time,应用响应时间。
应用响应时间是分析应用的一个很好工具,主要用来分析应用的性能。
ART是指一个客户端发出一个请求,到服务器响应回来的时间差。
一般来说,应用响应的快慢,是应用性能的一个重要指标。
应用性能主要决定于几个因素:网络因素、服务器因素、客户端因素、应用协议因素
我们先看看如何操作,再来看看应用这个功能。
我们打开ART,大家看到Http的应用响应时间分析,这里有几个列,server Address,Client Address.
他是怎么知道谁是Server,谁是Client?其实也就是看端口号和IP的对应关系,比如如果一个数据包的目的IP是1.1.1.1,目的端口是80,Sniffer就会认为1.1.1.1就是Http服务器。对应的源IP就是Client。
AvgRsp—平均响应时间
90%Rsp—90%响应时间,去掉头尾个5%,其实我个人觉得去掉最大的10%更合理一些。
还有最大最小的响应时间,这些都是以毫秒为单位。
接着就是TotalRsp,这个是响应次数,单位是次。
接着是0到25毫秒的响应有多少次,25到50毫秒的响应有多少次。。等等。
后面还有server发送子节数,client发送子节数,timeout次数等等,5秒不响应则Timeout。
我们再看看怎么增加其他应用,按属性,选择display protocol,添加你关心的协议,再确定,ART会重新刷新(范老师在演示)
你看我这里就有了telnet,Oracle。
(同学们:我们没有Oracle)
我知道,其实平时我们更关心的是我们关键业务,所以我们要把我们关键业务的端口添加进来,怎么添加?大家跟我来,
选菜单上的toolsàoptionsàprotocol,拉到下面,添加一种应用,比如Oracle,端口1521。
再在属性里把这个新协议选上,有了吗?(跑去解答问题去了)
好,大家都做出来了,我们平常分析关键业务就行了,有一点要说明,一种业务可能有多个应用,也就是多个端口,需要同时分析。
有些同学喜欢把所有well known的协议添加到协议列表里,我在共享目录上有两个注册表注入工具,大家只要运行以下就可以将这些常用端口都注入到协议列表里,就不用一个一个敲了。其实我个人觉得不太必要,多了反而乱。
大家打开注册表,我们看一下协议列表,找到这两项:
HKEY_LOCAL_MACHINE\SOFTWARE\Network Associates, Inc.\Sniffer\4.7\1CommonSettings\Protocols\IP Protocols\TCP
HKEY_LOCAL_MACHINE\SOFTWARE\Network Associates, Inc.\Sniffer\4.7\1CommonSettings\Protocols\IP Protocols\UDP
这就是协议列表。注意不要有重复的,否则会报错。

art5.gif

(编者:这是范老师的板书)
应用响应时间是评估影响应用性能因素的一种很好的工具。我们看这样一个例子。
比如通过client通过广域网连接到服务器。
我们同时在AB两点部署Sniffer,分析某一业务的响应时间。
假设Sniffer在A点,他所看到的响应时间包括网络消耗时间和服务器处理时间
在B点的Sniffer看到的响应时间主要是服务器处理时间。这样我们比较AB两点的响应时间,来判断影响性能的主要因素是网络还是服务器。
假设A点的响应时间是400毫秒,B点的响应时间是100毫秒,我们就知道A点的400毫秒中有300毫秒是消耗在网络上的,我们可以认为对于这个业务,性能的主要瓶颈在网络上,如果我们在深入分析是距离因素还是贷款因素,我们就可以判断是否有改善空间。这个细节我们在第二门课讲。
如果B点的响应时间达到250毫秒,我们可以认为改善服务器的性能对于这个应用来说会更明显一些。
如果我们Sniffer用多了。我们就可以做一个AB点的响应时间的基准线,假设正常情况下A点的响应时间是400毫秒,有一天你发现平均响应时间达到600毫秒,你就应该关注了,或许用户还没有抱怨,如果你这时分析应用性能下降的原因,你就可以避免故障的产生,同时避免用户投诉。当然你也会有B点的基准线,比较跟平时有何不同,很快就知道应该检查网络还是服务器。
对于ART还有什么不清楚地吗?或者大家平常还有其他用法?
(编者:本来这次想写完第一天课程再共享,看到论坛中大家在催,就先写到这吧,过几天就可以把第一天全部内容发完)
(编者:范老师已经找过我了,他说他的MSN有很多陌生人,后来看了内容就知道是我写的,他说分享知识可以,但不要透露敏感信息,还说我比他讲得好,汗。。。。所以这次我没有完全按他的录音翻译,自己有所删节,但基本上是原汁原味。)
(编者:我发现写这个真的很累,因为有很多演示,很难写出来,最近很忙,我都没有忘记我的承诺,给我加油,好吗?)
(编者:所有PPT都市我自己做的,范老师的ppt是不给我们的,我很努力吧!)

posted on 2007-09-16 10:49 鹏少 阅读(80) 评论(0)  编辑 收藏 引用 所属分类: 扫盲系列
只有注册用户登录后才能发表评论。
<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

常用链接

文章分类(11)

新闻分类

搜索

  •