Android Ubiquiti Bridge 网络

Android Ubiquiti Bridge 网络

我有以下设置:

Debian 机器配置如下:

iface eth0 inet static
   address 192.168.2.1
   netmask 255.255.255.0

debian 机器以 AP 模式通过透明桥接连接到 Ubiquiti Rocket 5M,ip 为 192.168.2.2 gw 为 192.168.2.1

Rocket 连接到 Ubiquiti 5M Bullet 站,IP 地址为 192.168.2.2,网关为 192.168.2.1

Rocket 通过微型 USB 以太网适配器连接到已 root 的 Android Samsung s4,并在 192.168.2.5 上运行 Cyanogenmod。

发生了以下奇怪的事情:

在 192.168.2.1 上: ping -b 192.168.2.255导致来自 192.168.2.2 和 192.168.2.3 的响应

在 192.168.2.5 上 ping -b 192.168.2.255执行 ping 会导致 192.168.2 和 .3 响应,但 .1 不会响应。但是,ping 192.168.2.2ping 192.168.2.3不会响应。只有广播 ping 有效。

1)为什么192.168.2.5只有在广播ping期间才能看到.2和.3?

2)为什么 192.168.2.1 和 192.168.2.5 都可以看到 192.168.2.2 和 192.168.2.3,但 192.168.2.1 和 192.168.2.5 却看不到对方?

附言:我已测试用 Windows 笔记本电脑替换 192.168.2.5,所有设备都可以互相看到。此外,在 Android 上设置 eth0 时,我执行了以下操作:

ifconfig eth0 192.168.2.5; route add default gw 192.168.2.1 dev eth0; netcfg eth0 up

答案1

[暂定答案,欢迎指正]

通常,在一个 IP 子网内,您会向 IP 发送消息,并且不需要网关作为其本地网关。唯一需要做出的“决定”是 ARP,即已知此 IP 位于哪个端口上/朝向哪个端口。

当您的远程 Android 客户端 ping 某个 IP 时,它会在其唯一活动接口上向网桥发送单播数据包,但网桥是“愚蠢的”,只会通过无线链路转发单播流量,而这些流量会到达路由器,而目标 mac 会丢失。路由器不会将其发回,因为这可能会造成第 2 层风暴。

然后您尝试 bcast ping,它本质上不是单播,而且看起来网桥不会盲目转发它(从拥塞的角度来看这可能是一个好主意),而是接收并响应它。您没有看到来自 .1 的响应这一事实支持了这一点。

在无线链路的远端添加一个路由器来划分广播域可能是一个好主意,通常您不希望在网络最繁忙/最慢的部分出现过多的流量突发。

相关内容