远程桌面无法访问——用wireshark定位问题
  

望伊如西 97751人觉得有帮助

{{ttag.title}}
问题:总部PC去访问分支的服务器3389桌面,会出现不定时中断的问题
1. 10.0.2.132为PC10.16.2.200为远程桌面的服务器
2.     拓扑环境
总部:VPN---AC---SW---PC (10.0.2.132)
分支:VPN---SW---- PC (10.16.2.200)
总部有三层环境,AC透明模式部署,分支二层环境,就一个网段
3.     数据包是总部访问分支访问不了的时候抓取的数据包,要求通过数据包,分析问题原因。

排查思路:
1.     只抓取了分支vpneth0口的包和总部vpn设备eth0上的包(建议是分支电脑和总部服务器都抓取,抓不了也没办法)
2.     因为是终端pc访问服务器的时候经常断开。所以先看在终端侧的数据包,也即是查看zbssleth0这个包
  点开之后,先点击Statistics,选中conversation
437205cdbdc5d8f282.png
        出现下图界面,选中TCP,看到存在三个连接。说明应该是测试过3次。其中注意到字节数Bytes, 第二个连接有112kB,比其他连接传输的数据都多,那我们就先来看这个连接。
856215cdbdc84851fc.png
         怎么看呢?右键该连接后,照下图操作
304485cdbdc9ca525c.png
        wireshark自动过滤该连接,显示如下界面
521595cdbdcbadc5b6.png
      我们可以点开专家分析来看看,是否存在什么问题。点开之后,记得把Limit to Displayfilter 给勾上,这样才会显示在wireshark过滤后展示页面的信息。
324515cdbdce4d84a4.png
912355cdbdd24de066.png

       由于不涉及访问卡慢的问题,所以此时我们没必要看重传等信息。重点应该关注是什么导致的连接  断开。此时,明显能看到告警信息中,存在RST包,那我们就可以看下304号包与306号包。
751085cdbdd3f364c7.png

        找到304号包与306包后,发现后面就再也没有数据了,说明此时连接是中断了。明明数据传的好好   的,怎么突然客户端10.0.2.132就发送一个RST包呢。此时需要注意的是,我们的数据包是在总部vpn设备上eth0口抓的,也就是说这个流量是从内部传过来的。结合着总部的拓扑情况,出现中断,  可能存在2种情况。要么是客户端自己的问题,要么就是有啥子设备替客户端发送了这个RST数据包
273505cdbdd5408bfa.png

       一个直接的办法就是在客户端上抓包。看下客户端有没有发出这个RST包。如果没有,结合着网络拓  扑,那基本就可以确定是AC发了这个RST包了(第一个,客户环境比较简单;第二个,谁叫AC是行   为管控呢)。如果客户端上的抓包有这个RST,那就是客户端的问题。
       如果客户说,我电脑上不能安装其他软件(不管为啥,你就当死活不允许好了)。那就是说,我们  不能在客户端上抓包。那好,我们就只能在现有的数据包中获取蛛丝马迹了。
       此时,我们还有一个方法判断是不是由客户端发出的这个RST包,那就是通过IP.ID这个参数。
       IP.ID是什么鬼?那我们要知道数据包是如何封装的,如下图所示。IP.ID是IP数据报头中的一个字段。表明了一个数据包的身份,比如一个数据内容过大,被传输的  时候就要对这个数据进行切割,即进行分片。当接收方收到这些分片后,需要把这些分片组装起来,那接收方每次收这么多的数据包,它咋知道哪些分片是从同一个数据内容中出来的呢?就要靠IP.ID了,通过IP.ID就可以把这些分片组装起来,还原成最初始的大块数据。就像你玩乐高玩具,乐  高里面这么多零件,如果这些零件中混入了其他玩具的零件。那你想把这个乐高玩具组装起来肯定 需要一个标识来进行识别哪些零件是同属于一个乐高模型的。
