IPsec数据传输过程

        IPsec数据传输过程

转载请注明出处:http://blog.csdn.net/rosetta

        以下是一个数据包经IPsec隧道的传送过程(如ICMP包),由左边的虚拟专用网网关保护子网内的PC机向右边虚拟专用网网关保护子网内的PC机传送数据时,左边PC发送的数据由左网关 eth1内口接收后发现需要经过隧道,则把数据交由左ipsec0口加密(tunnel, ESP或AH),加完密后再由左eth0外口发送到右mqu网关的eth0外口,右eth0外口收到数据发现需要解密,则由ipsec0口解完密后交由右eth1内口进行转发或由本机接收。

 

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

 

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

 

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

         eth0为外口(协商口),eth1为内口。

下面可以在已经建立好Ipsec隧道后进行截包分析,由于隧道模式已经把原来的源IP和目的IP加密无法查看到具体IP地址ESP的真实走向,而传输模式的源和目的IP是不会被加密的,所以可以传输模式隧道为例。

环境拓扑:

PC1              网关1  ============网关2               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,此过程与上面分析过程类似。)

IPsec数据传输过程_第1张图片

 

 

你可能感兴趣的:(IPsec数据传输过程)