当前位置: 首页 > news >正文

内网服务器无法通过公网地址访问映射到公网的内网服务

内网服务器无法通过公网地址访问映射到公网的内网服务

    • 问题现象
    • 问题原因
    • 解决方法
    • 总结

前几天遇到一个网络问题,在这里做下记录,希望能帮助到有相同问题的朋友。

问题现象

网络拓扑示意
网络拓扑如上所示,服务器1和服务器2在同一内网,网段均为192.168.101.0/24,出口防火墙上有一个固定公网ip,地址是124.5.5.5。
服务器1上运行了一个业务系统,地址是192.168.101.111:80,然后在出口防火墙上做了映射,将其映射到了124.5.5.5:10080,此时,外部网络环境中可以正常访问124.5.5.5:10080,但是在内网环境中,如服务器2上,无法访问124.5.5.5:10080。也就是说内网服务器上无法通过映射后的公网地址访问内网服务。

问题原因

分析一下ip报文流转过程中的源目地址变化,就可以发现问题所在。
源目地址变化
服务器2访问124.5.5.5:10080时,源地址192.168.101.222目的地址124.5.5.5;
报文到达出口防火墙后,会做一次地址转换,将目的地址转换为内网地址192.168.101.111,此时源地址192.168.101.222目的地址192.168.101.111;
报文一步步到达服务器1后,服务器1做出响应,源目地址转换,此时源地址192.168.101.111目的地址192.168.101.222;
这时候,服务器1发现目的地址为同网段,报文会由服务器1通过接入交换机直接发送给服务器2;
服务器2检查报文,发现源地址是192.168.101.111,并没有与之匹配的会话(服务器2发送出去的报文目的地址是124.5.5.5),此时服务器2会丢弃这个报文,这就导致了访问不通。

解决方法

要解决这个问题,只需要使得服务器1收到的ip报文中,源地址为公网地址124.5.5.5即可,这样的话,服务器1回复的报文就变为源地址192.168.101.111目的地址124.5.5.5,报文会经过防火墙后再回到服务器2,完成整个通信过程。
要实现以上操作,只需要在防火墙上配置一条源NAT,将源目网段192.168.101.0/24的报文,源地址转换为124.5.5.5,并将该条SNAT应用到防火墙与核心交换机相连的那个接口上。

总结

做完以上配置后,服务器2(192.168.101.222)通过124.5.5.5:10800访问服务器1(192.168.101.111:80)时,网络流量的流转及地址变化如下:

1.数据包从S2发出
源地址:192.168.101.222:随机端口(假设为54321)
目的地址:124.5.5.5:10800
路径:S2 → 接入交换机 → 汇聚交换机→ 核心交换机 → 防火墙(内网接口)

2.防火墙处理(入口方向)
a.目的NAT(DNAT)
规则:将 124.5.5.5:10800映射到192.168.101.111:80
转换后数据包:
源地址:192.168.101.222:54321
目的地址:192.168.101.111:80
b. 源NAT(SNAT)
规则:源目均为192.168.101.0/24的流量,源地址转换为124.5.5.5
转换后数据包:
源地址:124.5.5.5:54321(端口可能保持不变或变化)
目的地址:192.168.101.111:80
路径:防火墙 → 核心交换机→ 汇聚交换机 → 接入交换机 → S1

3.S1 处理请求并响应
接收的数据包:
源地址:124.5.5.5:54321
目的地址:192.168.101.111:80
响应数据包:
源地址:192.168.101.111:80
目的地址:124.5.5.5:54321
路径:S1 → 接入交换机 → 汇聚交换机→ 核心交换机 → 防火墙(内网接口)

4.防火墙处理(出口方向)
反向NAT(基于连接跟踪):
反向DNAT:将目的地址124.5.5.5:54321还原为192.168.101.222:54321
反向SNAT:将源地址192.168.101.111:80还原为124.5.5.5:10800
转换后响应包:
源地址:124.5.5.5:10800
目的地址:192.168.101.222:54321
路径:防火墙 → 核心交换机 → 汇聚交换机 → 接入交换机 → S2

5.S2 接收响应
最终数据包:
源地址:124.5.5.5:10800
目的地址:192.168.101.222:54321
S2 视角:认为与124.5.5.5:10800通信成功,整个过程透明

相关文章:

  • SQL问题分析与诊断(8)——关键信息(1)
  • E5071C数据保存教程:SNP文件/CSV导出+远程传输步骤一键收藏
  • 蓝桥与力扣刷题(蓝桥 最少刷题数)
  • 2025企业级项目设计三叉戟:权限控制+错误监控+工程化提效实战指南
  • 手动搭建并配置react项目(webpack5)
  • 运筹说 第134期 | 矩阵对策的解法
  • 故障识别 | 基于改进螂优化算法(MSADBO)优化变分模态提取(VME)结合稀疏最大谐波噪声比解卷积(SMHD)进行故障诊断识别,matlab代码
  • 深度学习Note.4(机器学习实践)
  • C++细节知识for面试
  • C 语言常用关键字详解:static、const、volatile
  • 对于后端已经实现逻辑了,而前端还没有设置显示的改造
  • LLM 优化技术(2)——paged_attention 原理
  • 进程间通信—system v标准
  • leetcode102 二叉树的层次遍历 使用队列实现二叉树广度优先遍历
  • vue2、vue3项目中遇到的问题总结(一)
  • 【网络协议】【http】http 简单介绍
  • vue-cli工具build测试与生产包对css处理的不同
  • PDF 文本提取为何如此困难?– 原因和解决方案
  • 如何破解软件自动化测试框架的维护难题
  • 跨境电商生死存亡:AI反检测技术是否能为卖家保驾护航?
  • 网站备案密码是什么样的/西安seo主管
  • 渭南网站建设seo/百度提交网站入口
  • 上海制作企业网站/品牌运营策略有哪些
  • 网站建设茂名/aso排名优化知识
  • wordpress配置全站https/seo公司seo教程
  • 山东住房和城乡建设厅网站电话/百度一下百度搜索百度