NAT-T和PAT(IPSec)
¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥NAT-T技术介绍¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
为什么TCP和UDP不能穿越:
TCP和UDP有一个IP头的尾部校验(校验头部和负载,IP尾部(SIP,DIP,协议号));而IP只是校验IP头部。
穿过NAT的时候,IP头部的地址变了,那么校验结果也就改变了,这样就不行了。数据在传输层就丢掉了。
Cisco的IOS 12.3之后支持,NAT-T的解决问题的思路是:
这项技术用来将ESP数据包封装到UDP数据包中(在原ESP头部和外层IP头部之间,插入一个UDP 4500的头部),使得NAT设备
按照处理一个普通的UDP数据包的方式对它处理,这样就可以穿越PAT了。
下面是NAT-T的封装示意图:
下面是NAT-T协商的介绍:
协商3步骤:

1、主要用于判断IPSec双方是否都支持NAT-T技术,若任何一方不支持就会失败,那IPSec VPN就会使用ESP封装数据包。主要是通过IKE中的版本ID来看
2、判断两个peer之间是否有存在地址转换(NAT,PAT)——两个peer之间必须存在地址转换,不管是NAT或是PAT,才会使用NAT-T技术封装数据。NAT-D也叫做hash负载。对源地址hash,对源端口hash,目的也是如此。看是否过了NAT。
3、在1中两个peer都支持NAT-T技术,在2中peer之间确实存在地址转换,那么从上图中第一阶段IKE5-6包开始,后面的所有数据都会使用NAT-T技术进行封装。
命令: crypto ISAKMP nat-traversal
靠参考文档:https://max.book118.com/html/2017/0818/128588311.shtm
接下来验证一下PAT在中间网络的情况:

R1:
hostname R1
!
crypto isakmp policy 10
authentication pre-share
crypto isakmp key cisco address 23.1.1.3//因为这里通过R3做了PAT,所以peer地址应该是23.1.1.3
!
!
crypto ipsec transform-set trans esp-des esp-md5-hmac
!
crypto map cisco 10 ipsec-isakmp
set peer 23.1.1.3
set transform-set trans
match address vpn
!
!
interface Loopback0
ip address 1.1.1.1 255.255.255.0
interface FastEthernet1/0
ip address 12.1.1.1 255.255.255.0
duplex auto
speed auto
crypto map cisco
!
ip route 0.0.0.0 0.0.0.0 12.1.1.2
!
ip access-list extended vpn
permit ip 1.1.1.0 0.0.0.255 4.4.4.0 0.0.0.255
R2:
hostname R2
!
interface FastEthernet1/0
ip address 12.1.1.2 255.255.255.0
duplex auto
speed auto
!
!
interface FastEthernet1/1
ip address 23.1.1.2 255.255.255.0
duplex auto
speed auto
R3:
hostname R3
interface FastEthernet1/0
ip address 23.1.1.3 255.255.255.0
ip nat outside
ip virtual-reassembly
duplex auto
speed auto
!
!
interface FastEthernet1/1
ip address 34.1.1.3 255.255.255.0
ip nat inside
ip virtual-reassembly
duplex auto
speed auto
ip nat inside source list PAT interface FastEthernet1/0 overload
ip route 0.0.0.0 0.0.0.0 23.1.1.2
!
ip access-list extended PAT
permit ip any any
R4:
hostname R4
!
crypto isakmp policy 10
authentication pre-share
crypto isakmp key cisco address 12.1.1.1
!
!
crypto ipsec transform-set trans esp-des esp-md5-hmac
!
crypto map cisco 10 ipsec-isakmp
set peer 12.1.1.1
set transform-set trans
match address vpn
interface Loopback0
ip address 4.4.4.4 255.255.255.0
!
interface FastEthernet1/0
ip address 34.1.1.4 255.255.255.0
duplex auto
speed auto
crypto map cisco
!
ip route 0.0.0.0 0.0.0.0 34.1.1.3
!
ip access-list extended vpn
permit ip 4.4.4.0 0.0.0.255 1.1.1.0 0.0.0.255
现在可以在R3的两个接口抓包,具体情况如下:
R3-R4:
R3-R2:
可以看到明显是经过了PAT了,
R3#sho ip nat translations
Pro Inside global Inside local Outside local Outside global
udp 23.1.1.3:500 34.1.1.4:500 12.1.1.1:500 12.1.1.1:500
udp 23.1.1.3:4500 34.1.1.4:4500 12.1.1.1:4500 12.1.1.1:4500
这是PAT之前的校验和:
这是PAT之后的校验和:
这也就验证前面所说的在穿越NAT设备的时候,UDP或者TCP会校验IP头尾部,IP变了,那么校验出的结果就改变了。而这里穿越的是PAT,那么就需要使用源IP和源端口,然后这里的端口是被ESP封装的,所以不能实现通信。


