==================== A与B主机直接相连 (相对简单) =============================
准备工作:
准备2台电脑(建议linux),每台电脑配置一个虚拟机并以bridaged的模式配置虚拟机网络,如果都弄好了可以看以下内容(配置内容可以看在我之前的几篇文章)
先来看一下2台电脑的网络配置清单:
机器A1(物理机)有2个网卡 eth0 和 tap0, 还一台虚拟机记为A2有一个网卡 eth0
机器B1(物理机)有2个网卡 eth0 和 tap0, 还一台虚拟机记为B2有一个网卡 eth0
Ip地址如下,
机器 网卡接口 IP/Mask
A1 eth0 192.168.1.11/24
A1 tap0 10.0.1.1/24
A2 eth0 10.0.1.2/24
B1 eth0 192.168.1.10/24
B1 tap0 10.0.2.1/24
B2 eth0 10.0.2.2/24
1. 安装racoon (一个专用于IPSec的工具.), 官方网站 http://ipsec-tools.sourceforge.net/
$apt-get install racoon
2. 在home目录下创建一个spd.txt文档,定义ipsec tunnel的配置
3.编辑 racoon 的配置文件
4.
然后权限更改
$chmod 600
6.运行racoon,
$racoon -F -d -d /etc/racoon/racoon.conf
7.到此,一台主机配置完成,将另一台主机相同配置,不过把source和dest完全颠倒
8.如果所以配置都正确,现在我们从任意一台虚拟机 ping 另一台 虚拟机,数据包采取的IPSec协议(而不是传统的数据包)
如果你成功模拟了以上例子,有兴趣的话可以看一下如果A与B是通过另一台电脑相连的,那应该设置让从A到B的IPSec包经过C (就是B接受A的数据包,然后转发给B,而这些都也要采取IPSec协议)
==================== A与B主机通过C主机间接相连 (相对复杂) =========================
当然要配置的文件跟上面的例子一样3个: spd.txt, psk.txt, racoon.conf
机器A1(物理机)有2个网卡 eth0 和 tap0, 还一台虚拟机记为A2有一个网卡 eth0
机器B1(物理机)有2个网卡 eth0 和 tap0, 还一台虚拟机记为B2有一个网卡 eth0
机器C有一个网卡eth0,不需要虚拟机
Ip地址清单如下,
机器 网卡接口 IP/Mask
A1 eth0 192.168.1.11/24
A1 tap0 10.0.1.1/24
A2 eth0 10.0.1.2/24
B1 eth0 192.168.1.10/24
B1 tap0 10.0.2.1/24
B2 eth0 10.0.2.2/24
C eth0 192.168.1.12/24
以下在A主机上操作:
1. 更改文件 spd.txt
2.更改文件 psk.txt
3.更改 racoon.conf
以下在B 主机上操作:
跟A机器一样,只是在3个文件中出现A机器地址192.168.1.11 的地方换成B机器地址192.168.1.10
以下在C主机上操作:
C机器前提是已经按照了 racoon, 3个文件所在路径也跟AB相同
spd.txt 配置
racoon.conf 配置
spk.txt
好,到这里3台主机的IPSec配置都完成, 分别在3台电脑运行racoon
运行racoon,
$racoon -F -d -d /etc/racoon/racoon.conf
现在从A的虚拟机 A2 ping B2ip:10.0.2.1(可以在3台主机上运行 Wireshark,并监视eth0网络接口 ),如果在B机上看到收到 icmp 来自10.0.1.1 的数据包,就说明设置成功
如果不成功也不要泄气,肯定是因为某台电脑3个文件设置出问题了,因为ip太多混淆很正常