Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >「最佳实践」通过IPsec VPN+CCN多路由表+私网NAT解决IDC与云上资源网段冲突

「最佳实践」通过IPsec VPN+CCN多路由表+私网NAT解决IDC与云上资源网段冲突

原创
作者头像
RokasYang
修改于 2024-11-30 23:55:20
修改于 2024-11-30 23:55:20
2.4K20
举报
文章被收录于专栏:RokasYangRokasYang

好文分享

本文开始之前,分享一篇近期阅读过的好文,文章详情可点击AI杀疯!介绍一下有趣的AI算法

此文介绍了几种有趣的AI算法及其应用,涵盖了视频生成、代码生成和游戏AI等领域,领略到了最新的AI技术的魅力与未来的无限潜力。

一、前言

在使用云上IPSEC VPN打通到云下IDC的场景,因为本地网络规划问题或其它原因,IDC和云上现有的网段存在冲突,不能互通,因此中间需要借助私有NAT来完成地址转换。

比如下面这个架构图:

明面上看,192.168.1.0/24和10.100.1.0/24没有冲突,但由于云下IDC网络,比如已经和10.100.1.0/24有其它通信隧道的路由了,不能再和云上进行互通,需要云上转换一下IP段。因此,这里说的网段冲突,是站在云下的角度,不能再和云上的当前网段进行打通,需要进行中间地址转换才能打通。

本文将使用云联网类型VPN、CCN多路由表、私网NAT来解决网段冲突的问题,优化后架构如下:

二、VPN隧道的建立与协商

2.1 创建VPN网关

在VPN网关控制台,创建CCN类型的VPN网关:

2.2 创建VPN通道

2.2.1 基本配置

需要注意:

  • VPN网关要选择我们刚刚创建的云联网类型的VPN网关;
  • 对端网关写云下IPsec VPN设备的公网出口IP;
  • 设置并记住预共享密钥,待会需和云下保持一致;
  • SPD网段,本端写和云下没有冲突的网段,即待会我们需要SNAT后的网段地址,对端写云下对接的内网网段。

2.2.2 高级配置(加密算法、认证等)

DPD检测和健康检查探测,没有需求场景的话,这里保持关闭,其他参数设置可参照这张图:

最后点击创建。

2.3 云下RouterOS配置IPsec VPN(CLI)

云下协商参数需和云上协商参数保持一致。篇幅原因这里只演示命令行方式如何创建IPsec VPN和云上建立协商,更为详细的介绍可参考笔者的这篇文章,里面包含了GUI和CLI两种方式建立云上和ros的通信。

2.3.1 配置IPsec Profile

代码语言:shell
AI代码解释
复制
[RokasYang@MikroTik] > /ip ipsec profile
[RokasYang@MikroTik] /ip/ipsec/profile> add dh-group=modp768 hash-algorithm=sha1 enc-algorithm=aes-128 name=To_tencent
[RokasYang@MikroTik] /ip/ipsec/profile> 

DH group用来确定密钥交换过程中使用的密钥强度,强度越高开销也会越高,对应比特位参考如下表格:

DH group

Modulus

1

768 bits

2

1024 bits

5

1536 bits

14

2048 bits

15

3072 bits

16

4096 bits

19

ecp256 bits

20

ecp384 bits

21

ecp521 bits

云上配置的是DH1,因此云下也配置的是modp768,生产环境建议不要使用DH group 1/2/5,加密的比特位较低,可能存在安全风险。

2.3.2 配置对端Peer

代码语言:shell
AI代码解释
复制
[RokasYang@MikroTik] /ip/ipsec/peer> /ip ipsec profile
[RokasYang@MikroTik] /ip/ipsec/profile> /ip ipsec peer
[RokasYang@MikroTik] /ip/ipsec/peer> add address=119.91.229.51 name=to_tencent profile=To_tencent exchange-mode=ike2 
[RokasYang@MikroTik] /ip/ipsec/peer> print where name~"_tencent"
  • 注意这里的profile的参数,引用的是2.3.1这一步的To_tencent配置文件。
  • address为对端VPN网关的IP;
  • exchange-mode为协商模式,对应云上的ikev2。

