一种实现多条上网通道DNS数据隔离的方法与流程

文档序号:27320090发布日期:2021-11-10 00:31阅读:211来源:国知局
一种实现多条上网通道DNS数据隔离的方法与流程
一种实现多条上网通道dns数据隔离的方法
技术领域
1.本发明涉及dns数据管理领域,具体是一种实现多条上网通道dns数据隔离的方法。


背景技术:

2.dns(domain name system,域名系统)是互联网的一项服务。它作为将域名和ip地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。
3.dnsmasq是一个轻巧的,容易使用的dns服务工具,它可以应用在内部网和internet连接的时候的ip地址nat转换,也可以用做小型网络的dns服务。
4.利用dnsmasq实现家庭网关下挂设备访问互联网的dns服务,其过程是:家庭网关下挂设备发送dns域名解析请求报文到家庭网关的dnsmasq服务,家庭网关的dnsmasq服务收到家庭网关下挂设备发送的dns域名解析请求报文。
5.首先,dnsmasq服务从家庭网关的dns缓存中查找之前已经访问的域名中有没有这次访问的域名,如果有,直接返回域名对应的ip地址到家庭网关的下挂设备;如果没有,然后dnsmasq服务从/etc/resolv.conf文件读取上游dns服务器地址,dnsmasq服务转发dns域名解析请求报文到上游dns服务器,上游dns服务器返回dns域名解析响应报文到dnsmasq服务,dnsmasq服务转发dns域名解析响应报文到家庭网关的下挂设备。
6.现有的dnsmasq dns查询方法中,dnsmasq从/etc/resolv.conf文件读取上游dns服务器地址,/etc/resolv.conf文件记录的是默认上网路由的dns服务器地址,家庭网关下挂设备访问外部网络,域名解析都从默认上网通道的dns服务器转发,这将限制运营商某些特定商业场景的应用和实现,不利于dns数据的管理,进而无法满足家庭网关多条上网通道dns数据的隔离。
7.本发明将提供一种实现多条上网通道dns数据隔离的方法来解决目前家庭网关多条上网通道dns数据没有隔离的问题


技术实现要素:

