SmallBean175

前言

在FreeCRT里嵌入SmallBean175的控制界面,算是一次软、硬结合的初步尝试,也算是给FreeCRT引流。至于SmallBean175本身或控制软件本身有没有问题,我觉得大约是有的,不过闻过则喜,希望大家予以指正。

1. SmallBean175外观

1.1 SmallBean175前脸

1.2 SmallBean175背部

1.3 淘宝链接

有需要的朋友,点击这个链接,限量供应 https://item.taobao.com/item.htm?ft=t&id=916151547846

2. SmallBean175规格定义

SmallBean175是一款多功能百兆交换机,主要面向的客户群体是嵌入式工程师、网络工程师、网络管理员以及在校的科研人员。对于普通用户来说,标准交换模式也足以满足你的日常需求。SmallBean175的规格定义如下:

  • 5口百兆交换机,采用IP175G芯片方案
  • 支持4种不同的工作模式,分别为标准交换VLAN隔离端口镜像专家模式
  • 铝合金外壳,美观、坚固、耐用
  • Link、数据合一指示灯
  • 端口镜像指示灯
  • 5V1A DC输入,支持USB口和DC口两种供电方式
  • 待机功耗400mW,两口iperf测试时功耗650mW
  • 100米5类网线,iperf测试接近理论吞吐率
  • 支持基于USB的IP175寄存器访问与操作
  • 支持寄存器定制保存与加载

3. SmallBean175的四种工作模式

3.1 模式1 – 标准交换

图3-1 标准交换

标准交换模式,是应用最多的一个模式,俗称傻瓜交换。在这种模式下,P1~P5在同一个Vlan中,任意端口间都可以实现自由的数据交换。这种模式下,SmallBean175的P5在与P1~P4具有完全一样的身份和行为。

3.2 模式2 – VLAN隔离

图3-2 VLAN隔离

VLAN隔离模式的网络拓扑如上图所示。在这种模式下,P1和P5在VLAN1, P2和P5在VLAN2,P3和P5在VLAN3,P4和P5在VLAN4,这样VLAN之间相互隔离。简单的说,就是P1~P4之间相互不能通讯,但是P1~P4都可以和P5进行通讯,从而组成以P5为中心的星型网络。

3.3 模式3 – 抓包模式(端口镜像)

图3-3 端口镜像

抓包模式,专业的讲就是端口镜像,指的是把目标port(source)的收发包copy到另一个用于观察的port(destination)。早期研发工程师抓包通常使用以太hub来完成,但以太hub不仅效率低下,而且基本上已经销声匿迹了。基于交换机的端口镜像实现的抓包功能,无疑更加灵活与高效,可以满足专业领域工作人士的刚需,是SmallBean175最具特色的功能之一,也是SmallBean开发的初衷之一。

注:由于IP175G芯片的实现问题,在实测中我们发现,镜像的收、发报文不能完全保证时序,在使用中请加以甄别。

3.4 模式4 – 专家模式(高级自定义)

专家模式是SmallBean175的终极模式,在这个模式中,用户可以通过FreeCRT(风云际会,热泪盈眶…)的内嵌程序SmallBean Manager,直接访问IP175交换芯片的内部寄存器,实现对寄存器的读、写和保存,理论上,以上三种模式都可以通过专家模式来实现,同时还支持各种其他的特性,比如端口速率控制、端口trunc、VLAN&CoS…,本文将有专题章节对专家模式的使用做举例。

4. 抓包模式实战

抓包模式是网络工程师和嵌入式工程师的刚需,可以用来分析网络协议与定位相关的问题。本节重点介绍SmallBean175抓包模式的使用方法。

4.1 抓包行为

交换芯片IP175G的端口镜像功能支持四种方式,RX,TX, RX or TX, RX and TX,而且支持对多个端口同时进行抓包,为了避免不必要的困惑,SmallBean175的抓包模式,定义为:使用P5来抓P1的TX与RX报文,其中P5为监控口,P1为被监控口。

4.2 抓包指示灯

SmallBean175的RJ45接口,右侧绿色灯用于作为link和数据的指示灯,而左侧的黄色灯专门用于抓包模式的指示。只要处于抓包行为内,不管是被监控端口或是监控端口,其黄色灯都会被点亮。当进入抓包模式,最明显的外部特征就是P1和P5的黄灯会被点亮。如果进入专家模式,比如用P5抓P1~P4的包,那么5个黄灯都会被点亮。

4.3 抓包举例

我们用一个最简单的例子来说明如何使用SmallBean175来完成抓包:模型如下图,PC1的IP地址为100.100.0.1,接P1,PC2的IP地址为100.100.0.2,接P2,PC3为抓包机,接P5。PC1使用ping 100.100.0.2命令来测试与PC2的连通性,而我们则使用PC3抓取协议的交互报文。

图4-1 简单抓包demo

首先,在PC3上安装抓包软件(推荐使用wireshark),选择连接P5的网口,进行抓包。在PC1的命令行中执行ping 100.100.0.2,命令完成后,停止wireshark的抓包动作。我们得到如下的报文信息:

图4-2 ping命令抓包

我们看到协议的交互报文,符合我们的预期:首先是一对ARP报文,由PC1触发用于获得100.100.0.2的MAC地址,然后就是成对的ICMP报文,也就是我们通常说的ping命令的交互协议。

下面我们再模拟一下,用SmallBean175的抓包功能来定位问题:
我们在PC1上执行,tftp -g 100.100.0.2 -r main -l main,意思从100.100.0.2的tftp server上获取一个名字叫main的文件,并存储到当前的main文件。然后我们通过SmallBean175获得如下的报文,“Port unreachable”的ICMP报文,明确告诉我们端口不可达,那么大概率就是tftp server根本没有启动。

图4-3 tftp服务没开,端口不可达

5. 专家模式实战

5.1 专家模式的工作机制

我们先介绍一下“专家模式”的工作机制,这个有助于大家对“专家模式”有一个更好的了解。IP175G(即SmallBean使用的交换芯片)在复位时,内部寄存器将复位成初始值,如果有硬件设计上有EEPROM的配合,就可以在EEPROM中按约定格式写入寄存器值,修改默认的交换机寄存器,从而定制交换机的行为,市面上大部分的傻瓜交换机采用的都是这个策略,至少是保留flash焊盘的。

SmallBean175采用的是通过SMI接口动态修改寄存器,并提供了保存修改后寄存器的机制,当模式选择为“专家模式”,则尝试加载保存的用户定制寄存器。

事实上在任何模式,我们都可以通过SmallBean Manager来动态修改修改寄存器,实时的修改交换芯片行为,任何与默认配置不同的改动,都可以进行保存(或者导出配置),而拨码开关选择“专家模式”,只是做了load存储配置的动作。

5.2 SmallBean Manager介绍

图5-1 SmallBean Manager主界面

SmallBean Manager从FreeCRT V0.9.9.0版本开始引入,可以单击菜单Options->SmallBean…按钮来启动,启动后的界面如上图所示。界面从上到下,分为4个部分:设备信息、寄存器列表、单个寄存器控制、功能按钮。

设备信息:Combobox可以用来在多个SmallBean175间切换(如果有多个的话),其他则是当前选中设备的设备信息和软硬件版本号。

寄存器列表:寄存器列表我们用表格的形式来展示,列表示PHY,行则表示mmd+page+reg的组合。其中前5列直接对应PHY端口,后5列则用户交互芯片的全局设置。FreeCRT内部维护了一组IP175G的默认配置(如果错误请反馈),当设备的寄存器值与默认值不同,则会以高亮显示,这样用户可以方便的识别出来,我在默认配置基础上改了哪些寄存器。

单个寄存器控制:当用户在寄存器列表中切换选中项,单个寄存器控制区,会进行同步切换,我们可以在这个部分进行寄存器的写入或者按bit位进行操作。

功能按钮OK键为关闭界面命令,Refresh按键用于手动刷新当前SmallBean的所有寄存器,Save按键用于保存当前的修改寄存器到系统flash中,Export按键用于把当前的修改导出到SmallBean的配置文件中去,主要是用来进行配置分享,下一节,就会有一些用Export命令导出的配置分享给大家,而Import按键则是把export出的配置写入系统flash中,并在切换到“专家模式时”生效。

5.3 SmallBean Manager驱动

SmallBean Manager基于libusb与SmallBean175进行双向通讯,如果SmallBean175连接PC,设备管理器里出现‘设备未识别’或‘其他设备’的情况(如下图),那么说明需要安装驱动,可以使用如下zadig进行通用winusb驱动的安装。

图5-2 未安装驱动时SmallBean175在设备管理器中的样子
图5-3 用Zadig为SmallBean175安装WinUSB驱动

zadig-2.7.exe

5.4 系统中的端口映射

交换芯片IP175G是IP178G的阉割版本,后者是一个8口百兆交换芯片,所以寄存器的定义几乎一致,只是由于有三个被阉割,导致部分寄存器失效。IP178G内部有port0~port7,IP175G没有简单的使用port0~port5,而是按如下的方式映射:

图5-4 IP175G与IP178G的端口映射

由于SmallBean175是面向终端客户的,所以端口编码从1到5,我们整理一下,三者的关系,因为在接下来的举例中会用到端口的关系。

SmallBean175P1P2P3P4P5
IP175Gport0port1port2port3port4
IP178Gport2port3port4port6port7
表x 端口映射关系

5.5 专家模式使用举例

5.5.1 端口镜像只抓RX方向

SmallBean175的‘端口镜像’模式,定义为使用P5来监控P1的RX和TX。这里我们用一个最简单的例子,修改端口镜像双向抓包为RX单向抓包,来演示专家模式的工作方式。

因为这个例子是在默认的抓包模式基础上做微调,那么第一步,把模式选中为‘端口镜像’,打开SmallBean175(必要时手动refresh一下寄存器),浏览一下寄存器列表,有两部分内容有改动,一块是端口镜像的配置,一块是port based vlan部分。在这个例子里,我们只需要调整端口镜像部分,即SW20那列。

图5-5 端口镜像部分 (注:关于port部分的说明有点问题,可以结合IP178G的文档来分析)

从IP175G的datasheet可知,用于控制端口镜像方向的是PHY 20, page 0, 寄存器20的bit 13、14,那么选中列SW20、行0-20, 通过位操作,把13、14不要勾选。然后再点击save按键,保存成功后,把模式切换到‘专家模式’。那么此时就进入只抓P1 RX方向的工作状态了。

5.5.2 P1、P2-VLAN1,P3、P4、P5-VLAN2

我们知道,所谓的VLAN就是一个独立的广播域,如果两拨不同的人连接到同一台交换机,我们想把他们隔离开,最简单的就是把相应的端口配置到不同VLAN。IP175G支持port based VLAN和tag based VLAN,这里简单使用port based VLAN就可以实现。找到port based VLAN对应的寄存器章节:

图5-6 port based VLAN寄存器

以16寄存器为例,0~7bit定义了IP175G port0(Smallbean175的P1)的port VLAN成员,默认所有个端口都在这个VLAN里,在这个例子里,它应该只包括SmallBean175的P1、P2,对应IP178G的port为port2、port3,所以对应的16进制值为0X0C,8~15bit是port1成员定义,它的值同样应该为0X0C。与此相同,17的0~7bit,18的0~7bit以及18的8~15bit应该都设置成IP178G port4、port6、port7,即0XD0。我们把0X0C和0X0D写入对应的寄存器。保存并切换到专家模式,结束。

6. 专家模式配置分享

这里我们提供了的一些实用的配置文件,按下面的步骤导入:

  1. 下载配置文件
  2. SmallBean175切换到标准交互模式并连接PC
  3. 打开SmallBean Manager界面
  4. 点击Import按钮,选择下载的配置文件
  5. Import成功后,切换到专家模式即可
序号说明
1端口镜像TX方向(P5抓P1的TX报文)下载
2端口镜像RX方向(P5抓P1的RX报文)下载
3标准交换 所有端口强制10Mbps下载
表1 专家模式配置分享

7. 相关性能测试

对SmallBean175进行了远距离吞吐率测试,测试模型:

图7-1 吞吐率测试模型
图7-2 测试实际场景图
图7-3 iperf测试结果

8. 参考文档

后语

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注