我想在主机之间设置 VPN 隧道,以便它们的子网可以相互连接。例如:
DummyNetwork ---> PC1(主机 A)------------- PC2(主机 B)------ >DummyNetwork
PC1 IP地址:192.168.32.109 PC1虚拟网络:10.10.10.0/24
PC2 IP地址:192.168.32.110 PC2虚拟网络:20.20.20.0/24
个人电脑 1
sudo modprobe dummy
sudo ip link set name eth10 dev dummy0
sudo ip addr add 10.10.10.1/24 brd + dev eth10 label eth10:0
sudo sysctl -w net.ipv4.ip_forward=1
sudo route add -net 20.20.20.0 netmask 255.255.255.0 gw 192.168.32.110 dev eno1
电脑 2
sudo modprobe dummy
sudo ip link set name eth10 dev dummy0
sudo ip addr add 20.20.20.1/24 brd + dev eth10 label eth10:0
sudo sysctl -w net.ipv4.ip_forward=1
sudo route add -net 10.10.10.0 netmask 255.255.255.0 gw 192.168.32.109 dev eno1
After this run ping 10.10.10.1 from PC1 and ping 20.20.20.1 from PC2. ping runs fine here.
设置VPN
由于我在 ubuntu 16.04 上工作,因此我使用 strongswan 设置 vpn 隧道
在两台主机即A和B上安装strongswan
sudo apt-get 安装 ipsec-tools strongswan-starter
PC1
Sudo gedit edit /etc/ipsec.conf
And copy below text in it.
conn red-to-blue
authby=secret
auto=route
keyexchange=ike
left=192.168.32.109
right=192.168.32.110
type=tunnel
esp=aes128gcm16!
sudo gedit /etc/ipsec.secrets
And copy below code in it.
192.168.32.109 192.168.32.110 : PSK "pass”
Sudo ipsec restart
PC2
sudo gedit /etc/ipsec.conf
And copy below text in it.
conn blue-to-red
authby=secret
auto=route
keyexchange=ike
left=192.168.32.109
right=192.168.32.110
type=tunnel
esp=aes128gcm16!
sudo gedit /etc/ipsec.secrets
And copy below code in it.
192.168.32.110 192.168.32.109 : PSK "pass”
Sudo ipsec restart
Testing our Tunnel
从 PC1
ping 192.168.32.109
从 PC2
tcpdump esp
我可以在这里捕获 esp 数据包。但是ping 20.20.20.1
从 PC1 运行,在 PC2 上没有收到 ant esp 数据包。可能是什么问题?
答案1
没有 IPsec 策略涵盖子网10.10.10.0/24
和之间的流量20.20.20.0/24
。使用当前配置,您只能覆盖这些主机的实际 IP 之间的流量(左|右)。您必须定义要与之建立隧道的子网左|右子网。 按照惯例左边=当地的假设,因此在 PC1 上:
leftsubnet=10.10.10.0/24
rightsubnet=20.20.20.0/24
如果你想包含主机的物理 IP,你可以包含它们(或关键字%动态的) 在这些子网列表中(以逗号分隔)。
实际上也不需要虚拟接口(只需在现有接口上安装虚拟 IP)。路由由 strongSwan 自动安装在路由表 220 中(使用 进行检查ip route list table 220
)。安装ipsec 工具也不需要使用 strongSwan。
答案2
尝试在 PC2 上翻转左=和右=条目
left=192.168.32.110
right=192.168.32.109