解决我宿舍宽带的 IPv6 问题
背景
我宿舍的宽带是中国联通 FTTB(光纤到楼)。 问题是它只有 100Mbps(快速以太网)。 更糟糕的是,BRAS 只分配了 SLAAC 的 IPv6 地址,甚至不能分配 PD 前缀给我的路由器。
联通是唯一一家在学校提供 PPPoE + IPv6 + 公网 IPv4 的运营商。正因如此,我丝毫没有更改运营商的想法,而是尝试着手解决这个问题。
早期尝试
有一种方法可以通过伪装前缀代理获得一个虚假的 IPv6 前缀。这种方法我试过,也成功了,唯一的弊端是下级设备拿不到经由 DHCPv6 方式分发的 IPv6 地址。
这是一篇文章供参考:odhcpd 中继模式原理、局限以及解决方案。
问题的根源
一次偶然的抓包,我发现我的对面居然有三台 BRAS。
图上是两台。
所以,问题的根源在于BRAS不能正确分配PD前缀,所以如果网络中存在多个BRAS,我们可以尝试更改BRAS。
在 OpenWrt 中,我们可以指定接入集中器(AC=Access Concentrator)来使得路由器固定与网络上游的某个固定的 AC 通信。我就是这么解决的。
对面实际上有三台 BRAS:
b1-s-gdzh-xsk => 10.147.*.* 前缀 /64
b1-s-gdzh-nkhy => 10.144.*.* 前缀 /64
b3-s-gdzh-sc165 => 10.145.*.* 没有前缀
所以只需要指定前两个就行了。
然后就拿到了,美滋滋。