如何制作基于 Linux 的 IPv6 接入点?

如何制作基于 Linux 的 IPv6 接入点?

要在 Linux 上创建一个典型的基于 IPv4 的接入点,需要执行以下步骤:

  1. 用于hostapd使例如wlan0可用于传入连接;
  2. 选择一些本地子网。例如,192.168.99.0/24
  3. 将该网络中的 IP 地址之一(例如192.168.99.1/24)添加到wlan0.
  4. 启用该网络 ( wlan0) 和上游(例如eth0)的转发。
  5. MASQUERADE规则插入防火墙以启用 NAT。
  6. 启动dnsmasq或其他 DHCP 服务器来管理客户端的本地 IP 地址。

IPv6 有类似的步骤吗?理想情况下,客户端wlan0应该看到 IPv6 世界,就好像他们eth0直接连接到(即不是另一个 NAT,这在 IPv6 世界中不惯用),类似于伪桥接(真正的brctl桥接可能有问题)。

eth0如果可以重新连接到另一个网络而不需要重新启动服务基础设施wlan0(就像 IPv4 的情况一样),那么它也会很有用。

根据使用的是 DHCPv6 还是路由器通告,步骤是否会有所不同eth0

答案1

IPv6 有类似的步骤吗?理想情况下,wlan0 的客户端应该看到 IPv6 世界,就好像它们直接连接到 eth0 一样(即不是另一个 NAT,这在 IPv6 世界中是不惯用的),类似于伪桥接(真正的 brctl 桥接可能有问题)。

惯用的 IPv6 等效项您所描述的步骤只是没有 NAT 的路由。 (每个人都忘记了您可以在不进行 NAT 处理的情况下路由数据包。)您的接入点将使用 DHCPv6-PD 获取自己的 /64 前缀 – 自动使上游路由器设置正确的路由 – 并且其他步骤将保持不变(只是没有MASQUERADE规则),dnsmasq 通过 SLAAC 和/或 DHCPv6 宣布 /64。 NetworkManager 设置的“热点”正是这样做的。

现在,如果您所在的网络不支持 DHCPv6-PD 子委托(不幸的是,许多路由器不支持),那么您可以通过使用 NDP 代理(相当于 ARP 代理的 IPv6)来实现“伪桥接”。有多种代理 NDP 实现,但您想要的是NDPRBRD,尽管现在也存在相同的功能NDPPD。与静态 NDP 代理不同,这些守护进程动态学习哪些 IPv6 地址位于哪一侧,因此您只需设置 SLAAC 来模拟上游接口的 /64,ndprbrd 就会弄清楚。

最后,正如您所说的那样切入点,我想迂腐地指出,真正的“接入点”将是真的桥。不是伪桥,而是一个br0包含wlan0AP 和eth0上行链路的接口 - 使 IPv6 默认工作,并在每个 SSID 有多个 AP 时提供无缝漫游。 (桥接 wlan0 只有在工作站模式下才不可能,但在接入点模式下则完全可能;这就是所有 AP 甚至无线路由器的工作方式。)

相关内容