
http://specs.openstack.org/openstack/neutron-specs/specs/kilo/ml2-hierarchical-port-binding.html
步骤如下:
- 用户用Nova boot创建一个虚拟机, vm 的网络设定为VXLAN A;
- Neutron创建一个VXLAN A网络接口,并将请求发送到ML2组件;
- Neutron ML2先调用物理交换机(TOR)的Mechanism Driver进行端口绑定(port binding),将VxLAN A 绑定到物理交换机的网络接口 ;
- 物理交换机Mechanism Driver再申请一个VLAN B并通知ML2,告诉ML2当前这个VM的网络接口还需要绑定VLAN B
- 物理交换机Mechanism Driver通过Netconf接口告诉物理交换机设定VLAN B和VXLAN A的映射关系;
- ML2知道网络接口还需要绑定到对应的VLAN上,所以ML2调用OVS的Mechanism Driver,在OVS添加VLAN B,并将该VLAN配置到VM对应的接口上,
- OVS的Mechanism Driver会通过相应的API,告知位于计算节点的OpenVSwitch,OVS将对VM发出的数据包打上TAG=VLAN B 并转发到物理交换机的接口,物理交换机将带有TAG=VLAN B的数据包转换为TAG=VXLAN A的数据包;
层次化端口绑定的逻辑,一半是在Neutron ML2里面,有另一半是在物理交换机对应的Mechanism driver里面。
vxlan层次化绑定
原文:https://www.cnblogs.com/dream397/p/12316493.html