208375cdbdd6279373.png

       上述还只是告诉了你,啥是IP.ID。那回到问题中来,你还需要知道的一个点就是,如果是一个设备   去发数据包,那么他的IP.ID增长是线性的。即一般来说,同一台设备发出第一个包,如果IP.ID是1,   第二个包就是2。就算不符合这规律,那数值起码也不会差太多。
       我们再来看下wireshark,299号包的IP.ID=18970。302号包的IP.ID=18971。而304号包的
IP.ID=22566。那RST包和之前的两个包,这数值也差的太多了啊,所以基本能判断这个包不是客户端发出的
354615cdbdd71b9595.png
3075cdbdd94a3590.png
229945cdbdda4484a8.png

其实在ac上抓包,你就能看到ac给客户端和服务器两边都发了rst包,而服务器与客户端都没有发过。
这也说明了ac设备的强大。不信你看该文档:链路劫持攻击一二三,里面就说了“中断访问型常见于阻止用户访问某些网站,如某些设备禁止用户访问某些站点、某地运营商的禁止ADSL多终端上网功能。其原理就是伪造服务端给用户发RST包阻止TCP连接的建立(单向发包)。某些设备做得比较狠,在冒充服务端给用户发RST包的同时也冒充用户给服务端发RST包(双向发包)。”
同时你参阅上述文章也可以发现,要定位问题,除了可以使用ip.id这个参数,还可以使用ip首部中TTL值来进行问题判断,根据ttl的跳数应该也是可以定位出出问题的设备位置

另带
通过vpn进行数据互访,ping的时候不丢包也不延时,但是使用应用时就是访问卡慢,模块半天显示不出来,如何通过wireshark定位问题。

另2篇文章:

打赏鼓励作者,期待更多好文!

打赏
11人已打赏

望伊如西 发表于 2019-1-31 09:25
  
排查思路:
1.     只抓取了分支vpneth0口的包和总部vpn设备eth0上的包(建议是分支电脑和总部服务器都抓取,抓不了也没办法)
2.     因为是终端pc访问服务器的时候经常断开。所以先看在终端侧的数据包,也即是查看zbssleth0这个包
           点开之后,先点击Statistics,选中conversation
936965c524ce6d9ec7.png
        出现下图界面,选中TCP,看到存在三个连接。说明应该是测试过3次。其中注意到字节数Bytes, 第二个连接有112kB,比其他连接传输的数据都多,那我们就先来看这个连接。
61335c524d0aab16a.png
         怎么看呢?右键该连接后,照下图操作
972265c524d1eecd0b.png
        wireshark自动过滤该连接,显示如下界面
810285c524d65c59c9.png
      我们可以点开专家分析来看看,是否存在什么问题。点开之后,记得把Limit to Displayfilter 给勾上,这样才会显示在wireshark过滤后展示页面的信息。
351905c524d78abc45.png
145905c524d8ded1fa.png      
       由于不涉及访问卡慢的问题,所以此时我们没必要看重传等信息。重点应该关注是什么导致的连接  断开。此时,明显能看到告警信息中,存在RST包,那我们就可以看下304号包与306号包。
606045c524da3a0116.png

        找到304号包与306包后,发现后面就再也没有数据了,说明此时连接是中断了。明明数据传的好好   的,怎么突然客户端10.0.2.132就发送一个RST包呢。此时需要注意的是,我们的数据包是在总部vpn设备上eth0口抓的,也就是说这个流量是从内部传过来的。结合着总部的拓扑情况,出现中断,  可能存在2种情况。要么是客户端自己的问题,要么就是有啥子设备替客户端发送了这个RST数据包
