免责声明:这个问题来自于IPv6主题的一个新手。
我们的web服务器最初有IPv6活动,Nginx没有正确配置,因此IPv6的用户出现了错误,网站没有加载。
在IPv6上配置了Nginx后,网站正确加载,但对于IPv6用户,地理定位失败(我们使用Maxmind免费数据库),然后在美国所有的地理定位。
我以前是禁用IPv6 6支持,现在看来效果很好,即使是在IPv6的客户端,我的网站也会看到一个IPv4,然后把它定位在正确的国家。
问题是:
发布于 2018-01-29 17:42:36
在IPv6上配置了Nginx后,网站正确加载,但对于IPv6用户,地理定位失败(我们使用Maxmind免费数据库),然后在美国所有的地理定位。
确保您正在使用正确的数据库。一些geoip产品为IPv4和IPv6提供了独立的数据库(AIUI使用maxmind,遗留产品分为单独的v4和v6,而geoip2产品涵盖在一个数据库中)。
当IPv6客户机查询我的网站时,到底会发生什么?如果他也有一个IPv4,那么它就违背了拥有IPv6的目的。
有不同类型的客户需要考虑。
案例1和例2非常明显。
对于第3和第4种情况,客户端可能同时尝试IPv4和IPv6。通常情况下,如果发现这两种情况,它将首先尝试IPv6。
对于案例5,如果存在记录,客户端将使用您的IPv6地址。如果不提供IPv6地址,它将使用NAT64/ do 64网关合成的IPv6地址。然后,NAT64将将IPv6流量从客户端转换为IPv4流量,以发送给您。
(这是因为我们没有IPv4了)?
最初的想法是,我们将只从v4移到双堆栈。然后,一旦每个人都在双堆栈上,我们就可以开始关闭IPv4。希望在IPv4地址耗尽之前就能实现。
这种情况之所以没有发生,是因为许多原因,包括忽视互联网现实的象牙塔标准,以及一个简单的事实,即在没有其他人这么做的情况下,很难为IPv6建立一个可靠的理由。
因此,现在我们处于一个可悲的境地: IPv4地址基本上已经用完了,但互联网的大部分仍然仅限于IPv4。
因此,互联网服务提供商被迫采取一些措施,以便在一个只提供IPv4 4服务的后耗竭世界中实现持续增长。他们基本上有三个选择。
所有这些选项最终归结为实现允许多个客户共享IPv4地址的机制。
基于IPv4的地理定位可靠吗?
地理定位总是依赖于地理定位数据的准确性。随着IPv4地址变得越来越稀少,它们可能会被移动更多,降低地理定位的准确性。
此外,有了IP共享机制,不同位置的用户可能在同一个IP后面。地理位置数据库对此无能为力。
没有准备好IPv6有什么缺点吗?
除了地理定位问题之外,这里还有三个主要考虑因素。
发布于 2015-07-20 13:46:37
如果国家级别的粒度对你来说足够了,那么你就可以简单地依赖whois了。不要查询您看到的每个客户端IP地址。当您确实看到一个新的IP和查询whois时,请缓存该范围,以便将来对该范围内的IP地址的请求不会触及whois。如果您没有从whois得到任何响应,那么在接下来的24小时内不要尝试使用同一个/32。
如果您需要更细粒度的粒度,或者对于来自whois的数据的缓存比您想要实现的要复杂,那么您需要找到一个提供者,它可以让您访问IPv6的这些数据。您不必为IPv4和IPv6使用相同的提供程序。
对于同时具有IPv4和IPv6的客户端,您可以构建自己的地址间通信数据。如何做到这一点一直是以前回答过。
如果客户机和服务器都有双重堆栈支持,那么是客户机决定使用IPv4还是IPv6。自2010年以来,客户尝试使用两者中最快或最可靠的最佳做法被认为是最佳做法。
有些客户端具有比IPv6连接更可靠的IPv4连接性。如果您的站点只支持IPv4,这些客户端将体验到您的站点不可靠。这种情况下的用户比例将继续增长。
https://serverfault.com/questions/707021
复制相似问题