局域网通信问题

namewchwch 2010-08-25 11:23:57
现在又两个相同的 路由A,B,其网关都是192.168.1.1。 A是接在公网上,B和其他一些电脑D1,D2,D3接在路由A上。

在路由B上也接了一些电脑DB1,DB2。

现在路由A给D1,D2,D3分配的ip分别是 192.168.1.10 ,192.168.1.20,192.168.1.30。他们之间如果要通信的话,就可以直接使用这些ip,绑定电脑上的端口来传消息。

路由B给电脑DB1,DB2分配的ip是 192.168.1.11, 192.168.1.21。DB1,DB2之间通信 也是可以直接用这个ip。

但是 DB1 给D1通信怎么办? DB1 若是给D1的局域网ip 192.168.1.10 .D1应该是收不到的,因为路由B会认为这个ip 是路由内部的ip从而不往外发。

但是DB1 和D1 又是同处一个局域网里,理论上 不需要公网ip 也能通信啊。请问该怎么办。
...全文
196 21 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
xfjours 2010-09-02
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 namewchwch 的回复:]
引用 17 楼 xfjours 的回复:
引用 12 楼 namewchwch 的回复:

就是在考虑了p2p穿洞 才采用这个网络模型。

1,这个网络模型是可以出现的,……

我现在告诉你,如果你用的是nat那么就是B的IP。



说完整点 B路由对内的网关和对外的ip 本来就是不一样的
[/Quote]
说具体点是 B对外的IP,你知道违反了nat规则你还这样组网,事实nat外面的机器只能知道B对外的IP,所以这点是肯定的。你自己先否定了nat组了个网,然后又拿nat规则来考虑事情,这样是永远没有结果的,不在回复
namewchwch 2010-08-27
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 ljhnew 的回复:]
引用 18 楼 namewchwch 的回复:
引用 17 楼 xfjours 的回复:
引用 12 楼 namewchwch 的回复:

就是在考虑了p2p穿洞 才采用这个网络模型。

1,这个网络模型是可以出现的,……

我现在告诉你,如果你用的是nat那么就是B的IP。



说完整点 B路由对内的网关和对外的ip 本来就是不一样的


你的B路由器对内的网关和……
[/Quote]
不要说路由的原则,现在是可以出现这种现象,问能不能实现通信
ljhnew 2010-08-26
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 namewchwch 的回复:]
引用 17 楼 xfjours 的回复:
引用 12 楼 namewchwch 的回复:

就是在考虑了p2p穿洞 才采用这个网络模型。

1,这个网络模型是可以出现的,……

我现在告诉你,如果你用的是nat那么就是B的IP。



说完整点 B路由对内的网关和对外的ip 本来就是不一样的
[/Quote]

你的B路由器对内的网关和对外的IP是不同的IP,但是是同一个网段,那你符合路由和NAT原则吗?前面说的很清楚了
namewchwch 2010-08-26
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 xfjours 的回复:]
引用 12 楼 namewchwch 的回复:

就是在考虑了p2p穿洞 才采用这个网络模型。

1,这个网络模型是可以出现的,……

我现在告诉你,如果你用的是nat那么就是B的IP。
[/Quote]


说完整点 B路由对内的网关和对外的ip 本来就是不一样的
xfjours 2010-08-26
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 namewchwch 的回复:]

就是在考虑了p2p穿洞 才采用这个网络模型。

1,这个网络模型是可以出现的,……
[/Quote]
我现在告诉你,如果你用的是nat那么就是B的IP。
ljhnew 2010-08-25
  • 打赏
  • 举报
回复
如果你画一个网络图,就很清楚了。
B知道自己是A的子网,但是A不知道B上的内网地址是A的一个局域网,所以需要将B对外的一个IP地址(Internet上叫ISP)所管理的内网地址即2.x网络加入到A的一个路由选项中,这样A路由上的1.x主机向2.x主机发起通讯请求时,A路由就把这个路由传给A的路由地址,B负责传给他的内网。要不然,A是不认识2.x网段IP地址,它默认是一个外网地址。因为B的内部主机访问A的外网时,IP层的源IP被路由屏蔽了,A不记录B管理的内网地址。A只管理到与它直接连接的B的外口IP。
ljhnew 2010-08-25
  • 打赏
  • 举报
