没有公网IP,不作路由映射能否实现跨局域网远程控制

2008-03-13 22:06| 分类:tech| 4,230 次点击

现在在学校机房上机,我一般会用xp自带的Remote Desktop Connection(2003下是Windows Terminal Service)登录到自己宿舍的电脑上,局域网内速度很快,远程登录跟本地操作没什么两样。但这样仍没法实现电脑时时在身边,而我迫切需要一种技术让我能时时控制自己的电脑,于是我打算让我手中的palm treo 600通过gprs走cmwap流量登录自己的电脑。

这算是我比较感兴趣的网络课题,正好我的专业也是网络工程,于是就把今天这两天的尝试以实验报告的形式写在这:

手机(palm)远程控制局域网(校园网)内的桌面操作系统(windows xp)实验报告


课程:网络互联技术     实验者:tsenfine

【实验目的】


1、探索跨局域网远程控制的方法
2、分清数据从外网传送到内网的特定主机上用到的关键协议和协议所涉及到的模型层
3、掌握IP协议和ARP协议在数据传送过程中的作用
4、探索是否有新的模式实现跨域数据传输

实验环境】
硬件:
1、一台通过宿舍的交换机接入校园网的电脑
2、一部开通GPRS和CMWAP 50M流量套餐的Palm treo 600
软件:
1、windows xp、palm os
2、mstsc(xp和2003自带)+EzRemote(palm os上的远程控制client软件,600无法使用)或者VNC Server+PalmVNC(palm os上的远程控制client软件)或者mstsc(xp和2003自带)+Mobile TS
3、花生壳2008客户端

 

【实验内容】
1、由于本机对外IP地址是动态IP,所以需要使用花生壳服务实现动态域名解析(使动态ip绑定一个免费域名),安装花生壳并开启花生壳免费域名的花生壳服务。
2、又因为主机处于校园网的内网中,需要做路由器端口映射或者开启DMZ功能。这时就遇到问题了:学校的路由器端口显然是不能让我做映射的。

【实验结果】
失败

【实验分析】
因为手上没有学校网络的拓扑图,所以以下是只凭手上已有的资料分析,可能有所出入
1、主机处于学校的校园网中,学校似乎有只有三个对外IP(222.79.245.83/84/85),学校分配给宿舍楼的内网IP地址形式为192.168.xx.xx。(C类专用地址)
2、各个宿舍楼都要通过交换机与学校的路由器相连,但因为校园网的内网IP是没有重复的,也即其实只有一个大的内网,所以通过交换机的步骤可以不用分析。

【实验原理】
一、校园网络分析:

路由器的NAT功能的作用:
所有ISP(Internet服务提供商)提供的内网Internet接入方式,几乎都是基于NAT协议的。而已知每次上网时,学校会随机分配给每台校园网的电脑三个不同的IP中的一个,所以学校使用的应该是“多对多”的动态NAT。使用NAT协议,局域网内的计算机可以访问Internet上的计算机,但Internet上的计算机无法访问局域网内的计算机,原理如下:

一台内部网络地址为10.0.1.1 的主机希望访问Internet上地址为202.0.1.1的Web服务器,那么它会产生一个源地址S=10.0.1.1 ,目的地址D=202.0.1.1,分组1,当分组1到达执行网络地址转换功能的路由器时,它就需要将分组1的源地址从内部专用地址转换成可在外部Internet上路由的全局IP地址。例如转换结果构成的分组2记为“S=10.0.1.1,D=202.0.1.1。那么,从被访问的Web服务器返回到NAT路由器的分组地址为“S=202.0.1.1,D=135.2.1.1”;(注意,这里并没有发送出内网的IP到Internet上)经过NAT路由器进行地址转换后,在内部网络上传输的分组地址为“S=202.0.1.1,D=10.0.1.1”)
S=192.168.37.2,D=202.0.1.1 发送给路由器
S=135.2.1.1,D=202.0.1.1  发送给服务器
S=202.0.1.1,D=135.2.1.1  服务器发送回来
S=202.0.1.1,D=10.0.1.1  路由器发送给内网的主机

这个过程中并没有发送内网的IP到Internet上,所以内网通过NAT上网是比较安全的。至于路由器如何通过NAT协议,知道202.0.1.1发送回来的135.2.1.1是内网的10.0.1.1请求的,然后把发送回来的数据传输到10.0.1.1上,这个属于路由器/NAT服务器内部的事,可以不用去管。

(update:看来还是得管,因为这些IP的传送都是基于IP数据报的形式的。)
可以看看这里:NAT的地址转换过程存在3个不同的阶段
  (1)连接关系的映射关系的建立阶段。发生在会话的开始,当内部的1台机器要与外部的1台机器发生通信时发生,NAT动态地为其分配未使用的TCP端口号,并且会记下这个映射关系,为以后转发IP数据包使用。
  (2)映射关系的查找与转换阶段。当有外部进入的数据报或从内部出去的数据报通过NAT时,NAT都在内部进行了查找,以便找到对应的映射进行地址转换。
  (3)映射关系解除阶段。当TCP的1次连接关闭时,NAT会释放分配给这条连接的端口,以便以后的连接可以继续使用。
