萬盛學電腦網

 萬盛學電腦網 >> 網絡應用技術 >> 應用教程 >> IPsec VPN數據傳輸過程

IPsec VPN數據傳輸過程

  IPsec VPN數據傳輸過程

  以下是一個數據包經IPsecVPN隧 道的傳送過程(如ICMP包),由左邊的VPN保護子網內的PC機向右邊VPN保護子網內的PC機傳送數據時,左邊PC發送的數據由左VPN eth1內口接收後發現需要經過隧道,則把數據交由左ipsec0口加密(tunnel, ESP或AH),加完密後再由左eth0外口發送到右VPN的eth0外口,右eth0外口收到數據發現需要解密,則由ipsec0口解完密後交由右 eth1內口進行轉發或由本機接收。

  加密  =========================》  解密

  host:eth1===ipsec0<==>eth0==============eth0<=====>ipsec0 ===eth1:host

  解密  《========================= 加密

  eth0為外口(協商口),eth1為內口。

  下面可以在已經建立好Ipsec VPN隧道後進行截包分析,由於隧道模式已經把原來的源IP和目的IP加密無法查看到具體IP地址ESP的真實走向,而傳輸模式的源和目的IP是不會被加密的,所以可以傳輸模式隧道為例。

  環境拓撲:

  PC1 VPN1  ============VPN2 PC2

  184.0.0.2  184.0.0.1(eth1)/192.168.95.164(eth0) 192.168.95.195(eth0)/185.0.0.1(eth1) 185.0.0.2

  現從PC1向PC2發送ICMP ping包,在VPN1上tcpdump抓包如下,為觀看直觀特附加一加截圖。

  /tos/bin/ipsec-cmds# tcpdump  -ni any host 184.0.0.2

  tcpdump:WARNING: Promiscuous mode not supported on the "any" device

  tcpdump:verbose output suppressed, use -v or -vv for full protocol decode

  listeningon any, link-type LINUX_SLL (Linux cooked), capture size 68 bytes

  11:26:39.649389R@eth1 IP 184.0.0.2 > 185.0.0.2: ICMP echo request,id 512, seq 12039, length 40 (左VPN內口eth1收到PC1 ICMP明文包)

  11:26:39.649411X@ipsec0 IP 184.0.0.2 > 185.0.0.2: ICMP echorequest, id 512, seq 12039, length 40 (查找route後交由ipsec0加密)

  11:26:39.649485X@eth0 IP 184.0.0.2 > 185.0.0.2:ESP(spi=0x30f18c51,seq=0xc38), length 76

  (加完密後的ESP包由外口eth0發出)

  11:26:39.656606R@eth0 IP 185.0.0.2 > 184.0.0.2:ESP(spi=0xa6e0f4f2,seq=0xb36), length 76

  (右VPN外口eth0收到ESP加密包)

  11:26:39.656606R@ipsec0 IP 185.0.0.2 > 184.0.0.2: ICMP echo reply,id 512, seq 12039, length 40(由右ipsec0解密)

  11:26:39.656672X@eth1 IP 185.0.0.2 > 184.0.0.2: ICMP echo reply, id512, seq 12039, length 40

  (解密後的明文交由內口eth0發送給PC2,此時一個方向的ICMP包傳送完成)

  11:26:40.649357R@eth1 IP 184.0.0.2 > 185.0.0.2: ICMP echo request, id 512, seq 12295,length 40(PC2回應ICMP給PC1,此過程與上面分析過程類似。)


copyright © 萬盛學電腦網 all rights reserved