内网DNS解析VPN网关联动实现云上访问云下资源

2024-02-27 16:36

本文主要是介绍内网DNS解析VPN网关联动实现云上访问云下资源,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

自建IDC和阿里云VPC分别属于两套网络环境,但部署在自建IDC和阿里云VPC内的业务都需要通过DNS解析进行业务间调用,并且分别管理两套数据不仅给运维工程师带来重复性工作的增加,同时也会产生数据一致性管理的风险,给业务带来很高的不确定性,所以需要在自建IDC和阿里云VPC共享DNS解析数据,来实现业务间能实时调用。本文章九河云将讲解如何实现云上内网解析访问云下DNS解析数据的方法。

image.png

解决方案

实现云上访问云下资源,可以通过3种解决方案实现。本文则主要为您详细说明方案一:通过解析器实现云上访问云下资源的操作步骤和验证方法。

方案一:通过解析器实现云上访问云下资源

  1. 通过SAG/专线/VPN等连接方式,将云上VPC与传统数据中心互联。本示例采用IPsec-VPN隧道方式。

方案二:通过修改云上服务器的LocalDns实现云上访问云下资源

  1. 通过SAG/专线/VPN等连接方式,将云上VPC与传统数据中心互联。本示例采用IPsec-VPN隧道方式。

  2. 通过修改云上服务器的LocalDNS,客户端发起直接向线下自建DNS服务器发起解析请求。

    vim /etc/resolv.conf
    #根据线下自建DNS实际IP修改下方nameserver
    nameserver 2.2.XX.XX
    nameserver 3.3.XX.XX

方案三:通过辅助DNS实现云上访问云下资源

  1. 通过SAG/专线/VPN等连接方式,将云上VPC与传统数据中心互联。本示例采用IPsec-VPN隧道方式。


  2. 开启辅助DNS通过辅助DNS将线下自建DNS的解析同步至云上进行解析。

重要

自建DNS建议使用Bind,目前辅助DNS对Windows DNS Server不提供完整支持。

通过转发管理实现云上访问云下资源

什么是转发管理?

转发管理通过创建域名转发规则和DNS出站终端节点,可将阿里云VPC下内网解析的DNS请求流量转发到外部DNS系统,能够有效解决混合云、云上&云下的业务间调用场景。

资源准备

  1. 使用阿里云服务器模拟线下IDC,然后通过Bind搭建自建DNS服务。

  2. 阿里云VPC侧VPN网关产品服务。

  3. 内网解析产品服务。

操作步骤

image

步骤一:创建VPN网关

完成以下操作,创建VPN网关。

  1. 登录专有网络管理控制台 。

  2. 在左侧导航栏,单击 网间互联 > VPN > VPN网关

  3. 在 VPN网关 页面,单击 创建VPN网关

  4. 在购买页面,根据实际需求配置VPN网关,然后单击 立即购买 完成支付。

  5. 返回VPN网关页面,查看创建的VPN网关。本示例VPC公网IP为:47.111.XX.XX。

说明

刚创建好的VPN网关的状态是准备中,约两分钟左右会变成正常状态。正常状态表明VPN网关完成了初始化,可以正常使用了。

步骤二:创建用户网关

完成以下操作,创建用户网关。

  1. 在左侧导航栏,单击 网间互联 > VPN > 用户网关

  2. 选择创建用户网关的地域

  1. 在 用户网关 页面,单击 创建用户网关 。

  2. 在 创建用户网关 页面,根据以下信息配置用户网关,然后单击 确定

  • 名称:输入用户网关的名称。

  • IP地址:输入VPC要连接的本地数据中心网关设备的公网IP。本示例模拟自建IDC的IP为:223.5.XX.XX。

  • 描述:输入用户网关的描述信息。

步骤三:创建IPsec连接

