CN110730252A - 一种通过改造linux内核报文处理功能的地址转换方法 - Google Patents
一种通过改造linux内核报文处理功能的地址转换方法 Download PDFInfo
- Publication number
- CN110730252A CN110730252A CN201910908679.7A CN201910908679A CN110730252A CN 110730252 A CN110730252 A CN 110730252A CN 201910908679 A CN201910908679 A CN 201910908679A CN 110730252 A CN110730252 A CN 110730252A
- Authority
- CN
- China
- Prior art keywords
- port
- address
- address translation
- dns
- processing function
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1036—Load balancing of requests to servers for services different from user content provisioning, e.g. load balancing across domain name servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/663—Transport layer addresses, e.g. aspects of transmission control protocol [TCP] or user datagram protocol [UDP] ports
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种通过改造linux内核报文处理功能的地址转换方法,其原理是通过配置socket的IP_TRANSPARENT选项,设置DNS服务程序侦听所有的IP地址(包括非本机地址),再通过策略路由的方式将所有请求送至应用层进行正常解析,在回复用户时将源地址强制绑定为原DNS服务器的IP,端口信息则通过改造内核模块进行二次绑定,最终返回报文源IP地址为原DNS服务器,端口为53,完成透明的代理功能。利用内核模块本身的处理能力,无需维护巨大的地址转换表,从而提升了数据传输性能,解决了因网络地址转换的造成的DNS服务性能瓶颈问题。
Description
技术领域
本发明涉及互联网通信技术领域,尤其是涉及一种通过改造linux内核报文处理功能的地址转换方法。
背景技术
域名系统(Domain Name System,简称DNS)是互联网的基础设施和“神经中枢”系统,支撑着互联网的正常运转。保障域名系统的安全,是保障互联网安全的先决条件。为强化我国域名服务的安全性和稳定性,通过建设镜像DNS节点(根、顶级域、权威域等)的方式加强互联网域名的监测和安全管控。
镜像服务需要将请求消息的目的地址转换为镜像DNS节点,返回消息的源地址转换为原DNS服务器地址送至客户端。现有方案是通过NAT技术的来实现,具体过程如图1所示。
现有技术是利用NAT技术将请求的目的地址转换为镜像DNS节点,返回至终端用户时需要将源地址转换为DNS节点的地址。但DNS的请求量可达百万级QPS以上,基于NAT技术就需要在内存中维护一张巨大的NAT地址表,并进行频繁的读写操作,大大降低了发送数据的效率,导致大量的丢包,影响镜像DNS节点的服务性能。
发明内容
针对上述技术问题,本发明提供了一种基于传输层信息控制的地址和端口转换方式,利用内核模块本身的处理能力,无需维护巨大的地址转换表,从而提升了数据传输性能,解决了因网络地址转换的造成的DNS服务性能瓶颈问题。
本方案的原理是通过配置socket的IP_TRANSPARENT选项,设置DNS服务程序侦听所有的IP地址(包括非本机地址),再通过策略路由的方式将所有请求送至应用层进行正常解析,在回复用户时将源地址强制绑定为原DNS服务器的IP,端口信息则通过改造内核模块进行二次绑定,最终返回报文源IP地址为原DNS服务器,端口为53,完成透明的代理功能。
步骤1:镜像节点配置socket的IP_TRANSPARENT选项,使服务程序监听所有的IP地址(包含非本机的IP)
步骤2:将镜像节点接收到的DNS请求消息策略路由至local,送至应用层;
步骤3:镜像节点服务程序正常解析;
步骤4:镜像节点将解析结果进行封装,强制绑定源IP为1.1.1.2,源端口为某个特定端口,如1181;
步骤5:通过自主研发的内核模块先将绑定的特定源端口1181强制修改为53;
步骤6:将封装好的消息返回至终端1.1.1.1。
本发明具有如下有益效果:
现有的NAT技术在解决了地址转换的问题,但随着DNS请求量的增大,维护NAT地址表会影响数据的传输效率,产生响应时延增大、丢包等现象,成为镜像DNS服务的性能瓶颈。
本发明技术方案通过改造linux的内核模块,在报文处理过程中完成地址和端口的绑定,减少地址转换的资源开销。具体有以下优势:
1、提高传输效率:通过自主研发的内核模块利用系统本身的报文处理过程实现高效的地址转换,无需维护巨大的NAT地址表,减少了系统资源的消耗,降低时延,提升了数据的传输效率
2、提升镜像DNS的服务性能:同等配置下,镜像DNS服务性能从10万QPS提升至百万级QPS。
附图说明
图1为现有技术中的源地址转换方法流程示意图;
图2为本发明源地址转换方法流程示意图。
具体实施方式
现将结合附图对本发明的技术方案进行完整的描述。以下描述仅仅是本发明的一部分实施案例而已,并非全部。基于本发明中的实施案例,本领域技术人员在没有作出创造性劳动的前提下所获得的所有其他实施案例,都属于本发明的权利保护范围之内。
本提案的关键点是提出一种通过改造linux内核模块在报文处理过程中完成非本机IP地址和端口的绑定,最终实现镜像DNS的正常应答。本提案也适用于有相同地址转换业务需求的场景,本提案欲保护的点如下:
1、本提案提出利用socket的IP_TRANSPARENT配置侦听所有IP的消息,并通过策略路由的方式将非发往本机的请求送至应用层。
2、本提案中的返回消息则是将源IP强制bind为原DNS服务器IP地址
3、53端口已被DNS服务占用,本提案中通过内核模块处理,先绑定一个特定的端口号,再通过二次绑定,将特定端口修改为53,将返回消息发送至终端。
实施例1
本方案的原理是通过配置socket的IP_TRANSPARENT选项,设置DNS服务程序侦听所有的IP地址(包括非本机地址),再通过策略路由的方式将所有请求送至应用层进行正常解析,在回复用户时将源地址强制绑定为原DNS服务器的IP,端口信息则通过改造内核模块进行二次绑定,最终返回报文源IP地址为原DNS服务器,端口为53,完成透明的代理功能。
步骤1:镜像节点配置socket的IP_TRANSPARENT选项,使服务程序监听所有的IP地址(包含非本机的IP)
步骤2:将镜像节点接收到的DNS请求消息策略路由至local,送至应用层
步骤3:镜像节点服务程序正常解析
步骤4:镜像节点将解析结果进行封装,强制绑定源IP为1.1.1.2,源端口为某个特定端口,如1181,当前这台机器的53端口已经被占用,无法绑定给1.1.1.2,所以需要先绑定一个特定端口,这个端口可以自定义,只要不冲突。
步骤5:通过自主研发的内核模块先将绑定的特定源端口1181强制修改为53,自主研发的内核模块为DnsPortAssignment.ko,该模块就是将这个特定的源端口强制修改为53后送出,53端口为DNS协议的端口号,必须是这个53端口号,终端才能识别。本身linux内核没有这个功能。
这个内核模块完成的功能为绑定特定的端口,再送出前再修改为53,
步骤6:将封装好的消息返回至终端1.1.1.1。
以上实施例仅供说明本发明之用,而非对本发明的限制,有关技术领域的技术人员,在不脱离本发明的精神和范围的情况下,所作出各种变换或变型,均属于本发明的范畴。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前下,本发明还会有各种变化和改进,本发明要求保护范围由所附的权利要求书、说明书及其等效物界定。
Claims (3)
1.一种通过改造linux内核报文处理功能的地址转换方法,其特征在于,所述地址转换方法包括以下步骤:
步骤1:镜像节点配置socket的IP_TRANSPARENT选项,使服务程序监听所有的IP地址;
步骤2:将镜像节点接收到的DNS请求消息策略路由至local发送至应用层;
步骤3:镜像节点服务程序正常解析;
步骤4:镜像节点将解析结果进行封装,绑定源IP为1.1.1.2、源端口为特定端口;
步骤5:先将绑定的特定源端口强制修改为指定编号;
步骤6:将封装好的消息返回至发送DNS请求终端。
2.根据权利要求1所述的一种通过改造linux内核报文处理功能的地址转换方法,其特征在于,
所述步骤5,通过内核模块来执行,所述内核模块为:DNS端口赋值内核模块。
3.根据权利要求1所述的一种通过改造linux内核报文处理功能的地址转换方法,其特征在于,
所述步骤4中的特定源端口指1181,所述步骤5中,特定源端口1181强制修改为53。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910908679.7A CN110730252A (zh) | 2019-09-25 | 2019-09-25 | 一种通过改造linux内核报文处理功能的地址转换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910908679.7A CN110730252A (zh) | 2019-09-25 | 2019-09-25 | 一种通过改造linux内核报文处理功能的地址转换方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110730252A true CN110730252A (zh) | 2020-01-24 |
Family
ID=69218340
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910908679.7A Pending CN110730252A (zh) | 2019-09-25 | 2019-09-25 | 一种通过改造linux内核报文处理功能的地址转换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110730252A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1512377A (zh) * | 2002-12-31 | 2004-07-14 | 联想(北京)有限公司 | 基于内核中套接字对接的第七层负载均衡的方法 |
CN1968227A (zh) * | 2006-06-29 | 2007-05-23 | 华为技术有限公司 | 一种无线接入网关支持透明代理的系统及方法 |
EP2096806A1 (de) * | 2008-02-26 | 2009-09-02 | Fachhochschule Giessen-Friedberg | Verfahren und Kommunikationssystem zur Realisierung von IP transparenten drahtlosen, multi-hop Maschennetzwerken mit Mobilitätsunterstützung |
CN102185936A (zh) * | 2011-06-23 | 2011-09-14 | 上海牙木通讯技术有限公司 | 一种基于linux操作系统的DNS服务系统和方法 |
CN105391813A (zh) * | 2015-10-13 | 2016-03-09 | 北京极科极客科技有限公司 | 一种socks透明代理的方法及装置 |
CN106330708A (zh) * | 2016-08-18 | 2017-01-11 | 中国科学院计算技术研究所 | 一种本地dns服务的系统和方法 |
CN109314724A (zh) * | 2016-08-09 | 2019-02-05 | 华为技术有限公司 | 云计算系统中虚拟机访问物理服务器的方法、装置和系统 |
CN109561172A (zh) * | 2019-01-29 | 2019-04-02 | 迈普通信技术股份有限公司 | 一种dns透明代理方法、装置、设备及存储介质 |
US20190207850A1 (en) * | 2017-12-29 | 2019-07-04 | Nfware, Inc. | Method for processing packets using alg dns |
-
2019
- 2019-09-25 CN CN201910908679.7A patent/CN110730252A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1512377A (zh) * | 2002-12-31 | 2004-07-14 | 联想(北京)有限公司 | 基于内核中套接字对接的第七层负载均衡的方法 |
CN1968227A (zh) * | 2006-06-29 | 2007-05-23 | 华为技术有限公司 | 一种无线接入网关支持透明代理的系统及方法 |
CN101406008A (zh) * | 2006-06-29 | 2009-04-08 | 华为技术有限公司 | 一种无线接入网关支持透明代理的方法、装置及系统 |
EP2096806A1 (de) * | 2008-02-26 | 2009-09-02 | Fachhochschule Giessen-Friedberg | Verfahren und Kommunikationssystem zur Realisierung von IP transparenten drahtlosen, multi-hop Maschennetzwerken mit Mobilitätsunterstützung |
CN102185936A (zh) * | 2011-06-23 | 2011-09-14 | 上海牙木通讯技术有限公司 | 一种基于linux操作系统的DNS服务系统和方法 |
CN105391813A (zh) * | 2015-10-13 | 2016-03-09 | 北京极科极客科技有限公司 | 一种socks透明代理的方法及装置 |
CN109314724A (zh) * | 2016-08-09 | 2019-02-05 | 华为技术有限公司 | 云计算系统中虚拟机访问物理服务器的方法、装置和系统 |
CN106330708A (zh) * | 2016-08-18 | 2017-01-11 | 中国科学院计算技术研究所 | 一种本地dns服务的系统和方法 |
US20190207850A1 (en) * | 2017-12-29 | 2019-07-04 | Nfware, Inc. | Method for processing packets using alg dns |
CN109561172A (zh) * | 2019-01-29 | 2019-04-02 | 迈普通信技术股份有限公司 | 一种dns透明代理方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
DOG250: "socket的IP_TRANSPARENT选项实现代理", 《HTTPS://BLOG.CSDN.NET/DOG250/ARTICLE/DETAILS/7518054/》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8898331B2 (en) | Method, network and computer program for processing a content request | |
CN106850324B (zh) | 虚拟网络接口对象 | |
US7024479B2 (en) | Filtering calls in system area networks | |
US7734795B2 (en) | Translating switch and method | |
US20160080483A1 (en) | Method for setting gateway device identity, and management gateway device | |
JP6001790B2 (ja) | 固定アクセスネットワークとueとにおける動作方法 | |
KR20140057553A (ko) | 가상화된 네트워크와 비-가상화된 네트워크 간 가상화 게이트웨이 | |
WO2011059770A2 (en) | Smart client routing | |
WO2016134624A1 (zh) | 路由方法、装置及系统、网关调度方法及装置 | |
US11799827B2 (en) | Intelligently routing a response packet along a same connection as a request packet | |
CN111010340B (zh) | 数据报文转发控制方法、装置及计算装置 | |
CN102572012B (zh) | 一种消息处理方法、交换机及系统 | |
US11201915B1 (en) | Providing virtual server identity to nodes in a multitenant serverless execution service | |
CN109450768B (zh) | 容器互联的方法及用于容器互联的系统 | |
CN112968965B (zh) | Nfv网络节点的元数据服务方法、服务器及存储介质 | |
US20120300776A1 (en) | Method for creating virtual link, communication network element, and ethernet network system | |
WO2021121040A1 (zh) | 一种宽带接入的方法、装置、设备和存储介质 | |
US11122131B1 (en) | Edge cloud resource location using enhanced DNS service | |
CN112583655B (zh) | 数据传输方法、装置、电子设备及可读存储介质 | |
CN102833287B (zh) | 分布式文件系统及分布式文件系统中访问数据资源的方法 | |
US9929951B1 (en) | Techniques for using mappings to manage network traffic | |
CN114338832B (zh) | 一种容器云平台的网络协议转换方法及系统 | |
US10791088B1 (en) | Methods for disaggregating subscribers via DHCP address translation and devices thereof | |
CN114070637B (zh) | 基于属性标签的访问控制方法、系统、电子设备及存储介质 | |
US20220269411A1 (en) | Systems and methods for scalable shared memory among networked devices comprising ip addressable memory blocks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200124 |
|
RJ01 | Rejection of invention patent application after publication |