今天运气很背,居然遭遇了2002开头的ipv6路由广播,具体症状是无法上ipv6网站,无法上ipv6的vpn。检测方法如下:(以下命令都在所有程序->附件->命令提示符下进行,注意是Win7环境)

tracert 2001:470:c:662::2

返回第一个结果是自己的电脑 解析地址是 2002:....

联想到我校45楼乙常年无法ipv6的悲剧,我想,理科楼不会也这个熊样吧…. = =

于是,上网找到了这篇东西:解决错误的IPv6路由广播的方法 这篇东西的思路是正确的,很不幸的,解决的代码不是universal的,甚至可以说,是完全错误的。

45楼乙今年就是11级的大一新生了,ipv6是美好的,下面我说说我对错误路由广播的解决办法,如果你是一名geek,希望你能少走些弯路,在命令提示符中运行:

1
netsh interface ipv6 show prefixpolicies

会得到下面的结果

1
2
3
4
5
6
7
8
Precedence  Label  Prefix
---------- ----- --------------------------------
50 0 ::1/128
40 1 ::/0
30 2 2002::/16
20 3 ::/96
10 4 ::ffff:0:0/96
1 1 2001::/32

记住2002:/16这个前缀的左边一栏的Precedence(中文系统可能叫做优先级?),你会看到还有一个前缀2001:/16 这个是正常的ipv6地址,现在它在2002:/16的下方,我们需要把它的precedence调得足够的高,盖住2002:/16

现在假设2002:/16的优先级别是30(这也是我受到的错误广播的优先级),那么,下一步就是设定2001:/16的优先级顺序大于30。 运行:

1
netsh interface ipv6 set prefixpolicy 2001:/16 35 1 persistent

命令中的35必须根据你的实际情况来调整,只要比2002:/16的precedence大就行了。

看,ipv6是不是瞬间秒通了?嗯,45楼乙还是可以ipv6的~