前面介绍过网卡模式和路由模式的使用,接下来就详细介绍下两种方式的使用区别。
网卡模式
网卡模式下,上位机获取的是网络侧分的IP地址,以Windows为例,安装好Windows的驱动程序后,电脑USB接到模块上,会识别到USB虚拟出来的RNDIS网卡。
USB 3.0网卡信息会显示851Mbps,如果是USB 2.0,会显示425Mbps。
可以看到,电脑的网卡直接获取到了网络侧下发的10网段的IP地址。
如果不想使用USB口,而使用以太网口,只需要发一条AT命令,把以太网模式打开,数据接口自动切换到以太网
AT+QCFG="ethernet",1
这时候,就算你USB接在电脑上,也不会获取到IP地址,需要接网线到模块上获取IP地址。
这时候,以太网口就显示已连接状态,而USB的RNDIS网卡是断开状态。
网卡用的千兆的,速率显示1000Mbps,并且获取到了IP地址。
那么,有个问题,就是当模组把IP地址给了电脑,那设备自己还有没有IP能,我能不能访问到设备呢,答案是:可以的。
移远的模组默认带了一个IP地址:192.168.1.33
通过网口可以直接访问这个IP,比如ping,或者ssh,可以远程登录到模组上,当然,如果没啥特殊需要,是不用ssh到模组上的,但是如果开发openCPU版本,这个后台管理IP还是有用的。
可以发现,里面就是一个Linux,里面两个网卡,一个是给运营商IP地址做的网关,一个是内部IP网关。
那有人要问,这个10.1.65.1是干啥用的,其实这个地址就是给你的电脑提供的网关IP,因为运营商分配的IP地址只有一个IP,没有其它信息,比如掩码和网关,模组里面自己做了个网关IP,然后给你的电脑,所以,其实模组里面还是按照路由的模式在运行的。
但区别就是,模组只能分配这一个IP给上位机,如果你接了交换机,那接在交换机上的设备,谁先拿到就是谁的,其它的设备就获取不到IP地址的;如果你有个路由器,直接把路由器的WAN口接到模块的以太网上,就可以让路由器直接通过5G联网了。
那这个模式下ssh到模组上有什么用呢?模组里面有tcpdump,nc,ping等网络工具,在很多复杂场景下,对分析问题会很有帮助。当然,对于使用原厂固件的普通用户来说,大部分情况下用不上这种方式去分析问题,在上位机通过AT以及网络工具就足够了。
路由模式
路由模式其实有两种,一种是USB网卡可用,一种是USB网卡不可用,只能用以太网。
AT+QCFG="nat",1 (USB网卡不可用)
AT+QCFG="nat",2 (USB网卡可用)
USB网卡可用的时候,usb线和网线都连接的情况下,两个网卡都能获取到私网地址。
模组默认的网段是92.168.42.x网段,模组是192.168.42.1,设备自动分配到42网段的IP,此时模组就相当于一个路由器,运营商分配的地址相当于模组的WAN口,电脑接上去其实相当于接到了路由器的LAN口。
我的USB和网卡都获取到了192.168.42.x的IP地址,而模组就是192.168.42.1的网关,这时候我们看下模组内部的网卡信息。
看到tether就是网关IP地址,而运营商地址被分配到了sipa_eth0上。
我们来看下路由表:
标准的Linux路由表信息,sipa_eth0就是默认路由,而内网的路由是tether,tether就是内网的网桥了,我们看下:
你会看到,以太网和usb都被划到了一个网桥里面。
那么此时,你用网口扩展其它的交换机或者路由器,也都没有问题,下面的设备可以获取到42网段的地址,通过模组访问网络了。
路由模式主要就是针对有多台设备想通过模块进行上网,而且也不想接三层路由设备了,那就接一个二层交换机,模组此时就变成了路由器。
既然模组变成了路由,那有没有路由器相关的功能呢,比如防火墙,DMZ,端口转发之类的功能,答案当然是:Yes
有了iptables,那些功能就都不是问题了。
当然,也有个问题,就是如果用原厂的固件,配置的信息是无法保存的哈。
通过这两种方式的介绍,可以看出,展锐平台的5G模组可挖掘的潜力还是很大的,模组里面本身就是一个完整的Yocto Linux,有着很好的扩展性,在OpenCPU的加持下,是可以不需要外部主控做一个独立的路由模块的,当然,只能属于软路由的范畴。
最后我们来看下这个模组所使用的展锐芯片的信息:
双核CPU
最高主频1.3G左右,已经不错了,至少比7621的800MHz的强,这也是他的转发速率能比一些专用主控路由芯片高的原因。
当然,不要琢磨用它来搞音视频编解码,没有硬件codec,CPU性能会大幅受限。