没有 IPv4 地址的 IPv6 Web 服务器

没有 IPv4 地址的 IPv6 Web 服务器

IPv4 IP 越来越稀缺,价格越来越昂贵,我想知道是否有可能将我们的 Web 服务器完全切换到 IPv6。我知道这是可能的建议使用 IPv4 和 IPv6但我仍然想知道:

有没有办法仅使用一个 IPv4 地址就可以访问多个 IPv6 Web 服务器?

例如,关于 HTTPS,我们会面临什么问题?

答案1

基因转移酶

第一个问题很简单:是的,这正是 NAT 的用途,但您必须将单个 v4 地址放在 v6 服务器池前面,为每个池成员提供一个 RFC1918 v4 地址,并将一个真实的 v4 地址/端口对打通到您希望具有 v4 寻址的每个 RFC1918 地址/端口对。您需要手动为每个服务器分配一个外部端口:

  • 端口 81 => 服务器1:80
  • 端口 82 => 服务器2:80
  • ...

缺点:具有防火墙的客户端可能不被允许连接到端口 81。

代理人

如果您不想这样做,v4 框将需要运行某种虚拟主机代理,以便它可以从仅 v4 的主机接收对 v6 池的服务请求,代理请求并提供答复。

如何设置代理远远超出了 SF 答案的范围,但本质上前端框需要维护一个代理表,例如

  • site1.example.com/* 代理-> [2001:ea48:abc1:3500::1:1]:80/*
  • site2.example.com/* 代理-> [2001:ea48:abc1:3500::2:1]:80/*
  • site3.example.com/* 代理-> [2001:ea48:abc1:3500::6:1]:80/*

回答来自解析为 v4 地址 site[123].example.com 的站点上的客户端的传入请求,并将它们代理到上面列出的 v6 地址上运行类似名称站点的服务器。代理还需要将响应返回给请求者。对于启用 v6 的客户端,如果您还正确设置了路由和 v6 防火墙,则可以在其 AAAA 记录下宣传代理本身。

HTTPS

至于 HTTPS,情况与那些想要在单个 v4 地址上本地运行多个 HTTPS 服务器的人相同:您可以运行多个 v4 端口(打通;参见上文),或者依赖 SNI(参见很多地方)并忽略不支持它的主机。

我怀疑您真正想问的是“是否存在神奇的服务器端精灵粉尘,可以为不知道 v6 的最终用户启用 v6 连接”,我认为答案是“否”。您必须在 v4 中完全接受他们的请求,并以相同的方式将答案返回给他们;见上文。

相关内容