连接到使用NAT的OpenVZ容器

可以说我没有足够的IP分配给每个容器,如果没有公共地址,那么有人会连接那个容器? (使用该容器的NAT)地址将是私人的权利? 那么外部networking如何连接到它呢?

同样的方法build立从外部任何NAT到内部的连接:通过端口转发。

您可以使用iptables将主机上的一个或多个端口转发到guest虚拟机上的一个或多个端口。 毋庸置疑,您可能可以将每个主机端口分配给一个访客端口。 举个例子,如果你有一个web服务器的容器,你将需要转发端口80和443.在这样做后,其他容器将不能使用这些端口。

因此,如果您需要提供多个Web服务器容器,则可能需要考虑在主机上或可以检查HTTP主机头/ URL和代理连接到适当位置的客户机上运行反向代理。

我的方法如下:

  • 使用单独的全局可路由IPv6地址运行每个容器。
  • 在单个全局可路由的IPv4地址上运行反向代理。 代理可以使用Host头(在http的情况下)和SNI​​(在https的情况下)代理每个客户端到适当的容器的IPv6地址。
  • 此外,容器与外部networking之间的网关可以为您的容器提供Teredo和6to4中继,以便在使用这些隧道方法之一的客户端可以获得与IPv6地址的可靠连接的情况下。