《Wireshark网络分析实战》—第1章1.2节安置Wireshark(程序或主机)

简介:

本节书摘来自异步社区《Wireshark网络分析实战》一书中的第1章1.2节安置Wireshark(程序或主机),作者【以色列】Yoram Orzach,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.2 安置Wireshark(程序或主机)
Wireshark网络分析实战
看到了网络故障的表象,决定通过Wireshark抓包来查明故障原委之前,应确定Wireshark(程序或主机)的(安装或部署)位置。为此,需弄到一张精确的网络拓扑图(至少也得弄清楚故障所波及的那部分网络的拓扑结构),如图1.1所示。

安置Wireshark的原理非常简单。首先,应圈定要抓取哪些(哪台)设备发出的流量;其次,要把安装了Wireshark的主机(笔记本)连接到受监控设备所连交换机;最后,开启交换机的端口镜像(或端口监控)功能,把受监控设备发出的流量“重定向”给Wireshark主机。


ee895c077532251c62f811e1dccb94bfa0d66db0

可利用Wireshark监控LAN端口、WAN端口、服务器/路由器端口或连接到网络的任何其他设备的流量。

如图1.1所示,利用Wireshark软件(安装在交换机左边的PC上)外加交换机的端口镜像(也叫做端口监控,需在交换机上激活该特性,流量镜像的方向已在图中标出)功能,便可以监控到进、出服务器S2的所有流量。当然,也可以在服务器S2上直接安装Wireshark,如此行事,便能直接在服务器S2上监控进、出该服务器的流量了。

某些厂商的交换机还支持以下流量监控特性。

监控整个VLAN的流量:即监控整个VLAN(服务器VLAN或语音VLAN)的流量。可借助该特性,在指定的某一具体VLAN内进行流量监控。
“多源归一”的流量监控方式:以图1.1为例,借助该特性,可让Wireshark主机同时监控到服务器S1和S2的流量。
方向选择:可选择监控入站流量、出站流量或同时监控出、入站流量。
1.2.1 准备工作
使用Wireshark抓包之前,请先访问Wireshark官网,下载并安装最新版本的Wireshark。

Wireshark软件的后续更新会发布在其官网http://www.wireshark.org的Download页面下,其最新的稳定版本也可以从该页面下载。

每个Wireshark Windows安装包都会自带WinPcap驱动程序的最新稳定版本,WinPcap驱动程序为实时抓包所必不可缺。用于抓包的WinPcap驱动程序为UNIX Libpcap库的Windows版本。

1.2.2 操作方法
现以图1.2这一典型网络为例,来简单分析一下该网络的架构、网络中设备的部署及运作方式、Wireshark的安置方法,以及如何按需配置网络设备。


4cc1850579b90a94841aa9ef307375ae35b23c84

请读者仔细研究一下图1.2所示的简单而又常见的网络拓扑结构。

服务器流量监控
像服务器流量监控这样的需求,在实战中非常常见。要想监控到某台服务器(收/发)的流量,既可以在交换机上针对连接服务器的端口配置端口镜像(如图1.2中的编号①所示),将流量“重定向”至Wireshark主机,也可以在服务器上直接安装Wireshark。

路由器流量监控
要想监控进、出路由器的流量,监控其LAN端口(如图1.2中的编号②和⑥所示)或WAN端口(如图1.2中的编号⑤所示)都可以办到。

路由器LAN端口的流量监控起来比较简单,只要在交换机上配置端口镜像,把与路由器LAN口相连的端口的流量“重定向”至连接Wireshark主机的端口。要想监控路由器WAN口的流量,则要在路由器WAN口和SP(服务提供商)网络之间部署一台交换机,在这台交换机上配置端口镜像,如图1.3所示。


c63d968a4f7a22c676681612ec13e55e7710b0aa

在SP网络与路由器WAN口之间部署一台交换机,是一项会导致断网的操作。不过,真要如此行事的话,网络中断的时间最多也就一两分钟。

监控路由器的流量时,有一点请务必留意:发往路由器的数据包并不一定都会得到转发。有些数据包或许会在途中“走失”,而路由器既有可能会因缓存溢出而对部分数据包“忍痛割爱”,也有可能会把某些数据包从接收端口“原路送回”。

