Networking 桥接适配器模式下的NIC行为

Networking 桥接适配器模式下的NIC行为,networking,linux-kernel,network-programming,virtual-machine,linux-device-driver,Networking,Linux Kernel,Network Programming,Virtual Machine,Linux Device Driver,我一直认为,网卡有唯一的MAC地址,如果传入的数据包与MAC地址匹配,它就会将数据包取出并发送到内核。 最近,当我安装了VMbox(主机-Ubuntu,来宾操作系统-Ubuntu)并用“网桥适配器”模式配置了网络选项(MAC是随机选择的)时,VMbox就像一台独立的机器。我的意思是VM box操作系统有自己的MAC地址和公共IP。 我已经观察到,从vmbox通过有线发送的数据包具有虚拟MAC&对于传入的数据包也是如此 1) NIC是否允许发送MAC id与物理MAC id不同的网络数据包?对于传

我一直认为,网卡有唯一的MAC地址,如果传入的数据包与MAC地址匹配,它就会将数据包取出并发送到内核。 最近,当我安装了VMbox(主机-Ubuntu,来宾操作系统-Ubuntu)并用“网桥适配器”模式配置了网络选项(MAC是随机选择的)时,VMbox就像一台独立的机器。我的意思是VM box操作系统有自己的MAC地址和公共IP。 我已经观察到,从vmbox通过有线发送的数据包具有虚拟MAC&对于传入的数据包也是如此

1) NIC是否允许发送MAC id与物理MAC id不同的网络数据包?对于传入的数据包也是一样,在MAC与物理MAC id不匹配的情况下提升数据包可以吗?(据我所知,这仅在混杂模式下才可能实现)

2) 这不是违反安全规定吗?通过在多台机器上创建多个虚拟机实例来分配更多的Mac电脑,从而使互联网泛滥如何

3) 如果随机选择MAC id,则MAC id可能与其他网络设备匹配,这是如何寻址的

谢谢,

Gopinath.

1)常规NIC在第1层上运行,操作系统(以及相应的内核空间或用户空间驱动程序)负责提供有效的以太网帧,使用存储在网卡内存中(供参考)的与供应商相关的MAC地址(如果需要)。帧是来自主机操作系统还是来自来宾操作系统(通过hypervisor中的虚拟交换机)无关紧要。NFV和智能NIC的情况略有不同,但差别不大

虚拟化的关键在于,您不应该区分在虚拟服务器上运行操作系统与在主机旁边的独立计算机上运行操作系统的区别(从系统内部或外部查看)

2) 不,安全不会因为那件事变得更糟。如前一点所述,如果将物理主机放在另一个主机旁边,情况将类似。从安全性的角度来看,使用伪造源MAC向本地网络发送数据包比实例化相同数量的VM更容易

3) 冲突影响本地网络的方式与普通主机相同。这种可能性总是存在的,但概率非常低,可以从中选择6*8-1位的随机地址。我只见过一次这样的冲突,这只是因为MAC是手动设置的,而不是随机选择的。

“通过在多台机器上创建多个VM实例来分配更多MAC,从而使internet泛滥如何?”MAC地址是第二层标头中的第二层地址,路由器会将其剥离并丢弃。MAC地址仅在具有MAC地址的主机本地LAN上有效或可见。