我正在尝试使用 iproute2 从控制台手动设置 IPsec 连接。我需要的是一个虚拟接口(充其量,一个虚拟 IP 地址也可能就足够了),IPsec 转换所有入口(ESP/TUNNEL 模式)并将其移交给 eth0(在我的系统上称为 em1)。在另一组中,对等方从其自己的 eth 中获取数据包,对其进行解密并将其移交给另一端的虚拟接口。所以我想建立一个“正常”的IPsec隧道。
我对策略和 SA 没有任何问题,并且在传输模式下使用系统的普通以太网地址进行配置很容易,即
ip xfrm policy add src 198.51.100.1 dst 198.51.100.2 dir out tmpl proto esp
ip xfrm state add src 198.51.100.1 dst 198.51.100.2 spi 24501 proto esp enc des 0xAABBCCDDEEFF0011
ip xfrm state add src 198.51.100.2 dst 198.51.100.1 spi 24501 proto esp enc des 0xAABBCCDDEEFF0022
Run Code Online (Sandbox Code Playgroud)
对等体上的对手配置效果很好。
现在我尝试设置一个虚拟 IP 和一条到另一个系统的路由
ip address add 10.0.0.0 dev em1
ip route add to 10.0.0.2 via 10.0.0.1
Run Code Online (Sandbox Code Playgroud)
反之亦然。这再次运作良好。然后我将 IPsec 策略和 SA …