多台设备使用一个 IPv6 即可接入互联网?

多台设备使用一个 IPv6 即可接入互联网?

我想通过单个公共 IPv6 地址将多个设备(在 LAN 中)连接到互联网。

不幸的是,我没有找到一个好的方法。我唯一的想法是将所有内容从 PF/OPNsense 通过 OpenVPN 隧道传输到 Sense 之前的 Raspberry Pi 或类似设备,然后使用 Pi 的 IPv6 访问互联网。

计划的设置是 Internet (WAN) - Fritzbox (LAN1) - PFSense / OPNsense(带 WAN 接口) - LAN2

还有其他可能吗?VPN 解决方案确实不太好。

为什么?为每个(私有)设备分配自己的公共 IP(也带有隐私扩展)可以简化跟踪。此外,有些设备没有隐私扩展或未激活。

答案1

IPv6 的设计目的并非如此。尝试将 IPv4 样式的 NAT 与 IPv6 结合使用会破坏一切。话虽如此,我非常确定您可以使用 Linux iptables 进行 NAT IPv6,因此这并非不可能。但我强烈建议不要这样做。

答案2

IPv6 没有像 IPv4 那样的 NAT 标准。实验性 RFC用于 IPv6 上的一对一 NAT(每个内部地址对应一个外部地址),但明确禁止您想要执行的操作(我在下面突出显示):

6. 关于端口映射的说明

除了在转发数据报时覆盖 IP 地址外,NAPT44 设备还会在出站流量中覆盖源端口号,在入站流量中覆盖目标端口号。这种机制称为“端口映射”。

端口映射的主要优点是它允许多台计算机共享一个 IPv4 地址。大量内部 IPv4 地址(通常来自 [RFC1918] 私有地址空间之一)可以映射到一个外部、全局可路由的 IPv4 地址,并使用本地端口号来标识哪个内部节点应接收每个入站数据报。目前一般不认为此地址放大功能是必需的。

由于端口映射需要重写传输层报头的一部分,因此它要求 NAPT44 设备了解它们转发的所有传输协议,从而阻碍了新传输协议和改进传输协议的开发,并阻止了 IPsec 加密的使用。修改传输层报头与加密完整 IP 有效负载的安全机制不兼容,并限制 NAPT44 转发使用弱校验和算法的传输层,而这些算法很容易在路由器中重新计算。

由于修改传输层报头会造成重大损害,而在 IPv6 中使用端口映射的好处很少(如果有的话),因此符合本规范的 NPTv6 转换器不得执行端口映射。

另外,您会发现 NAT 破坏了一些 IPv6 功能。

IPv6 拥有大量地址,因此您无需像 IPv4 那样使用 NAPT。IPv4 上的 NAPT 打破了 IP 范式,即每个主机都分配有一个唯一地址,这样连接就是端到端的,不需要中间设备来维护连接状态。IPv6 恢复了 IP 范式,允许使用除 TCP、UDP 和 ICMP* 之外的协议,并修复了被 NAPT 破坏的应用程序和应用层协议。

您可能误解了隐私扩展的跟踪和功能。事实上,隐私扩展阻止的跟踪是在设备连接到不同网络时对其进行跟踪,在每个连接的网络上获取新地址,而不是跟踪设备在互联网上使用的服务。通过仅使用原始 SLAAC,设备将始终在同一接口上具有相同的 IID(接口标识符),并且无论设备连接到哪个网络,都可以进行关联,并在您将设备从一个网络移动到另一个网络时对其进行跟踪。如果设备仅存在于单个网络上,则这并不重要,您无需跟踪任何移动。如果您确实将设备移动到其他网络,并且该设备不支持隐私扩展,那么您将能够被跟踪,但我还认为该设备软件太旧了,以至于存在许多安全问题。

如果设备只连接到单个网络,则不存在跟踪风险,您也可以使用 DHCPv6 分配地址,或者手动分配地址,而不是使用使用标识符(例如 MAC 地址)的 SLAAC。


*RFC 3022,传统 IP 网络地址转换器(传统 NAT)在第 2.2 节中解释了 IPv4 NAT,包括 NAPT:

由 NAPT 路由器提供服务的本地节点根本不允许进行除 TCP、UDP 和 ICMP 查询类型之外的会话。

答案3

IPv6 地址并不是最有效的跟踪方式。DNS 流量显示您在互联网上的去向。在桌面和移动设备上,广告和社交跟踪标识符会跨设备和 IP 跟踪用户。

IPv6 地址可以频繁更改,只留下通用前缀来标识您的站点,而不是主机。在没有隐私扩展的设备上,请考虑自己实现类似的东西。生成随机主机标识符,并将其静态地分配为您的前缀内的 IP 地址。

加密流量。所有应用程序均使用 TLS。

在必要时使用安全覆盖来传输您不信任的网络。

避免使用 NAT。每台设备都可以从数十亿个 IP 中进行选择,为什么要通过一个 IP 来破坏端到端连接呢?

答案4

如果您想做一些不寻常/不受欢迎的事情,那么使用预装的“路由器发行版”作为边缘路由器可能不是最好的选择。此外,pfsense 基于 freebsd pf,不支持“一对多”ipv6 NAT。

如果您想要进行一对多 ipv6 NAT,我建议您使用通用 Linux 发行版的最新版本作为您的边缘路由器。Linux 在 3.9.0 中增加了对 ipv6 nat 的支持,并且使用它基本上与 ipv4 对应项一样简单,例如“ip6tables -A POSTROUING -t nat -o -j MASQUERADE”。

相关内容