ZN600是深圳兆能科技有限公司的一款天翼智能网关,目前还能在官网上查询到。但遗憾的是,公司官网上并没有给出这款光猫的技术细节,能够查到的最detail信息的也就是下面这张截图了。可以看到,官方只是给出了CPU,内存,FLASH等一些最基本的硬件信息,至于系统信息则是完全没有的。不过,咱这不就给它慢慢补上了嘛。。。
a)CPU简介
从兆能官网的信息来看,主CPU采用的是MTK7526GT芯片,但是网上找不到任何技术资料,包括MTK官网,着实很吊诡。难道是定制芯片的原因吗?希望路过的学硬件的同学可以给科普一下啦。。。
b)Wi-Fi芯片——2.4G,5G双频
Wi-Fi芯片组其实也存在类似前面主芯片组的问题,找不着对应的MTK7692N2.4GHz芯片和MTK7612EN5GHz芯片,勉强在官网找到了一个MT7612E的芯片信息,迷茫。。。
c)内存——/proc/meminfo
从官方给出的内存信息来看ZN600应该有512MB大小,但实际的内存为469092KB(458MB),这个地方暂时没搞明白。有懂硬件的童靴,请多多指教啦!
d)FLASH存储
从下面的图片中可以看到ZN600一共有12个分区,总共的大小为180282KB(约177MB),这大小跟官方说的128MBFLASH又有出入,请懂硬件的童鞋给科普一下啦^_^
各个分区的用途也都非常清楚了
a)Linuxtc
ZN600光猫跑的是Linux内核是3.18.21版本,这个版本算是很低了,但是已经能够支持LinuxContainer容器。在这里,我被要求代表team给各位看官大爷道个歉,之前关于电信网关中跑的“tc”Linux给出了错误的信息,天翼网关中的“tc”Linux与TinyCoreLinux项目或许并不是同宗同源的,很可能只是凑巧用了同样的缩写“tc”Linux。下面两张图分别截取了在天翼网关上的uname命令执行结果和在TinyCoreLinux系统上执行uname命令的执行结果。可以看出,天翼网关的系统名称为“Linuxtc”,而TinyCoreLinux的系统名称为“Linuxbox”。
起初,我坚定认为天翼网关是从TinyCoreLinux项目fork过来的原因是,他们俩的定位是一致的针对嵌入式系统的Linux,而且他们都有各种有一套类似于dbus的系统参数配置命名,而且名字也是非常相似,所以就犯懒了,草率的认定这俩系统就是一个祖宗。
b)LinuxContainer——Lxc
我们team一致认为ZN600这只光猫最大的亮点在于采用了Lxc容器技术,这一点比起其他两家运行商来说在技术上显得更加大胆和自信,毕竟像光猫这种千家万户都在用的设备在设计之初就是一个“稳”字当头啊,一是怕大规模断网,二是怕美丽国通过这些智能网关设备对我们搞大规模监听(这是master说的)。
当然,也正是使用了这种操作系统级别的虚拟化技术,工程师们才能够比较容易的将电信传统的Web管理平台和“离经叛道”的OpenWrt项目整合到了一起。Master说,正是因为使用了容器技术,才使得电信工程师们在温和的技术改革中,既不需要在传统的Web管理界面中生硬的加入OpenWrt项目的各种功能(防火墙,行为管理等),也不用不着在OpenWrt中加上一大堆支持TR069协议的代码。这就是容器技术带来的技术变革和好处。
c)Busyboxc)Busybox
在ZN600光猫中,这款Linux操作系统“小军刀”仍然有在使用,不过显然是做了升级,解除了对grep命令的封杀,大快人心啊。。。
d)Boa
对比之前的电信PT632光猫来看,BoaWeb服务器基本没变化。估计电信工程师们应该是被那套老的Web管理界面给害苦了,坑惨了吧,都不愿意碰那套东西。历史遗留代码往往没人愿意在上面花精力维护,况且他们还把OpenWrt那套东西给塞进来了。
e)Openwrt
从上面这张图中,我们可以找到Lxc的身影——“先进的容器隔离技术”,当然这个“先进”应该是对照另外两家提供固网服务的后起友商吧,毕竟lxc算不得什么先进技术啊(都发展十几年了)!再者,所谓的智能OS难道就是一个针对嵌入式系统的Linux魔改版?当然,最让人捉摸不透的就是所谓的“智能应用插件”技术。从前面分析已经看出来了,电信传统的Web端口算是彻底废了,只是目前还把持网络通信这块儿的功能,其余的所谓“智能”技术全部交给了OpenWrt。。。
很明显,系统用的是Linux而不是Unix,其中那个“tc”到底对应什么?我们team开始产生分歧了,我个人觉得应该是TinyCore这个单词中tc的缩写,但是他们都认为就是Tele前缀和communication这个单词的首字母缩写。当然,这个好像对于hacking而言没有太大关系。再者,人电信说是“智能”操作系统也没问题啊,小米的路由跑上OpenWrt不也就变身“智能”路由了吗?当然,如果天翼网关中跑的是TinyCoreLinux的话,那从内核信息来看,这应该是从一个很老的TinyCoreLinux系统fork过来的版本了。
总的来说,不论天翼网关的操作系统是否为TinyCoreLinux,在天翼网关从1.0版本升级到最新的4.0版本,系统本身并没有多大变化,依旧在使用自己定义的xml格式配置文件存储信息,依旧在使用tcapi命令来读写这个xml配置文件,依旧在使用那一套老的WebApp来进行光猫的管理与配置。
Busybox依旧是“阉割”过的版本,没有alias,没有find,没有ftpd,当然也有一些升级,比如把grep添加进来了。在telnet远程连接到ZN600时,有grep过滤一下,可以更加从容的处理想要的信息了。其实,我们在讨论为什么grep会拿进来?莫非是电信工程师们也觉得在debug的时候,或者在查看、修改配置文件的时候,面对一堆的输出结果很费眼?
当然,我们还是觉得电信工程师在Busybox的“阉割”上是做得非常好的,不出意外应该是三大里头做得最好的,毕竟多暴漏一个对于自己没有意义的命令就算不会便宜那帮“黑客”,但至少对自己没任何好处啊。。。至于移动、联通的猫嘛,等master买回来了我们会一一为大家解剖的。
可能是碍于Boa已死的事实,电信工程师也赖得对boa进行升级了,只要保证系统能够正常使用(GPON终端)能够正常使用就行,当一天和尚撞一天钟嘛,何必跟自己认真呢?至于“智能”化的责任嘛,那就全部丢给了后面的OpenWrt吧。。。
前面,我们说到了电信在天翼网关中引入了容器技术,这举动应该是运营商里头最为激进的。这话是master说的,他是在分析最新的移动和电信光猫之后得出的结论,但是我觉得有点突突,毕竟咱team不是还没碰联通的猫吗?
当然,电信工程师在天翼网关中引入容器技术的确很超前(相对于另外两个龟速选手),但是也不至于像中国电信上海研究院领导PPT里头讲的那么夸张,“先进的容器隔离技术”。LinuxContainer,lxc,仅仅是一种操作系统级别的虚拟化技术,而且都已经玩儿了十几年了,怕谈不上先进吧?
再者,不得不再次表扬电信工程师们,把lxc也给无情的“阉割”了,“阉割”了,“阉割”了。。。Lxc默认安装之后,lxc软件包里头原本有许多个命令,如下图所示:
结果,电信工程师们把Lxc给“阉割”得啥也不是啊,比太监都还不如啊,就只剩下了四个命令,如下图:
如果你们认为电信工程师们就这点狠劲儿的话,那你们太小看他们了。除此之外,他们还专门写一个叫做“saf”的容器管理程序,专门用来管理名为saf的容器(OpenWrt的母体)。我们team头脑风暴了好几次,始终没明白这个“saf”是啥意思?关键是,这个程序的console选项需要输入密码!密码!密码!而且,这个密码不是电信超级用户密码。
由于Lxc被阉割,没办法通过lxc-attach或者lxc-console命令进入OpenWrt容器,那么也就没法安装OpenWrt插件。这一切都是拜saf所赐!当然,牛人无处不在,chinadsl.net上的大牛songee就自己写了一个脚本绕过saf,实现了在某些型号的天翼网关上跑新版OpenWrt,拜一个先!!!
在我们看来,天翼网关3.0开始以来,电信工程师们就试图在人员有限的情况下找到一条对抗互联网公司试图“逼宫”的出路。毕竟,猫才是千家万户接入互联网的第一个隘口,小米,360,极路由啥的寄希望于在“王”的背后建立起另一个国中国,并试图从三大抢走资源与用户,这个不是摆明了找死吗?电信研究院能眼看着地盘被抢吗?于是,一场不是你死就是我活的决斗开始了。电信工程师取了个巧,确切地说是跟着学,用成熟的OpenWrt框架作为自己路由功能的技术依托和支撑,然后借助OpenWrt庞大的生态(相比其他软路由)来解决自己人员不足的问题,这么一来其他什么“智能路由”或者“傻瓜路由”都没活路了。。。
貌似跑题了。。。
1、在技术上电信光猫的确走在了前头(相比于另外两只乌龟),不论是出于市场的需要,还是图自己省事儿的“初心”,总之采用“先进的容器隔离技术”让原本索然无味的光猫有了一丝嚼劲儿。
2、OpenWrt的引入让光猫这个原本定位清晰的EPON终端变得更加鬼魅,当然也顺势通过“全屋Wi-Fi”的概念抢走了一大块儿市场蛋糕。
3、在安全的考量上电信光猫无疑是做得非常好的。当然,这个“好”并不是单纯指技术,更重要的是在busybox等软件的“约束”上体现出了很严谨的软件安全思维。master他老人家说,这一点非常值得我这种脚本小子和网安小白虚心学习。
联系地址:武汉市洪山区光谷大道70号现代光谷世贸中心F栋7楼(光谷校区)武汉市江夏区华师园北路18号光谷科技港1B栋4楼(江夏校区)