据我了解,之所以创建NAT,是因为可能的IPv4地址数量太少(只有40亿个),因此只有网站和住宅网关才会拥有自己的公共IPv4地址。每当专用网络中的计算机要访问Internet时,网关都会在关闭特定端口之前打开特定端口一段时间。例如,如果我的网关的公共地址为1.2.3.4,则我的公共地址在给定时间内为1.2.3.4:3000。
但是可能的IPv6地址的数量非常可观(2 ^ 128),因此我们可以从理论上为世界上的每台计算机提供一个静态的公共地址。这意味着两台计算机可以简单地以对等方式进行通信,而不会出现NAT遍历的所有问题。 NAT基本上是没有用的(我这里不是在谈论防火墙)。
我不知道为什么,但是住宅网关不会为连接到它们的计算机分配静态公共IPv6地址,它们只会分配动态(临时)公共IPv6地址。这意味着,如果您星期一在1.2.3.4与您的朋友通信,则他的公共IPv6地址可能在星期二已更改。因此,我们仍然需要TURN服务器在给定的时间发现我们自己的公共IP地址,因此IPv4似乎没有任何变化。
我有两个问题:
谢谢您的帮助。
DHCPv6确实存在,但是通常不用于在设备上配置IPv6地址。它可以在无状态模式下用于配置域名,DNS解析器等,但这与分配地址无关。
因此,设备在网关传达的前缀内选择自己的地址。如何选择?
最初,设备使用其接口MAC地址作为后缀(使用改良的EUI-64算法)。这样的问题是,例如,如果有一圈,您连接到的在线服务可能会跟踪您的设备。因为无论您连接到哪个网络,地址的后64位都将包含您的唯一MAC地址。这样就可以跟踪您的设备,从工作场所到家,到您喜欢的咖啡厅等。
这些天,操作系统使用隐私扩展来使您的IPv6地址不可追踪。通常,有一个稳定的地址链接到网络前缀,因此,每次连接到同一网络时,您都会获得相同的地址。该地址对于点对点通信很有用。
但是他们走得更远。通常还存在一组(半)随时间随机更改的隐私地址。您的设备可能每天甚至可能每小时生成一个新地址。这使得在线服务更加难以确定是否有一个设备更改了其隐私地址,或者是否有多个设备。由于此地址会随着时间而变化,因此对于短时间的出站连接很有用,但接受入站连接的用处不大。为此,请使用我在上一段中提到的稳定地址。
可能最困难的一点是如何向操作系统询问可用地址。看我自己的macOS盒子,我看到:
en2: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether c8:e0:eb:5c:af:61
inet6 fe80::1074:8568:e447:d9e3%en2 prefixlen 64 secured scopeid 0x12
inet6 2a02:xxxx:xxxx:xxxx:3e:873f:837:1417 prefixlen 64 autoconf secured
inet6 2a02:xxxx:xxxx:xxxx:b19c:71c5:1de8:8fde prefixlen 64 autoconf temporary
您可以同时看到长期secured
地址和短期temporary
地址。在不知道您要开发哪种操作系统以及使用哪种编程语言的情况下,我无法为您提供进一步的帮助。请调整您的问题以包含该信息。