Linux

將硬體節點上的 IPsec 隧道帶到 OpenVZ 容器

  • July 3, 2012

我有一個託管 OpenVZ 容器的伺服器。在硬體節點 (HN) 上配置了 IPsec 隧道,我想讓遠端網路在容器 (CT) 中可用。我怎樣才能做到這一點?

目前的設置是這樣的:

  • HN 在 eth0 上有一個公共地址
  • HN 在別名 eth0:0 上有一個私有地址 192.168.100.1
  • 遠端網路是 192.168.200.0/24,HN 可以 ping 這個網路上的主機
  • CT 在 venet0 上有一個公共地址,可以從外部訪問,也可以訪問外部主機
  • CT 有一個私有地址 192.168.100.101。它可以在私有地址 192.168.100.1 上 ping 其 HN
  • 沒有配置防火牆

CT 無法訪問遠端 192.168.200.0/24 網路上的主機,我不知道該怎麼做。這可以通過使用容器的 venet 介面來完成,還是我必須切換到 veth?這是 HN 上缺少的路線嗎?我必須在 HN 上啟用某種 NATing 嗎?

任何幫助將不勝感激。

更新:如果 CT 從其私有地址發送 ping,我可以在主機上的 venet0 介面上看到帶有 tcpdump 的 icmp 請求/回复。我看起來傳出的流量很好,但傳入的流量被阻止了。

要使主機的 IPsec 隧道可用於您的容器,您需要在您的容器中執行它:

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

這將禁用 VZ 介面上的 IPSEC 策略 (SPD) 檢查。如果容器中使用了 veth 設備,則需要進行調整。

有關更多詳細資訊,請參閱:

引用自:https://serverfault.com/questions/402286