今天, 我们去找了李老师了解了一下校园无线网络的情况。
我们主要讨论了一下无线网的分布情况, 想要进一步了解无线网的质量并帮助提升无线网用户体验。
校园网有两个SSID, Tsinghua、Tsinghua_5G分别是2.4GHz和5GHz的(不过据说有的Tsinghua也有5GHz信号), 来回切换的话会被系统认为是坏蛋而屏蔽, 所以正确的切换方式是断开几秒后重新连接。这里建议连接2.4GHz无线网的用户, 感觉不好用的时候可以断开几秒之后, 尝试使用5GHz的网络。
我问, 为什么无线网不支持IPv6, 有学长说是”只是没开”。确实, 是只是没开而已, 不过没开也是有原因的, 比如有地址管理、漫游、计费不好处理等问题。这里顺便指出, 校园网IPv6免流量费只是因为计费系统实现困难, 不过老师也说, 免流量费来推广IPv6挺好的, 就不说破了。(原来IPv6和IPv4相差好多
然后, 话题渐渐偏向了IPv6。
以上是背景。
经过深思熟虑, 我想在家里部署IPv6, 然而运营商似乎不提供原生IPv6接入, 所以我使用了6to4技术。正好, 家里有两路基于PPPoE的宽带, 目前只有效利用了其中之一, 这下可以把另外一个利用起来了。
为了使用一个Raspberry Pi(rpi)作为路由器(之前在这个rpi上部署的是一个DNS缓存和一个ss, 用于提升访问国外网站的质量), 我还购买了一个USB网卡, 使得这个rpi能够有两个网络接口, 一个接入局域网交换机, 另外一个接调制解调器(ADSL的猫)。
rpi软件方面的配置, 我主要进行了如下操作:
- 配置好pppoe拨号。
主要就是使用pppoeconf命令进行傻瓜式配置。 - 配置好6to4的tunnel设备。
tunnel的IPv4地址为192.88.99.1, 这是一个固定的任播地址。 - 设置sysctl.conf的net.ipv6.conf.all.forwarding = 1。
- 配置好radvd, 用于向网内广播IPv6的前缀等信息。
配置文件如下, 这样配置可以很好的支持6to4的随IPv4地址变化的地址。interface eth0 { AdvSendAdvert on; MinRtrAdvInterval 3; MaxRtrAdvInterval 10; prefix 0:0:0:cafe::/64 { AdvOnLink on; AdvAutonomous on; AdvRouterAddr off; Base6to4Interface ppp0; AdvPreferredLifetime 20; AdvValidLifetime 30; }; };
其中, eth0是接入局域网交换机的网络设备, ppp0是PPPoE的网络设备, “cafe”似乎可以随意取, 我只是觉得cafe比较有趣:) 。主要参考了这里。
- 设置一下路由表, 因为我还是希望在rpi上普通的IPv4流量(apt-get之类的流量)走主宽带(eth0所连接), 与tunnel的连接走另外一个宽带(ppp0所连接)。
route del default route add default dev eth0 gw 192.168.1.1 metric 1 route add 192.88.99.1 dev ppp0 metric 1
其中, 192.168.1.1是连接主宽带的路由器的IPv4地址。
还需要设置IPv6的路由信息, 使得公网发来的数据能够被转发到局域网的机器上。ip -6 route add $IPv6/48 dev eth0 metric 1
其中, eth0是接入交换机的网络设备, $IPv6是6to4的地址前缀, 由PPPoE获得的IPv4地址计算得到。
- 另外, 还需要设置iptables以及ip6tables来确保安全性。
- 最后, 还可以设置一下crontab, 使得这些操作能够自动定时完成, 在网络情况发生变化的时候及时更新。
经过上面的配置, 客户端可以无痛的使用IPv6了, 不过每个客户端有至少一个全球可路由的IPv6地址, 所以还是需要注意一下客户端的网络安全配置的。
特别指出, 6to4这个方法有个缺点, 就是服务质量取决于192.88.99.1到底是谁, 以及它的心情。不过这是实验性的IPv6家庭网, 就暂时凑活用吧。
最后, 总结一下, 随手画了个目前的网络路由图。图中省略了一些网络连接。
不知道什么时候运营商能够提供原生IPv6服务:( 应该是要等GFWv6建好吧。
发表评论