aws 上经常出现 the network location cannot be reached 错误,完全断网近 1 分钟。

2016-05-20 10:13:01 +08:00
 gamexg

两台 aws 服务器,一个发起连接,一个接收连接。双方之间至少保持一个 tcp 连接。

出故障时 发起新连接端报 “ the network location cannot be reached ”错误。现存的连接报“ the specified network name is no longer available ”。整个网络完全中断,故障时任务管理器网络流量变成 0 。等进一分钟后网络连接恢复。

https://ww2.sinaimg.cn/large/413e37cagw1f41lvlb5pgj20ig02r750.jpg

接收方现存的连接报“ wsarecv: an existing connection was forcibly closed bu the remote host.”

由于故障出现随机,目前没有抓到包,只有日志。

软件是自己写的,建立连接用的

net.DialTimeout("tcp", RAddr, NEW_CONN_TIMEOUT * time.Second)

接收方是标准的新协程循环 c, e := ln.Accept() + go handlerConn(c) 。

很普通的 tcp 代码。

对了,还有一个奇怪的地方, tcp 发起端建立的连接经常读到“ the specified network name is no longer available ”错误,既不是读超时,也不是 EOF 。 正常情况下连接应该是长时间无数据读超时关闭或者是远端关闭,不应该碰到“ the specified network name is no longer available ”。 golang http 实现被人报告过这个问题, golang 解决办法是直接把他当作 EOF 来处理的... 复现 “ the specified network name is no longer available ” 的方法是直接强制关闭对端的程序,本端就会报“ the specified network name is no longer available ”。

从网络上搜索找不到答案,大家可以帮忙分析下断网是什么原因造成的吗? 个人感觉像是路由表出现了问题,才会出现“ the network location cannot be reached ”错误。应该是系统或网络出现了故障。但是无法确认,也无法解决...

3029 次点击
所在节点    Amazon Web Services
3 条回复
zealic
2016-05-20 10:21:59 +08:00
两个实例是在一个 VPC 还是跨区域了
正常下同区域不会出现这个问题
目测你的系统是 Windows 检查下网络配置有没有问题或者是不是装了什么奇怪的软件。
gamexg
2016-05-20 11:58:40 +08:00
@zealic 感谢。跨区域了,系统的确是 windows ,我提供的软件,已经建议对方换 aws 空白系统测试及联系 aws 。
SharkIng
2016-05-20 13:01:17 +08:00
我也遇到过这个问题 同 VPC Linux 系统,但是不是很常见,一个月一次甚至两个月一次吧。断网随机有时候半分钟就好了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/279945

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX