利用RouterBoard的Metarouter功能虚拟化运行Openwrt
据官网页面介绍,自从ros3.21和4.0版本起加入了metarouter功能,也就是虚拟化路由器。
可以在部分的routerboard上支持以虚拟化方式运行ros或其他路由器操作系统的实例(不过目前我看到的只有openwrt,可能有别的)。
官方对于这个功能应用场景的解释是:让路由器的用户可以以相对较低的权限建立一个路由器实例,如WISP(无线网络服务商),可以在不增加物理路由器的情况下让其客户拥有一个自己的完整权限虚拟路由器,而可以不用给他们宿主路由器的访问权限或增加另一个物理路由器。
对于一般的geek来说这个应用场景是不适合的,但是有一个好处是因为可以虚拟openwrt,所以可以在上面利用openwrt跑goagent之类的玩意,作为透明代理翻墙用,不过我有树莓派,在routerboard上搞个这个纯粹玩玩。
首先需要一个镜像,mirkotik官网有现成的openwrt镜像,当然也可以checkout新的源码编译,等不及编译,先弄个现成的。
首先开ftp把镜像传上去,放到pub里
之后就可以在metarouter里导入了
内存最小可以填4M,不过目前还算富裕所以分了32M。
metarouter那个窗口会多出一个项目,显示正在导入,完成之后就可以启动了
启动前首先给虚拟路由分个接口,图省事,直接分到桥上,因为不用他的路由器功能所以一个接口就够。
启动后,右键mr3选console会出现openwrt的终端
之后就是openwrt里头的各种配置了,和一个刷了openwrt的路由器基本上一样,这个不表,下面说说自行编译的事:
官方说29684之后貌似都可以直接编译,co最新的代码之后target system里头没找到用哪个 ,按照rb951ui的配置选了默认的ar93xxxx。
另外搞了一份29684代码的打了mikrotik提供的补丁
wget http://www.mikrotik.com/download/metarouter/openwrt-metarouter-1.2.patch
patch -p0 <openwrt-metarouter-1.2.patch
make menuconfig选择Mikrotik MetaROUTER MIPS
最新的和29684的一个扔虚拟机里一个放vps上同时编译,猜测编译好了怎么着也应该能出来个可用的镜像吧,不过速度太慢了……先去睡觉。