常见的56K Modem大多支持V.90与V.92协议,但它们仅支持作为模拟Modem的角色,不能作为数字Modem的角色,导致自建基于两个模拟Modem对拨的接入服务器只能降速运行在V.34的33.6Kbps速率上,而无法满速工作。自然也就不会在握手时发出V.90/V.92特色的DIL探测序列的声音。
如果需要56K Modem满速工作,则必须让它们接入到支持V.90/V.92协议的数字Modem Pool上,这样的设备基本只有运营商具有,难于买到。
但是考虑到现在中国各家运营商的56Kbps接入设备正在逐渐老化,并被逐渐暴力或非暴力拆除,其统计结果如下:
- 西安16300与北京16300被拆除了PPP server连接导致无法上线。
- 杭州16300虽然具有PPP server,但server的上行线路已被断开,导致能够鉴权上线,但不可以上网。
因此,现状是除非拨打越洋电话,否则56K Modem无法正常满速工作。此外,国内运营商的Modem Pool大多使用华为A8010接入服务器实现,而华为A8010接入服务器对V.92的升级支持包几乎没有被任何运营商更新过,接入网就演进到ADSL阶段了,因此严格意义上讲在国内使用16300/16900/8163等线路拨号上网的人,都从未体验过完整的56K modem体验。
那么,我对此的解决方案为:自建数字Modem Pool与PPP server,使得56K Modem的完整上网体验可以被实现。
其中,Modem Pool我准备选用Cisco的NM-30DM数字Modem扩展卡、NM-1FE2CE1B E1干线扩展卡,搭配Cisco 3640综合业务路由器实现。其中,NM-30DM数字Modem扩展卡支持同时拨入30路连接,并有完备的V.21-V.92的所有Modem协议的支持,并支持K56Flex协议,几乎能够支持所有的拨号Modem满速运行。
当然,Cisco 3640这款路由器是综合业务路由器,实际上是可以直接实现PPP鉴权、封包和解包功能的。道理上说,仅需要一台3640路由器,配合E1语音干线与百兆以太网,就足够完成接入用户的能力。但由于该路由器早已停止支持,它的固件再也不会得到更新,可能存在漏洞,并难于实现一些比较客制化的功能:如拨号BBS、真*TELNET等,因此该路由器仅作为猫池使用,将Modem的输出桥接到TCP连接上,然后再由PPP server终结该TCP连接,并决定承载何种业务。
PPP server就是非常简单的一个基于Linux系统的PC,运行pppd和mgetty,负责控制Cisco 3640透传来的Modem,并实现PPP鉴权、封包解包,FidoNet和Telnet BBS功能,在应急时可作为带外管理设备使用。
但是现在的电话网实际上已经演进成为了基于IMS SIP的VoIP网络,为了在家降低成本,家中的电话网也是使用VoIP的方式搭建的。但Cisco 3640需要E1接口才能够正常工作,因此这里需要引入SIP to E1的媒体网关,完成包交换域到电路交换域之间的转换。这块使用OpenVox的E1扩展卡搭配PC实现。
因此整个系统的数据流向,大概是这样(经过PSTN):
User->Analog Modem->ATA/光猫->运营商IMS VoIP网->我的光猫->我的SBC->我自建的SIP交换机->SIP to E1网关->Cisco 3640(Digital Modem)->PPP server->NAT->光猫->Internet
这样的拨号上网体验与90/00年代相同,不过我不会也不可能收取信息费(笑)。不过请各位体验的时候悠着点,我目前对外的电话线只有一条,尽管猫池能同时接30路电话也没用(苦笑)。
当然,如果各位觉得运营商的话费比较高,又想充分的利用猫池的能力,亦可使用脱裤子放屁式的方式拨号上网:
User->Analog Modem->ATA->OpenConnect client->Internet->我的OpenConnect Server->我的SBC->我自建的SIP交换机->SIP to E1网关->Cisco 3640(Digital Modem)->PPP server->NAT->光猫->Internet
这样,大家不必购买昂贵的数字猫池,也能够体验满速V.92的魅力。
当然,有人问我这么大费周章的整这么一套阴间又过时的老东西有什么用,我只能回答:
- 怀旧
- 复习通信原理,顺便后续可以继续完善我自己的SIP modem,完全替代Cisco 3640,毕竟之前手上一直没有这样的设备,调算法也不好调。
- 练手
计划将于本月启动,等正常上线工作后会公布接入方式。大家有意见可以跟帖当然如果有兴趣稍微捐点款或者直接捐点设备(NM-xxDM)就更好了(请给我钱.jpg),当然不捐我也是会做的鸭(