×

【2022争霸赛*干货满满】地址转换-NAT那些事之巧用NAT,解决IPSEC VPN组网问题
  

莫冷 107683人觉得有帮助

{{ttag.title}}
哈喽,大家好,又是我,纯洁的小莫冷来给大家科普啦
今天给大家来讲讲地址转换-NAT那些事之巧用NAT,解决IPSEC VPN组网问题
说起地址转换,也就是NAT想必大家都不陌生了吧,NAT大致上可以分为源地址转换-SNAT,目的地址转换-DNAT和双向地址转换-PNAT,而作用在IPSEC VPN上又被称作隧道内NAT(其实也是一种源地址转换),基础的东西大家都已经听的太多了,这里就不多做赘述了。
看标题,大家可能在想,这是要讲隧道内NAT嘛?这里我可以很明确的告诉大家,不是,一点都不是!!!
今天要讲的就是传统的SNAT,也就是源地址转换,可能有的同学又要问了,源地址转换跟IPSEC VPN又有什么关系?他俩一点边都不沾呀,各位看官别着急,请看下面的拓扑
两端AF做IPSEC VPN组网,总部AF单臂部署,分支AF网关部署,乍一看是不是感觉没什么问题?只要总部路由器将对端192.168.2.0/24网段的地址引向总部AF就行了,但是我可以很明确的告诉大家,这样不行,单单靠路由是不可能保证两端的通信的,至于为什么,且听我细细分析
首先,不知道各位在学习课程的时候有没有听说过一种说法,叫做来回路径一致原则,而网络正是遵循这一原则,在上图的组网中,正是没有遵循这个原则导致的两端数据不通,至于为何不一致,请看下面的数据走向图
数据包从总部到分支的数据走向图
数据包从分支到总部的数据走向图
怎么样,看到这是不是发现什么不一样的了,数据包从总部到分支用了4步,而从分支到总部却只用了3步,这样是不是来回路径就不一致了?
而解决方法又很多种,并不是只有NAT能够解决,而且使用NAT的解决方法也不是适用于所有场景,我只是将影响范围最小,配置成本最低的方法给大家分享出来而已
首先,我们分析一下数据包从总部走向分支的过程,为何回包会直接从总部的AF回给PC1,图上也说的很清楚了, AF和PC1是同一网段的地址,那既然是同一网段的地址,肯定就天大地大,直连路由最大,所以不管你路由如何写,直连路由永远是第一位,它不会再去找网关去转发数据了,而是直接向网络广播PC1的地址,将数据包直接转发给PC1,而前面提到的NAT技术恰巧可以很好的解决这一问题,至于如何解决,各位先思考思考。
首先,要解决问题,就要在出问题的地方下功夫,这个问题点出在哪呢,毫无疑问,就是总部的路由器上,数据包发出的时候经过了它,而回包时却没有经过,那我们是不是可以想个办法让回来的数据过一下它?
那具体要怎么操作呢?想想上面的图,数据包发出的源地址是哪个,目的地址是哪个,回包的源地址和目的地址又是什么?
是不是想明白了,数据包不管是发出还是回包,是不是都没有经过地址转换?也就是说,数据包的源跟目的都是一个,而且发包和回包都是可以到达总部/分支PC的,这也就反向证明了路由是没有问题的,那既然路由没有问题,我们是不是要考虑一下怎么才能让回来的数据过一下路由器呢?
其实很简单,就是利用路由器的SNAT技术,做一条源地址转换,将总部PC的地址转换为路由器的地址,这样两端AF和分支PC收到的数据包的源地址就是路由器的IP地址了,路由器收到数据包后再进行拆包,将NAT协议剥离后转发给真实PC也就是PC1,这不就大功告成了吗,是不是很简单?
可是只是总部访问分支不行呀,分支也是要访问总部的呀,那又得分析数据包了,分支到总部的数据显而易见,数据包发出只用了3步,而回包却用了4步,结合上面总部访问分支的案例,我们是不是要考虑一下让总部给分支的回包也走3步,当然这个问题就不能再在总部路由器上配置了,因为数据包只要到路由器就一定是4步了,所以咱们得给它提前就把地址转换掉,那要在哪台设备上做呢?肯定也不能是分支的AF,因为太早了,数据还没有经过隧道呢,这时候做了也没啥用您说是不是,所以只能在总部AF上做一条SNAT策略来保证回包的路径。
经过上面的分析,各位是不是发现一点,就是访问方向不同,那么实现功能的设备也得跟着变,所以各位如果碰到此类问题的话不妨沉下心来,将拓扑图画出来,通过绘制数据的来回路径来查看一下是否存在以上问题?
当然,最早的时候也提到了,解决方案不止这一种,我所知道的其实还有两种方案
第一种自然是将总部AF的地址与总部PC分离,使其不在一个网段,自然也就不会出现这种问题了,而且大型公司都有严格的网络要求,一般不会出现VPN设备与内网PC处于同一网段的。
而第二种则是在内网PC上写一条永久静态路由,使其到分支PC的路由的网关指向总部AF,这样也可以保证数据包来回路径的一致性
Windows添加永久静态路由的命令(需要管理员身份)
route –p add 192.168.2.0 mask 255.255.255.0 192.168.1.2
Linux添加永久静态路由的命令
route add –net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.2 –p
MACOS添加静态路由的命令(重启失效)
sudo route –n add –net 192.168.2.0 –netmask 255.255.255.0 192.168.1.2

上面三条命令是针对不同的系统所使用的同的命令,各位根据实际情况进行修改即可

好了,接下来说一下这三种方法的优缺点
1.        NAT方式:
优点:配置简单方便,工作量小
缺点:比较吃技术能力,初级工程师可能无法理解,且无法满足所有场景,如需要校验源地址或限制源地址访问的场景无法满足
2.        更改网络部署方式
优点:一劳永逸,适用所有场景
缺点:涉及改动点较大,需要更改网络或网线,严重的可能造成网络故障
3.        系统添加路由方式
优点:适用所有场景,不影响网络
缺点:现场有几台PC就需要写几条路由,枯燥乏味,而且如果客户后期加点则还需再新加机器上增加路由,无灵活性,不推荐
综上所述,可以根据实际情况选择第1种和第2种方式,至于第3种方式,我个人及其不推荐此种场景,后期运维难度及其复杂,请各位慎重考虑。

好了,今天的分享就到这里,各位走过路过不要错过,点个赞再走呗~

打赏鼓励作者,期待更多好文!

打赏
34人已打赏

七嘴八舌bar 发表于 2022-9-15 18:44
  
专家点评:文章详细介绍了ipsec结合nat解决来回路径不一致的案例,问题现象、数据流、解决方案都描述的非常清晰。
会飞的癞蛤蟆 发表于 2022-9-15 19:01
  
感谢楼主的无私分享。
এ塔铃独语别黄昏এ 发表于 2022-9-15 20:29
  
感谢楼主的无私分享。
新手081074 发表于 2022-9-16 07:29
  
每天学习一点,每天进步一点
山西6666 发表于 2022-9-16 08:50
  
每天学习一点,每天进步一点
新手626351 发表于 2022-9-16 09:12
  
每天学习一点,每天进步一点
奔走的公牛 发表于 2022-9-16 09:17
  
每天学习一点,每天进步一点
阿勒泰 发表于 2022-9-16 09:27
  
感谢分享,有助于工作,学习了!!!
angelccn 发表于 2022-9-16 09:35
  
每天学习一点,每天进步一点
发表新帖
热门标签
全部标签>
技术盲盒
西北区每日一问
安全效果
每日一问
干货满满
【 社区to talk】
新版本体验
技术笔记
功能体验
产品连连看
技术咨询
GIF动图学习
标准化排查
2023技术争霸赛专题
每周精选
通用技术
信服课堂视频
秒懂零信任
安装部署配置
排障笔记本
自助服务平台操作指引
答题自测
原创分享
升级&主动服务
社区新周刊
POC测试案例
畅聊IT
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
安全攻防
上网策略
测试报告
日志审计
问题分析处理
流量管理
每日一记
运维工具
云计算知识
用户认证
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
产品预警公告
玩转零信任
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
深信服技术支持平台
社区帮助指南
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
以战代练
技术晨报
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
2024年技术争霸赛
北京区每日一练
场景专题
故障笔记
排障那些事
高手请过招
高频问题集锦
全能先锋系列
云化安全能力

本版版主

12
185
6

发帖

粉丝

关注

121
315
352

发帖

粉丝

关注

本版达人

LoveTec...

本周分享达人

新手24116...

本周提问达人