扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
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中传输;
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流