2.3.3 配置身份验证(Identities)

预共享密钥设置和云上保持一致,同时peer参数引用是2.3.2这一步骤的to_tencent配置文件。

代码语言:shell
AI代码解释
复制
[RokasYang@MikroTik] /ip/ipsec/peer> ..
[RokasYang@MikroTik] /ip/ipsec> identity add peer=to_tencent auth-method=pre-shared-key secret=123456
[RokasYang@MikroTik] /ip/ipsec>
  • auth-method:验证方法指定为预共享密钥;
  • secret:预共享密钥指定为123456,和云上保持一致,实际生产环境建议设置更高强度的密钥。

2.3.4 配置IPsec Proposal

代码语言:shell
AI代码解释
复制
[RokasYang@MikroTik] /ip/ipsec> proposal add name=to_tencent auth-algorithms=sha1 enc-algorithms=aes-128-cbc pfs-group=none
[RokasYang@MikroTik] /ip/ipsec> proposal print where name="to_tencent"
Flags: X - disabled; * - default
 0    name="to_tencent" auth-algorithms=sha1 enc-algorithms=aes-128-cbc lifetime=30m pfs-group=none
[RokasYang@MikroTik] /ip/ipsec>
  • auth-algorithms:认证算法和云上保持一致,设置为sha1;
  • enc-algorithms:加密算法和云上保持一致,设置为aes-128-cbc;
  • pfs-group:云上是disabled的,因此这里也写为none。

2.3.5 配置感兴趣流(Policies)

代码语言:shell
AI代码解释
复制
[RokasYang@MikroTik] /ip/ipsec> policy add peer=to_tencent tunnel=yes src-address=192.168.1.0/24 dst-address=172.16.1.0/24 protocol=all proposal=to_tencent
[RokasYang@MikroTik] /ip/ipsec>
  • address:本端网段;
  • dst-addres:对端网段,对端网段是云上做完SNAT后的映射网段。

2.3.6 增加一条到云上的路由

注意,增加路由后,这里把增加的这条路由,从第23条移动到了第一条:

代码语言:shell
AI代码解释
复制
[RokasYang@MikroTik] /ip/firewall/nat> add action=accept chain=srcnat src-address=192.168.1.0/24 dst-address=172.16.1.0/24
[RokasYang@MikroTik] /ip/firewall/nat> print where dst-address="172.16.1.0/24"
Flags: X - disabled, I - invalid; D - dynamic 
23    chain=srcnat action=accept src-address=192.168.1.0/24 dst-address=172.16.1.0/24
[RokasYang@MikroTik] /ip/firewall/nat> move 23 0
[RokasYang@MikroTik] /ip/firewall/nat>

此时在UI界面看,也是生效的:

2.4 云下RouterOS配置IPsec VPN(GUI)

2.4.1 配置IPsec Profile

winbox登录到RouterOS后,在IP-->IPsec选项里打开IPsec的配置界面:

首先配置IPsec profile

最后点击右下角的Apply应用,配置参数和CLI的参数相对应,不再赘述,看上图标注即可。

2.4.2 配置对端Peer

配置对端网关、协商模式、引用的ipsec profile等:

2.4.3 配置身份验证(Identities)

配置用于身份验证的字段,包括本端标识、对端表示、预共享密钥等:

2.4.4 配置IPsec Proposal

配置ipsec提议,指定认证算法、加密算法等:

2.4.5 配置感兴趣流(Policies)

对应云上的SPD网段,如下配置策略,指定本端和对端通信的网段即协议,并采用隧道模式(Tunnel):

2.4.6 增加NAT ACCEPT规则

