我应该在Web服务器中仅使用IPv6还是同时使用IPv4和IPv6?


39

我的Web服务器(Ubuntu,Nginx)具有主机分配的IPv4和IPv6地址。对于我的网站,我是否只能将其绑定到IPv6地址?这是标准的推荐方式吗?还是我应该同时使用IPv4和IPv6地址?


13
您(向错误的人)提出了错误的问题-问自己:“我是否需要能够从IPv4客户端,IPv6客户端或同时从这两个客户端访问此站点?”。答案也就是您的Web服务器需要监听的地址的答案。
voretaq7'8

6
通常,我完全同意这样的“首先获取规格”的答案,但是在这种情况下,很奇怪,我不同意。我同意迈克尔。遗憾的是,“仅v6”仍然不太可能成为要求(尽管确实如此,此注释完全错误)。如果不是,那么我们将使用“混合堆栈”和“仅v4”。即使您的用户都说“仅v4”是正确的,但在这一点上是错误的。不管当前用户社区怎么说,混合堆栈都是实现面向未来的方法。
MadHatter支持Monica

@MadHatter至此,我们可以安全地消除“仅v4”了。大规模NAT的固有限制使v4仅对网站的运营商或任何其他Internet服务的运营商站不住脚。我的更新答案中有更多详细信息。
迈克尔·汉普顿

@MichaelHampton仍然同意您的观点。
MadHatter在2015年

Answers:


56

同时使用IPv4和IPv6

您应该同时使用IPv4和IPv6地址。

Internet上几乎每个人当前都有一个IPv4地址,或者位于某种NAT的后面,并且可以访问IPv4资源。

但是,在撰写本文时,只有约0.7% 2.3% 3.8% 6.5% 9% 12% 19% 22% 26%的Internet支持IPv6,但是随着IPv6开始在全球范围内推广,这一数字正在稳定增长。

ISP在很少的地方主要向住宅用户提供IPv6或提供IPv6,并使用大规模NAT,NAT64或其他此类解决方案来实现IPv4连接。随着IPv4地址空间最终耗尽,该数字预计会增加。这些用户通常将在IPv6上具有更好的性能。

在ISP部署了大规模NAT来解决IPv4耗尽的情况下,由于大规模NAT网关固有的连接限制,陷入困境的用户将遭受其所有Internet连接可靠性的降低。例如,一个网页可能只加载部分资源而不是全部资源,将残缺的图标保留在应该放置图像的位置,缺少样式和脚本等。这类似于家用路由器上的连接限制耗尽,但会影响该路由器的所有用户。 ISP间歇性地看似随机。如果您希望自己的站点对这些用户可靠,则必须通过IPv6为其提供服务(并且ISP必须已部署IPv6)。

由于IPv6是Internet的发展方向,因此启用网站IPv6现在可以使您处于领先地位,并且可以在问题变得严重之前解决所有问题。

配置nginx

缺省情况下,对于Linux和nginx,可以通过listen指令更改为以下内容来同时绑定到IPv4和IPv6 :

listen [::]:80;
listen 80;

或者,对于SSL网站:

listen [::]:443 ssl;
listen 443 ssl;

好的,谢谢。还有一个问题。。现在,我已经设置服务器了。在DNS重复中,我必须放置两个记录A和AAAA(主机名@)并指向相关的ips?
THpubs 2012年

3
是的,该A记录用于您的IPv4地址,而该AAAA记录用于您的IPv6地址。
迈克尔·汉普顿

完善。非常感谢您的解释:)林新向IPv6的东西
THpubs

我不熟悉nginx的,但应该不是listen 443;也有ssl一样的listen [::]:443 ssl;?所以listen 443 ssl;代替listen 443;
CVn

@aCVn是的,应该。感谢您抓住这一点。那会教我半睡时编辑东西。
迈克尔·汉普顿

3

绑定到两者!

我们有一个IIS网站,其代码使用客户端使用的DNS名称对其内部进行了内部引用。此过程将始终失败。

另一个症状是,在服务器上本地运行的浏览器无法通过服务器名称(仅通过IPv4地址)找到网站。也就是说,http://192.168.55.139可以工作,但是http://myhost会失败。ping myhost默认情况下,使用会返回IPv6地址(ping myhost -4会返回IPv4地址)。

解决方法是打开IIS并更改网站的绑定以绑定到IPv6地址以及IPv4地址。

在此处输入图片说明


6
不必混淆私有地址。不过,您还应该绑定到全局IPv6地址,以便可以通过IPv6从外部访问您的站点。
迈克尔·汉普顿

提到的代码是Winnovative HTML to PDF Converter
Glen Little

2
当您不使用NAT时,更容易在内部和外部访问服务。如果使用的是IPv6,则避免NAT更容易。但是盲目连接到客户端提供的主机名听起来像是设计缺陷。客户完全有可能向您发送Host不属于您的域名的标头。
kasperd '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.