8.本发明的目的在于提供一种实现多条上网通道dns数据隔离的方法,以解决当家庭网关配置多条上网通道,家庭网关的多个lan端口分别绑定到不同的上网路由wan连接,lan侧下挂设备访问外部网络,域名解析都从默认上网路由wan的dns转发,导致运营商某些特定商业场景的应用无法实现,不易于管理的问题。
9.为实现上述目的,本发明提供如下技术方案:
10.一种实现多条上网通道dns数据隔离的方法,该方法包括如下步骤:
11.步骤一、家庭网关上电,根据设备的配置信息初始化配置文件,然后启动dnsmasq服务,dnsmasq服务读取配置文件,检索配置文件的信息并记录相关的信息到数据存储链表;dnsmasq服务数据链表存放的是lan侧下挂设备的ip地址和其绑定到上网路由wan的dns服务器地址的对应关系。
12.步骤二、家庭网关下挂设备访问外部网络,下挂设备发送dns域名解析请求报文到设备的dnsmasq服务。
13.步骤三、设备的dnsmasq服务首先从设备的dns缓存中查找之前已经访问的域名中有没有这次访问的域名。
14.步骤四、如果设备的dns缓存中有查找到访问的域名,设备的dnsmasq服务直接返回域名对应的ip地址到下挂设备。
15.步骤五、如果设备的dns缓存中没有查找到访问的域名,设备的dnsmasq服务从收到的dns域名查询请求报文中提取查询报文的原ip地址。
16.步骤六、设备的dnsmasq服务根据dns域名查询请求报文中的原ip地址,从数据存储链表中读取该ip地址对应的上游dns服务器地址。
17.步骤七、设备的dnsmasq服务转发dns域名解析请求报文到上游dns服务器;上游dns服务器返回dns响应报文到dnsmasq服务,dnsmasq服务转发dns响应报文到下挂设备,实现家庭网关下挂设备的dns域名解析请求从绑定的上网路由wan的dns服务器转发。
18.实现本发明方法,需要家庭网关包括三个主要的功能模块:业务配置模块,进程管理模块,消息处理模块。
19.业务配置模块:当家庭网关上电,业务配置模块会初始化配置文件;当家庭网关lan侧下挂设备上下线或者设备的上网通道发生了变化,业务配置模块会更新配置文件;业务配置模块会查找上网路由wan绑定的下挂设备的端口,根据下挂设备的端口名称利用linux brctl命令查找mac表,从mac表中查找到端口名称对应的下挂设备的mac地址,然后根据下挂设备的mac地址利用ip的neigh命令查找mac地址对应的ip地址,记录查找到的ip地址和绑定到上网路由wan的dns服务器地址到配置文件;当配置文件发生了改变,业务配置模块会通过消息通知的机制发送消息到进程管理模块。
20.进程管理模块:进程管理模块会持续监听发送到此模块的消息,当进程管理模块收到消息时,进程管理模块会查看有哪些进程注册了这个消息,向注册了这个消息的进程转发消息。
21.消息处理模块:即dnsmasq服务,dnsmasq服务收到配置文件更新消息会重新读取配置文件,解析配置文件的数据,更新数据存储链表,使新的配置能够及时生效。
22.本发明的方法通过记录下挂设备的ip地址和绑定到上网路由wan的dns地址到配置文件,网关收到下挂设备的dns请求,dnsmasq服务根据下挂设备的ip地址查找数据存储链表中对应的dns服务器地址,实现lan侧下挂设备的dns请求从绑定的上网路由wan的dns服务器转发。
23.与现有技术相比,本发明的优点是:
24.1.基于现有的dnsmasq服务,通过记录配置文件的形式,dnsmasq服务方便读取且易于维护。
25.2.下挂设备的dns请求可以从绑定的上网路由wan的dns服务器转发,实现了不同上网通道的dns数据隔离,能够满足运营商在某些特定商业场景的应用和实现。
附图说明
26.图1为本发明dns数据隔离数据存储链表初始化的流程示意图。
27.图2为本发明dns数据隔离dnsmasq服务处理下挂设备的dns请求流程示意图。
28.图3为本发明的dns数据隔离功能模块框架图。
29.图4为本发明实施例中的配置文件的数据内容对应结构图。
30.图5为本发明实施例中配置文件与dnsmasq数据链表的对应关系图。
具体实施方式
31.下面结合具体实施方式对本专利的技术方案作进一步详细地说明。
32.请参阅图1

