网络架构
网络环境
内网Web Server 和 Ftp Server 需要将端口映射到公网 221.6.78.169 对外提供服务,其中Web 主机IP:192.168.1.12 端口443;Ftp 主机IP:192.168.99.51 端口8099;
出口边界设备为天融信防火墙,防火墙配置目标地址转换
① 221.6.78.169:443映射192.168.1.12:443;
② 221.6.78.169:8099映射192.168.99.51:8099;
数据访问情况
通过其他运营商公网访问Web 和Ftp 服务器的公网映射服务端口正常,但在内网访问 221.6.78.169 公网映射服务端口异常。
访问异常分析(Ftp 服务为例)
①客户端 192.168.99.201 访问公网221.6.78.169:8099 ,数据通过核心交换机的缺省路由转发到边界防火墙;
②边界防火墙收到源地址为192.168.99.201目标地址为221.6.78.169目标端口为8099的请求,防火墙查看自身目的地址转换条目访问:221.6.78.169:8099映射192.168.99.51:8099;客户端192.168.99.201 的请求数据通过防火墙转发到Web 服务器192.168.99.51;
③Web 服务器192.168.99.51 收到源地址为192.168.99.201目标地址192.168.99.51:8099 的请求,进行数据回复,源地址192.168.99.51 目标地址192.168.99.201,同一网段数据访问通过核心交换机二层网络通信;
④客户端192.168.99.201 收到192.168.99.51回复的数据包查看和请求的数据包不一致(客户端请求的目的地址为221.6.78.169),丢弃数据;
tcpdump 抓包(客户端)
代码语言:javascript复制tcpdump -i ens192 tcp port 8099 and src host 192.168.99.51 -nn
解决办法
通过双向地址转换进行NAT数据回流
双向地址过程
①客户端 192.168.99.201 访问公网221.6.78.169:8099 ,数据通过核心交换机缺省路由转发到边界防火墙;
②边界防火墙收到源地址为192.168.99.201目标地址为221.6.78.169目标端口为8099 Request 并查看防火墙配置的地址转换 双向转换条目,将源地址192.168.99.201替换为10.0.3.2目标地址221.6.78.169:8099转发192.168.99.51:8099;转换后数据通过防火墙转发到Web 服务器192.168.99.51:8099;
③Web 服务器收到源地址为10.0.3.2目标地址192.168.99.51:8099 的请求,数据包返回源地址192.168.99.51 目标地址10.0.3.2;
④防火墙收到Web 服务器的回复后将源地址10.0.3.2替换成为192.168.99.201,客户端192.168.99.201 收到源地址为221.6.78.169:8099目的地址为192.168.99.201的回复,访问正常;
tcpdump 抓包(Ftp 服务器)
代码语言:javascript复制tcpdump -i ens192 tcp port 8099
问题
由于配置双向地址转换,所有访问公网映射服务端口主机的源地址都会被替换成10.0.3.2访问目标服务器 ,被映射的服务器在访问日志中无法查看到真正的访问本机的源地址从而无法进行数据分析等工作,解决办法在进行地址映射时添加两条映射规则①匹配源地址为内网的网段进行双向地址转换 ②排除内网网段地址进行目的地址转换;