回复
这是一个组网问题,路由器A可以不调整,但是B必须调整。
1.A的路由器有一个地址,192.168.1.1;B作为A的一个子网的路由器,它的地址必须和A的不通,即不能用192.168.1.1。如果相同,那么A看到B路由器的地址和自己完全相同,那就是IP在A的管理范围发生冲突了。
2.一般情况下,需要两个不同的网段。简单的:B的路由器地址设置成192.168.2.1,B分配给B下管理的主机IP是192.168.2.x网段设备。前提条件是:掩码255.255.255.0,如果你对子网的分配比较熟悉,可以采用子网模式,把192.168.1.X划分成不同的子网,而不采用1.x和2.x网段了。但这样麻烦,涉及的问题比较多。
3.基于2的前提,在B管理的2.x网段的主机完全可以访问A的网段主机,因为2.x访问到1.x主机时,路由发现1.x是B的外网,那就把访问交给A段,而正好A段和B的Wan口相同,B就直接和1.x设备通讯,而不经过A的网关地址1.1。
4.B的主机访问外网,那么通过B的网关、A的网关就可以到外网上了。
5.A的主机要想访问B段,那么必须在A上增加路由,就是把2.x网络地址,即192.168.2.0网络地址对应的IP为B在A路由器中分配的IP,例如192.168.1.5,把这条路由关系增加到A的表中。当A上的一个主机D1访问DB1时,就通过A路由,转到B上,B负责转给db1.
namewchwch 2010-08-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 pascl001 的回复:]
不知道你接二个路由的目的,没什么别的用处直接把路由器B当交换机用就行了,只是得少一个端口使用。
[/Quote]


拜托不用你说这个
pascl001 2010-08-25
  • 打赏
  • 举报
回复
不知道你接二个路由的目的,没什么别的用处直接把路由器B当交换机用就行了,只是得少一个端口使用。
namewchlp 2010-08-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dulvtianya 的回复:]
你把路由B设成网桥啊,那样所有的都在同一个局域网里了
还有既然A是192.168.1.1了,b怎么可能还是192.168.1.1呢?????
[/Quote]


这个是对内的网关。明显是可以的。
dulvtianya 2010-08-25
  • 打赏
  • 举报
回复
你把路由B设成网桥啊,那样所有的都在同一个局域网里了
还有既然A是192.168.1.1了,b怎么可能还是192.168.1.1呢?????
eastboy0007 2010-08-25
  • 打赏
  • 举报
回复
搞不懂!
midnight2010 2010-08-25
  • 打赏
  • 举报
回复
把B改为192.168.0.1
应该就ok.
ljhnew 2010-08-25
  • 打赏
  • 举报
回复
楼主要是想彻底搞清楚这个网络问题,建议你看看TCP/IP协议详解卷一:协议篇,这本书,网上下载非常多,如果需要,可以留个Email,我给你发一份。针对路由和IP子网划分两章,研究一下。

因为这里还涉及到私有地址的通讯问题,用到了NAT技术,可以参考一下相关技术网页。Cisco有一半网络通讯教程不错,对NAT解释的非常简单易懂。而且针对现在家庭常用的路由器的原理做了案例分析。
ljhnew 2010-08-25
  • 打赏
  • 举报
回复
请问:现在按照你的设置,你的A是192.168.1.1,B也是192.168.1.1,你的DB1现在能ping通主机D1:192.168.1.10吗?你的DB1可以ping通www.163.com吗?
namewchwch 2010-08-25
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 xfjours 的回复:]
你是对路由器编程还是用C++写程序
路由器编程的话,你得设置路由,但我看你举得例子就知道你不专业。居然2个路由器的内网在一个网段。但如果你说这2个路由器不是直接相连,而是通过其他网相连那还可以。
C++编程的话,假设你的网络是对的。你得用p2p穿洞才行。
[/Quote]

就是在考虑了p2p穿洞 才采用这个网络模型。

1,这个网络模型是可以出现的,虽然在路由网段配置上不合理
2,我想知道 假设DB1 和D1连接上了(在内网里面连接,不依靠公网),D1在DB1上显示的ip 到底是什么?
xfjours 2010-08-25
  • 打赏
  • 举报
回复
你是对路由器编程还是用C++写程序
路由器编程的话,你得设置路由,但我看你举得例子就知道你不专业。居然2个路由器的内网在一个网段。但如果你说这2个路由器不是直接相连,而是通过其他网相连那还可以。
C++编程的话,假设你的网络是对的。你得用p2p穿洞才行。
namewchwch 2010-08-25
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 xuqi916 的回复:]
换个交换机
[/Quote]


这种不经过大脑的回答 就不要出现了。。。。。我问的是编程上如何实现。
xuqi916 2010-08-25
  • 打赏
  • 举报
回复
换个交换机
namewchwch 2010-08-25
  • 打赏
  • 举报
回复
没人回答哦????????????????????????
加载更多回复(1)

18,363

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