USB ADSL在VMWare中Linux环境下拨号方法

  鉴于北京和山东网通已经提供原生ipv6服务(via newboysyb@newsmth提供了6to4方式的ipv6服务,不过家里的路由器和vmware目前根本就不支持ipv6穿透。为了将ipv6充分利用起来,打算在VMWare中的Linux环境下进行USB ADSL的拨号,这样就跨越了路由器的限制。很繁琐,研究了一个上午才搞定。

1.可行性分析

  网络环境:青岛网通ADSL
  硬件设备:大亚科技ADSL USB Modem,型号DB101-A(Conexant芯片)
  操作系统:VMWare Workstation 6.5.0虚拟机下的Fedora 10(内核版本2.6.27.5)

  整个过程之所以繁琐,最重要的原因是这个ADSL是USB接口的,要像学校里武汉电信ADSL使用的都是RJ-45接口从而system-independent也就舒服了。所以,首先设备必须被kernel所支持,幸运的是一般比较新的kernel都是没有问题的。然后需要检测一下自己的USB ADSL Modem是否被Conexant  AccessRunner芯片的Linux驱动所支持。简单方法如下图,在Windows的设备管理器中查询该设备的16进制Vendor ID和Product ID,然后看是否在这个网页http://accessrunner.sourceforge.net/modems.shtml所示的列表中。如若不然,奉劝早点收手,后面一些都是白费功夫。

2.让USB ADSL穿透VMWare

  这一步的目的是屏蔽掉VMWare这层马甲的影响,让Linux客户机能够“直接”存取这个USB ADSL设备。方法是在虚拟机客户端的设置页中,将USB Controller的Connections三个选项都打勾,然后重新启动Linux客户机,在VMWare窗口的右下角应该就出现了新的USB设备,指向它时会出现“Conexant ADSL USB Modem”字样的提示,然后点击它选择Connect (Disconnect from Host),这样主机便会失去设备连接,转而让Linux客户机获取。

  这时进行lsusb可以看到,USB设备已经能够被检测到,同时刚才的Vendor ID和Product ID也都被列了出来。

[remote@leon ~]$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 005: ID 0572:cb00 Conexant Systems (Rockwell), Inc. E-Tech ADSL Modem v2
Bus 002 Device 003: ID 0e0f:0002
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
[remote@leon ~]$

3.向系统中添加firmware固件支持

  这一步是从Windows的版本的Conexant驱动中提取出USB ADSL Modem的firmware,添加到Linux中。提取工具cxacru-fw在这里http://accessrunner.sourceforge.net/firmware.shtml,目前只提供CVS来下载,下载来后只需要一步make或者gcc就可以编译出来。

  然后自己去找CnxEtU.sys这个Windows下的驱动文件,网上文章说在windows/system32/drivers中寻找就行,可我用它提取时总是提示“firmware start sequence not found”,提取不成功,后来研究了一下那张ADSL驱动光盘,一共找到3个CnxEtU.sys文件,分别是605KB,版本40.1.22.0;632KB,版本32.99.84.0;524KB,版本32.99.56.0。我使用了632KB那个,提取成功,保存为cxacru-fw.bin,如下所示。

[remote@leon cxacru]$ ./cxzcru-fw CnxEtU.sys cxacru-fw.bin
found firmware in `CnxEtU.sys' at offset 0x41c0
[remote@leon cxacru]$

  将这个bin文件移至/lib/firmware/目录下。重新连接USB Modem,使用dmesg命令查看,设备已经被正常驱动,使用lsmod命令查看模块加载的情况,atm和usbatm模块已经能够被usbatm和cxacru所使用。

4.加载设备

  xDSL的Internet链接需要用到的协议如下所示。

  很多ISP使用的是Bridged IP over ATM (RFC1483/RFC2684)桥接进入Internet的,青岛网通就是这样。所以需要br2684ctl和libatm,后者为前者提供依赖,否则编译br2684ctl的时候会提示找不到atm.h头文件。br2684ctl源码的下载地址在http://home.sch.bme.hu/~cell/br2684/dist/。编译过程如下:

$yum install linux-atm
$yum install linux-atm-libs
$yum install linux-atm-libs-devel
$gcc -o br2684ctl br2684ctl.c -latm

  编译完成后可以讲br2684ctl移至/sbin/目录下。然后运行br2684ctl,创建nas0网卡,如下所示:

[root@leon ~]# br2684ctl -b -c 0 -a 8.35
RFC1483/2684 bridge: Interface "nas0" created successfully
RFC1483/2684 bridge: Communicating over ATM 0.8.35, encapsulation: LL
RFC1483/2684 bridge: Interface configured

  其中-b参数是让程序在后台运行,-c参数值0用于创建网卡nas0,-a参数值8.35来源于ISP的VPI和VCI,另外如果需要,还有LLC/VCmux,Routed/Bridged等参数的选择。具体可以咨询ISP,青岛网通的可以在windows下打开ADSL控制,按Alt+P通过下图看到。

  搭好桥后,进行ifconfig nas0 up,启用网卡nas0

5.拨号

  拨号软件可以使用rp-pppoe,下载地址在这http://www.roaringpenguin.com/products/pppoe,安装好后,按照提示填写ISP给的账号、密码、DNS、网卡nas0,然后pppoe-start,就终于可以Connected到Internet了!

Related Posts

4 Responses to “USB ADSL在VMWare中Linux环境下拨号方法”

  1. ydys says:

    你有没有觉得ping ipv6.google.com的delay太长了?(300ms)?
    我是电信用户,ADSL拨号以后也可以通过6to4连上v6网,我tracert ipv6.google.com第一跳就有220ms,你也差不多。
    通过v4 tracert 192.88.99.1延时相同,最后一跳的72.52.92.109在美国弗罗里达,he.net。
    从今年1月份就陆续有报道电信网通ADSL能够通过的6to4连上v6,但我认为这是微软提供的接入,而不是国内的ISP。

  2. Leon says:

    1.确实,我这里ping ipv6.google.com的时延大概在370ms左右,tracert第一跳也在250ms多,看来同样是通过he.net中转的。不过我认为慢的根源不在于中转,在于本地对v6包进行拆和封的过程。

    2.我v4下tracert 192.88.99.1的时延突变发生在北京网通219.158.4.234到北京网通219.158.25.18上,从40ms突增到220ms,不解。最后一条同样是佛罗里达he.net的72.52.92.109。

    3.我不赞成说6to4是微软提供接入的说法,我觉得微软只不过是提供了一个windows系统下的adapter而已,在Linux下同样可以创造一个虚拟的网卡接口出来。不过你指出并非ISP所为现在看来也很有道理。

    4.我对网络只是感兴趣,学得不精,猜测的不对之处请多多指教: )

  3. ydys says:

    我的本意是来回200ms正好是中美2万公里光缆的信号速度,6to4中继在美国,拆包花10ms路由器就该down了。
    电信网通似乎在没有让用户连接CNGI而是在自己都不一定知晓的情况下不小心让美国为其用户提供了v6接入。
    我说由微软接入看来是错误的,全球tracert 192.88.99.1的结果都不太一样,通过he.net的有但不多。
    我的专业与IT无关,从Google查找IPv6到你的博客,目前国内讨论IPv6技术的并不多,感谢你的博文,我很收益。

  4. Leon says:

    对哈,我刚ping了一下几个美国主机都是200+ms,还真比较符合2w公里光缆的来回时延。学习了。
    今天搜索ipv6关键字的时候正好也搜到你的blog上去了,呵呵。

Leave a Reply

  • 全文搜索

  • 按月存档

  • 请猛点这里

    标签云

  • 最新评论

    • 百毒博客: 早就该出国了,现在国内不适合网站...
    • tt: 这个我最近才捣鼓的东西,你一年前已...
    • 钻戒: 来晚了。。。...
    • tastypear: 求源码真相 囧r...
    • admin: speed调到200可以了...
    • admin: 用了你的swf,谢谢,不过总觉得tag运动...
    • 罗什麽: 我们友情一下吧?~我注意你很久了。...
    • 小武: 这是最完美的,太感谢了...
    • 黎明破晓: 你有实力搬家,我们想搬家走不了啊...
    • sio: 博主!还是你这个靠谱!崇拜啊...
  • 纵横坐标