829665c524dde1be72.png

       一个直接的办法就是在客户端上抓包。看下客户端有没有发出这个RST包。如果没有,结合着网络拓  扑,那基本就可以确定是AC发了这个RST包了(第一个,客户环境比较简单;第二个,谁叫AC是行   为管控呢)。如果客户端上的抓包有这个RST,那就是客户端的问题。
       如果客户说,我电脑上不能安装其他软件(不管为啥,你就当死活不允许好了)。那就是说,我们  不能在客户端上抓包。那好,我们就只能在现有的数据包中获取蛛丝马迹了。
       此时,我们还有一个方法判断是不是由客户端发出的这个RST包,那就是通过IP.ID这个参数。
       IP.ID是什么鬼?那我们要知道数据包是如何封装的,如下图所示。IP.ID是IP数据报头中的一个字段。表明了一个数据包的身份,比如一个数据内容过大,被传输的  时候就要对这个数据进行切割,即进行分片。当接收方收到这些分片后,需要把这些分片组装起来,那接收方每次收这么多的数据包,它咋知道哪些分片是从同一个数据内容中出来的呢?就要靠IP.ID了,通过IP.ID就可以把这些分片组装起来,还原成最初始的大块数据。就像你玩乐高玩具,乐  高里面这么多零件,如果这些零件中混入了其他玩具的零件。那你想把这个乐高玩具组装起来肯定 需要一个标识来进行识别哪些零件是同属于一个乐高模型的。
305125c524e33d5579.png

       上述还只是告诉了你,啥是IP.ID。那回到问题中来,你还需要知道的一个点就是,如果是一个设备   去发数据包,那么他的IP.ID增长是线性的。即一般来说,同一台设备发出第一个包,如果IP.ID是1,   第二个包就是2。就算不符合这规律,那数值起码也不会差太多。
       我们再来看下wireshark,299号包的IP.ID=18970。302号包的IP.ID=18971。而304号包的
IP.ID=22566。那RST包和之前的两个包,这数值也差的太多了啊,所以基本能判断这个包不是客户端发出的
628325c524e5ad32bc.png
884725c524e6040348.png
944145c524e66c1303.png
496535c524d3a24eac.png
望伊如西 发表于 2019-1-31 09:35
  
本帖最后由 望伊如西 于 2019-2-22 13:01 编辑

其实在ac上抓包,你就能看到ac给客户端和服务器两边都发了rst包,而服务器与客户端都没有发过。
这也说明了ac设备的强大。不信你看该文档:链路劫持攻击一二三,里面就说了“中断访问型常见于阻止用户访问某些网站,如某些设备禁止用户访问某些站点、某地运营商的禁止ADSL多终端上网功能。其原理就是伪造服务端给用户发RST包阻止TCP连接的建立(单向发包)。某些设备做得比较狠,在冒充服务端给用户发RST包的同时也冒充用户给服务端发RST包(双向发包)
同时你参阅上述文章也可以发现,要定位问题,除了可以使用ip.id这个参数,还可以使用ip首部中TTL值来进行问题判断,根据ttl的跳数应该也是可以定位出出问题的设备位置

另带
通过vpn进行数据互访,ping的时候不丢包也不延时,但是使用应用时就是访问卡慢,模块半天显示不出来,如何通过wireshark定位问题。
10652 发表于 2019-1-31 14:49
  
支持楼主,楼主用wireshark用的炉火纯青,支持多发表
蓝海 发表于 2019-2-1 13:21
  
非常有用,感谢分享
好心情能长寿 发表于 2019-2-1 22:10
  
感谢分享
铁鸦 发表于 2019-2-9 17:27
  
高手,学习了
gqce 发表于 2019-2-13 17:14
  
感谢分享,佩服佩服!
jimes 发表于 2019-2-15 08:52
  
实践经验 ,学习了新方法!
彭昱 发表于 2019-2-18 15:43
  
楼主很厉害,那么最终是什么问题呢?
发表新帖
热门标签
全部标签>
每日一问
技术盲盒
技术笔记
每周精选
干货满满
技术咨询
信服课堂视频
标准化排查
秒懂零信任
自助服务平台操作指引
新版本体验
产品连连看
安装部署配置
功能体验
GIF动图学习
玩转零信任
2023技术争霸赛专题
技术晨报
安全攻防
每日一记
深信服技术支持平台
天逸直播
华北区交付直播
社区帮助指南
畅聊IT
答题自测
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
上网策略
测试报告
日志审计
问题分析处理
流量管理
运维工具
云计算知识
用户认证
原创分享
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
排障笔记本
产品预警公告
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
答题榜单公布
纪元平台
通用技术
卧龙计划
华北区拉练
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV

本版达人

adds

本周建议达人

无极剑圣

本周分享达人

新手25642...

本周提问达人