Skip to content

openstack_if_promisc

遇见王斌 edited this page Dec 3, 2017 · 5 revisions

openstack provider 物理网卡为混杂模式 promisc

虚拟机上安装 openstack 需要设置物理网卡为混杂模式

如果你选择在虚拟机内安装,请确保你的hypervisor提供了在public网络接口上禁用MAC地址过滤的方法。即将此网卡设置为混杂模式

混杂模式

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

这里引出一个重要概念,混杂模式。默认情况下计算机只接收和本机 MAC 地址一致的数据帧,不一致就丢弃,如果要求计算机接受所有帧的话,就要设置网卡为混杂模式(ifconfig eth0 0.0.0.0 promisc up)。

所以在虚拟网桥中,如果希望虚机和外部通讯,必须打开桥接到虚拟网桥中物理网卡的混杂模式特性。

网卡工作模式有4种,分别是:

  • 广播(Broadcast)模式
  • 多播(Multicast)模式
  • 单播模式(Unicast)
  • 混杂模式(Promiscuous)。

在混杂模式下的网卡能够接收一切通过它的数据,而不管该数据目的地址是否是它。如果通过程序将网卡的工作模式设置为 “混杂模式”,那么网卡将接受所有流经它的数据帧,当网卡处于这种"混杂"方式时,该网卡具备"广播地址",它对所有遇到的每一个数据帧都产生一个硬件中断以便提醒操作系统处理流经该物理媒体上的每一个报文包。