需求:具有固定 IP 地址的互联网主机,用于全栈自托管
人们希望在没有 ISP 提供固定 IP 地址的足够服务的区域进行自托管。他们提供一个 IP 地址,该地址每周至少更改一次,并且声誉不佳(关于垃圾邮件)。
无论出于何种原因,固定 IP 地址是肯定需要的(实际上,该地址将是 whois 数据库中域名的粘合记录之一,用于托管全栈 DNS-mail-http-everything 服务器,但实际原因并不重要,我们就说需要一个固定 IP 吧)。
怎么做 ?
是否有一个合理的解决方案可以让主机通过固定的 IP 地址访问?
无解
动态 DNS 不是解决方案。它适合少数用户随意访问高级服务,但不适合托管邮件服务器,原因如下:(1) 它增加了单点故障,(2) 人们报告通常的动态 DNS 提供商更新延迟,(3) 更改 IP 会破坏现有的 TCP 连接,(4) 不断更改的 IP 会将您的邮件服务器置于声誉不佳的 IP 上,您无法修复这些 IP,也不会在 RBL 服务上注册,(5) 从根本上讲,动态 DNS 远远落后,您无法更新假定固定 IP 的 whois 粘合记录,您显然无法自行托管将具有动态 DNS 服务的 CNAME 的 DNS 服务器。
可能找到解决方案吗?
- 使用某种形式的隧道技术,使服务器可以通过固定 IP(v4 或 v6)通过某些服务访问,例如http://tunnelbroker.net/。
- 该隧道可用于所有流量,或用于需要固定 IP(DNS、邮件、HTTP 服务器)的那部分流量,或许还可用于自托管动态 DNS(将提供可随时解析为可变 IP 地址的不同主机名,而无需依赖外部动态 DNS)。
- 可变地址将用于客户端活动、网页浏览、下载,例如在对等网络上共享 Linux 发行版 ISO)。优点:(1)堆栈中的位置低得多,提供与胶水记录和所有上述堆栈兼容的固定 IP。(2)在 ISP 地址更改时,与固定 IP 地址的 TCP 连接不会中断,尽管在隧道重新配置时可能会暂停。缺点:另一个单点故障,ISP 地址更改导致停机?
问题
- 它是否有意义或者由于某些原因它会失败或不切实际?
- 隧道能正常工作吗?当 ISP 提供的 IP 地址发生变化时,会出现停机吗?
答案1
基本上你必须从以下三个选项中选择一个:
- 使用能够为您提供具有所需静态前缀的本机 IPv6 的 ISP。
- 放弃自我托管,在数据中心租用服务器。
- 使用某种隧道解决方案。
如果我们暂时假设由于您所在地区的竞争不足而排除第一个选项,并且自己管理物理安全的要求排除了第二个选项,那么隧道就成为您唯一的选择。
请注意,VPN 也是一种隧道,它恰好也对流量进行加密和身份验证。大多数情况下,VPN 的这些附加安全功能不会对您的方案造成任何改变,因此您可以将 VPN 视为另一种隧道。
隧道确实会给您的网络配置增加额外的复杂性。这是您必须处理的事情。但假设您对网络协议的工作原理有足够的了解,那么这种额外的复杂性是相当可控的。
隧道的另一个缺点是,当动态 IP(隧道必须通过该 IP 运行)发生变化时,您必须重新配置隧道才能使其再次运行。对于通过隧道运行的流量,这只会导致短暂的数据包丢失,但实际上不会导致任何开放连接中断。
隧道最麻烦的缺点可能是它会给您的系统带来另一个单点故障。在典型的设置中,隧道服务器和与 ISP 的连接都会成为单点故障。
有一些方法可以解决这些缺点,但我不知道有任何广泛部署的解决方案。
答案2
您可以在隧道连接后面运行服务,但您需要一个适用于 IPv4 和 IPv6 的隧道,该隧道可为您提供两个地址系列的稳定地址,并可快速响应上行链路连接的变化。我能想到的唯一可以做到这一点的协议是 LISP。
您可以尝试一些基于 LISP 的提供商。我不知道有没有免费的。
答案3
获取具有固定地址的 VPN 并使用它来进行自托管。
- 如果您的“本地” IP 发生变化,您可能必须重新连接您的 VPN 连接;
- 您可以使用“ip 规则”将传出数据包发送到相关接口,或者完全忘记您的本机 IP 地址并通过 VPN 路由所有内容。
使用 VPN 的另一个好处是,您的服务器/服务/静态 IP 不会绑定到给定位置。如果您的服务器是笔记本电脑或插电式计算机,您可以轻松移动它:如果您在度假,您可以随身携带它或将其插在朋友的电脑上。您甚至可以通过 3G 连接和公共 Wifi 在旅途中自行托管(只要您接受停机时间)。