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

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介:

相信大家在做链路均衡相关的项目中,往往会碰到用户有如下要求:对于内网服务器向外发布的域名,除了让公网用户来访问之外,内网用户也同样用域名方式来访问服务器。但是内网用户的访问往往会出问题,当公网用户用域名正常访问的时候,内网用户却访问不了应用,这是什么原因呢?我们来逐一分析两种情况。
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博客,原文链接:http://blog.51cto.com/virtualadc/723231

相关文章
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
Hugging Face 论文平台 Daily Papers 功能全解析
【9月更文挑战第23天】Hugging Face 是一个专注于自然语言处理领域的开源机器学习平台。其推出的 Daily Papers 页面旨在帮助开发者和研究人员跟踪 AI 领域的最新进展,展示经精心挑选的高质量研究论文,并提供个性化推荐、互动交流、搜索、分类浏览及邮件提醒等功能,促进学术合作与知识共享。
|
12天前
|
安全 Java 测试技术
🎉Java零基础:全面解析枚举的强大功能
【10月更文挑战第19天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
97 60
|
30天前
|
Web App开发 前端开发 测试技术
Selenium 4新特性解析:关联定位器及其他创新功能
【10月更文挑战第6天】Selenium 是一个强大的自动化测试工具,广泛用于Web应用程序的测试。随着Selenium 4的发布,它引入了许多新特性和改进,使得编写和维护自动化脚本变得更加容易。本文将深入探讨Selenium 4的一些关键新特性,特别是关联定位器(Relative Locators),以及其他一些重要的创新功能。
126 2
|
8天前
|
供应链 安全 BI
CRM系统功能深度解析:为何这些平台排名靠前
本文深入解析了市场上排名靠前的CRM系统,如纷享销客、用友CRM、金蝶CRM、红圈CRM和销帮帮CRM,探讨了它们在功能性、用户体验、集成能力、数据安全和客户支持等方面的优势,以及如何满足企业的关键需求,助力企业实现数字化转型和业务增长。
|
13天前
|
数据管理 Nacos 开发者
"Nacos架构深度解析:一篇文章带你掌握业务层四大核心功能,服务注册、配置管理、元数据与健康检查一网打尽!"
【10月更文挑战第23天】Nacos 是一个用于服务注册发现和配置管理的平台,支持动态服务发现、配置管理、元数据管理和健康检查。其业务层包括服务注册与发现、配置管理、元数据管理和健康检查四大核心功能。通过示例代码展示了如何在业务层中使用Nacos,帮助开发者构建高可用、动态扩展的微服务生态系统。
47 0
|
2月前
|
移动开发 Android开发 数据安全/隐私保护
移动应用与系统的技术演进:从开发到操作系统的全景解析随着智能手机和平板电脑的普及,移动应用(App)已成为人们日常生活中不可或缺的一部分。无论是社交、娱乐、购物还是办公,移动应用都扮演着重要的角色。而支撑这些应用运行的,正是功能强大且复杂的移动操作系统。本文将深入探讨移动应用的开发过程及其背后的操作系统机制,揭示这一领域的技术演进。
本文旨在提供关于移动应用与系统技术的全面概述,涵盖移动应用的开发生命周期、主要移动操作系统的特点以及它们之间的竞争关系。我们将探讨如何高效地开发移动应用,并分析iOS和Android两大主流操作系统的技术优势与局限。同时,本文还将讨论跨平台解决方案的兴起及其对移动开发领域的影响。通过这篇技术性文章,读者将获得对移动应用开发及操作系统深层理解的钥匙。
|
23天前
|
Web App开发 存储 前端开发
前端开发必备:requestAnimationFrame、setInterval、setTimeout——功能解析与优劣对比
前端开发必备:requestAnimationFrame、setInterval、setTimeout——功能解析与优劣对比
93 0
|
2月前
|
存储 自然语言处理 搜索推荐
外汇CRM系统的关键特点及功能解析
Zoho CRM外汇系统提供全面客户管理,涵盖信息记录、交易历史等,提升个性化服务水平。系统界面直观易用,支持自定义,数据分析实时,助决策精准。具备高安全性,多系统整合能力强,自动化功能提高效率,支持多语言,适用于全球市场,配备专业客户支持与培训,助力外汇企业优化流程,增强客户满意度,在竞争中领先。
52 1
|
27天前
|
前端开发 JavaScript Shell
深入解析前端构建利器:webpack核心概念与基本功能全览
深入解析前端构建利器:webpack核心概念与基本功能全览—
23 0

相关产品

  • 云解析DNS
  • 推荐镜像

    更多
    下一篇
    无影云桌面