最近有兴趣尝试旁路由,用 hyper-v 桥接无线网卡(允许操作系统共享),把虚拟机 IP 写为网关后,发现所有设备都可以访问 openwrt 配置页面,但本机以外的同 wifi 下设备不能上网。抓包发现只有目的地址为虚拟机 IP 的包进来,目的地址为外网的包都没有。
经过查证,原因是无线网卡桥接不同于有线,有线桥接时,网卡处于混杂模式,监听所有帧,于是虚拟机可以直接通过物理网卡发出去自己的 mac,网卡仍可以接收到虚拟机 mac 的帧。但是无线网卡不能使用混杂模式,而必须使用真实 mac,所以桥接无线网卡时,系统要进行 mac 地址转换,桥内虚拟机 IP 与 mac 绑定,出桥时统一使用物理无线网卡 mac,回来时根据目的 IP 再修改 mac 为虚拟机 mac 。做网关时,由于数据包的目的 IP 为外网地址,桥无法匹配虚拟机 IP,会自动丢弃这个包,导致连接超时。
如果使用 vmware,无线网卡直通虚拟机,应该是可以的。
如果有什么问题,欢迎更正。
1
Vendettar 2022-06-30 15:10:09 +08:00
请教一下,也就是说台式机 vmware 虚拟 openwrt 可以做旁路由但笔记本电脑不行?因为笔记本电脑是无线网卡?
|
2
markliu2013 2022-11-29 00:17:41 +08:00
@coolan 我也遇到这个问题了,改了网关和 DNS 后,除了本机可以上网,其他设备均无法上外网。无奈网络知识匮乏,定位不到原因。
|