执行上述流量监控任务时,可能会用到以下两种设备。

TAP:可在受监控链路上用一种叫做分路器(Test Access Point,TAP)的设备来取代图1.3中的交换机,这是一种简单的“三通”(三端口)设备,执行流量监控时,其所起作用跟交换机相同。与交换机相比,TAP不但便宜而且使用方便。此外,TAP还会把错包原样传递给Wireshark,而LAN交换机则会把错包完全丢弃。交换机不但价格高昂,而且还需要花时间来配置,当然它所支持的监控功能也更多(比如,一般的LAN交换机都支持简单网络管理协议[SNMP])。排除网络故障时,最好能用可网管交换机,哪怕是功能没那么丰富的可网管交换机也好。
HUB:可在受监控的链路上用一台HUB来取代图1.3中的交换机。HUB属于半双工设备,藉此设备,路由器和SP设备之间穿行的每一个数据包都能被Wireshark主机“看”的一清二楚。使用HUB最大的坏处是,会显著加剧流量的延迟,从而对流量采集产生影响。如今,监控1Gbit/s端口的流量可谓是家常便饭,在这种情况下使用HUB,将会使速率骤降至100Mbit/s,这会对抓包产生严重影响。所以说,在抓包时一般都不用HUB。
防火墙流量监控
防火墙流量监控的手段有两种,一种是监控防火墙内口(如图1.2中的编号③所示)的流量,另外一种是监控防火墙外口(如图1.2中的编号④所示)的流量。若监控防火墙内口,则可以“观看”到内网用户发起的所有访问Internet的流量,其源IP地址均为分配给内网用户的内部IP地址;若监控防火墙外口,则能“观看”到的所有(经过防火墙放行的)访问Internet的流量,这些流量的源IP地址均为外部IP地址(拜NAT所赐,分配给内网用户的内部IP地址被转换成了外部IP地址);而由内网用户发起,但防火墙未予放行的流量,监控防火墙外口是观察不到的1。若有人(通过Internet)发动对防火墙(或内网)的攻击,要想“观察”到攻击流量,观测点也只能是防火墙外口。

1.2.3 幕后原理
要想弄清端口镜像(端口监控)的运作原理,需先理解LAN交换机的运作方式。LAN交换机执行数据包转发任务时的“举动”如下所列。

1.LAN交换机会“坚持不懈”地学习接入本机的所有设备的MAC地址。

2.收到发往某MAC地址的数据帧时,LAN交换机只会将其从学得此MAC地址的端口外发。

3.收到广播帧时,交换机会从除接收端口以外的所有端口外发。

4.收到多播帧时,若未启用Cisco组管理协议(Cisco Group Management Protocol,CGMP)或Internet组管理协议(Internet Group Management Protocol,IGMP)监听特性,LAN交换机会从除接收端口以外的所有端口外发;若启用了以上两种特性之一,LAN交换机将会通过连接了相应多播接收主机的端口,外发多播帧。

5.收到目的MAC地址未知的数据帧时(这种情况比较罕见),交换机会从除接收端口以外的所有端口外发。

综上所述,在LAN交换机上配置端口镜像去监控某个端口时,可“采集”到进、出该端口的所有流量。若只是将一台安装了Wireshark的笔记本接入LAN交换机,未在交换机上开启端口镜像功能,则只能抓到流入或流出该笔记本的所有单播流量,以及同一VLAN里的多播及广播流量。

1.2.4 拾遗补缺
使用Wireshark抓包时,还需提防几种特殊情况。

其中的一个特殊情况是,抓取整个VLAN的流量(VLAN流量监控)。在基于VLAN执行抓包任务时,有几个重要事项需要铭记。第一个要注意的地方是,Wireshark主机只能采集到与其直连的交换机承载的同一VLAN的流量。比方说,在一个交换式网络(LAN)内,有多台交换机都拥有隶属于VLAN 10的端口,要是只让Wireshark主机直连某台接入层交换机,那必然采集不到VLAN 10内其他接入层交换机上的主机访问直连核心层交换机的服务器的流量。

请看图1.4所示的网络,用户一般会分布在各个楼层,跟所在楼层的接入层交换机相连。各台接入层交换机会跟一台或两台(为了冗余)核心层交换机相连。Wireshark主机要想抓全某个VLAN的流量,必须与承载此VLAN流量的交换机直接相连,才能采集到相应VLAN的流量。因此,要想抓全VLAN 10的流量,Wireshark主机必须直连核心层交换机。

