BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #7168同步于 2009/12/28
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖

[算是已解决吧+总结]两个ap下挂pc如何互相连同(下挂PC在同一网

michealyao
2009/12/28镜像同步21 回复
[要求]: pc1能够ping通pc3(即ping 192.168.1.106通);pc3也能够ping通pc(即ping 192.168.1.104通) [描述]: 1. 两个开发板分有线和无线部分,两个开发板的无线部分都是跑的ethernet convert模式; 2. 开发板1的有线部分的ip是:192.168.1.21,无线部分的ip是:192.168.200.21;开发板2的有线部分的ip 是:192.168.1.8,无线部分的ip是:192.168.200.8;开发板1下挂pc1的ip地址是: 192.168.1.104(静态ip,网关设为192.168.1.21,连接开发板1的有线部分);开发板2下挂pc3的ip地址是: 192.168.1.106((静态ip,网关设为192.168.1.8,连接开发板2的有线部分) 3. 现在两块开发板的无线部分能够互相ping通,即开发板1: ping 192.168.200.8能通,开发板2: ping 192.168.200.21也能通;pc1能够ping通开发板2的无线部分(即在pc1下ping 192.168.200.8能通);pc3能够ping通开发板1的无线部分(即在pc3下ping 192.168.200.21能通); 4. 但是,开发板1ping不同开发板2的有线部分(ping 192.168.1.8);反过来开发板2也ping不通开发板1的有线部分(ping 192.168.1.21);pc1 ping不通开发板2的有线部分(ping 192.168.1.8); pc3 ping不通开发板1的有线部分(ping 192.168.1.21);当然pc1和pc3互相都ping不通 5.brctl addif br0 ra1后,两个开发板的有线部分可以互相ping通了。但是此时开发板1还是ping不同pc3,反过来开发板2也ping不同pc1,看了此时的路由信息和brctl show的信息 --------------------------------------- Destination Gateway Genmask Flags Metric Ref Use Iface 255.255.255.255 0.0.0.0 255.255.255.255 UH 0 0 0 br0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 br0 192.168.201.0 0.0.0.0 255.255.255.0 U 0 0 0 ra1 192.168.200.0 0.0.0.0 255.255.255.0 U 0 0 0 ra1 --------------------------------------- #brctl show 的命令显示如下: --------------------------------------- bridge name bridge id STP enabled interfaces br0 8000.000e8e208235 no eth2 ra1 --------------------------------------- 6. 怀疑路由192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 br0 有问题,开发板1里增加路由route add -net 192.168.1.106 netmask 255.255.255.255 gw 192.168.200.21 dev ra1,开发板1ping 192.168.1.106(pc3)还是不同 7. 补充:尝试两块开发板用网线直接连起来,PC1和PC3可以互相ping通。 各位能否帮忙分析下,或者给点建议,麻烦了! ps:这个问题搞了好久了,最近一直被它绊着了,在网络技术版问过了,没有得到解决。 [接近要求的解决方法]: 两块开发板的路由一样,如下: --------------------------------------- Destination Gateway Genmask Flags Metric Ref Use Iface 255.255.255.255 0.0.0.0 255.255.255.255 UH 0 0 0 br0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 br0 192.168.201.0 0.0.0.0 255.255.255.0 U 0 0 0 ra1 192.168.200.0 0.0.0.0 255.255.255.0 U 0 0 0 ra1 --------------------------------------- pc1的路由表如下: --------------------------------------- 192.168.1.0 * 255.255.255.0 U 0 0 0 eth0 192.168.200.0 192.168.1.21 255.255.255.0 UG 0 0 0 eth0 default 192.168.1.21 0.0.0.0 UG 0 0 0 eth0 --------------------------------------- 注:192.168.200.0这条路由和默认网关是我自己加的 pc3的路由表如下: --------------------------------------- 192.168.1.0 * 255.255.255.0 U 0 0 0 eth0 192.168.200.0 192.168.1.8 255.255.255.0 UG 0 0 0 eth0 default 192.168.1.8 0.0.0.0 UG 0 0 0 eth0 --------------------------------------- 注:192.168.200.0这条路由和默认网关是我自己加的 [总结]:虽然之前对通信的知识和一些基本概念都不知道,但是在试图解决问题的过程中,还是收获颇多,主要有以下几点: 1. 会看路由表(说起来惭愧,之前不知道怎么看路由表),会修改路由; 2. 掌握linux下如何划分子网;(有个ppt,见linux划分子网的方法.ppt,19楼) 3. 由这个问题引发,看了《计算机网络》这本书,通过网络理解很多通信的基本概念; 4. 通过在论坛上求助,大家给了很多非常好的思路,在这里谢谢了!但是呢,不要因此就产生依赖性,问题的最终解决还是要靠自己,其实很简单,就是授人以鱼和授人以渔的道理。因为只有自己在解决了问题后,以后类似的问题才知道如何解决,有一套自己的方法论,而且在试图解决的过程中还有其他意想不到的收获。 [遗留的问题]: 1. 软件的本身br0的实现有问题,因为无线部分ra1桥接到br0后,有网线相连的网口的指示灯不停的闪烁; 2. 即使删掉无线部分的路由,ping对方AP的无线部分也可以通;
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
michealyao机器人#1 · 2009/12/28
自己顶一个
hobby机器人#2 · 2009/12/28
你的这个命令“brctl addif br0 ra1”是将br0和ra1桥接起来是吗? 试试设置gateway?把PC1和PC2的默认网关都设置为AP1的IP 记得我们实验室有人也弄过类似的,不过都是有线连接
michealyao机器人#3 · 2009/12/28
你的这个命令“brctl addif br0 ra1”是将br0和ra1桥接起来是吗? 是的 试试设置gateway?把PC1和PC2的默认网关都设置为AP1的IP 试过了,不可以,现在主要问题要是开发板不能ping通另一块开发板下的PC,要是可以的话差不多就成功了 记得我们实验室有人也弄过类似的,不过都是有线连接 有线的,我试过了,不用改任何配置,完全可以
michealyao机器人#4 · 2009/12/28
会不会是这样,ping走的是icmp协议,我怀疑是只有去的路没有回来的路: 比如说:我在开发板1(192.168.1.21)ping 192.168.1.106,数据包是能到106这个pc的,只是回不去。 xp下或者linux下有没有办法或者工具可以看ping 某个ip,到底走到哪里了。 【 在 hobby 的大作中提到: 】 : 你的这个命令“brctl addif br0 ra1”是将br0和ra1桥接起来是吗? : 试试设置gateway?把PC1和PC2的默认网关都设置为AP1的IP : 记得我们实验室有人也弄过类似的,不过都是有线连接
ssailing机器人#5 · 2009/12/28
【 在 michealyao 的大作中提到: 】 : 会不会是这样,ping走的是icmp协议,我怀疑是只有去的路没有回来的路: : 比如说:我在开发板1(192.168.1.21)ping 192.168.1.106,数据包是能到106这个pc的,只是回不去。 : xp下或者linux下有没有办法或者工具可以看ping 某个ip,到底走到哪里了。 : ................... AP1 或者AP2就是开发板吧? PC1、PC2和AP1有线连接是通过hub或者交换机吧? 建议有线网段用etheral抓包 无线网段用wireshark抓包 同时在PC1用tracert或者traceroute之类的命令跟踪路由,看看包通过有线发送到AP1后数据包的流向
ssailing机器人#6 · 2009/12/28
另外 netstat -r 把每个开发板及PCx上的路由表贴上来看看
michealyao机器人#7 · 2009/12/29
AP1 或者AP2就是开发板吧? 是的 PC1、PC2和AP1有线连接是通过hub或者交换机吧? 不是呢,每个开发板有5个ethernet口,有线部分可以看成一个路由器的 建议有线网段用etheral抓包 好的
michealyao机器人#8 · 2009/12/29
两块开发板的路由一样,如下: --------------------------------------- Destination Gateway Genmask Flags Metric Ref Use Iface 255.255.255.255 0.0.0.0 255.255.255.255 UH 0 0 0 br0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 br0 192.168.201.0 0.0.0.0 255.255.255.0 U 0 0 0 ra1 192.168.200.0 0.0.0.0 255.255.255.0 U 0 0 0 ra1 --------------------------------------- pc1的路由表如下: --------------------------------------- 192.168.1.0 * 255.255.255.0 U 0 0 0 eth0 192.168.200.0 192.168.1.21 255.255.255.0 UG 0 0 0 eth0 default 192.168.1.21 0.0.0.0 UG 0 0 0 eth0 --------------------------------------- 注:192.168.200.0和默认网关是我自己加的 pc3的路由表如下: --------------------------------------- 192.168.1.0 * 255.255.255.0 U 0 0 0 eth0 192.168.200.0 192.168.1.8 255.255.255.0 UG 0 0 0 eth0 default 192.168.1.8 0.0.0.0 UG 0 0 0 eth0 --------------------------------------- 注:192.168.200.0和默认网关是我自己加的 【 在 ssailing 的大作中提到: 】 : 另外 : netstat -r 把每个开发板及PCx上的路由表贴上来看看
hobby机器人#9 · 2009/12/29
如果是pc的话,可以抓包 常用的抓包软件有sniffer和wireshark,开发板的话,大概是没工具看了 不过你如果愿意折腾的话,可以写个raw socket的程序专收icmp的包嘛~ 【 在 michealyao (吾爱雨寒) 的大作中提到: 】 : 会不会是这样,ping走的是icmp协议,我怀疑是只有去的路没有回来的路: : 比如说:我在开发板1(192.168.1.21)ping 192.168.1.106,数据包是能到106这个pc的,只是回不去。 : xp下或者linux下有没有办法或者工具可以看ping 某个ip,到底走到哪里了。 : ...................