完成以下操作,创建IPsec连接。

  1. 在左侧导航栏,单击 网间互联 VPN > IPsec连接

  2. 选择创建IPsec连接的地域。

  3. 在 IPsec连接 页面,单击 创建IPsec连接

  4. 在 创建IPsec连接 页面,根据以下信息配置IPsec连接,然后单击确定

  • 名称:输入IPsec连接的名称。

  • VPN网关: 选择已创建的VPN网关。

  • 用户网关:选择要连接的用户网关。

  • 本端网段:输入已选VPN网关所属VPC的网段。本示例为:172.25.0.0/16。

  • 对端网段:输入本地数据中心的网段。本示例为:172.28.0.0/16。

  • 立即生效:选择是否立即生效。

  • :配置完成后立即进行协商。

  • :当有流量进入时进行协商。

  • 预共享密钥:输入共享密钥,该值必须与本地网关设备的预共享密钥一致。其他选项使用默认配置。

  • 加密配置BGP配置健康检查标签 等根据您实际场景进行选择。

步骤四:在本地网关设备中加载VPN配置

完成以下操作,在本地网关设备中加载VPN配置。

  1. 在左侧导航栏,单击网间互联 > VPN > IPsec连接

  2. 选择IPsec连接的地域。

  3. 在 IPsec连接 页面,找到目标IPsec连接,然后单击 操作 列下的 下载对端配置

  4. 根据本地网关设备的配置要求,将下载的配置添加到本地网关设备中。

  5. 本示例采用的是Strongswan搭建IPsec-VPN服务,具体部署过程如下:

    1. 安装Strongswan:yum install strongswan -y。

    2. 配置Strongswan。本示例配置仅供参考。

      (1).[centos ~]# vim /etc/strongswan/ipsec.conf

      # ipsec.conf - strongSwan IPsec configuration file
      # basic configurationconfig setup# strictcrlpolicy=yesuniqueids = neverconn %defaultikelifetime=1440m   keylife=60mrekeymargin=3mkeyingtries=0keyexchange=ikev1   #ike版本authby=pskconn toMyIdcleft=%defaultrouteleftid=x.x.x.44    #本地IDC网关公网IPleftsubnet=172.28.0.0/16    #本地IDC私有网络地址,如果要确保VPC网段都能通,需要添加整段VPC地址right=x.x.x.152      #阿里云VPN网关公网IPrightid=x.x.x.152    #阿里云VPN网关公网IPrightsubnet=172.17.0.0/16     #阿里云VPN网关关联VPC私有网络地址auto=start   #进程主动时立即建立 IPsec 安全连接type=tunnelike=3des-md5-modp1024esp=3des-md5

      (2).运行以下命令打开ipsec.secrets配置文件。本示例配置仅供参考。

      [centos ~]# vi /etc/strongswan/ipsec.secrets
      # ipsec.secrets - strongSwan IPsec secrets file
      x.x.x.44 x.x.x.152 : PSK 1234567

      (3)./etc/sysctl.conf系统配置。本示例配置仅供参考。

      vim /etc/sysctl.conf
      #配置转发,默认是0
      net.ipv4.ip_forward = 1
      #关闭重定向,防止恶意用户可以使用IP重定向来修改远程主机中的路由表
      net.ipv4.conf.all.accept_redirects = 0
      net.ipv4.conf.all.send_redirects = 0#使配置生效
      [centos ~]# sysctl -p

    c. 启动Strongswan服务。

    systemctl start strongswan.service

    d. 添加路由,本示例直接在界面化添加。

在IDC核心网关上添加到对端172.17.0.0/16的路由,下一跳指向strongswan的IP 172.28.0.7。

步骤五:配置VPN网关路由

完成以下操作,配置VPN网关路由。

  1. 在左侧导航栏,单击网间互联 > VPN > VPN网关

  2. 选择VPN网关的地域。

  3. 在 VPN网关 页面,找到目标VPN网关,单击 实例ID/名称 列下的实例ID。

  4. 在 目的路由表 页签,单击 添加路由条目

  5. 在 添加路由条目 页面,根据以下信息配置目的路由,然后单击 确定

  • 目标网段:输入本地IDC侧的私网网段。本示例为:172.28.0.0/16。

  • 下一跳类型:IPsec连接。

  • 下一跳:选择IPsec连接实例。

  • 发布到VPC:选择是否将新添加的路由发布到VPC路由表。本例选择 

  • 权重:选择权重值。本例选择 100(主)

步骤六:测试网络访问

登录到阿里云VPC内一台无公网IP的ECS实例,并通过ping命令ping本地数据中心内一台服务器的私网IP地址,验证通信是否正常。

步骤七:搭建自建DNS服务

  1. 安装Bind:yum install -y *bind

  2. 配置named.conf:vim /etc/named.conf。本示例配置仅供参考。

    zone "alidns-example.com" IN {type master;file "alidns-example.com.zone";allow-update {127.0.0.1; };
    };
  3. 配置alidns-example.com.zone:vim /var/named/alidns-example.com.zone。本示例配置仅供参考。

    $TTL 3600
    @       IN SOA  172.28.0.7. admin.alidns-example.com. (8       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimum
    @       IN      NS      172.28.0.7.
    @       IN      A       15.15.XX.XX
  4. 启动Bind:systemctl start named.service

步骤八:转发管理配置

一、创建出站终端节点

完成以下操作,配置出站终端节点。

  1. 登录云解析控制台
    内网DNS解析(PrivateZone) >选择 管理配置模式 > 转发管理 > 出站终端节点 > 创建出站终端节点

  2. 在 创建出站终端节点 页面,根据以下信息进行配置,然后点击 确定

  • 终端节点名称:输入终端节点名称。本示例采用Test。

  • 出站VPC:转发管理所有出站的DNS查询流量都将由此VPC进行流量转发。本示例选取北京Region下的VPC。

  • 安全组:安全组里面的规则将应用于出站VPC。本示例进行了TCP/UDP 53端口入站/出站开放。

    说明

    目前仅支持选择非托管安全组。托管安全组信息,请参见托管安全组。

  • 出站流量源IP地址:选择并填入可用区内子网下的IP地址(非ECS已占用IP地址)。

二、创建转发规则
  1. 在 转发管理 页面选择 转发规则 页签,再点击 创建转发规则。并根据以下信息进行配置转发规则,然后点击确定。

  • 规则名称:输入规则名称。本示例采用Test。

  • 规则类型:目前仅可选择“转发至外部IP”。

  • 转发域名(Zone):填入您需要转发查询的域名名称。本示例为:alidns-example.com。

  • 出站终端节点:选择已经创建好的出站终端节点。本示例为上一步创建的出站终端节点Test。

  • 外部DNS系统的IP地址和端口:线下IDC中自建DNS服务器的IP地址与端口号。本示例为:172.28.XX.XX:53。

三、设置规则生效范围
  1. 在 转发规则 页面,点击目标转发规则 操作 列的 转发规则生效范围。在 转发规则生效范围 弹框中选择域名生效范围VPC(绑定的VPC与出站终端节点需要在相同的Region下)。

步骤九:解析测试

  1. 登录关联VPC内的任一ECS进行以下命令测试:

    dig alidns-example.com

这篇关于内网DNS解析VPN网关联动实现云上访问云下资源的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/753011

相关文章

网页解析 lxml 库--实战

lxml库使用流程 lxml 是 Python 的第三方解析库,完全使用 Python 语言编写,它对 XPath表达式提供了良好的支 持,因此能够了高效地解析 HTML/XML 文档。本节讲解如何通过 lxml 库解析 HTML 文档。 pip install lxml lxm| 库提供了一个 etree 模块,该模块专门用来解析 HTML/XML 文档,下面来介绍一下 lxml 库

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

Kubernetes PodSecurityPolicy:PSP能实现的5种主要安全策略

Kubernetes PodSecurityPolicy:PSP能实现的5种主要安全策略 1. 特权模式限制2. 宿主机资源隔离3. 用户和组管理4. 权限提升控制5. SELinux配置 💖The Begin💖点点关注,收藏不迷路💖 Kubernetes的PodSecurityPolicy(PSP)是一个关键的安全特性,它在Pod创建之前实施安全策略,确保P

工厂ERP管理系统实现源码(JAVA)

工厂进销存管理系统是一个集采购管理、仓库管理、生产管理和销售管理于一体的综合解决方案。该系统旨在帮助企业优化流程、提高效率、降低成本,并实时掌握各环节的运营状况。 在采购管理方面,系统能够处理采购订单、供应商管理和采购入库等流程,确保采购过程的透明和高效。仓库管理方面,实现库存的精准管理,包括入库、出库、盘点等操作,确保库存数据的准确性和实时性。 生产管理模块则涵盖了生产计划制定、物料需求计划、