IPSec连接穿透NAT的问题

2025-10-02 22:33:54

1、IPSec数据包在穿越NAT时会遇到一个很严重的问题,因为NAT机制会修改数据包的IP及TCP或UDP包头内容,而IPSec为了确保数据包的安全性,也会逐一检查每个IPSec的数据包,一旦数据包内容(包含包头)有任何变动,这些数据包就会被IPSec机制丢弃,所以IPSec数据包是无法穿越NAT的。但如果真是这样,那IPSec在使用上将受到严重限制,幸运的是在大家的努力下,IPSec协议终于可以穿越NAT了,这项技术规范是在rfc3947中定义的,称为“NAT-Traversal”,简称为NAT-T。那NAT-T到底是如何让IPSec数据包可以穿越NAT的呢

IPSec连接穿透NAT的问题

2、从以上两个IPSec数据包的结构图,我们可以很清楚看到图16-77中在ESP及IP包头之间多了一个UDP包头,这是IPSec数据包可以穿越NAT的关键之处。当IPSec数据包有了这个UDP包头之后,IPSec数据包再穿越NAT主机时,NAT主机便可以修改IP包头及UDP包头的内容,但IPSec数据包的接收端并不会检查IP包头及UDP包头的内容,因而使得IPSec数据包可以正常穿越NAT主机。 那我们要如何在racoon下启用NAT-T的功能呢?以图16-78及配置文件为例,可以看到racoon的配置文件与以前的内容并无太大差异。主要差别在第5行到第16行及第20行,其中第9行及第10行的IP是L2TP服务器在因特网的公网IP,除此之外,其他设置步骤与之前的示例完全相同

IPSec连接穿透NAT的问题

3、1. 1 path include "/etc/racoon";  2. 2 path pre_shared_key "/etc/racoon/psk.txt";  3. 3 path certificate "/etc/racoon/certs";  4. 4 log debug;  5. 5 timer {  6. 6 natt_keepalive 10sec;  7. 7 }  8. 8 listen {  9. 9 isakmp 10.10.15.40[500];  10. 10 isakmp_natt 10.10.15.40[4500];  11. 11 }  12. 12 padding {  13. 13 maximum_length 20;  14. 14 randomize off;  15. 15 strict_check off;  16. 16 exclusive_tail off;  17. 17 }  18. 18 remote anonymous {  19. 19 exchange_mode main,aggressive;  20. 20 nat_traversal on;  21. 21 generate_policy on;  22. 22 certificate_type x509 "cert.pem" "key.pem";  23. 23 verify_cert on;  24. 24 verify_identifier on;  25. 25 my_identifier asn1dn;  26. 26 peers_identifier asn1dn;  27. 27 proposal {  28. 28 encryption_algorithm 3des;  29. 29 hash_algorithm sha1;  30. 30 authentication_method rsasig;  31. 31 dh_group modp1024;  32. 32 }  33. 33 }  34. 34 sainfo anonymous {  35. 35 lifetime time 1 hour;  36. 36 encryption_algorithm 3des;  37. 37 authentication_algorithm hmac_sha1;  38. 38 compression_algorithm deflate;  39. 39 }

 

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