您的位置:首页 > 理论基础 > 计算机网络

一个由于网络问题导致的服务无法使用——调试过程总结

2016-08-08 23:17 609 查看
欢迎和大家交流技术相关问题:

邮箱: jiangxinnju@163.com

博客园地址: http://www.cnblogs.com/jiangxinnju

GitHub地址: https://github.com/jiangxincode

知乎地址: https://www.zhihu.com/people/jiangxinnju

最近测试经常让我处理一个问题,就是网站服务无法使用,通过Windows跳转机,使用Chrome浏览器访问服务首页,页面什么也没有展示,使用Chrome的F12调试窗口,发现并没有和服务端SLB的任何交互请求。查看后台门户的相关进程,均正常运行。查看后台日志,没有发现明显的错误。访问SLB的页面管理系统,发现所需服务均正常注册。定位无果后所以尝试重启,不定次数重启之后,清除浏览器缓存,继续登录,发现服务又能够正常访问。但是再次重启后,问题复现。

各个服务节点,包括双机SLB节点均是混合网卡,同时绑定大网地址(10开头)和小网地址(192开头),SLB的浮动IP地址为小网地址。考虑到可能是网络问题,但是跳转机只有一台,无法通过更换跳转机的方式,查看服务是否正常,同时因为在该组网中所有服务均使用SLB进行控制,无法通过在该跳转机中访问其他服务地址确定是否是跳转机问题。

使用ping命令,发现各个服务节点与SLB节点均能正常通信,跳转机与SLB也能正常通信,但是考虑到ping命令无法指定端口,仍无法确定跳转机与SLB之间的网络正常。于是想到了古老的telnet。首先使用ifconfig查看浮动IP绑定到哪台SLB节点上,两台均没有绑定,很奇怪,通过下面的文章了解到浮动IP无法使用ifconfig命令查出,然后按照文章中的说明使用ip addr命令找到浮动IP属于两台SLB中的A节点。

从ip addr add和ifconfig的区别看linux网卡ip地址的结构:http://blog.csdn.net/dog250/article/details/5303542/

尝试在跳转机通过telnet命令(
telnet 192.XXX.XXX.XXX YYYY
)登陆SLB节点的A节点(为方便叙述,今后指到的SLB节点均是指其中的A节点),发现无法连接,查看SLB节点发现telnet服务未正常开启,于是根据下面的文章,开启了telnet服务。

如何启动linux的telnet服务:http://www.cnblogs.com/liuyou/archive/2011/10/17/2214498.html

之后继续尝试使用跳转机通过telnet命令登陆SLB节点,发现仍然无法连接,于是尝试使用某个服务节点用telnet去连接SLB节点,这回有提示信息,要求输入用户名,说明SLB节点的telent服务正常启动。在SLB节点尝试使用tcpdump命令进行抓包(
tcpdump -i eth1 -nn port XXXX
),也发现当使用服务节点telent登陆时发现有请求包,使用跳转机节点登陆时未发现请求包。由此确定是跳转机和SLB节点之间通信异常。

但是问题仍然没有彻底解决,仍然存在下面的问题:

安装方式按理说能够保证各个小网见的机器的正常网路连接,为什么会出现访问异常的情况?

如果是网路异常,为什么重启几次后可能恢复正常?

指定端口,SLB节点和跳转机节点无法正常访问,为什么ping的时候可以正常ping通?而且可以双向ping通?

这些问题需要慢慢分析了。

注:为保护公司信息,文中的部分内容与实际情况有差异。

额外的参考链接:

Linux tcpdump命令详解: http://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html

超级详细Tcpdump 的用法: http://www.cnblogs.com/maifengqiang/p/3863168.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