3,一种实现多条上网通道dns数据隔离的方法,该方法包括如下步骤:
33.步骤s100~s104:家庭网关上电,根据设备的配置信息初始化配置文件,然后启动dnsmasq服务,dnsmasq服务读取配置文件,检索配置文件的信息并记录相关的信息到数据存储链表。
34.具体地配置文件存放的是家庭网关lan侧下挂设备的ip地址和对应于lan侧端口绑定到上网路由wan的dns服务器地址。因此,dnsmasq服务数据链表存放的是lan侧下挂设备的ip地址和其绑定到上网路由wan的dns服务器地址的对应关系。
35.步骤s200:家庭网关下挂设备访问外部网络,下挂设备发送dns域名解析请求报文到设备的dnsmasq服务。
36.步骤s201:设备的dnsmasq服务首先从设备的dns缓存中查找之前已经访问的域名中有没有这次访问的域名。
37.步骤s202:如果设备的dns缓存中有查找到访问的域名,设备的dnsmasq服务直接返回域名对应的ip地址到下挂设备。
38.步骤s203:如果设备的dns缓存中没有查找到访问的域名,设备的dnsmasq服务从收到的dns域名查询请求报文中提取查询报文的原ip地址。
39.步骤s204:设备的dnsmasq服务根据dns域名查询请求报文中的原ip地址,从数据存储链表中读取该ip地址对应的上游dns服务器地址。
40.步骤s205:设备的dnsmasq服务转发dns域名解析请求报文到上游dns服务器。上游dns服务器返回dns响应报文到dnsmasq服务,dnsmasq服务转发dns响应报文到下挂设备,实现家庭网关下挂设备的dns域名解析请求从绑定的上网路由wan的dns服务器转发。
41.具体地,实现该方法需要家庭网关包括三个主要的功能模块:业务配置模块,进程管理模块,消息处理模块。
42.业务配置模块s30:当家庭网关上电,业务配置模块会初始化配置文件;当家庭网关lan侧下挂设备上下线或者设备的上网通道发生了变化,业务配置模块会更新配置文件。业务配置模块会查找上网路由wan绑定的下挂设备的端口,根据下挂设备的端口名称利用linux brctl命令查找mac表,从mac表中查找到端口名称对应的下挂设备的mac地址,然后根据下挂设备的mac地址利用ip的neigh命令查找mac地址对应的ip地址,记录查找到的ip地址和绑定到上网路由wan的dns服务器地址到配置文件。
43.当配置文件发生了改变,业务配置模块会通过消息通知的机制发送消息到进程管理模块。
44.进程管理模块s31:进程管理模块会持续监听发送到此模块的消息,当进程管理模块收到消息时,进程管理模块会查看有哪些进程注册了这个消息,向注册了这个消息的进
程转发消息。
45.消息处理模块s32:即dnsmasq服务,dnsmasq服务收到配置文件更新消息会重新读取配置文件,解析配置文件的数据,更新数据存储链表,使新的配置能够及时生效。
46.该方法通过记录下挂设备的ip地址和绑定到上网路由wan的dns地址到配置文件,网关收到下挂设备的dns请求,dnsmasq服务根据下挂设备的ip地址查找数据存储链表中对应的dns服务器地址,实现lan侧下挂设备的dns请求从绑定的上网路由wan的dns服务器转发。
47.参考图4

5,其具体实施案例如下:
48.1.家庭网关配置有两条上网通道的路由wan连接,第一条上网通道绑定端口lan1,lan2,第二条上网通道绑定端口lan3,端口lan1和lan2分别下挂pc1和pc2,端口lan3下挂pc3。
49.2.第一条上网通道获取到的dns服务器的地址192.168.8.2,第二条上网通道获取到的dns服务器的地址192.168.8.3。
50.3.lan1下挂设备pc1通过家庭网关的dhcp服务器分配的地址192.168.1.2,lan2下挂的pc2通过家庭网关的dhcp服务器分配的地址192.168.1.3,lan3下挂的pc3通过家庭网关的dhcp服务器分配的地址192.168.1.4。
51.4.配置文件的数据以下面格式的内容记录:
52.lan1:192.168.1.2,192.168.1.3
53.wan1:192.168.8.2
54.lan2:192.168.1.4
55.wan2:192.168.8.3
56.5.dnsmasq服务存储的数据链表为下挂设备的ip地址和对应于上网路由wan的dns服务器地址的对应关系。
57.本发明根据家庭网关下挂设备绑定到上网路由wan的对应关系,利用下挂设备的端口名称调用linux brctl和ip neigh命令查找下挂设备的ip地址,并记录下挂设备的ip地址和绑定到上网路由wan的dns服务器地址到配置文件;采用小巧且方便配置的dnsmasq服务作为家庭网关的dns服务,dnsmasq服务能够根据下挂设备的ip地址转发dns域名解析请求到上游的dns服务器。
58.上面对本专利的较佳实施方式作了详细说明,但是本专利并不限于上述实施方式,在本领域的普通技术人员所具备的知识范围内,还可以在不脱离本专利宗旨的前提下作出各种变化。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1