记录关于 openwrt 虚拟机桥接无线网卡做旁路由,除宿主机外其他设备无法上网的原因。

2021-09-21 02:40:58 +08:00
 coolan

最近有兴趣尝试旁路由,用 hyper-v 桥接无线网卡(允许操作系统共享),把虚拟机 IP 写为网关后,发现所有设备都可以访问 openwrt 配置页面,但本机以外的同 wifi 下设备不能上网。抓包发现只有目的地址为虚拟机 IP 的包进来,目的地址为外网的包都没有。

经过查证,原因是无线网卡桥接不同于有线,有线桥接时,网卡处于混杂模式,监听所有帧,于是虚拟机可以直接通过物理网卡发出去自己的 mac,网卡仍可以接收到虚拟机 mac 的帧。但是无线网卡不能使用混杂模式,而必须使用真实 mac,所以桥接无线网卡时,系统要进行 mac 地址转换,桥内虚拟机 IP 与 mac 绑定,出桥时统一使用物理无线网卡 mac,回来时根据目的 IP 再修改 mac 为虚拟机 mac 。做网关时,由于数据包的目的 IP 为外网地址,桥无法匹配虚拟机 IP,会自动丢弃这个包,导致连接超时。

如果使用 vmware,无线网卡直通虚拟机,应该是可以的。

如果有什么问题,欢迎更正。

1726 次点击
所在节点    OpenWrt
2 条回复
Vendettar
2022-06-30 15:10:09 +08:00
请教一下,也就是说台式机 vmware 虚拟 openwrt 可以做旁路由但笔记本电脑不行?因为笔记本电脑是无线网卡?
markliu2013
2022-11-29 00:17:41 +08:00
@coolan 我也遇到这个问题了,改了网关和 DNS 后,除了本机可以上网,其他设备均无法上外网。无奈网络知识匮乏,定位不到原因。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/803126

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX