我的托管商 - 可以理解 - 减少了新服务器提供的 IPv4 地址,以便下次我将我的东西重新定位到新服务器时,我将使用大量的 IPv6 地址,但只有一个 IPv4 地址。
对于我只运行一个实例的服务(例如 SMTP),这应该不是问题。我将简单地通过(使用iptables/6
)对这些内容进行 NAT。然而,对于其他服务——我在这里特别担心 HTTP/S——我看到了如何将传入流量传递到正确的访客机器以及显然再次将出站数据传输到客户端的问题。
我这里的主要问题是安全性。我想我可以(ab)使用一种常用的代理或也可以用作代理的网络服务器(nginx、lighttpd)。然而,在这种情况下,访客系统将其视为“本地请求”,并且某些访问控制机制可能会失败。此外,由于加密流量,HTTPS 在这里是一个大问题,尽管我可以让主机系统完全实现 HTTPS 部分,并在未加密的情况下代理来往于来宾系统(一直在 lighttpd 实例用作的单台机器上使用该方法处理一组特定 URI 的 Apache2 后端的前端)。
即使个别域的处理是由个别客人执行的,我如何向外界提供相同的服务(此处为 HTTP/S)?或者更确切地说,如今什么被认为是最佳实践?
[internet] <--> [IPv4:host] <-+-> [guest:foo.org]
|
|-> [guest:bar.org]
|
|-> [guest:baz.org]
...或者我是否可以通过仅AAAA
向这些域提供记录并让客户端处理所有内容来忽略所有这些问题?
除了“下次我将我的东西重新定位到新服务器时,它将位于具有更多 IP 的新主机”之外,我看不到任何结束方式。除非您计划 3-5 年后或您的用户是真正的密友,否则这可能会以泪水告终。
IPv6 仍然不是主流,没有 IPv4 就没有任何访问者。只要有 AAAA 记录就可以使服务器相当闲置。轶事经验是,在 3-5 年内,每个人都会至少废弃一次他们的廉价无线路由器,也许当人们购买新的时,廉价路由器将支持它而不需要 OpenWRT。
在安全方面,
X-Forwarded-For:
旨在让服务器知道哪个 IP 连接到反向代理,因此您需要重写站点代码以使其查看标头而不是连接本身。SNI是为处理 SSL 虚拟主机而开发的,几乎所有当前的服务器都支持它,因此从 Apache 或 Nginx 设置反向代理应该可以满足您的需求。如果任何客人需要客户端 SSL 证书,我不知道该证书信息是如何从代理传递的(我确定它是在标头中发送的)。这里真正的问题是,在 Windows XP 上,IE 不支持 SNI,并且将使用他们输入的任何主机名获取默认虚拟主机的证书,希望您的用户升级 Windows 或切换到 Firefox。