当前位置: 首页 > news >正文

一个局域网通过NAT访问另一个地址重叠的局域网(IP方式访问)

d986ca932ebf59ccacd8251967369647.gif

正文共:1335 字 7 图,预估阅读时间:4 分钟

现在,我们已经可以通过调整两台设备的组合配置地址重叠时,用户如何通过NAT访问对端IP网络?或仅调整一台设备的配置仅操作一台设备,如何实现本地访问另一个相同网段的私网?,来实现一个局域网通过IP地址访问另一个地址重叠的局域网。

之前的案例中,我们模拟的是专线互访,但是实际应用中,专线场景可能比较少的出现这种情况。但是现在的SD-WAN场景SD-WAN网络中的IPsec流量是怎么转发的?我给你简单演示一下就不一样了,出现的概率就高了很多。那在SD-WAN网络中,如果出现这种问题要怎么解决呢?

0e15994aa90d1c9d756bbcee62b0a5d5.png

组网需求

ec0cadcbaf1dd7263719198d875b9aed.png

1、某公司有两个办公点,内网网段地址均为10.1.1.0/24,现在通过SD-WAN方案将两个办公点内网打通,但是因为有生产业务,不能改变主机地址。

2、该公司拥有组网图中所有地址段的所有地址的使用权。

3、需要实现,PCA能够访问PCB。

27dc58e0f7fd5dc99631ca7eb743ba26.png

组网图

一个局域网通过NAT访问另一个地址重叠的局域网(IP访问)

4c979dcf1ccdea202740131e22e2ec65.png

8a33eaf0687d54590ec736b1765537c7.png

实验环境

Windows 10专业版(1909-18363.1556,16 GB内存)
HCL 3.0.1
MSR 36-20(Version 7.1.064, Release 0821P11)

8aa6ccc5d98fe3846364edde0fe39bee.png

配置思路

d985837956ee3be4f7aa04277748fdb9.png

首先回顾RFC2401(IPsec:互联网协议的安全架构),我们知道IPsec仅仅是一种安全封装,他是在接口上对报文做安全封装,自身并不是接口。如果我们将前两个案例中的中间线路替换为IPsec,则在设备上行口不能再做NAT转换了,这种场景我们已经有了结论,无法实现访问。

那我们可以想一下之前的IPsec和GRE组合使用的场景,我们可以将RTA和RTB使用GRE打通,再使用IPsec进行封装即可。

2731757b4f01ae2d8f408c407c0afc89.png

配置步骤

d34173b0a6de8398cd2bbbb402907b1d.png

按照配置思路,直接上使用GRE+NAT实现访问的配置,此时尚未做IPsec封装。

8cf0b833e17a11de8574a83366d23d9b.png

RTA

#
sysname RTA
#
nat static outbound 10.1.1.2 20.1.1.2
#
policy-based-route NAT permit node 1if-match acl 3402apply next-hop 13.1.1.3
#
interface GigabitEthernet0/0ip address 10.1.1.1 255.255.255.0nat static enableip policy-based-route NAT
#
interface GigabitEthernet0/1ip address 12.1.1.1 255.255.255.0
#
interface Tunnel1 mode greip address 13.1.1.1 255.255.255.0source 12.1.1.1destination 23.1.1.3nat outbound
#
ip route-static 23.1.1.0 24 12.1.1.2
#
acl advanced 3402rule 0 permit ip source 10.1.1.0 0.0.0.255 destination 10.1.1.0 0.0.0.255

6f5c64aa85cccda1a0eff3a063a77f0a.png

ISP

#
sysname ISP
#
interface GigabitEthernet0/0ip address 12.1.1.2 255.255.255.0
#
interface GigabitEthernet0/1ip address 23.1.1.2 255.255.255.0

b4f1fa7e484b8aa1b05978e85e8ca135.png

RTB

#
sysname RTB
#
interface GigabitEthernet0/0ip address 10.1.1.1 255.255.255.0
#
interface GigabitEthernet0/1ip address 23.1.1.3 255.255.255.0
#
interface Tunnel2 mode greip address 13.1.1.3 255.255.255.0source 23.1.1.3destination 12.1.1.1
#
ip route-static 12.1.1.0 24 23.1.1.2

b772155a2397508dd3abb8cd6449f88f.png

验证配置

d119fc023aeea575ff4fc28f7b4de5a7.png

测试从PCA使用地址20.1.1.2访问PCB,发现可以访问,TTL值为253。

efa4732529e0b7371c9000214dbc20ec.png

在RTA上查看报文处理过程。

621b772642ac9eceacfaf23083f86e57.png

1、从接口G0/0收到报文,源地址10.1.1.2,目的地址20.1.1.2;

2、在入接口上做NAT转换,源地址10.1.1.2,目的地址10.1.1.2;

3、匹配策略路由,将报文转发到接口Tunnel1;

4、在出接口上做NAT转换,源地址13.1.1.1,目的地址10.1.1.2,并发出报文;

5、从接口Tunnel1收到报文,源地址10.1.1.2,目的地址13.1.1.1;

