openwrt配置IPV6四天折腾记

这四天来,为了实现通过路由器能够在终端直接获得IPV6地址并且访问IPV6网络,各种作死的折腾。

配置前提:有一个好的路由器,我的为小米路由器(记不得哪个版本了,就是原来卖129的那个),被我刷成了openwrt系统(pandorabox),稍微有点linux的基础,懂得怎样进入路由器网页,以及SSH登陆。

第一天:各种观摩教程,作死按教程搞,搞出了路由器能够获取到ipv6地址,并且在路由器里面能够PING通ipv6的网址,在本地能够获取到ipv6地址,然而就是让我接不通ipv6的网址。教程鱼目混杂,各种都试,搞得实在一塌糊涂,路由罢工好几次。

第二天:意识到了这样搞下去不是办法,别人的教程是别人的步骤啊,我要搞明白别人的每一步的原理啊?大脑终于想通了一件事,首先,我要明白的是ipv6的配置原理。所以去国际搜索引擎搜知识去了。最后发现甲骨文的关于IP配置的教程写的真心不错,开始阅读,不愧是大公司,搞的教程都是杠杠的。

Oracle公司关于IP配置的说明文档{

http://docs.oracle.com/cd/E24847_01/html/819-7058/oviewtm-1.html#scrolltoc  

如果链接失效,在百度(Google搜索更好,更为学术而生)上面搜 “系统管理指南:IP服务”进入oracle官网的帮助文档,给这个文档一个大赞。

第三天:阅读IPV6协议的入门教程(浅显的看一点),阅读得觉得一些概念基本了解之后,返回来,再次阅读关于openwrt配置ipv6的教程。

第四天:根据学到的知识点总结教程,发现能够看懂了。但是,发现了我湖的一个天大的坑爹秘密。呢吗!湖大校园网的ipv6是基于隧道协议过来的,之前走了好多弯路啊!只有一个方法可行,并且这种方法不受官方的待见。接下来我将我这几天的学到的知识点进行梳理,为广大网友提供一个学习的过程以及参考。


开始的开始,推荐阅读Oracle公司的系统管理指南:IP服务帮助文档,其中如果需要入门IPV6协议的话,需要阅读  2.3章节:IPv6介绍(概述)(重点阅读)  还有 2.11章节:IPV6详解(参考) 以及其他关于IPV6协议的相关内容(稍微借鉴参考,毕竟别人是为自家系统写的,有些操作命令不一样)。还有在尝试各种方法时,开始做好路由器的基础备份,每进行一种方法,及时的将前一种未成功的方法残留的修改给复原,再进行新方法(快捷的就是及时备份,及时上传备份),因为有的程序会相互冲突。

接下来进入正题:

通过阅读网上的教程结合所学知识,发现openwrt配置IPV6协议给终端分发网络具有四种方法:

第一种方法,直接将校园网网线插入路由器的四个LAN口:这是基于交换原理的最简单快捷的方案,然后集体在终端进行验证上网,这种方案适合所有的路由设备,不过你的手机支不支持校园网认证就是另外一回事了,并且弊端为一次只能上一台终端设备,与本人的初衷不一样,放弃。

第二种方法就是仿照IPV4路由普遍的NAT分发方式进行部署的NAT方案(关于NAT方案,自行搜索了解):简称为IPV6 NAT方案,这种方案在IPV6规划里面是不受官方推荐的,因为这种方式与IPV6最后要达到的企图背道而驰。IPV6时代要达到的目标是将世界的网络变为一个平面,一部终端具有全球唯一的一个IP地址,实现最简单的归一平面化,而NAT的存在却让这个网络框架有了层次感,显得冗余而杂乱,并且在IPV6时代都不用考虑内网穿透这些技术,当然不受IPV6官方的待见了。但存在即合理,NAT其实是为ipv4地址枯竭而诞生的技术,同时还带有安全功能,事实证明,IPV4 NAT的存在确实延缓了IPV4地址的枯竭,不然你还能安心的坐在这儿分得到IPV4地址进行上网?

接下来进入第一种方法的第一步:查看当前ipv6状态,记住是直接接上校园网进行这一步(不经过路由器)

如果是windows系统,在CMD中输入ipconfig,查看当前ip信息。如果是linux系统,相信你已经是位大神了,就不用我说ifconfig命令了,<-_<-

如果是下面这个图,显示了隧道信息,并且学校限制了有线连接进行拨号,一次只能登陆一个账号,那么,恭喜你入了我入的坑了,只能使用当前IPV6 NAT方法或方法一进行ipv6配置了(从理论上来说应该还有一个方案,将ipv6信息通过ipv4通道进行,例如再造一次当前的隧道传输协议,不过本人没试过)。至于为什么,你可以想想ipv6数据本来

在ipv4的线路隧道中传输,你ipv4地址姑且只能得到一个,怎么能够直接得到多个一层IPV6地址呢?

openwrt配置IPV6四天折腾记_第1张图片

关于怎样对openwrt进行IPV6 NAT配置,这里有好几个方案,可以参照网上的教程来进行:

一个是北邮的NAT方案,他们公布了源代码,可以对openwrt进行内核级编译,按照教程编译出来openwrt固件,然后烧写进路由器,这个支持理论上来说应该是杠杠的,但本人目前没试,自己动手重新编译openwrt的话估计又要废去本人的几天时间,有时间了打算试试。

附他们的教程地址:https://code.google.com/archive/p/napt66/ 

一个就是ip6tables+kmod -ipt-nat6方案,具体怎样操作,可以在网上搜到,支持性不是很好。(本人没成功)

第三种方法就是将IPV6通过将WAN口桥接LAN过滤掉IPV4流量进行操作:这种方法的也是基于交换原理而实施的,前提是校园网是基于双栈协议部署的,就是非上述隧道方案,特别适合IPV4需要认证而IPV6可自动获取的双栈网络。实现了IPV4走NAT道路,IPV6走交换道路的方法。此种方法为桥接WAN与LAN,然后用ebtables滤过桥上的ipv4流量。附教程地址:http://blog.xieyc.com/configure-ipv6-throughout-in-openwrt/ (也可自行搜索关键字“路由器配置IPV6 穿透)。

第四种方案是基于IPV6相邻节点发现协议进行的操作:这种方法也是官方支持度最高的方法,但是,前提也是校园网是基于双栈协议部署的(关于相邻节点发现协议,可以在开始的oracle文档中找到),常用的方法为6relayd程序方案 或者ndppd程序方案。

可自行搜索“路由器配置ipv6 6relayd”或者“路由器配置ipv6 6relayd”关键字进行搜索。

教程到此也就写的差不多了,本教程更多的偏向于理论方面,如教程中有错误部分,还望评论中提出修改意见,或更好的方法,欢迎讨论。

教程的最后安利一个福利(最后一个方法):通过本人最后和本校同学进行知识梳理,发现完全可以在路由器上面安装代理程序进行本地代理,由于路由器是能够连接上IPV6的,所以我们只需要将IPV6的数据通过路由器代理传给本地就行,That's good! 突然意识到了这个问题,然后在路由器上面装了小巧的代理软件srelay,本地就只要通过sockes5代理就行了,只需要本地将代理地址改为路由器的地址就行了,至此四天的程序员的玩乐完美结束。




你可能感兴趣的:(openwrt,ipv6,路由器,程序员的玩乐)