或者看看这里:在多对一的情况下,NAT是怎样把外部数据包正确的送到内部具有私有IP的主机

主机上的ARP协议/路由器上的代理ARP的作用:
这里除了路由器提供的NAT发挥作用外,还涉及到网关主机上或者一个有代理ARP功能的路由器上的ARP协议。对Internet上的服务器返回的数据,NAT只是进行了外网-内网地址的转换。而转换完之后还要通过内网IP来寻找是哪一台机子发送的请求,所以得用到地址解析协议。因为学校的每幢宿舍楼都有一个不同的网关IP地址,并且以往的ARP攻击也仅限于一个楼栋内的攻击,所以猜测学校是通过网关主机进行ARP找寻物理地址的,而并非使用代理ARP路由器,当然,也可能宿舍楼使用的是三层交换机。当然,首先得由学校的那个总出口的路由器上的主机通过NAT找到是哪幢宿舍楼(对我们学校而言,只需要知道192.168.xx.yy中的xx即可知道是哪幢宿舍楼,继而使用192.168.xx.1的网关主机来做ARP解析。)原理如下:

内网的主机请求一个网站时,只发送自己的内网IP,并不发送自己的MAC,不包含MAC的帧被路由器NAT拆包,并处理成包含公网的源IP地址和目的IP地址的数据报传送(同时记下映射)。服务器端也进行拆包并加上要返回的数据并传送给校园网的路由器,由路由器的NAT再把公网的IP映射为刚才发送请求的内网IP,再通过高速缓存中的ARP表即可知道此内网IP对应的MAC(我们学校使用锐捷,网卡已与IP绑定,所以ARP表一般都不需要更新),从而实现数据的传送。

IP数据报结构:
见《计算机网络(第2版)》P233
以上所说的所有IP等信息的传送都是已IP数据报的形式传送的。

路由器的其他未在这里发挥的作用:
如《计算机网络(第2版)》P247所述:
用路由器互连的网络系统中数据的传输过程:当校园网内的计算机A向一个网站B发送请求数据(requestdata)时,A的最高层应用层数据(requestdata)传送给传输层;传输层在requestdata前面加上TCP的报头TCP-H后,将TCP-h+requestdata传送给网络层,网络层再加上IP报头IP-H后,将IP-H+TCP-H+requestdata传送给LLC子层;依照以上规律,通过校园网发送的帧的内容为(MAC1-H+LLC-H+IP-H+TCP-H+data)。
校园网的路由器接受到该帧时,将IP-H+TCP-H+requestdata整体作为高层数据送到internet上的服务器,服务器经过处理后,把返回的数据和IP、TCP报头(IP-H+TCP-H+responsedata)传送到校园网的路由器的网络层。网络层根据IP报头IP-H中的源IP地址与目的IP地址……

按这里的描述上看似乎可以在一个局域网内访问另外一个局域网内的主机,而且这里还发送MAC地址。那是因为这里有两个假设:1、局域网内每台主机都是使用公网IP,所以可以发送给其中任何一台;2、其实这里所谓的“发送请求”,是指“最多可发送的请求”,更接近于发送ARP请求,而不是一般的http请求。所以才把MAC都包含在内,其实一般的网页请求是不发送MAC的。

结论:除非校园网内的主机首先通过路由器向公网有固定IP的主机发送请求,公网IP的主机可传送给校园网的路由器,再由路由器处理才可以与校园网内的主机实现数据交流。否则若是校园网内的主机不主动发送请求,公网上的主机不可能访问到校园网内的主机。

二、中国移动网络分析(额外任务)

APN设置:
1、如果通过cmwap接入点,连接gprs上网,移动会分配给你一个10.x.x.x的IP地址(A类地址形式的专用地址,一般为大集团内部使用。只是形式上采用了标准IP地址的分类结构,与公网的全局A类地址无关,ICANN并没有给中国分配A类网络地址,移动和联通只是分别有26个和28个B类地址),用这个地址只能访问中国移动内部的wap网络。
2、如果使用cmnet接入点,同样也没有公网IP也是10.x.x.x的地址,但是移动会像电信等有线宽带接入商一样,为采用cmnet接入点接入的终端提供路由和NAT。使之可以访问互联网上的任何网站。
3、因为cmwap只能访问移动内部的网络,使用的是移动内部的网络流量,所以对移动来说几乎是没有成本的,所以cmwap价格比较低廉;而cmnet可以访问其他运营商架设的网络(internet),所以中国移动要为此支付网间结算费用,所以cmnet流量费极贵且不包月。

Proxy设置:
以上说的是接入端的APN,这属于GPRS的设置,GPRS设置一般是在智能手机自带的系统设置里即可设置,比如palm是在prefs的network里,如果GPRS的APN填的是cmwap则可以直接上wap网站,而填的是cmnet则可以直接上wap和www网站,不用其他设置,但如果要想让cmwap连接能上www网站,则还需做以下的设置。下面说的就是上网后(此时已经连接上了gprs)的上网软件(比如浏览器)的代理设置。

