登录
CSNA会员注册
找回密码
搜索
搜索
本版
用户
CSNA网络分析论坛
»
首页
›
流量分析
›
网络分析
›
某单位无法发送大附件邮件的故障分析案例 ...
返回列表
发帖
查看:
7313
|
回复:
5
某单位无法发送大附件邮件的故障分析案例
[复制链接]
5225
5225
当前离线
积分
0
发表于 2012-4-17 10:14:31
|
显示全部楼层
|
阅读模式
该单位近两个月内发现邮件发送异常,具体表现为:
邮件发送很慢,但接收正常。空头信或文字较少的邮件能正常发送,但文字较多或携带超过
15KB
以上的附件则无法正常发送。使用
web
邮件收发正常,使用
outlook
和
foxmail
等客户端出现异常。
网络拓扑:
如下图,用户使用
outlook
等客户端发送邮件的基本路径为:用户
----
接入交换机
----
核心交换机
-----
邮件服务器
----
邮件网关
----
防火墙
---
路由器
-----SP
。
邮件服务器位于
FW
的
DMZ
区。而通过
WEB
发送邮件则不通过邮件服务器和邮件网关。
(图
1
某单位邮件传输路径原始简易拓扑图)
抓包分析
客户的邮件出现问题已经两个月没有解决,而以前使用了近
5
年都是正常的,邮件服务器和邮件网关没有做任何改变,一直运行良好了多年。这种问题很奇怪,客户自己做过很多排查工作,做过撇开邮件网关直接使用邮件服务器发送,问题依然;也尝试着使用其他方法将设备拿掉,但多次尝试依然无法找出根源在哪,因此问题一直存在。
根据邮件链路情况分析,我们先在邮件服务器前端进行抓包,查看客户端的邮件发送情况,抓包采用核心交换机镜像邮件服务器接口方式。抓包同时使用客户
PC
的邮件客户端发送大附件邮件测试。我们发现服务器接受到邮件服务器的时候大字节的数据包
1518byte
的数据包重传很多次。而且多次重传无法将数据包后,服务器还是没有收到大字节的数据包,而经过
90
秒之后,服务器认为此连接为异常连接,发送重置数据包,邮件传输中断。
(图
2
异常的
SMTP
会话)
如上图,我们看到
1518byte
的字节几乎都无法顺利的传输。而之前的协商都很正常。经过多次重传后服务器还是没有收到
1518
数据包,服务被中止。
经过多个会话的分析发现,此种会话很多,而且大的数据包都很难被传输,多次重传。数据包个数为
20368
,而
TCP
重传发生的次数就达
5456
,重传概率达到
26.7%
。
(图
3
大量的
SMTP
数据包重传)
为什么传输小数据包没问题,而大的数据包都不成功呢?
MTU
?难道是路径中某个接口的
MTU
太小而又不做分片导致的?是防火墙呢,路由器,还是邮件网关等设备的原因呢?
为了验证猜想,决定在防火墙后面进行抓包看下
1518byte
的数据包有没有被正确传输。我们在防火墙后面抓包发现
1518byte
的数据包是可以穿越防火墙的。如图:
(图
4
防火墙后抓包)
上图我们也看到,几乎大多数的
1518byte
的数据包的分片标识中分段标志都置位
1
,这就意味着
1518byte
的数据包是不准许分片的。这种做法是上层协议的需要,
SMTP
协议在打包的时候就告诉了
IP
层,封装数据的时候不要分片。大多数的
TCP
传输是很少有分片现象的存在,分片大多出现在
UDP
和
IP
协议的传输中。
防火墙被排除后本地网络就剩下路由器了,我们在路由器后面抓包看下是不是有异常。路由器承担了
NAT
功能,因此在路由器后面抓包,抓到的将是其公网地址。
抓包几分钟后,果然验证了猜想。如图:
(图
5
发送
SMTP
走
GRE
通道)
我们看到,网络中存在
GRE
通道,而且
GRE
通道是为发送
SMTP
专门建立的。我们看到
GRE
的数据包统计中没有任何
1518byte
的数据包存在。也就是说
1518byte
的数据包在传输到路由器后,被丢弃了。为什么会被丢弃呢?其实道理很简单,
GRE
需要
4byte
头部
+20
字节的
IP
头部,共增加了
24
字节的额外负荷。而原来
1500byte
的负荷(
1518byte-14byte
帧头
-4byte
校验
=1500byte
)变成了
1524
。而路由器的接口默认
MTU
都是
1500
,在负荷大于
MTU
的情况下,
IP
层会做出分片,但不幸的是本网络
SMTP
协议传输不准许分片,在这种情况下只能选择丢弃超过
1518byte
的数据包。
而收邮件是没有走
GRE
通道的,所以收邮件是没问题的,如图:
(图
6
收
SMTP
不走
GRE
正常传输)
终于知道出现问题的根源了,于是建议客户将
GRE
取消试一下。让发送
SMTP
不走
GRE
通道。果然,发送和接受正常
大附件邮件顺利发送。
取消
GRE
通道配置
修改
GRE
通道的
MTU
,使其保证能通过
1518byte
的数据包
SMTP
服务器设置准许邮件数据包分片。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
CSNA会员注册
×
回复
使用道具
举报
skram
skram
当前离线
积分
0
发表于 2012-4-17 10:35:10
|
显示全部楼层
居然没人顶?分析得很到位的嘛!!
回复
使用道具
举报
281763302
281763302
当前离线
积分
0
发表于 2012-4-29 23:00:31
|
显示全部楼层
SMTP不允许分片么--!
SMTP基于TCP为什么又有UDP数据需要分片而分片不成功了。
回复
使用道具
举报
nadou3
nadou3
当前离线
积分
0
发表于 2012-5-20 17:25:36
|
显示全部楼层
好好分析下了
回复
使用道具
举报
smlq
smlq
当前离线
积分
0
发表于 2012-6-10 00:24:18
|
显示全部楼层
分析和处理的不错,类似现象在工作中时常可以遇到。
回复
使用道具
举报
kpking
kpking
当前离线
积分
0
发表于 2013-5-3 10:27:16
|
显示全部楼层
我们这里就有这个问题。但看不明白怎么搞?有人可以教教吗
回复
使用道具
举报
返回列表
发帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
CSNA会员注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
浏览过的版块
科来产品
快速回复
返回顶部
返回列表