Chinaunix

标题: 求助:一个网段访问另一个网段问题 [打印本页]

作者: jhkwei    时间: 2012-03-29 13:03
标题: 求助:一个网段访问另一个网段问题
一个网段是:192.168.10.0/24
另一个网段:192.168.1.0/24
有一个机子PC1上有两个网口分别联上面两个网段:
eth0:192.168.1.0 ,IP0:192.168.1.88 ;
eth1:192.168.10.0,IP1:192.168.10.88;
PC1开通路由转发功能
在192.168.10.0/24网段中有PC102:192.168.10.2,PC103:192.168.10.3,。。。等几台机子;
每台机子上都有简单的web服务器;
在PC1上也有web服务器,上面有几个链接分别指向PC102,PC103,。。。
现在我想在192.168.1.0这个网段的PC机上访问PC1的主页;先我想的几种方法如下:
通过NAT,把192.168.1.0段的几个IP直接映射到192.168.10.0这个段的几个IP上,
可以又不想直接访问192.168.10.0中PC,上面相当与直接访问;

又想通过DNS,如:
192.168.1.88/a==>192.168.10.2
192.168.1.88/b==>192.168.10.3

如访问:192.168.1.88/a,就会把相关请求发给192.168.10.2,并响应;就象代理,而不能直接访问192.168.10.2;
这样能实现吗,如果能应该怎么做, 或者有什么更好的方法;




作者: marsaber    时间: 2012-03-29 14:35
192.168.1.0的PC:
如果是Windows:route add 192.168.10.0 mask 255.255.255.0 192.168.1.88
如果是Linux:route add -net 192.168.10.0/24 gw 192.168.1.88
作者: jhkwei    时间: 2012-03-29 18:27
回复 2# marsaber
最开始也是用这一种方法,我在用这种方法遇到了一个问题:

还有一个路由:192.168.1.1联外网;
也不可能去改变这些这个网段的机子的网关,它的默认网关就是192.168.1.1,而不会指向我PC1:192.168.1.88




   
作者: dbsrv    时间: 2012-03-29 18:42
1.1是网关不影响你1.x的其他主机加路由
1.x的主机上相当于是两条路由:
0.0.0.0/0 via 192.168.1.1
192.168.10.0/24 via 192.168.1.88

192.168.1.88/a是什么意思?
作者: jhkwei    时间: 2012-03-29 19:24
本帖最后由 jhkwei 于 2012-03-29 19:25 编辑

回复 4# dbsrv
192.168.1.88/a
这个是网址,http://192.168.1.88/a
这个问题我同事用硬件去解决了,每一次只访问一台192.168.10.0段的一台机子,每次访问前发一个命令,告诉硬件要连哪一台机,硬件就把192.168.1.88这个IP与被访问192.168.10.0段中一个IP建立直接通道。也就是把目标MAC替换成192.168.10.0段中的一个IP的MAC地址;


   
作者: marsaber    时间: 2012-03-29 20:46
回复 3# jhkwei

这是策略路由,不会影响默认路由的。
作者: jhkwei    时间: 2012-03-30 00:14
回复 6# marsaber


    问题是我们没有权力去添加这些东西,而那些普通的用户,要他们去添加一条路由 也不是很靠谱;
其实我还考虑过,同网段的转发;可是有一些东西会被改来改去,感觉不是很稳定。

IP_W="192.168.1.2 192.168.1.3 192.168.1.4 "
IP_L="192.168.1.202 192.168.1.203 192.168.1.204 192.168.1.205"
IF_W="eth0"
IF_L="eth1"
NETMASK="255.255.255.0"


for each ip in IP_L
do
route add -host $ip dev $IF_L
arp -i $IF_W -Ds $ip $IF_W pub
done

for each ip in IP_W
do
route add -host $ip dev $IF_W
arp -i $IF_L -Ds $ip $IF_L pub
done


作者: grantheiren    时间: 2012-04-03 18:55
我最近遇到类似的问题
我想用socket做一个tcp代理软件 此软件运行在一个有两个网卡的pc上 linux系统
我应该如何获得客户端访问的目的地址呢?
客户端如何设置,代理服务器软件上如何做?
作者: SMEWL    时间: 2012-04-04 09:21
方案一:在PC1上做NAT,包括目的地址转换和源地址转换;
方案二:在1网段和10网段都需要加路由;
方案三:在PC1上做WEB代理(squid)。
作者: marsaber    时间: 2012-04-04 09:24
回复 9# SMEWL

方案一:在PC1上做NAT,包括目的地址转换和源地址转换;
Q:既然是方案一,估计跟方案二是独立的吧?
PC1又不是192.168.1.0/24和192.168.10.0/24的网关,不策略路由,数据包怎么走?

方案三:在PC1上做WEB代理(squid)。
Q:这个我没有做过,有个疑问:代理的服务是不是有局限性?
作者: lcnyg    时间: 2012-04-08 23:28
不清楚你的网络结构,网络解决方案用三层设备就可以做到。
作者: SMEWL    时间: 2012-08-13 15:14
回复 10# marsaber


方案一:
步骤1、在1上网段的PC上添加路由。WINDOWS系统:route add 192.168.10 mask 255.255.255.0 192.168.1.88;Linux系统:route add -net 192.168.10.0/24 gw 192.168.1.88
步骤2、在PC1加添加一条NAT的规则:iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d 192.168.10.0/24 -j SNAT --to 192.168.10.88
步骤3、在PC上可以直接访问各10网段服务器的各服务端口

方案二:
在10网段的每台主机上添加到1网段的路由指向192.168.10.88;在1网段的每台主机上添加到10网段的路由指向192.168.1.88

方案三:
请直接GOOGLE有很多案例的。

每个方案都是独立的。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2