strongswan -- IKEv2如何檢測到經過了nat設備


拓撲如下:

  

  其中NAT設備將來自DUTA的報文源IP 101.0.0.2轉換為102.0.0.2。DUTA發起IPSec連接。

1. DUTA計算natd_chunk和natd_hash

  DUTA先用自己的SPI,對等體的SPI(為0),IP和端口號做SHA1處理。如下圖:

  

  代碼位於ike_natd.c的函數generate_natd_hash。

  針對源IP和目的IP都生成natd_chunk,並計算哈希值。

  

2. DUTA經過NAT設備后,源IP做了轉換。

3. DUTB判斷是否經過了NAT設備

  當DUTB收到IKE_SA_INIT報文后,解析得到轉換后的源IP和目的IP。然后按照DUTA同樣的方式組裝natd_chunk,計算natd_hash哈希。

   

  從圖中可以看出,收到的報文計算出的源IP chunk對應的哈希值precalculated_src_hash與接收到的DUTA計算的哈希值received_src_hash不一致。

  說明DUTA在NAT后面。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM