我们平时做实验一般会用到真机或者是模拟器,因为我主要接触的都是一些H3C的产品和技术,所以模拟器用HCL会多一些。为了呈现出相对好一些的视觉效果,我一般会使用MobaXterm工具进行命令操作,所以大家看到的回显一般是这样的:
对于一些常用的字段或者有特殊含义的词语,MobaXterm工具会对显示内容进行着色,提高可读性。
而如果我们使用软件自带的putty工具,显示效果就是这样的:
白茫茫的一篇,可读性稍微差一些。还有就是如果默认输入法为中文,则需要挨个窗口切换为英文输入法,窗口都合并了,还有这样的问题,真不应该。使用MobaXterm就好得多,整个应用程序执行一次中英切换即可。
那怎么实现用MobaXterm连接HCL模拟器呢?请继续往下看。
在之前测试HCL模拟设备性能的时候(),我们介绍了HCL的虚拟化是基于Oracle VM VirtualBox来实现的,比如我们在HCL中运行6台虚拟设备,对应的,就会在VirtualBox中创建6台虚拟机。
而putty对应的控制台输出页面就是连接到虚拟机的串口的。
在上图中,最有价值的就是“串口”里面的端口路径信息了。如果我们能连接到这个路径,那我们就能使用MobaXterm来访问设备的Console命令行了。
目前最常用的就是使用Named Pipe TCP Proxy这个工具,他可以与VirtualBox配合使用,将虚拟机的终端控制台串口重定向为可以通过IP访问的TCP端口。比如我们在工具中添加一个映射,将设备device2映射到127.0.0.1的TCP端口2002。我们先点击新建连接的图标,然后输入要映射的串口路径和端口信息。
点击“Add”添加之后,即可看到添加的连接信息,当前是Ready状态,尚未连接。
然后我们通过MobaXterm进行连接,只需要Telnet对应端口即可。
连接完成之后,可以在Named Pipe TCP Proxy工具中查看状态统计信息。
怎么样,效果是不是还不错?
但是,操作稍微麻烦了一点。那我们就搞一个自动化的小脚本来自动添加pipe映射,使用到的工具是autoit,它是一个使用类似BASIC脚本语言的软件,设计用于Windows GUI(图形用户界面)中进行自动化操作。
安装过程中需要调整的就是选择86位还是32位操作系统,默认选择是32位系统,我修改为了64位。
等待安装完成之后,我们把以下命令粘贴进去。这里列举了创建10个TCP连接的场景,如果要增加,把iCount 的取值从10调整为其他数值即可。
#include <Constants.au3>
;Start Named Pipe TCP Proxy
Run("C:\Program Files\piped.exe")
WinWaitActive("[CLASS:Afx:400000:0]")
;New Session
Send("{LSHIFT}")
For $iCount = 1 To 10
Send("!EN")
WinWaitActive("[CLASS:#32770]")
Send("\\.\pipe\topo1-device" & $iCount & "{TAB}200" & $iCount & "{ENTER}")
Sleep(100)
Next
保存配置,可以在当前页面按F5执行脚本,也可以双击文件运行,脚本会自动调起软件,并创建pipe连接。
对应的,还可以在MobaXterm上创建快捷会话。
最后,我们就能够通过双击会话名称来连接设备了。
总结一下:在正常使用中,先打开HCL创建设备及互联关系,然后运行au3脚本,再打开MobaXterm,双击会话名称进入命令行,齐活。当然,我们甚至可以在脚本最后增加打开MobaXterm的命令,这个事情就交给各位了!