我们在学生宿舍运营一个 IPv4 网络(以太网和 Wifi),大约有 200 名用户,并希望长期部署 IPv6,无状态自动配置在单个 /64 前缀。
不幸的是,提供上行链路的大学要求我们能够识别地址背后的用户。他们目前正在运行防火墙,以防滥用(病毒等),这是一个可行的解决方案,因为每个用户目前只有 2 个固定的 v4 地址。我们已经有一个属于用户的所有 MAC 地址列表(用于配置 dhcpd),并且希望自己有选择地允许/阻止用户(网络费用支付、不当行为等)。
在我第一次使用运行 radvd 的 Raspberry Pi 进行测试时,我发现大多数连接设备都启用了隐私扩展,这使得上行链路提供商无法在有效时间内阻止行为不当的 IPv6 地址。
到目前为止我只看到几个选项:
- 跟踪路由器上的邻居发现并实时创建防火墙白名单条目。以某种方式向上行链路提供商提供 API 来阻止给定 IP 的用户。(努力程度很高)
- 不允许隐私扩展并阻止所有没有 ..ff:fe. 的 IP。
- 为上行链路提供商添加一个自定义 IPv6 扩展标头,其中包括唯一的用户 ID,这样他们只需匹配 IPv6 标头字段即可阻止整个用户。
有没有使用现有软件的相当简单的解决方案?我们是否应该改变计划并改用 DHCPv6(据说效果不如 SLAAC)?我已经考虑过请求一个更大的子网(/48)并为每个用户提供单独的 /64,但据我所知,这需要有一个巨大的 radvd.conf,其中包含 200 个前缀(+ 可能 200 个 VLAN)和每小时更改几次的单播 RA。
答案1
首先,依赖 MAC 地址作为识别信息并不是一个好主意——用户可以随意更改它们。
至于 SLAAC,正如您所发现的,它非常不适合您需要控制的环境。因此,请考虑切换到 DHCPv6。
切换到 DHCP 后,解决 MAC 地址问题的方法是为用户启用 802.1x 身份验证。这样,他们就可以使用自己的凭据登录(而不是您依赖 MAC 地址),然后您就可以记录哪个用户名获得了哪个 IP 地址,无论是 v4 还是 v6。
您可能已经想到了这一点,但您还要注意的另一件事是过滤交换机上的 RA。如果不这样做,恶意用户可能会设法在网络上对 IPv6 流量进行 MITM。