我一直在研究虚拟机如何使用 vNIC、vSwitch 等在互联网上进行通信。想确认几件事
对于出站流量,可以使用虚拟机的 ip/MAC 而不是主机 ip 和硬编码 NIC MAC 覆盖 pNIC 发送帧/数据包。对吗?
如果此流量到达交换机,交换机的 MAC 表将针对特定端口(主机 + VM)包含多个条目。对吗?
对于入站流量,交换机将步骤 2 中的所有流量引导到该端口。NIC 是否仅负责第 2 层处理(即,它是否仅从帧中提取 IP 数据包并将其传递给 OS?)。
像 esxi 这样的硬件管理程序被编程为查看数据包的目标 IP 并将其路由到相应的虚拟机。正确吗?
如果是这样,这意味着 esxi/host os 将接收其自身及其虚拟机的所有数据包。何时处理 IP 数据包以提取传输层数据?例如,如果我向虚拟机发送 ssh 命令,主机何时处理此数据包并确定它不是发给自己而是发给虚拟机?
答案1
- 是的。
- 是的。
- 是的。
- 可以,但默认情况下不是这样。
- 当数据包到达时,其目的地将由其内部虚拟交换机评估,以决定将其发送到哪些虚拟机或是否发送到其自己的内核。
答案2
像 esxi 这样的硬件管理程序被编程为查看数据包的目标 IP 并将其路由到相应的虚拟机。正确吗?
通常不会。虚拟机管理程序包含交换机的软件版本。每个虚拟适配器都有自己的 MAC 地址。ESXi 中的虚拟交换机将查看帧的目标 MAC,并将其简单地传递给相关客户机,就像真正的交换机一样。它不需要查看 IP 地址或数据包内容。