问题背景:
今天给客户那边搭建项目环境的时候出现了一个问题,客户提供了2个不同网段的ip用来放置我们的自助机(相当于客户端)和部署我们的服务(服务端)。IP地址是10.1.10.X/24和10.1.2.X/24。服务端部署好了,开放了8083端口,但是发现在客户端可以ping通服务端的ip,但是却不能telnet服务器的端口。客户现场有我们的同事在那边,我则是远程协助排查。
问题排查过程:
拿到问题之后一顿操作。
首先根据同事反馈的结果,客户端能够ping通,但是却无法进行telnet。这里做出判断应该是因为防火墙问题导致的,所以排查了服务器的防火墙状态。结果服务器的防火墙是关闭的状态。
[root@cqdsrmyy-uat-01 gateway-uat]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
[root@cqdsrmyy-uat-01 gateway-uat]#
因为网络环境是在医院,所以怀疑是不是因为医院内部的其他网络设备防火墙或者交换机上面的acl策略导致的。这个时候各种沟通联系了院方信息科的主任各种协调资源进行排查。其实查到这里,是因为自己走进了一个大误区。一是因为自己对院方的网络环境不了解,二是对院方人员的技能信不太过,三是没有将其他的可能性(自己可控的)都排查干净。
好在院方领导的大力支持,我在院方的另外2位人员的帮助下了解到了整个我所接触的项目的一个网络环境和服务器配置。网络环境的话其实不复杂,基本就是简单的3层网络,最上层一个防火墙,下面2个3层汇聚交换机接入,交换机光纤互通,防火墙主要控制下面2层网络的公网访问。可以说基本就是10.1.10.X/24和10.1.2.X/24是一根光纤连接了2台交换机做了一个最简单的局域网。而且中间没有任何的策略配置。
排查到这里就有点懵了。有点钻到牛角尖里面出不来了,始终认为是防火墙导致的问题,然后查了各种资料。因为服务器用的是虚拟化,一开始院方介绍说用的是vm,所以又怀疑是不是宿主机的防火墙导致的。联系到负责服务器配置的院方人员,发现和信息科主任提供的信息不一致,服务器使用的是超融合做的虚拟化,并不是普通的vm,是利用4台物理服务器安装搭建的超融合集群系统,这时候了解到没有配置超融合的防火墙管理之类的系统。所以排除了宿主机防火墙导致的问题。

就在这个时候中午吃饭的点了,同事来到旁边问了下我的情况,我简单描绘了一下,同事说可以telnet一下同区域的其他的服务器试试。因为之前也做过测试,其实是已经发现过10.1.10.X和10.1.2.242这台服务器的任意端口都是通的了。可是因为这台服务器10.1.2.242院方是做了特殊处理的,提供给我们的服务器10.1.2.X的网段就只有这一台是可以访问公网,所以就没有在对其他的ip进行测试了。经过同事提醒,我又拿另外2台服务器的Ip 10.1.2.245 10.1.2.246来测试,测试发现其他的服务器的端口是可以telnet通的。这时候就有点被同事一语点醒的感悟了。之前陷入了怪圈,对于环境的配置有误解,对于人员技能有怀疑。导致的问题排查的思路出现了偏崎。
这个时候猜测,可能是因为10.1.2.X区域出现了和两台设备同时配置了相同的ip导致了从10.1.10.X这个网段过来的ip虽然可以ping通,但是telnet不通。最终结果验证了这个想法,把原来分配给我们的10.1.2.241的服务器的IP地址更换成另外一个10.1.2.249后从10.1.10.X网段telnet,发现通了。
解决办法:
更换一个局域网内没有在使用的ip地址,然后ping原来的ip发现还是通的,这就说明了这个ip在局域网内不止它一个设备在使用啦。到此问题终于解决了。

结论总结、感悟:
这个问题其实并不复杂,而是人为的将问题复杂化掉了。很多时候排查问题的方法或者说路径,或者说可能性我们并没有全部通过实验结果来校验,往往只选择了一个或者一部分自己认知范围之内的方法来佐证了。这个时候你会认为是不是无解了。有时候甚至会自然的甩锅给和自己没有关系的另一方,因为人性都是利己的。但只要我们愿意在尝试一下,或者把问题和其他人分享一下,多尝试一种可能性也许问题就能够得到解决。
算是一种小感悟吧。工作中、生活中往往很多时候都会出现这样或者那样的问题,我们在通过这种或者那种办法去解决的时候发现问题依旧还在。于是我们就选择了放弃,或者将问题转移,缺少一种问题必须解决的决心会半途而废。我们不要做这样的人,在多一次尝试,在多一次沟通,再多一次分享也许问题就迎刃而解啦。
与君共勉~~