服务器使用2000端口的诡异现象

1 前提

  最近新上一套服务,部署在DMZ区和内网区,使用的端口有很多,其中包括2000端口,并且使用F5设备承担应用的负载均衡功能

2 现象描述

  DMZ服务器可以telnet通内网的F5设备的负载端口,并且F5把请求已经转发到了内网的服务器上(在内网主机上可以看到F5的连接),但是发送HTTP的GET请求,会超时。

3 分析

  由于DMZ与内网互联经过了Cisco的防火墙和F5设备,排查难度较大,分析步骤如下:

  • F5设备转发了TCP的请求,因为TCP连接的确建立了。
  • F5设备的某些网络策略限制了HTTP协议,所以没有转发HTTP请求。     
  • Cisco防火墙转发了TCP的请求,因为TCP连接会经过防火墙。
  • Cisco防火墙阻断了HTTP协议,所以应用数据包没有到达F5设备。 
  • 应用服务器没有把包发向正确的网关   

4 见了鬼了

  通过抓包分析,确定F5设备策略没有问题,应用服务器路由也正确,故障点可能出现在Cisco防火墙上,经过抓包分析策略梳理,确定也没有策略阻止HTTP数据包。

5 处理

  本着设备不会骗人的这句话,想了很久,联想到Linux上某些端口是固定给某些服务使用的,比如ssh 22,ftp 20/21,等,Cisco防火墙会不会也有自己特定的服务?通过百度搜索相关资料,发现原来2000端口被用于思科的SCCP()。如果一个支持SCCP的思科网络访问端口2000的服务,会有如下提示

Firewalls tend to treat port 2000 as a special port and do some funny thing with the data.

  由于我们发送的非SCCP协议接受的数据包,所以被直接丢弃。

解决的办法固然有两种

  1. 关闭SCCP功能

  2. 更换服务器的端口

处于长远考虑,我们选择更换了服务端口。

6 总结

  由于对设备的特性不是太了解,所以浪费了很多时间,但是好在解决问题了。 哈哈

posted @ 2017-12-13 10:34  SpeicalLife  阅读(3086)  评论(0编辑  收藏  举报