码迷,mamicode.com
首页 > 其他好文 > 详细

剖析NAT-T【新任帮主】

时间:2018-09-27 00:07:50      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:数据包   处理   就是   插入   存在   感知   main   blog   src   

技术分享图片
nat-t技术主要是针对pat来说的 ,当IPsec 建立在防火墙的两边时 ,并且穿越pat设备的时候将会出现问题;

现在来描述整个IPsec建立的过程来引出问题的所在。大家都知道ipsec ***隧道建立的过程中要经历六个包的main mode 和 3个包的 quick mode ,当我们启用nat-t的时候

①  首先在main mode的1,2两个包中会协商有没有nat-t的能力;此阶段,我把它叫做nat-t能力协商(针对nat-t来说)
技术分享图片
此处可以看出,运营商代码(vendor id)13 代表了此处支持nat-t的技术;

① 那么,我们怎么知道防火墙有没有做pat能,R1,R2是怎样感知的呢,此时在main mode的3,4个包中会在vendor id 13 中携带两个hash值,这个hash的原料是分别是源端的地址和端口号,目的端的ip地址和端口号 ;此阶段,我把它叫做试探nat
技术分享图片
如果对端发过来的源hash和目的hash相同说明没有做nat,否则说明做了nat

① 此处我是做了nat的 ,所以hash值是不一样的,当ipsec站点发现存在nat,就会改变数据包报头,插入udp的报头封装IPsec(ESP),此包格式更改是从main mode的5,6个包开始,一直到数据的加密全过程;此处有一个疑问,为什么检查到有nat就要改变报头格式呢?
技术分享图片
解释:当IPsec 隧道感知nat的存在时,在穿越pat设备的时候将不改变源端口号,因为有的时候ike在实施的过程中将不会处理源端口号不为500的数据包,那么pat的设备本身就是靠源端口号来进行地址复用的,现在不改变源端口号,固然会出现问题 。所以此时我们要尽可能改变源端口号,让pat设备转换,如上图udp源和目的端口号均为4500(ipsec-nat-t),此后所有的数据包都在udp 4500中传输;
技术分享图片

剖析NAT-T【新任帮主】

标签:数据包   处理   就是   插入   存在   感知   main   blog   src   

原文地址:http://blog.51cto.com/2825930/2286069

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!