本文的copyleft归gfree.wind@gmail.com所有,使用GPL发布,可以自由拷贝,转载。但转载请保持文档的完整性,注明原作者及原链接,严禁用于任何商业用途。
作者:gfree.wind@gmail.com
博客:linuxfocus.blog.chinaunix.net
近日,在做IPsec方面的任务。根据我以往的经验和习惯,进入一个新领域,首先要把基本概念理解透彻。这样,以后学习起来,才会事半功倍。好,闲话少说,下面是我对IPsec中的一些基本概念的理解。不是照搬RFC的,所以肯定不会严谨。
1. IPsec是为了解决IP协议本身的安全性,它可用于IPv4和IPv6。
2. IPsec协议包括AH和ESP;AH是Authentication Header的缩写,如其名字,它主要用于authentication。因为AH在计算中,会包括AH前面的IP头中的域,如源地址和目的地址,因此提供了对于双方身份的确认。——注AH的计算中不会包含TTL字段。因为TTL字段在发送过程中,是递减的。ESP主要提供了对于数据的加密。但不含IP报文头。
3. IPsec有两种模式,一种是transport模式,另外一种是tunnel模式。在transport模式下,IPsec相当于被插在了IP层与传输层之间。而tunnel模式,IPsec相当于与IP层处于同一层,在完成该IP层的IPsec处理后,需要对数据包再一次进行IP层的封装。原有的包含IPsec的IP数据(含原有IP头)为新的IP数据。这也是所有IP tunnel的处理。
4. 因为AH的计算中包含了IP首部的源地址和目的地址,所以AH与NAT有冲突。在IPsec的实现中,引用了NAT-T这个feature。实际上主要是通过放弃AH,而只用ESP来实现的。
5. IPsec工作流程:当device收到一个数据包时,首先通过SPD查找对应的policy,或bypass,或drop,或需应用IPsec。如需应用IPsec,则在通过SAD查找相应的SA,通过找到的SA应用IPsec。
阅读(4857) | 评论(0) | 转发(1) |