增加一条ACCEPT允许规则,并把优先级调整到第一位:

首先进入到IP --> Firewall 界面:

如下增加一条accpet允许规则:

之后鼠标拖动让此规则置顶。

2.5 验证两端VPN隧道是否已经建立成功

云上VPN通道标记为“已联通”:

云下RouterOS的IPsec策略标记为Established,此时说明VPN隧道已经建立起来:

代码语言:shell
AI代码解释
复制
[RokasYang@MikroTik] /ip/firewall/nat> /ip ipsec policy print where ph2-state="established"
Flags: A - ACTIVE
Columns: PEER, TUNNEL, SRC-ADDRESS, DST-ADDRESS, PROTOCOL, ACTION, LEVEL, PH2-COUNT
#   PEER        TUNNEL  SRC-ADDRESS     DST-ADDRESS    PROTOCOL  ACTION   LEVEL    PH2-COUNT
1 A to_tencent  yes     192.168.1.0/24  172.16.1.0/24  all       encrypt  require          1
[RokasYang@MikroTik] /ip/firewall/nat> 

到此,仅仅是VPN隧道协商起来而已,云上还没有配置任何路由,因此内网还是通不了的,接着往下看。

三、配置CCN多路由表、私网NAT、IP映射规则

3.1 创建CCN

在CCN控制台新建CCN后,进入到CCN的路由表页面:

3.2 创建多路由表

创建两个路由表,名称分别为rtb1、rtb2:

3.3 业务VPC绑定至CCN路由表

已知业务VPC(即云上需要和云下打通的VPC)为 vpc-6sbvxdzj(10.100.1.0/24),将业务VPC关联到路由表1:

3.4 增加路由接收策略

回到CCN路由表1中,点击 路由表接收策略-->添加策略:

添加一条允许业务VPC的策略,添加完成后如下:

3.5 创建CCN型私网NAT并添加至CCN路由表

登录私网NAT网关控制台,新建私网NAT网关,注意类型一定要选择云联网,关联实例选择我们上面创建的云联网实例id:

创建后,点开基本信息页面,可以看到本端VPC、对端VPC,记住这两个VPC,关联CCN路由表时需要用到。

回到云联网控制台的路由表界面,将私网NAT的本端VPC绑定到CCN实例的路由表1中,绑定完成后如下:

在CCN路由表1中设置路由接收策略,添加一条允许私网NAT的本端VPC的规则,添加完成后如下:

紧接着,将私网NAT的对端VPC绑定到CCN实例的路由表2中,并配置路由接收策略允许接收私网NAT对端VPC的路由。

3.6 配置IP映射规则

找到我们前面创建CCN型私网NAT网关,点进去添加SNAT规则。

新增一条SNAT规则,这里我们使用三层NAT映射,当然也可以写四层(IP+端口),根据需求选择:

如上图,我们将云上10.100.1.6的实例,映射给了172.16.1.6,记住这个IP,连通性验证阶段需要用到。

需要注意,三层只能一对一映射,不能映射为IP池,四层则可以映射为IP池。

3.7 将VPN网关关联至路由表

将上面创建的CCN型VPN网关,关联至CCN实例的路由表2中:

并且路由接收策略增加一条允许VPN网关的接收策略:

3.8 将VPN网关路由表发布到CCN

到VPN网关控制台的发布网段页面,将到IDC网段的路由发布,进行勾选:

注意:发布路由至CCN,仅当VPN通道为SPD策略型时,才需要在VPN网关这里手动将路由发布至CCN。

四、配置和发布VPC路由至CCN

4.1 私网NAT的本端VPC路由配置和发布

回到私网NAT控制台,点击本端VPC,去本端VPC的默认路由表里新增路由:

新增一条到IDC网段的路由(比如下图中的最后一条路由就是新增的路由条目,IDC网段是:192.168.1.0/24),下一跳给CCN型的私网NAT网关,并且一定要点击将这条路由发布给云联网,只操作这一条路由就行,上面的路由不要动:

4.2 私网NAT的对端VPC路由配置和发布

同理,找到对端VPC的默认路由表,新增一条目的端为NAT映射后的IP,下一跳给私网NAT网关的路由,并且将这条路由发布到云联网:

五、连通性验证

5.1 ping、mtr、traceroute验证

在云上测试到云下,连通性正常:

云下测试云上,注意此时要访问的是云上映射后的IP,比如我们映射的IP是172.16.1.6,云下任意找一台机器访问云上映射后的IP,连通性测试正常:

5.2 抓包验证

5.2.1 云下、云上同时抓包验证

在云上使用10.100.1.6机器ping 云下192.168.1.8机器的情况下,在云上云下同时抓ICMP的报文。

云上机器抓包可以是:

代码语言:shell
AI代码解释
复制
tcpdump -i any -nn -s 0 icmp and host 192.168.1.8 -v -w cloud.pcap

云下机器抓包:

代码语言:bash
AI代码解释
复制
tcpdump -i any -nn -s 0 icmp -v -w idc.pcap

可以看到,云上机器10.100.1.6和云下192.168.1.8进行通信时,云下收到的ping请求,因为在云上做了SNAT地址转换,来源变成了172.16.1.6,其余诸如ip.id、icmp.seq等字段不会修改:

5.2.2 私网NAT抓包验证

在私网NAT抓包可以看到,10.100.1.6访问192.168.1.8时,私网NAT先把源地址snat到172.16.1.6映射后的IP,再发给对端;收到对端过来的响应给172.16.1.6 icmp reply时,再将172.16.1.6修改为10.100.1.6发送给源端。

六、总结

到此,本文详细介绍了如何通过云联网类型VPN、CCN多路由表和私网NAT,解决云上和云下IDC之间的网段冲突问题,实现两端互通。首先,创建VPN网关和通道,并在云下配置IPsec VPN,确保两端协商一致;然后,通过CCN多路由表和私网NAT进行地址转换和路由管理,绑定业务VPC和NAT实例,并配置IP映射规则,并将路由发布至CCN;最后,进行连通性验证,确保云上和云下能够正常通信,同时在云上、云下、私网NAT抓包,观测中间过程发生的IP转换。

附带PDF版本:

