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

一个局域网通过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网络?)或仅调整一台设备的配置(仅操作一…...

MongoDB中常用的几种高可用技术方案及优缺点

MongoDB 的高可用性方案主要依赖于其内置的 副本集 (Replica Set) 和 Sharding 机制。下面是一些常见的高可用性技术方案: 1. 副本集 (Replica Set) 副本集是 MongoDB 提供的主要高可用性解决方案,确保数据在多个节点之间的冗余存储和自动故障恢复。副…...

DeepSeek学术题目选择效果怎么样?

论文选题 一篇出色的论文背后,必定有一个“智慧的选题”在撑腰。选题足够好文章就能顺利登上高水平期刊;选题不行再精彩的写作也只能“当花瓶”。然而许多宝子们常常忽视这个环节,把大量时间花在写作上,选题时却像抓阄一样随便挑一…...

Lesson 119 A true story

Lesson 119 A true story 词汇 story n. 故事,传记,小说,楼层storey 搭配:tell a story 讲故事,说谎    true story 真实的故事    the second floor 二楼 例句:我猜他正在说谎。    I guess he…...

正反转电路梯形图

1、正转联锁控制。按下正转按钮SB1→梯形图程序中的正转触点X000闭合→线圈Y000得电→Y000自锁触点闭合,Y000联锁触点断开,Y0端子与COM端子间的内部硬触点闭合→Y000自锁触点闭合,使线圈Y000在X000触点断开后仍可得电。 Y000联锁触点断开&…...

Java并发学习:进程与线程的区别

进程的基本原理 一个进程是一个程序的一次启动和执行,是操作系统程序装入内存,给程序分配必要的系统资源,并且开始运行程序的指令。 同一个程序可以多次启动,对应多个进程,例如同一个浏览器打开多次。 一个进程由程…...

解锁罗技键盘新技能:轻松锁定功能键(罗技K580)

在使用罗技键盘的过程中,你是否曾因 F11、F12 功能键的默认设置与实际需求不符而感到困扰? 别担心,今天就为大家分享一个简单实用的小技巧 —— 锁定罗技键盘的 F11、F12 功能键,让你的操作更加得心应手! 通常情况下…...

分布式微服务系统架构第88集:kafka集群

使用集 群最大的好处是可以跨服务器进行负载均衡,再则就是可以使用复制功能来避免因单点故 障造成的数据丢失。在维护 Kafka 或底层系统时,使用集群可以确保为客户端提供高可用 性。 需要多少个broker 一个 Kafka 集群需要多少个 broker 取决于以下几个因…...

ESP32-S3模组上跑通esp32-camera(33)

接前一篇文章:ESP32-S3模组上跑通esp32-camera(32) 一、OV5640初始化 2. 相机初始化及图像传感器配置 上一回开始解析camera_probe函数的第8段即最后一段代码,本回继续解析该段代码。为了便于理解和回顾,再次贴出camera_probe函数源码,在components/esp32-camera/drive…...

一次端口监听正常,tcpdump无法监听到指定端口报文问题分析

tcpdump命令: sudo tcpdump -i ens2f0 port 6471 -XXnnvvv 下面是各个部分的详细解释: 1.tcpdump: 这是用于捕获和分析网络数据包的命令行工具。 2.-i ens2f0: 指定监听的网络接口。ens2f0 表示本地网卡),即计算机该指定网络接口捕…...

高可用集群故障之join

本文记录了在部署高可用的k8s集群时,遇到的一个故障及其解决方法。 集群环境 描述:三主三从,eth0为外网网卡,eth1为内网网卡,内网互通。 需求:eth0只负责访问外网,eth1作为集群间的通信。 主…...

uniapp版本升级

1.样式 登录进到首页&#xff0c;弹出更新提示框&#xff0c;且不可以关闭&#xff0c;侧边返回直接退出&#xff01; 有关代码&#xff1a; <uv-popup ref"popupUpdate" round"8" :close-on-click-overlay"false"><view style"…...

Ubuntu 20.04 x64下 编译安装ffmpeg

试验的ffmpeg版本 4.1.3 本文使用的config命令 ./configure --prefixhost --enable-shared --disable-static --disable-doc --enable-postproc --enable-gpl --enable-swscale --enable-nonfree --enable-libfdk-aac --enable-decoderh264 --enable-libx265 --enable-libx…...

【Web开发】一步一步详细分析使用Bolt.new生成的简单的VUE项目

https://bolt.new/ 这是一个bolt.new生成的Vue小项目&#xff0c;让我们来一步一步了解其架构&#xff0c;学习Vue开发&#xff0c;并美化它。 框架: Vue 3: 用于构建用户界面。 TypeScript: 提供类型安全和更好的开发体验。 Vite: 用于快速构建和开发 主界面如下&#xff1a…...

SpringBoot源码解析(八):Bean工厂接口体系

SpringBoot源码系列文章 SpringBoot源码解析(一)&#xff1a;SpringApplication构造方法 SpringBoot源码解析(二)&#xff1a;引导上下文DefaultBootstrapContext SpringBoot源码解析(三)&#xff1a;启动开始阶段 SpringBoot源码解析(四)&#xff1a;解析应用参数args Sp…...

在ubuntu下一键安装 Open WebUI

