Neutron 网络模型
虚拟网络:Neutron 创建虚拟网络(Network),虚拟机可以连接到这些网络。
子网(Subnet):每个虚拟网络可以有一个或多个子网,子网定义了IP地址范围、网关和DNS等信息。
端口(Port):虚拟机的虚拟网卡(vNIC)通过端口连接到虚拟网络,每个端口有一个唯一的MAC地址和IP地址。
(一) 原理
1、虚拟交换机(OVS 或 Linux Bridge)
在每个宿主机上,Neutron 使用虚拟交换机(如 Open vSwitch 或 Linux Bridge)来连接虚拟机的虚拟网卡。
2、Overlay 网络技术
如果使用的是 Self-service Network(如 VXLAN 或 GRE),Neutron 会使用 Overlay 网络技术来封装虚拟机的流量:
VXLAN:将虚拟机的二层帧封装在UDP包中,通过物理网络传输。
GRE:将虚拟机的二层帧封装在GRE隧道中,通过物理网络传输。
Geneve:类似于 VXLAN,但更灵活。
Overlay 网络的作用是
在物理网络之上创建一个虚拟的二层网络。
使虚拟机认为它们位于同一个广播域(同一网段),即使它们分布在不同的物理主机上。
3、ARP 和 MAC 地址学习
当虚拟机A想要与虚拟机B通讯时,虚拟机A会发送ARP请求,询问虚拟机B的MAC地址。
Neutron 的虚拟交换机会处理ARP请求,并返回虚拟机B的MAC地址。
虚拟机A将流量发送到虚拟机B的MAC地址,虚拟交换机会根据MAC地址表将流量转发到正确的宿主机。
4、流量转发
如果虚拟机A和虚拟机B位于同一宿主机,虚拟交换机会直接将流量转发到虚拟机B。
如果虚拟机A和虚拟机B位于不同宿主机,虚拟交换机会将流量封装(如 VXLAN)并通过物理网络发送到目标宿主机。目标宿主机的虚拟交换机解封装流量,并将其转发到虚拟机B。
(二) 总结
Neutron 创建虚拟网络,虚拟机连接到同一虚拟网络和子网。
虚拟交换机(如 OVS)负责转发虚拟机的流量。
如果虚拟机位于不同宿主机,Overlay 网络技术(如 VXLAN)会将流量封装并通过物理网络传输。
ARP 和 MAC 地址学习确保虚拟机能够正确发现彼此的地址。
安全组规则控制流量是否允许通过。