openstack两台位于不同宿主机上的虚拟机(VM)在同一网段下能够通讯的原理

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 地址学习确保虚拟机能够正确发现彼此的地址。
安全组规则控制流量是否允许通过。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

滚刀肉`

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值