将硬件节点上的IPsec隧道连接到OpenVZ容器

我有一个托pipeOpenVZ容器的服务器。 在硬件节点(HN)上configuration一个IPsec隧道,我想使远程networking在容器(CT)中可用。 我怎样才能做到这一点?

目前的设置是这样的:

  • HN在eth0上有公开地址
  • HN在别名eth0:0上有一个私有地址192.168.100.1
  • 远程networking是192.168.200.0/24,HN能够ping通这个networking上的主机
  • CT在venet0上有一个公共地址,它可以从外部访问,并可以到达外部主机
  • CT有一个私人地址192.168.100.101。 它可以在专用地址192.168.100.1上ping其HN
  • 没有configuration防火墙

CT无法到达远程192.168.200.0/24networking上的主机,我不知道如何做到这一点。 这可以通过使用容器的Venet接口来完成,还是我必须切换到veth? 这是HN上的一条路线吗? 我必须在HN上启用某种NAT吗?

任何帮助将不胜感激。

更新 :如果CT从它的私人地址发送一个ping,我可以在主机的venet0接口上看到一个tcpdump的icmp请求/回复。 我看起来像出站stream量很好,但传入的stream量被阻止。

要使主机的IPsec隧道可用于您的容器,您需要在容器中运行这个隧道:

sysctl -w net.ipv4.conf.venet0.disable_policy=1 

这将禁用VZ接口上的IPSEC策略(SPD)检查。 如果在容器中使用veth设备,这需要适应。

有关更多详情,请参阅