一、问题描述客户把某个http业务映射到公网,内网通过公网访问时显示连接报错,内网正常。(如图所示)
二、客户拓扑 AD出口部署,AF、AC透明部署在核心交换机间,核心交换机下联服务器区域,服务器同时提供内外网的服务,AD配置双向地址转。(ps拓扑图画的一点丑) 三、排查过程 1、在内网通过公网访问业务时,在防火墙开启定向数据流分析,数据包定向直通也开启,发现业务还是无法访问,之后把访问者的源ip和目的地址转换后的服务器的ip加入到白名单中还是无法访问。但是从内网访问业务正常。(很离谱) 2、防火墙上直通并没有显示日志,下一个怀疑对象AC,也在AC上开启直通和加入全局排除地址之后还是无法访问,没办法在防火墙上抓包,抓包排查发现是tcp rst报文,查看具体的ipv4字段中的indentification参数中显示0x7051(28753),已经确定是防火墙进行拦截的。 3、经过进一步分析数据包走向,发现120.12.128.31(服务器地址)给192.168.100.3(AD内网口地址)发送rst包,如果是AD下面防火墙拦截应该相反的。经过和客户确定发现服务器侧还有一台防火墙,在服务器侧防火墙上加白访问业务正常。 四、总结 1、AF开启直通后没有日志,建议是在现场环境抓包分析,确认是否有拦截。 2、双向地址转换时,双向地址转换场景下注意在防火墙侧开启直通时需要注意源地址和目的地址,源地址是AD内网口地址,目的地址是服务器真实地址,例如 192.168.1.1访问220.180.33.60 业务经过AD进行双向地址转换源地址就是AD内网口地址,目的地址就是服务器真实地址,建议开启直通时经过AD双向地址转换前,和转换后的地址加入到白名单和开启定向数据流直通。 3、在分析数据包时注意是谁给谁发tcp RST报文,以客户的例举如果是AD下面的防火墙拦截 抓包应该显示是220.180.33.60给192.168.1.1 回复tcp RST报文 或者是AD内网口地址给服务器真实地址回复tcp RST报文。 |