You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

桥接模式下虚拟机网络通信相关技术疑问

桥接模式下虚拟机网络通信相关技术疑问

嘿,这个问题问到点子上了,都是桥接模式里容易搞混的细节,我给你慢慢拆解~

第一个问题:路由器为啥会先找你的主机再到虚拟机?

正常情况下,VirtualBox的桥接模式是让虚拟机直接成为物理网络里的“独立设备”——它有自己的IP和MAC地址,路由器会通过ARP协议直接学习到虚拟机的MAC,数据包会直接发去虚拟机,根本不需要经过你的主机。

但如果出现路由器要先找主机的情况,大概率是VirtualBox在做ARP代理:当虚拟机发送ARP请求时,你的主机替它响应,把自己的MAC地址告诉路由器,这样路由器就会把发往虚拟机的数据包先发给主机,再由主机转发给虚拟机。这种情况一般是因为你的物理网卡没开混杂模式,默认只会接收目标MAC是自己的数据包,虚拟机的数据包没法直接通过物理网卡传递,VirtualBox就只能用ARP代理的方式中转。

第二个问题:混杂模式和以太网的数据包接收问题

首先说混杂模式的作用:它能让网卡接收所有经过它的数据包,而不是只捡目标MAC是自己的那些。在桥接模式下,VirtualBox需要让物理网卡能处理发往虚拟机MAC的数据包——如果没开混杂模式,物理网卡会直接丢弃这些非自身MAC的数据包,虚拟机就收不到物理网络的流量,这时候就只能靠刚才说的ARP代理中转,没法实现真正的桥接。

至于以太网的情况:以太网是通过交换机转发流量的,交换机有自己的MAC地址表,只会把数据包精准转发到对应MAC的端口,正常情况下你的物理网卡只能收到发给自己的数据包。而Wi-Fi很多时候是广播式发送,网卡更容易抓到其他设备的流量。所以在以太网环境下,必须开启混杂模式,让物理网卡能接收所有经过这个端口的数据包,包括发往虚拟机的,这样VirtualBox的桥接才能正常工作,让虚拟机直接和物理网络通信,而不是依赖主机中转。

备注:内容来源于stack exchange,提问作者Kobra

火山引擎 最新活动