「最佳实践」通过IPsec VPN+CCN多路由表+私网NAT解决IDC与云上资源网段冲突.pdf

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
20 条评论
热度
最新
MikRotic的UI怎么这么好看
MikRotic的UI怎么这么好看
回复回复点赞举报
文章写的真好
文章写的真好
回复回复点赞举报
博主非常专业,学习到了,非常优秀
博主非常专业,学习到了,非常优秀
回复回复点赞举报
专业
专业
回复回复点赞举报
专业
专业
回复回复点赞举报
内容详细专业,很到位!
内容详细专业,很到位!
回复回复点赞举报
牛批
牛批
回复回复点赞举报
专业~
专业~
回复回复点赞举报
经典,必须收藏
经典,必须收藏
回复回复点赞举报
文章受用,刚好解决最近遇到的一大难题,准备迁移业务网段,看来是不需要了,非常感谢👍
文章受用,刚好解决最近遇到的一大难题,准备迁移业务网段,看来是不需要了,非常感谢👍
回复回复点赞举报
加载更多
推荐阅读
编辑精选文章
换一批
RouterOS(ros)与云上VPC通过IPsec实现内网互通 - 涵盖GUI/CLI两种配置方式
ipsec诞生于20世纪90年代,迄今为止,在实现内网互通解决方案中ipsec都是较为常用的。不少网关设备都会考虑集成ipsec的能力,ros便是如此,它作为一个软路由系统,支持的ipsec算法较为完善,本文将以GUI、CLI两种方式讲解ros的ipsec配置,与云上VPC网络实现内网互通。
RokasYang
2022/08/28
7.1K1
RouterOS(ros)与云上VPC通过IPsec实现内网互通 - 涵盖GUI/CLI两种配置方式
【最新】如何通过云联网和 VPN 连接实现混合云主备冗余通信?
随着云上应用不断扩展,越来越多的客户采用云联网和VPN双线冗余方式实现混合云业务双向通信,以下详细介绍如何实现:
TCS-F
2021/11/12
5.3K0
【最新】如何通过云联网和 VPN 连接实现混合云主备冗余通信?
混合云如何实现IP-Sec-VPN云联网专线实现主备内网互通?
如下图所示,用户在 VPC 和 IDC 中部署了业务,为了实现云上与云下业务交互,用户需要部署网络连接服务来实现业务互通,为实现高可用通信,部署方案如下:
TCS-F
2021/12/21
4.4K0
混合云如何实现IP-Sec-VPN云联网专线实现主备内网互通?
全面理解云上网络
作者:ronaldoliu,腾讯 IEG 后台开发工程师 公司一直在推动业务上云,同时越来越多的项目也要开始出海,对云的依赖会越来越多。但是云并不像它宣传的那么简单易用,尤其是云上网络,是大家理解云的一大阻碍。本文比较全面地梳理了云上网络的各种概念以及简要的原理,希望能够帮助大家建立一个知识索引,以备不时之需。由于本人不是云的专家,因此文章中有不对的地方也欢迎指正。 私有网络 VPC VPC 全称 Virtual Private Cloud,翻译成私有网络其实不太准确,但是它确实就是对网络资源的一种抽象。我
腾讯技术工程官方号
2022/06/20
12.2K1
全面理解云上网络
通过VPN连接到VPC
默认情况下,云上创建vpc中的cvm等资源无法直接和云下IDC直接进行通信。如有此类需求的场景,可通过以下几种方式进行联通【VPN、专线】。
pinkcchen
2020/10/27
7.6K0
通过VPN连接到VPC
借助SSL VPN打通两个客户端内网
1. 腾讯云目前支持的SSL VPN协议只有UDP,暂不支持TCP;按照如下步骤填写本端网段(要打通的VPC网段)和对端网段(客户端内网网段),填写端口、认证算法、加密算法等信息:
小小果
2023/10/20
8620
腾讯云VPC网络最佳实践 - 网络规划
私有网络(Virtual Private Cloud,VPC)是基于腾讯云构建的专属云上网络空间,为腾讯云上的资源提供网络服务,不同私有网络间完全逻辑隔离。作为在云上的专属网络空间,可以通过软件定义网络的方式管理私有网络 VPC,实现 IP 地址、子网、路由表、网络 ACL 、流日志等功能的配置管理。
杨泽华
2019/01/08
26.4K3
腾讯云VPC网络最佳实践 - 网络规划
腾讯云最佳实践-在腾讯云和AzureChina之间建立VPN连接
文章介绍:在两个公有云之间建议VPN连接,保证了公有云之间流量传输走内网走,增强了网络安全性,减少了攻击面
root0day
2022/11/25
8.8K0
TEZ API 文档
腾讯云计算产品团队
2023/07/26
5810
腾讯云高可用网络的修炼之道
当他睡眼惺忪、手拿红牛、嘴刁香烟迈着沉重的步伐从某网络核心机房走出来的时候,除了看门大爷简短问候之外,也只有刚刚过去的这个黑夜才真正懂得刚刚发生了什么,在外人眼里,这个夜晚再正常不过,和往常一样,刷刷微博、看看抖音,逛逛购物网站,即便是前一晚上有某些人觉得打开购物网站的页面有点卡慢,他们也可能不会放在心上,然而正是因为这样一个不一样的网络体验,网络工程师们已经是废寝忘食,鏖战了整整一夜,来修复引发这个网络卡慢的bug,在外人眼里一觉醒来,看似波澜不惊,但有时实则是暗流涌动;
abelbai
2020/10/31
12.4K2
腾讯云高可用网络的修炼之道
腾讯混合云网络设计白皮书
从1999年,公认的云计算先驱-Saleforce.com公司成立,到2006年,Amazon发布了名声大噪的EC2(Elastic Compute Cloud),首次面向公众提供基础架构的云服务产品-IaaS,中间经历了七年的时间。
abelbai
2023/04/26
4.2K1
腾讯混合云网络设计白皮书
在CentOS上使用strongSwan搭建IPsec V P N服务
客户业务在往腾讯云迁移的过程中,因为两边的数据需要同步,所以需要建立站点到站点的IPsec V**连接,由于某些公司没有V**设备或者其他云不支持V** Gateway产品的时候,就需要我们自己搭建IPsec V**服务。
Vicwan
2019/09/12
24.1K0
在CentOS上使用strongSwan搭建IPsec V P N服务
私有网络(VPC)
本节主要为那些具备一定计算机基础知识和网络知识的同学,能够快速的了解腾讯云的“私有网络”产品。
研究僧
2020/06/13
10.9K0
策略型VPN对接strongswan
参考https://cloud.tencent.com/document/product/554/52861
pinkcchen
2023/06/07
1.6K0
网络产品使用场景及各种坑规避
子区:类似于广州一区、广州二区这种,一个地域含有多个子区,对应于aws就是zone;
用户7316624
2020/07/17
6.4K0
网络产品使用场景及各种坑规避
在linux服务器上使用strongswan自建ipsecV**网关实现IDC与云的内网通信配置实例
    公有云技术已经非常成熟,各行各业都在上云。有的客户本身有自建IDC,想实现数据迁移或者公有云+本地IDC混合云运行模式,就需要打通IDC与公有云之间的内网,目前腾讯云有两个方案:
elliswu
2019/06/25
8.6K7
使用爱快连接腾讯云VPN网关,打通企业内网与云上VPC
云上操作 创建VPC [fc5821dfcbdb49c7bc455e53b78ea623.png] 确保私有网络的IP与本地的内网IP不冲突 创建VPN网关 [471f13e8e26d89f0af572e55f07201a6.png] 选择刚才创建的VPC 创建对端网关 [4203c1e6cd7b9d92dd380fedb8553b40.png] 这里填写本地的固定外网IP 创建VPN通道 基本配置 [ddb2f7d83b91bb6843dd7bf4bce9a7b5.png] 这三个就选刚才创建的三个产品
用户8851537
2021/08/27
10.7K1
玩转腾讯云-云上网络实操
本文带大家一起通过实操方式来学习腾讯云私有网络管理,通过弹性公网IP、NAT网关访问Internet,通过安全组、ACL进行网络访问控制。对等连接、云联网实现跨地域网络访问等网络互联实操请参阅:玩转腾讯云-网络互联实操。
hsp
2022/05/15
8.5K0
【最佳实践】TKE与现有网络互通的千层姿势
云上越来越多业务部署在容器环境,腾讯云容器环境TKE如何现有网络互通呢?最近和Z客户容器新网段和现有网络集成案例进行小结,让云上用户更好的TKE网络集成各种姿势。
开元
2020/05/23
4.8K1
【最佳实践】TKE与现有网络互通的千层姿势
Cisco路由器之IPSec 虚拟专用网(内附配置案例)
一、虚拟专用网的定义 虚拟专用网就是在两个网络实体之间建立的一种受保护的连接,这两个实体可以通过点到点的链路直接相连,但通常情况下他们会相隔较远的距离。
小手冰凉
2019/11/07
3.1K1
推荐阅读
相关推荐
RouterOS(ros)与云上VPC通过IPsec实现内网互通 - 涵盖GUI/CLI两种配置方式
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档