该脚本用于自动化安装 Open WebUI&#xff0c;并支持以下功能&#xff1a; 可选跳过 Ollama 安装&#xff1a;通过 --no-ollama 参数跳过 Ollama 的安装。自动清理旧目录&#xff1a;如果安装目录 (~/open-webui) 已存在&#xff0c;脚本会自动删除旧目录并重新安装。完整的依…...

Flutter子页面向父组件传递数据方法

在 Flutter 中&#xff0c;如果父组件需要调用子组件的方法&#xff0c;可以通过以下几种方式实现。以下是常见的几种方法&#xff1a; 方法 1&#xff1a;使用 GlobalKey 和 State 调用子组件方法 这是最直接的方式&#xff0c;通过 GlobalKey 获取子组件的 State&#xff0c…...

论文阅读 AlphaFold 2

用AlphaFold进行非常精确的蛋白质结构的预测(AlphaFold2) 发表于2021年07月15日 NatureDOI: 10.1038/s41586-021-03819-2自然和科学杂志评选为2021年最重要的科学突破之一2021年AI在科学界最大的突破 前言 2020年11月30号, deepmind博客说AlphaFold解决了50年以来生物学的大挑…...

计算机网络 (62)移动通信的展望

一、技术发展趋势 6G技术的崛起 内生智能&#xff1a;6G将强调自适应网络架构&#xff0c;通过AI驱动的智能算法提升通信能力。例如&#xff0c;基于生成式AI的6G内生智能架构将成为重要研究方向&#xff0c;实现低延迟、高效率的智能通信。信息编码与调制技术&#xff1a;新型…...

如何学习Java后端开发

文章目录 一、Java 语言基础二、数据库与持久层三、Web 开发基础四、主流框架与生态五、分布式与高并发六、运维与部署七、项目实战八、持续学习与提升总结路线图 学习 Java 后端开发需要系统性地掌握多个技术领域&#xff0c;从基础到进阶逐步深入。以下是一个详细的学习路线和…...

探索与创新:DeepSeek R1与Ollama在深度研究中的应用

在当今信息爆炸的时代&#xff0c;获取和处理信息的能力变得至关重要。特别是在学术和研究领域&#xff0c;如何有效地进行深度研究是一个亟待解决的问题。最近&#xff0c;一个名为DeepSeek R1的模型结合Ollama平台提供了一种创新的解决方案。本文将分析并解构这一新兴的研究工…...

Linux 常用命令 - sort 【对文件内容进行排序】

简介 sort 命令源于英文单词 “sort”&#xff0c;表示排序。其主要功能是对文本文件中的行进行排序。它可以根据字母、数字、特定字段等不同的标准进行排序。sort 通过逐行读取文件&#xff08;没有指定文件或指定文件为 - 时读取标准输入&#xff09;内容&#xff0c;并按照…...

mantisbt添加修改用户密码

文章目录 问题当前版本安装流程创建用户修改密码老的方式探索阶段 问题 不太好改密码啊。貌似必须要域名要发邮件。公司太穷&#xff0c;看不见的东西不关心&#xff0c;只能改源码了。 当前版本 当前mantisbt版本 2.27 php版本 7.4.3 安装流程 &#xff08;下面流程不是…...

记录 | Docker的windows版安装

目录 前言一、1.1 打开“启用或关闭Windows功能”1.2 安装“WSL”方式1&#xff1a;命令行下载方式2&#xff1a;离线包下载 二、Docker Desktop更新时间 前言 参考文章&#xff1a;Windows Subsystem for Linux——解决WSL更新速度慢的方案 参考视频&#xff1a;一个视频解决D…...

【Elasticsearch】内置分词器和IK分词器

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…...

2025美赛数学建模C题:奥运金牌榜,完整论文代码模型目前已经更新

2025美赛数学建模C题&#xff1a;奥运金牌榜&#xff0c;完整论文代码模型目前已经更新&#xff0c;获取见文末名片...

HarmonyOS:ForEach:循环渲染

一、前言 ForEach接口基于数组类型数据来进行循环渲染&#xff0c;需要与容器组件配合使用&#xff0c;且接口返回的组件应当是允许包含在ForEach父容器组件中的子组件。例如&#xff0c;ListItem组件要求ForEach的父容器组件必须为List组件。 API参数说明见&#xff1a;ForEa…...

Effective C++ 规则50:了解 new 和 delete 的合理替换时机

1、背景 在 C 中&#xff0c;new 和 delete 是动态分配内存的核心操作符。然而&#xff0c;直接使用它们有时会增加程序的复杂性&#xff0c;甚至导致内存泄漏和其他问题。因此&#xff0c;了解何时替换 new 和 delete 并选择更适合的内存管理策略&#xff0c;是编写高效、健壮…...

C++ STL:深入探索常见容器

你好呀&#xff0c;欢迎来到 Dong雨 的技术小栈 &#x1f331; 在这里&#xff0c;我们一同探索代码的奥秘&#xff0c;感受技术的魅力 ✨。 &#x1f449; 我的小世界&#xff1a;Dong雨 &#x1f4cc; 分享我的学习旅程 &#x1f6e0;️ 提供贴心的实用工具 &#x1f4a1; 记…...

android12源码中用第三方APK替换原生launcher

一、前言 如何用第三方的apk替换原生launcher呢&#xff1f;我是参考着这位大神的博客https://blog.csdn.net/hyu001/article/details/131044358做的&#xff0c;完美实现。 这边博客中又加入了我个人的一些改变&#xff0c;整理的。 二、步骤 1.在/packages/apps/MyApp文件…...