大家好, 其实我一直被 DHCPv6 政策更新后清华的有线网困扰,直到几天前阅读了 [1,2] 才有了转机。
TL;DR: 清华发放 ipv6 地址大概是绑定 mac+duid+iaid 的,而 ipv4 大概只绑定 mac。 Win 和 Linux 下的网卡 mac 一样而 duid+iaid 不一样,所以我猜 dhcpv6 server 傻掉了 而 dhcpv4 正常,甚至因为 mac 没变而不会掉准入准出。但若要让 dhcpv6 有相同效果, 不仅需要 mac 不变,还需要 duid+iaid 不变。或者,三者都变:即不同系统使用不同网卡, 或虚拟一个 mac 出来(我没试过)。 我记得当时我作为一个用 Win/Linux 双系统的萌新,特地跑到了 Fugoes 寝室里请他帮忙, 结果就是 Win 能 dhcpv6 拿到地址而 Linux 不能,非常玄学。 后来在实践中我发现在过很久后我发现如果 Linux 拿到了地址,重启至 Windows 就拿不到 了。不过 ipv4 准入准出会保持。看起来是切系统时后手系统拿不到地址。heroxbd 似乎也 观察到了类似现象。 同时,我发现如果换一个网卡,一切就正常了。所以我又买了一个网卡,每次切系统就插拔 一次 USB 网卡和网线,有点麻烦,但不是不能用。我一直在反复品味《清华大学校园网有 线局域网用户准入系统使用说明》中问题 24 “预认证建立的子接口,只与 IP、MAC 和物 理端口绑定,与用户账号无关。”我得到的结论就是一定是某种 id 保持一致,但系统不一 样,导致 dhcpv6 傻掉了。MAC 无疑是一个不变的 id,但变化的是什么?IP/物理端口?IP 如果指的是地址的话,那是预认证成功之后拿到的,怎么会作为预认证的 id?物理端口是 个啥东西,我物理端口没变化啊?思路陷入了僵局。 而阅读了 [2] 后我醍醐灌顶:duid 与 iaid!我迅速进入了 Win 并使用 `ipconfig /all` 获得了网卡的 duid 和 iaid,并完成了预认证(dhcp)和准入准出。接下来我切回 Linux 系统,但在联网之前,我使用 `nmcli connection edit THUWired set ipv6.dhcp-duid` 以及 `set ipv6.dhcp-iaid` 设置了和 Win 一模一样的 duid 和 iaid。联网,成功获取地 址,且地址与 Win 一样,而且准入准出保持!也就是说依靠不变的 mac+duid+iaid,就可 以实现操作系统对清华 DHCP 服务器透明。 [1] https://thu.services/services/#rfc-dhcpv6 [2] https://pwe.cat/zijing-dhcpv6/ [3] https://thu.services/file/RealNameAuthenticationFAQ20190614.pdf -- 武益阳 清华大学 高能物理研究中心 & 工程物理系 Yiyang Wu Center for High Energy Physics & Department of Engineering Physics, Tsinghua University -- 您收到此邮件是因为您订阅了 Google 网上论坛的“TUNA 主邮件列表”群组。 要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到tuna-general+unsubscr...@googlegroups.com。 要在网络上查看此讨论,请访问 https://groups.google.com/d/msgid/tuna-general/ZPvVfteSNcNeAOLh%40wuyy-XiaoXin。