1、cmwap:移动在cmwap上有一个彩信网关10.0.0.172:80/10.0.0.172:8080,很多人就通过这个网关代理上互联网。不过这种wap网关有很多限制,标准的WAP网关仅仅实现了HTTP代理的功能,并未完成路由、NAT等局域网网关的功能。所以在非wap的外网(Internet)来看,只有采用http协议的网站可以识别是哪一部手机发送来的信息,而采用非HTTP协议的应用软件QQ、MSN就无法识别了,所以无法采用非http的连接形式来连接。到这里,可以确定如果没有自己架设的服务器支持,我想要的功能,诸如手机cmwap 通过telnet协议或ssh协议登录internet上的dreamhost、RDP远程登录协议登录windows、VNC协议登录VNC server都是不可能实现的。放弃使用cmwap网络远程控制电脑的念头。所谓的可用cmwap接入点远程控制的手机软件也都不可信。

附:cmwap下可正常上网的软件
(1)手机内置的浏览器:WAP网关协议
(2)Opera浏览器:HTTP代理协议(有代理设置)
(3)Java程序:WAP网关协议

2、cmnet:由于中国移动的cmnet也不像电信或者联通CDMA的掌中宽带业务,不提供动态独立公网IP,只给你分配一个路由之下的内网IP地址,然后通过NAT协议(Network   Address   Translator网络地址转换)实现内网的IP与公网的地址之间的相互转换。但显然移动路由不可能让你做映射或者DMZ,所以采用cmnet上网的电脑就像校园网内的电脑一样,不能只通过IP被internet识别,不能提供www上的web server服务(只同cmwap一样,在理论上可提供cmwap上的server服务)。(不止web server,只要是跟服务器端有关的都不行,比如一台通过cmnet上网的电脑,即便网络很快,也不可能通过设置就让宽带接入的电脑远程登录)。但由于cmnet不像cmwap一样封锁了socket等端口,在internet上的地位与在一台校园网内的电脑是一样的,所以支持的软件更多。采用非http协议的远程登录软件在cmnet的网络条件下是完全可行的。

附:只可用cmnet连接的常用软件:
(1)Google Earth Mobile(我只用过黑莓版的,速度很快)
(2)腾讯官方出品的WM下的QQ,不知道为什么S60下的QQ都可以用cmwap连接,唯独WM下的腾讯不采用。不过有一个YQQ可以代替。
(3)chatopus(palm上的pidgin,可上gtalk)
(4)PalmVNC等远程登录客户端

但因为使用cmnet登陆的手机的网络环境也像校园网登录的网络环境一样,所以若是手机不主动发送请求,公网上的主机不可能访问到cmnet网络内的手机。

结论:可把手机所在的网络和电脑所在的网络看成两个局域网,两个局域网内的电脑都必须自己发送一个请求给对方才能与对方连通,但两台电脑却没有一台可以不请求而主动接收信息。这就导致了这两个局域网内的计算机无法相互访问。所以必须通过一台具备公网IP的服务器才可以。这就是为什么QQ的远程协助可以,而不管是windows的远程桌面还是远程协助都不行的原因。QQ有服务器的支持,而系统自带的远程协助没有,虽然远程协助是先发送一个请求,但虽然发送的出去,但另一个局域网中的另一台却永远接受不到。

问题的解决方案】
根据以上的分析,只能使用一些类似QQ远程协助的软件,需要服务器端支持,并且此类软件一般是收费的(QQ这次倒是例外),以下是我列举的部分软件:
Teamviewer
VNN
TrueHost,少见的国内有服务器支持的突破内网的软件,不过已经停止了免费版本的功能
但这些远程协助的软件一般没有官方的手机客户端,更不会有Palm的。最多只有基于浏览器的,下次找找看有无基于客户端浏览器的可远程控制内网机子的软件。

参考资料:
找远程控制软件,可以在不同的局域网内使用
双方在内网,通过Internet连接,有没一款远程协助软件不用进行端口映射就可远程控制的?
在美国用时代华纳宽带,没有公网IP,如何与国内远程协助?
请教关于IP选项的问题
现在最方便的“远程控制”是不是windows自带的那个?
一个关于IP地址、ICMP、NAT、Scoket的问题。一直想不明白。分不够可以另外开帖子。
ssh 使用新法:公网(合法 ip)用户访问内网(私有 ip)服务器(http,ftp,sshd,cvs…),内网的朋友不妨一看(未看)
google:远程控制 nat
网络地址研究
继续发网络拓扑图
移动区分CmWap和CmNet流量,不可能!
cmwap进一步开放?
〔原创〕一步步教你把CMWAP变为CMNET 或者看这里

相关文章

  • 没有相关文章
  1. 2条评论

  2. John 2008-03-20 12:34

    很好!我也在寻找.希望能找到一个比较好的软件.QQ可以用.

    [回复]

  3. yu 2010-05-01 19:06

    晕 一次失败的实验也可以写那么多 sb

    [回复]

发表您的评论

您的昵称:
您的邮箱:(可选,不会被公布)
您的网站: