精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>网络专区>>● Internet>>
相关软件
>>网络构建>>ADSL虚拟拨号上网连接共享问题的标准答案

主题:ADSL虚拟拨号上网连接共享问题的标准答案
发信人: larryh(larryh)
整理人: snowypeng(2002-05-24 09:19:06), 站内信件
ADSL虚拟拨号上网连接共享问题的标准答案 

现象:一台PC连接ADSL线路,通过虚拟拨号连接上Internet,安装连接共享功能后,局域网内其他机器(以后称为客户端)可以通过它访问Internet。但是某些客户端不能通过它访问某些Web网站,或者访问具有某种应用的某些服务器(如对某个邮件服务器不能收发邮件)。但是,ping全无问题。  

1.  问题关键:PPPoE协议的MTU比以太网的1500要小,客户端并不知道连接ADSL线路的设备(PC)连接的是ADSL,所以还按照1500的MTU处理,要是那个连接ADSL的PC不知道有这样的客户端(以为只有自己),直接把来自客户端的1500的包往ADSL上丢,就完蛋了,ADSL拒收,于是丢掉。  
2.  NAT路由功能的几种实现:Internet连接共享、WinRoute都不处理上述问题,至于Sygate,从4.0版开始稳定性就有很大问题,连用城域网固定IP连接共享都常出毛病,更不用说ADSL这种复杂环境了,Sygate早该打倒。Winroute灵活性最强,Internet连接共享最简单,各取所需吧。  
3.  既然NAT路由软件不实现这些功能,恐怕只有PPPoE虚拟拨号软件来负责解决了,其实也应该,因为在PC上PPPoE协议还没有标准的实现方法,NAT路由软件难以处理。  
   现在虚拟拨号软件主要有3种:WinPoET、EtherNet 300、RasPPPoE。  
   网上很多人推荐的WinPoET软件,兼容性倒是好了,但是不管连接共享的问题(因为WinPoET还有专门针对企业共享ADSL的软件),也就是完全不管MTU的事情,所以在这样的环境下完全是垃圾。EtherNet 300解决了,但是底层改得一塌糊涂,兼容性差,如果Uninstall它,很容易把网卡驱动搞出问题,造成必须操作系统重装的结局。最好的是RasPPPoE,根本就不用改什么客户端MTU了,安装好直接打开Internet连接共享即可。  
   大家看看RasPPPoE的帮助吧,虽然不是说得很仔细,还是概念清晰的。  


再来说说我是怎样想到这种可能的:  
    首先,装的是电信提供的Ethernet 300,没问题,但是WinRoute没法用,因为EtherNet300提供的不是标准的Windows DUN拨号连接,只好用Internet连接共享。考虑到Internet连接共享没有防火墙等安全防范措施,而且对IP地址的限制太死(完成NAT路由/连接共享的机器必须是192.168.0.1),试图解决此问题,把WinRoute用上。  
    于是安装WinPoET,顺利实现标准的DUN拨号连接,WinRoute功能发挥正常。执行连接共享的机器访问任何网站没有问题,但是,某些网站从客户端就无法访问(如新浪),包括某些邮件服务器,Ping都没有问题。  
    将就这个环境,用电话拨号访问Internet,用“Internet连接共享”或WinRoute,什么问题也没有。  
    在ADSL虚拟拨号并实现连接共享的整个过程实现中,大家应该清楚各个环节:Ethernet(因为连接ADSL线路用以太网卡)、PPPoE协议、拨号连接、NAT+路由。  
    以上过程可以得出结论:NAT、路由均无问题(因为电话拨号可以),Ethernet当然OK(那么多PC装Windows用网卡都没问题),ADSL拨号连接本身也OK(直接连接ADSL的机器访问Internet,一切都好),于是只可能是PPPoE协议具有的特殊性(尽管我还不知道这个特殊性是什么)造成这些问题。  
    将WinPoET、EtherNet 300、RasPPPoE的文档都下载来读一下,发现RasPPPoE提到MTU的事情,立即感觉到Bingo!    以太网和PPPoE这样的区别,正好可以解释我们的问题。  
    上RasPPPoE! 大功告成!  

    如果有幸使用的是硬件的ADSL虚拟拨号、路由、HUB一体的设备,它自会处理此问题,放心用就是。  

希望这片文章对大家处理ADSL虚拟拨号并进行Internet连接共享这个典型事例,有很好的借鉴。  
不过我觉得更重要的是,学习如何分析网络问题

[关闭][返回]