一个由于网络问题导致的服务无法使用——调试过程总结
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命令(
如何启动linux的telnet服务:http://www.cnblogs.com/liuyou/archive/2011/10/17/2214498.html
之后继续尝试使用跳转机通过telnet命令登陆SLB节点,发现仍然无法连接,于是尝试使用某个服务节点用telnet去连接SLB节点,这回有提示信息,要求输入用户名,说明SLB节点的telent服务正常启动。在SLB节点尝试使用tcpdump命令进行抓包(
但是问题仍然没有彻底解决,仍然存在下面的问题:
安装方式按理说能够保证各个小网见的机器的正常网路连接,为什么会出现访问异常的情况?
如果是网路异常,为什么重启几次后可能恢复正常?
指定端口,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
邮箱: 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
相关文章推荐
- 使用复制存储过程执行解决“事务复制中的表大量更新导致无法及时同步”的问题
- 网络充值支付过程游戏公司如何防止由于页面多次刷新导致重复提交数据导致多次充值的问题
- 由于NFS服务没有启动,导致XenServer 6.5无法连接NAS存储问题的解决方法
- 数据库的使用过程中由于程序方面的问题有时候会碰到重复数据,重复数据导致了数据库部分设置不能正确设置……
- 使用druid数据源,由于网络问题导致oracle SocketInputStream.socketRead0堵塞解决办法
- 一个由于文件权限问题导致的SQL Server 2008 无法正常启动的问题
- MySQL安装过程中,使用net start mysql命令,出现 服务正在启动 服务无法启动 服务没有报告任何错误 的问题
- 任何国家都无法限制数字货币。为什么呢? 要想明白这个问题需要具备一点区块链的基础知识: 区块链使用的大致技术包括以下几种: a.点对点网络设计 b.加密技术应用 c.分布式算法的实现 d.数据存储技术 e.拜占庭算法 f.权益证明POW,POS,DPOS 原因一: 点对点网络设计 其中点对点的P2P网络是bittorent ,由于是点对点的网络,没有中心化,因此在全球分布式的网
- paping使用来测试联通&网站由于tcp协议导致的无法通信问题超时问题
- 任何国家都无法限制数字货币。为什么呢? 要想明白这个问题需要具备一点区块链的基础知识: 区块链使用的大致技术包括以下几种: a.点对点网络设计 b.加密技术应用 c.分布式算法的实现 d.数据存储技术 e.拜占庭算法 f.权益证明POW,POS,DPOS 原因一: 点对点网络设计 其中点对点的P2P网络是bittorent ,由于是点对点的网络,没有中心化,因此在全球分布式的网
- paping使用来测试联通&网站由于tcp协议导致的无法通信问题超时问题
- 由于使用了一个未经验证的清除垃圾文件的程序,导致Oracle数据库无法接(能启动),系统报错:
- 关于mysql中由于类型转换导致索引无法使用的问题
- 使用复制存储过程执行解决“事务复制中的表大量更新导致无法及时同步”的问题 (转)
- 一个rac问题分析过程由于进程资源不足导致的问题
- 如何解决由于服务过多或异常导致ArcGIS Server 无法正常运行的问题
- 使用复制存储过程执行解决“事务复制中的表大量更新导致无法及时同步”的问题
- 使用dubbo注解@Service注册服务后使用aop或者申明式事物导致无法注册的问题解决办法
- 修改Linux内核导致网络无法使用问题解决
- Ajax错误 “SCRIPT7002: XMLHttpRequest: 网络错误 0x2ef3, 由于出现错误 00002ef3 而导致此项操作无法完成” 的归纳总结