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 ...
随机推荐
- Lose it!
You are given an array aa consisting of nn integers. Each aiai is one of the six following numbers: ...
- Go_Redis
Redis介绍 Redis是一个开源的内存数据库,Redis提供了多种不同类型的数据结构,很多业务场景下的问题都可以很自然地映射到这些数据结构上.除此之外,通过复制.持久化和客户端分片等特性,我们可以 ...
- awk从放弃到入门(2):awk分隔符
一.awk分隔符 awk的默认分割符是空格,但是,这样描述并不精确,因为,awk的分隔符还分为两种,"输入分隔符" 和 "输出分隔符" . (1)输入分隔符:英 ...
- 记一次if控制器的使用
1.添加if控制器 2.输入判断条件:常见的就是某个变量是不是等于某个值 3.或者用函数助手中的函数 每个版本jmeter函数助手的入口不同,我的直接在菜单上: 选择__jexl3,输入判断条件,点击 ...
- Bugku-CTF之这是一个神奇的登陆框
Day32 这是一个神奇的登陆框 http://123.206.87.240:9001/sql/ flag格式flag{}
- Hadoop 启动/停止集群和节点的命令
集群启动/停止Hadoop集群:start-all.sh stop-all.sh 1) 启动NameNode, DataNode 2) 启动JournalNode, JournalNode在hd ...
- C++:打开一个文件夹下一系列的文件
可以用MFC的CFileFind类: FILE *pFile=NULL; CFileFind cff; CString fstr="C:\\page\\*.*"//所以用文件和文件 ...
- 题解 SP7579 YOKOF - Power Calculus
SP7579 YOKOF - Power Calculus 迭代加深搜索 DFS每次选定一个分支,不断深入,直至到达递归边界才回溯.这种策略带有一定的缺陷.试想以下情况:搜索树每个节点的分支数目非常多 ...
- 用Python给头像加上圣诞帽或圣诞老人小徽章
随着圣诞的到来,想给给自己的头像加上一顶圣诞帽.如果不是头像,就加一个圣诞老人陪伴. 用Python给头像加上圣诞帽,看了下大概也都是来自2017年大神的文章: https://zhuanlan.zh ...
- 前端开发CSS清除浮动的方法有哪些?
在前端开发过程中,非IE浏览器下,当容器的高度自动,并且容器内容中有浮动元素(float为left或right),此时如果容器的高度不能自适应内容的高度,从而使得内容溢出破坏整体布局,这种现象叫做浮动 ...