在我的本地家庭网络中,我希望拥有 IPv4 和 IPv6。
我想使用我的 pihole 作为主要 DNS。
此外,我希望对客户端进行分组,以便某些设备可以绕过阻止列表并向上游发出请求。(例如:不喜欢谷歌广告链接被破坏的朋友)。
我不想在每个客户端上配置备用 DNS 服务器。我不想禁用 IPv6 而只使用 IPv4。
我怎样才能实现这个目标?
在 IPv4 世界中,我想要实现的目标对我来说非常简单:
在 IPv4 世界中,我:
- 根据每个客户端的 MAC 地址,在我的网络内为其分配一个静态 IPv4 地址
- 有一个 pihole 正在运行,使用我的服务器发布的静态 IPv4 地址
- 让我的 DHCP 服务器向每个客户端公布 pihole 地址作为 DNS 服务器
- 在 pihole 配置中,我现在可以将客户端添加到某些组中
现在,我也想允许 IPv6 流量,但我主要感到困惑。
静态 IPv6 地址突然不再存在。一切都是自动配置的。没问题。我处理它,以便 DHCPv6 服务器宣布我的 pihole 的 ULA,我希望它不会改变,作为 DNS 服务器和每个在我的 pihole 上发出 DNS 请求的客户端。
但在我的路由器中,我无法将客户端分配给特定的 IPv6 地址。
我的路由器甚至不负责发布 IPv6 地址,它只是宣布所有网络的前缀,现在每个客户端都自己生成 IPv6 地址(复数),而这些临时地址确实让其他一切都变得一团糟。那么我如何才能可靠地确定哪个 IPv6 地址属于哪个客户端呢?
如何在 IPv6 设置中为我的 pihole 分组客户端?有没有通过 IPv6 方式实现这一点?
答案1
静态 IPv6 地址突然不再存在。一切都是自动配置的
它们确实存在。没有什么可以禁止它们。
然而,要求客人在手机中手动输入静态地址(无论是 IPv6 还是 IPv4)似乎有点愚蠢。
有没有通过 IPv6 方式实现这一点?
您需要将路由器配置为不是将前缀宣布为“自主配置”,同时宣布“托管配置”标志。这将迫使客户端专门使用 DHCPv6,无论是 IP 地址还是 DNS 信息。(DHCPv6 IA_NA 地址租约的工作方式与 DHCPv4 相同,只是 DHCPv4 所称的“客户端 ID”和 DHCPv6 所称的“DUID”更加强调这一点,即租约通过原始 MAC 地址以外的其他东西来区分。)
问题在于,Android 仍然拒绝支持 DHCPv6,因此如果您这样做,您的客人的设备将变为仅限 IPv4。
如果您的客人只想访问互联网而不关心本地设备(如 chromecast 等),那么拥有自己的子网和自己的 Wi-Fi SSID 的第二个“客人”VLAN 将是另一种选择。