ike检测到有nat的时候为什么要切换到4500端口号?参考rfc3947第四章节,参考rfc3715第2.3章节的情况m与n,其实主要就是ipsec-aware nat的问题,有些nat设备能够感知ipsec包(其实就是去解析ipsec包,利用里面的字段来实现多路复用,而不是利用端口号实现多路复用),这种nat不进行端口转换,那么rfc3947中检测nat的方法就会失效。但是问题又来了,如果中间存在的是上面说的ipsec-aware nat,那ike又是如何先检测出来有nat呢?检测不出来又如何去切换到4500端口号呢?
一种解释就是不管你用什么方法检测到了nat,就简单粗暴切到4500,防止中间是这种ipsec-aware的nat。
为什么esp与ike要共用4500呢?参考rfc3948第一章。