QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 762|回复: 6

问一个有关网络编程方面的问题

[复制链接]
发表于 2004-3-7 08:24:09 | 显示全部楼层 |阅读模式
某个网络结构\是这样的:

LAN1[有固定ip]<---->NAT服务器-<-->LAN2[]

lan2内即使是1个网段内也被互相屏蔽

lan2内机器直接互访,能否实现?
也就是说能否通过lan1的机器获取lan2机器对应端口
使lan2内机器建立起直接互访?

不知道这个问题发这儿是否合适,呵呵
请指点一二,谢谢了 //bow
发表于 2004-3-8 19:01:48 | 显示全部楼层
首先,你说的lan2内屏蔽不知具体使用的什么措施,显然,lan2中的机器必须要能收到网络层以下的信息,即物理上相连,否则,任何一个网卡都是什么也听不到,这个问题就没任何意义了。

这样,在lan2内无法互访应该是无ARP服务。这很简单,在lan1内以一台机器模拟ARP服务就可以了。只要lan2内的机器在lan1内的ARP服务器上取得自己想要通信的另一个lan2内的主机的IP与物理地址对应关系就可以了。现在又有一个lan2内主机与lan1内主机通信的问题:你的NAT是动态映射还是静态映射?如是静态映射(包括只有IP地址的映射和IP地址、端口混合映射即PAT--Port and Address Translation),那lan2内的主机有一个固定的联系方式,记下这个联系方式在你的lan1内的某个机器内(比如XXX),你就可以从lan1内的机器访问lan2内的机器了(主动连接)。当然,NAT采用动态映射较多,这时,lan1内的机器无法对lan2内的机器发起主动连接(因lan1内的机器是固定IP,我假设地址转换发生在lan2方是合理的)。那你只有一条路可走:在lan1内的ARP模拟服务器XXX等待lan2内要通信的A、B来连接,再执行ARP功能,此时,如果A想通信,但B一直没与XXX连接,那A永远无法与B通信(当然,假如XXX有以前B送来的B的IP与物理地址对应关系表,并且B从那以后未改过,A一样可以用这个信息与B通信,假如B改过,那....在lan2上的别的机器可以伪装为B)。在A与B取得对方的IP与物理地址对应关系后,通信方式与通常的TCP/IP通信方式无异。

ARP的实现:你在lan1内机器XXX上列一个IP与物理地址对照表,每一台lan2内的机器将自己的IP与物理地址写入其中,当lan2内A要与B通信时,它在XXX中查到IP为B的物理地址为Pb时,它将自己的以太网头(假设为以太网)写为Pb再在lan2内广播,B就能收到。

由于网络的多样性,及防火墙、路由器、NAT技术的多样性,还有我的知识的局限性,希望大家交流这个问题,以提高我们大家对网络的认识。不对之处,多多包涵、指点。
回复

使用道具 举报

 楼主| 发表于 2004-3-9 09:54:51 | 显示全部楼层
似乎一个网段内的其他机器物理地址都被反馈为和网关相同
不过我用ccproxy的扫描功能能检测到同一网段内其他机器的ip地址
windows网络邻居内也能查看到其他组/计算机,只是无法访问

NAT应该是动态映射
回复

使用道具 举报

发表于 2004-3-9 10:27:34 | 显示全部楼层
请原谅我的才疏学浅,说得有不对的地方指出。
我有一点看法,不知对否。
如果物理地址都不能看到,依据我有限的所知,应该是无法在lan2内直接访问的,却又能看到IP,我个人认为和WINDOWS的网络名字服务器的实现有关(WINS),这个服务器能从DNS查询,它自身也有名字与IP对应表,从这个表就可取得IP,而并不是从ARP取得。但也一个变通之道。lan2内机器看到的物理地址都是网关的,没关系,将网卡设为混杂模式,对每一个以太网包都检测它的IP头,如果这个IP(设为B)正是自己(设为A)想要通信的IP,那你就可以发一个包,这个包的以太网头是什么无所谓,但你要将其IP头设为B,这样,B同样检测每一个以太网包并检测其IP头是否自己想要的就可以通信。
但有三个问题:交换型网络中的交换设备可以对每一个包做一些变化,代理服务器也会这样做;你还是要想办法知道要通信的对方的IP;有人可能假冒IP(加密就可解决)。
不知何种网络拓扑,由于代理,堡垒主机各种安全设备的复杂混合,你的这种情况可能有各种原因,不知我上述想法是否符合你的网络情况。

还有,我认为你的网络应该不是一个总线网,至少有一个交换设备或类似代理服务器的设备对你的网内通信进行了过滤。不知对否?
回复

使用道具 举报

 楼主| 发表于 2004-3-9 11:16:30 | 显示全部楼层
整个lan2又被划分到很多网段,差不多是个社区的样子,通过DHCP获得ip
手动设置ip是无效的.
回复

使用道具 举报

发表于 2004-3-9 11:40:31 | 显示全部楼层
我认为你可以采用VPN+P2P技术,DHCP不是问题,你可以得到IP后使用现在正在研究的P2P动态发现技术(无中心节点)。再使用VPN中的IP嵌套(你可以嵌套TCP,而不一定是IP)。当然,你要设计一个满足这些要求的软件,在lan2内各个小网段内的各个主机(你想互相通信的这些)要遵守(实际上就是你自己制定的一个协议)。还有lan2内网段主机互访是一个问题,也就是说,你总要有一种手段使用lan2内各个小网段之间能互访,而不论你用什么方法。可以考虑安全措施的不足之处加以利用,比如80端口许多设备并不默认过滤。
回复

使用道具 举报

 楼主| 发表于 2004-3-9 19:09:40 | 显示全部楼层
可以解释一下p2p动态发现技术吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-8 20:53 , Processed in 0.043853 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表