6、匹配接口Tunnel1的NAT会话,做NAT转换,源地址10.1.1.2,目的地址10.1.1.2,将报文转发到接口G0/0;

7、匹配接口G0/0的NAT会话,做NAT转换,源地址20.1.1.2,目的地址10.1.1.2,并发出报文。

此时看一下RTA发出的报文,报文内容一览无遗。

2c26ed25d48288eb7760584aebaaa756.png

那接下来就是做IPsec封装了,这里我们应该用GRE over IPsec,而且我们也看到了保护流量应该是接口Tunnel1的地址(13.1.1.1/24)到对方私网(10.1.1.2/24)的流量。直接上配置:

1e8a0d44b9e47e438e9e787a19a47efd.png

RTA

#
acl advanced 3403rule 0 permit ip source 13.1.1.0 0.0.0.255 destination 10.1.1.0 0.0.0.255
#
ipsec transform-set TRANesp encryption-algorithm 3des-cbcesp authentication-algorithm sha1
#
ipsec policy nat 10 isakmptransform-set TRANsecurity acl 3403remote-address 13.1.1.3
#
ike keychain KEYpre-shared-key address 13.1.1.3 24 key simple nat
#
interface Tunnel1 mode greipsec apply policy nat

7390dce37db3b03272ae85c08572ed2b.png

RTB

#
acl advanced 3403rule 0 permit ip source 10.1.1.0 0.0.0.255 destination 13.1.1.0 0.0.0.255
#
ipsec transform-set TRANesp encryption-algorithm 3des-cbcesp authentication-algorithm sha1
#
ipsec policy nat 10 isakmptransform-set TRANsecurity acl 3403remote-address 13.1.1.3
#
ike keychain KEYpre-shared-key address 13.1.1.1 24 key simple nat
#
interface Tunnel2 mode greipsec apply policy nat

查看RTA发出的报文情况。

2d7e4c7723dd87991726f5f5361f91d8.png

可以看到,有ISAKMP主模式协商的过程,然后是ESP封装报文。

查看RTA上的IKE SA信息。

33b3c055cbc26e9f739e1674ef050ef4.png

查看RTA上的IPsec SA信息。

74fb79bd6131abe3f0c5c48e58cb387b.png

怎么样?你学废了吗?

后台回复“20211213”获取本案例的HCL工程文件。

07f30ef793e5777682ec27499e0f35d5.gif

长按二维码
关注我们吧

6b295325cc51660fe297ccd70343eacf.jpeg

95b290943903ed2fe932e14edc1e34d2.png

仅操作一台设备,如何实现本地访问另一个相同网段的私网?

地址重叠时,用户如何通过NAT访问对端IP网络?

秀啊!Win 11竟然教我怎么使用Windows!

IKE中NAT-Traversal的协商

多分支NAT穿越场景下通过POP节点实现分支间的IPsec加密互联

NAT穿越场景下怎么实现从总部到分支的访问?

相关文章:

一个局域网通过NAT访问另一个地址重叠的局域网(IP方式访问)

正文共:1335 字 7 图,预估阅读时间:4 分钟 现在,我们已经可以通过调整两台设备的组合配置(地址重叠时,用户如何通过NAT访问对端IP网络?)或仅调整一台设备的配置(仅操作一…...

05-机器学习-数据标注

一、学习数据标注的核心目标 数据标注不仅是“打标签”,而是理解数据与AI模型之间的桥梁。需要掌握: 标注技术:不同任务类型的标注方法(如分割、实体识别)。标注工具:高效使用专业工具(如CVAT…...

LQ1052 Fibonacci斐波那契数列

题目描述 Fibonacci斐波那契数列也称为兔子数列,它的递推公式为:FnFn-1Fn-2,其中F1F21。 当n比较大时,Fn也非常大,现在小蓝想知道,Fn除以10007的余数是多少,请你编程告诉她。 输入 输入包含一…...

AWTK 骨骼动画控件发布

Spine 是一款广泛使用的 2D 骨骼动画工具,专为游戏开发和动态图形设计设计。它通过基于骨骼的动画系统,帮助开发者创建流畅、高效的角色动画。本项目是基于 Spine 实现的 AWTK 骨骼动画控件。 代码:https://gitee.com/zlgopen/awtk-widget-s…...

分库分表后如何进行join操作

在分库分表后的系统中,进行表之间的 JOIN 操作比在单一数据库表中复杂得多,因为涉及的数据可能位于不同的物理节点或分片中。此时,传统的 SQL JOIN 语句不能直接用于不同分片的数据,以下是几种处理这样的跨分片 JOIN 操作的方法&a…...

arkui-x 前端布局编码模板

build() {Column() {Row() {// 上侧页面布局实现}// 下侧页面布局实现}.width(Const.THOUSANDTH_1000).height(Const.THOUSANDTH_1000).justifyContent(FlexAlign.SpaceBetween).backgroundImage($r(app.media.background_xxx)).backgroundImageSize(ImageSize.Cover).backgrou…...

宝塔面板SSL加密访问设置教程

参考:https://www.bt.cn/bbs/thread-117246-1-1.html 如何快速使用证书加密访问面板 因早期默认未开启https访问所以没有相关的风险提醒,现面板默认已开启https加密访问、提升安全性 由于采用的是服务器内部本身签发证书,不被公网浏览器信任请参考以下步…...

c++ set/multiset 容器

1. set 基本概念 简介: 所有元素都会在插入时自动排序本质: set/multiset属于关联式容器,底层结构是用二叉树实现。set 和 multiset 区别: set容器不允许有重复的元素。 multiset允许有重复的元素。2. set 构造和赋值 构造&a…...

前部分知识复习02

一、物体的屏幕UV坐标 float2 ScreenUV i.pos.xy / _ScreenParams.xy; 二、抓取屏幕图像 GrabPass{" _A "} //_A为贴图图像名称 之后需在Pass中声明该贴图才能在Pass中引用此贴图 三、屏幕抓取并制作热效应代码 Shader"unity/HeatDistort 07" {Pr…...

开发环境搭建-3:配置 JavaScript 开发环境 (fnm+ nodejs + pnpm + nrm)

在 WSL 环境中配置:WSL2 (2.3.26.0) Oracle Linux 8.7 官方镜像 node 官网:https://nodejs.org/zh-cn/download 点击【下载】,选择想要的 node 版本、操作系统、node 版本管理器、npm包管理器 根据下面代码提示依次执行对应代码即可 基本概…...

kotlin内联函数——let,run,apply,also,with的区别

一、概述 为了帮助您根据使用场景选择合适的作用域函数(scope function),我们将对它们进行详细描述并提供使用建议。从技术上讲,许多情况下范围函数是可以互换使用的,因此示例中展示了使用它们的约定俗成的做法。 1.…...

【深度学习|DenseNet-121】Densely Connected Convolutional Networks内部结构和参数设置

【深度学习|DenseNet-121】Densely Connected Convolutional Networks内部结构和参数设置 【深度学习|DenseNet-121】Densely Connected Convolutional Networks内部结构和参数设置 文章目录 【深度学习|DenseNet-121】Densely Connected Convolutional Networks内部结构和参数…...

数据结构与算法-要点整理

知识导图: 一、数据结构 包含:线性表(数组、队列、链表、栈)、散列表、树(二叉树、多路查找树)、图 1.线性表 数据之间就是“一对一“的逻辑关系。 线性表存储数据的实现方案有两种,分别是顺序存储结构和链式存储结构。 包含:数组、队列、链表、栈。 1.1 数组…...

Fort Firewall:全方位守护网络安全

Fort Firewall是一款专为 Windows 操作系统设计的开源防火墙工具,旨在为用户提供全面的网络安全保护。它基于 Windows 过滤平台(WFP),能够与系统无缝集成,确保高效的网络流量管理和安全防护。该软件支持实时监控网络流…...

Nginx实战技巧(Practical Tips for nginx)

引言 简介 ‌Nginx(发音为 "engine-x")是一个高性能的HTTP和反向代理服务器.‌ Nginx以其高并发处理能力、低资源消耗和灵活的配置而闻名,适用于高流量的Web服务器和应用程序。‌ Nginx的主要功能包括: ‌HTTP服务器…...

YOLOv8:目标检测与实时应用的前沿探索

随着深度学习和计算机视觉技术的迅速发展,目标检测(Object Detection)一直是研究热点。YOLO(You Only Look Once)系列模型作为业界广受关注的目标检测框架,凭借其高效、实时的特点,一直迭代更新…...

解锁数字经济新动能:探寻 Web3 核心价值

随着科技的快速发展,我们正迈入一个全新的数字时代,Web3作为这一时代的核心构成之一,正在为全球数字经济带来革命性的变革。本文将探讨Web3的核心价值,并如何推动数字经济的新动能。 Web3是什么? Web3,通常…...

Lua 环境的安装

1.安装Lua运行环境 本人采用的是在windows系统中使用cmd指令方式进行安装,安装指令如下: winget install "lua for windows" 也曾使用可执行程序安装过,但由于电脑是加密电脑,最后都已失败告终。使用此方式安装可以安…...

Object类(2)

大家好,今天我们继续来看看Object类中一些成员方法,这些方法在实际中有很大的用处,话不多说,来看。 注:所有类都默认继承Object类的,所以可调用Object类中的方法,如equals,也可以发生…...

汽车网络信息安全-ISO/SAE 21434解析(中)

目录 第七章-分布式网络安全活动 1. 供应商能力评估 2. 报价 3. 网络安全职责界定 第八章-持续的网络安全活动 1. 网路安全监控 2. 网络安全事件评估 3. 漏洞分析 4. 漏洞管理 第九章-概念阶段 1. 对象定义 2. 网路安全目标 3. 网络安全概念 第十章 - 产品开发 第十…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器

——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的​​一体化测试平台​​,覆盖应用全生命周期测试需求,主要提供五大核心能力: ​​测试类型​​​​检测目标​​​​关键指标​​功能体验基…...

CMake基础:构建流程详解

目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...