Linux
將硬體節點上的 IPsec 隧道帶到 OpenVZ 容器
我有一個託管 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 設備,則需要進行調整。
有關更多詳細資訊,請參閱: