首页 > 代码库 > 为什么在openstack虚拟网络中要设置物理网卡为混杂模式promisc

为什么在openstack虚拟网络中要设置物理网卡为混杂模式promisc

L2 数据链路层通过交换机设备进行帧转发。交换机在接收到帧之后(L2 层叫帧,L3 层叫包)先解析出帧头中的 MAC 地址,再在转发表中查找是否有对应 MAC 地址的端口,有的话就从相应端口转发出去。没有,就洪泛(专业术语,即将帧转发到交换机的所有端口),每个端口上的计算机都检查帧头中的 MAC 地址是否与本机网卡的 MAC 地址一致,一致的话就接收数据帧,不一致就直接丢弃。而转发表是通过自学习自动建立的。

这里引出一个重要概念,混杂模式。默认情况下计算机只接收和本机 MAC 地址一致的数据帧,不一致就丢弃,如果要求计算机接受所有帧的话,就要设置网卡为混杂模式(ifconfig eth0 0.0.0.0 promisc up)。所以在虚拟网桥中,如果希望虚机和外部通讯,必须打开桥接到虚拟网桥中物理网卡的混杂模式特性。