这里也可以看到源和目的端口启用了NAT-T技术,使用UDP 4500端口。那么我们将NAT-T技术关闭(Cisco IOS的NAT-T技术是默认打开的):
R3(config)#no crypto ipsec nat-transparency udp-encapsulation
观察现在的R4—R1的IPSec VPN情况:由于实验的IOS的问题,所以这里还是通的,但是正确的应该是关闭NAT-T技术,就是不通的,所以,NAT-T的关键就是在新的IP头部和ESP头部之间封装一个NAT-T使用的UDP 4500端口。来实现通信的。
NAT-T和PAT(IPSec)的更多相关文章
- P2P技术详解(一):NAT详解——详细原理、P2P简介
1. IPv4协议和NAT的由来 今天,无数快乐的互联网用户在尽情享受Internet带来的乐趣.他们浏览新闻,搜索资料,下载软件,广交新朋,分享信息,甚至于足不出户获取一切日用所需.企业利用互联网发 ...
- NAT详解:基本原理、穿越技术(P2P打洞)、端口老化等
这是一篇介绍NAT技术要点的精华文章,来自华3通信官方资料库,文中对NAT技术原理的介绍很全面也很权威,对网络应用的应用层开发人员而言有很高的参考价值. 学习交流 移动端即时通讯学习交流: 21589 ...
- NAT技术详解
一.IPv4协议和NAT的由来 1.IPv4协议介绍 2011年2月3日,IANA宣布:IPv4地址空间最后5个地址块已经被分配给下属的5个地区委员会.2011年4月15日,亚太区委员会APNIC对外 ...
- Juniper SRX防火墙-NAT学习笔记!
Junos NAT第一部分:SRX NAT介绍第二部分:Source NAT:Interface NAT第三部分:Source NAT:Address Pools第四部分:Destination NA ...
- Nat网络地址转换
Nat中的术语 -------------------------------------------------------------------------------------------- ...
- ASA IPSEC VPN配置
ASA-1配置 : Saved:ASA Version 8.0(2) !hostname ASA-1enable password 8Ry2YjIyt7RRXU24 encryptednames!in ...
- [转] OpenStack IPSec VPNaaS
OpenStack IPSec VPNaaS ( by quqi99 ) 作者:张华 发表于:2013-08-03版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声 ...
- ipsec原理(转载)
IPSec VPN是目前VPN技术中点击率非常高的一种技术,同时提供VPN和信息加密两项技术,这一期专栏就来介绍一下IPSec VPN的原理.IPSec VPN应用场景 IPSec VPN的应用场景分 ...
- 实验17:NAT
实验14-1:静态NAT 配置 Ø 实验目的通过本实验可以掌握(1)静态NAT 的特征(2)静态NAT 基本配置和调试 Ø 拓扑结构 实验步骤n 步骤1:配置路由器R1 提供NAT ...
- Pfsense2.34中文版
Pfsense2.34中文版 来源 https://forum.netgate.com/topic/112076/pfsense2-34%E4%B8%AD%E6%96%87%E7%89%88-%E8 ...
随机推荐
- Unity相机跟随
固定相机跟随 这种相机有一个参考对象,它会保持与该参考对象固定的位置,跟随改参考对象发生移动 using UnityEngine; using System.Collections; public c ...
- codeforces div2 603 D. Secret Passwords(并查集)
题目链接:https://codeforces.com/contest/1263/problem/D 题意:有n个小写字符串代表n个密码,加入存在两个密码有共同的字母,那么说这两个密码可以认为是同一个 ...
- CSP2019感想
我觉得自己好弱啊. 想更新博客,可是又没有人看. 本来自己还不算太弱,可是自己越来越腐败. 看看自己,连更新博客的资本都没有了呢.别人写些什么都是经典干货.自己写什么自己都觉得垃圾,只好默默地删掉. ...
- [Reversal 剧情设计] 设定
在正式写之前,先交代一些设定,便于后续的展开.先在这里说明一点,我的文笔可能很烂(因为在写小说方面还没有得到过别人的评价),只要你们能体会我想表达的东西就行(不过也的确是这样,如果作者构筑得过于详细, ...
- C语言 exit
C语言 exit 在main函数中调用exit和return结果是一样的,但在子函数中调用return只是代表子函数终止了,在子函数中调用exit,那么程序终止. 案例 #include <st ...
- jeecg /ant-design-vuepro 前端使用
1.原生axios使用 <script> import Vue from 'vue'; import axios from 'axios'; axios.defaults.baseURL ...
- CDQ 分治
引言: 什么是CDQ分治?其实这是一种思想而不是具体算法,因此CDQ分治覆盖的范围相当广泛,在 OI 界初见于陈丹琦 2008 年的集训队作业中,故被称为CDQ分治. 大致分为三类: cdq分治解决与 ...
- 数据库程序接口——JDBC——功能第四篇——事务之Spring事务
综述 事务的实现方式有三种,JTA,Spring事务,Web Container方式.本篇讲述Spring事务. Spring事务分为两个部分核心对象,Spring事务的实现方式. Spring事务实 ...
- 解决MinGW运行时提示丢失libgmp-10.dll
如何解决刚安装的MinGW提示"丢失xxx.dll" 解决方案: 1.配置环境变量,出现这种问题的主要原因是因为没配置环境变量,网上的大多数解决方案也是基于这个的. 2.安装包损坏 ...
- 中国大学MOOC 邮箱验证的问题
在使用 中国大学 MOOC 过程中,在PC端修改个人资料时,其中有项“常用邮箱”,于是写了QQ邮箱,结果发现一直无法验证,连邮件都无法收到. 经过多番尝试,重新使用邮箱注册的方式注册账号,然后注册成功 ...