当有 IPv6 范围时,如何选择从哪个 IPv6 发送请求?

当有 IPv6 范围时,如何选择从哪个 IPv6 发送请求?

我是 IPv6 新手,正在尝试弄清楚如何从不同的 IPv6 地址发送请求。我该怎么做?

我购买了一个测试 VPS,上面说他们提供了/112 IPv6 range。首先,这到底是什么/112意思?我的理解是他们提供了一些 IPv6 范围,VPS 的所有者(我)可以选择他想要使用的 IPv6。因此应该有很多 IPv6 可能性,我想测试一下。如果我发出此curl请求curl http://v4v6.ipv6-test.com/api/myip.php ,结果是2a00:1630:66:d7::ae4c。与 相同curl --interface 2a00:1630:66:d7::ae4c http://v4v6.ipv6-test.com/api/myip.php

现在,如果我的 VPS 具有许多 IPv6 可能性的 IP 范围,我该如何选择另一个 IPv6 来发送请求,以便目标服务器也能看到另一个 IPv6?2a00:1630:66:d7::ae4c我可以编辑哪些符号,以便我的 VPS 能够绑定到这些符号?不确定我的解释是否合理,所以我尝试了以下方法:

curl --interface 2a00:1630:66:d7:1111:ae4c http://v4v6.ipv6-test.com/api/myip.php           
curl: (45) Couldn't bind to '2a00:1630:66:d7:1111:ae4c'        

的输出ifconfig如下:

lo        Link encap:Local Loopback                                                                          
          inet addr:127.0.0.1  Mask:255.0.0.0                                                                
          inet6 addr: ::1/128 Scope:Host                                                                     
          UP LOOPBACK RUNNING  MTU:65536  Metric:1                                                           
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0                                                 
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0                                               
          collisions:0 txqueuelen:0                                                                          
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)                                                             

venet0    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00                          
          inet addr:127.0.0.2  P-t-P:127.0.0.2  Bcast:0.0.0.0  Mask:255.255.255.255                          
          inet6 addr: 2a00:1630:66:d7::ae4c/64 Scope:Global                                                  
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1                                         
          RX packets:11896 errors:0 dropped:0 overruns:0 frame:0                                             
          TX packets:1446 errors:0 dropped:0 overruns:0 carrier:0                                            
          collisions:0 txqueuelen:0                                                                          
          RX bytes:17548894 (16.7 MiB)  TX bytes:113342 (110.6 KiB)                                          

venet0:0  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00                          
          inet addr:192.168.1.237  P-t-P:192.168.1.237  Bcast:192.168.1.237  Mask:255.255.255.255            
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1                        

答案1

表示/112地址的前缀。这也是 IPv4 的常用符号。本质上,它告诉您设置了多少位来标识网络。其他位可以自由引用该网络上的主机。考虑阅读子网划分的工作原理(SU 上有很多问题,网上也有很多资源)。

对于 IPv6,这取决于您的配置。检查您的ifconfigipipconfig取决于系统,您应该能够看到您当前的网络配置。它应该包括有关您当前 IPv6 地址的信息。

当你拥有一个使用 IPv6 的整个网络时,你可以以静态方式设置它们(服务器常用),也可以研究类似IPv6 隐私扩展。它能发挥神奇的作用,帮助您的常规客户保持更多的隐私。

答案2

不确定这是否是问题所在:

源 IP 地址取自网络接口。如果您有不同的主机(或一台主机上的不同网络命名空间),您可以在每个接口上分配不同的 IP(或者让操作系统使用 MAC 地址自动配置不同的 IP,如果您设置了它,并且它获取了前缀)。然后,ping在不同主机/命名空间上执行的应用程序(例如)将使用此地址。

另一种选择是在同一主机/命名空间上创建具有不同 IP 地址的多个网络接口,或为同一网络接口分配多个 IPv6 地址。在这种情况下,您必须指示您的应用程序绑定改为您要使用的 IP 地址(例如ping -S ...)。并非所有应用程序都可以做到这一点。

如果您有一个针对此 IP 范围的单个主机,我建议使用网络命名空间,或者您可以使用使用网络命名空间的基础设施(Docker 等)。

相关内容