在图1.4中,若Wireshark主机直连SW2,且在SW2上激活了相关端口镜像功能,开始监控VLAN 30的流量,则其只能抓取到进、出SW2 P2、P4、P5端口的流量,以及由SW2承载的同一VLAN的流量。该Wireshark主机绝不可能采集到SW3和SW1之间来回穿行的VLAN 30的流量。

基于整个VLAN来实施抓包任务时,可能会抓到重复的数据包,是另外一个需要注意的地方。之所以会出现这种情况,是因为启用端口镜像时,对于在不同交换机端口之间交换的同一VLAN的流量,Wireshark主机会在流量接收端口的流入(input)方向及流量发送端口的流出(output)方向分别抓取一遍。

如图1.5所示,在交换机上已激活了端口镜像功能,对VLAN 30的流量实施监控。对于服务器S4向S2发送的数据包,当其(从连接S4的交换机端口)流入VLAN 30时,Wireshark主机将抓取一次;当其从(从连接S2的交换机端口)流出VLAN 30时,Wireshark主机会再抓取一次。这么一来,便采集到了重复的流量。


6770c6661dba0641ebbb813f6cce20b3989ff407


daf3e3c6373fca68b45b02b4fd79c40351cdbfc0

欲深入了解端口镜像相关信息,请参阅各网络设备厂商提供的操作手册。有些厂商也把端口镜像称为“端口监控”或SPAN(Switched Port Analyzer)(Cisco公司)。

某些厂商的交换机支持远程流量监控(能让直连本地交换机的Wireshark主机采集到远程交换机端口的流量)以及高级过滤功能(比如,在把流量重定向给Wireshark主机的同时,过滤掉具有特定MAC地址的主机发出的流量)。还有些高端交换机本身就具备抓取并分析数据包的功能。某些交换机还能支持虚拟端口(例如,聚合端口或以太网通道端口)的流量监控。有关详情,请阅读交换机的随机文档。

1译者注:原文是“On the internal port you will see all the internal addresses and all traffic initiated by the users working in the internal network, while on the external port you will see the external addresses that we go out with (translated by NAT from the internal addresses); you will not see requests from the internal network that were blocked by the firewall”。原文较差,译文酌改。
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

相关文章
|
3月前
|
缓存 网络协议 Python
Python网络编程(二)编写TCP协议程序
Python网络编程(二)编写TCP协议程序
118 0
|
7月前
|
网络协议 API 数据处理
【网络编程】第2章(2) 应用程序接口(API)
【网络编程】第2章(2) 应用程序接口(API)
|
7月前
|
域名解析 网络协议
网络协议与攻击模拟-02-wireshark使用-显示过滤器
网络协议与攻击模拟-02-wireshark使用-显示过滤器
63 0
|
4月前
|
网络协议 Java API
基于UDP/TCP实现客户端服务器的网络通信程序
基于UDP/TCP实现客户端服务器的网络通信程序
|
2月前
|
缓存 移动开发 JSON
【网络安全 | 网络协议应用层】结合Wireshark讲解HTTP协议
【网络安全 | 网络协议应用层】结合Wireshark讲解HTTP协议
106 0
|
2月前
|
网络协议 网络安全
【网络安全 | 网络协议】结合Wireshark讲解TCP三次握手
【网络安全 | 网络协议】结合Wireshark讲解TCP三次握手
27 0
|
2月前
|
存储 网络协议 网络安全
【网络安全 | 网络协议】结合Wireshark讲解IP协议
【网络安全 | 网络协议】结合Wireshark讲解IP协议
35 0
|
3月前
|
网络协议
Wireshark 如何过滤抓到的网络包?
Wireshark 如何过滤抓到的网络包?
|
8月前
|
Python
【从零学习python 】73. UDP网络程序-发送数据
【从零学习python 】73. UDP网络程序-发送数据
45 0
|
4月前
|
存储 网络协议 安全
网络编程『socket套接字 ‖ 简易UDP网络程序』
网络编程『socket套接字 ‖ 简易UDP网络程序』
75 0