vxlan层次化绑定
http://specs.openstack.org/openstack/neutron-specs/specs/kilo/ml2-hierarchical-port-binding.html
硬件vxlan
host对不同租户的虚拟机的报文 Tag 不同的VLAN ,host连接到交换机的port设为Trunk口,这样host可以把不同VLAN Tag的网络数据送到交换机vetp。vetp根据VLAN Tag映射到不同的vxlan tag,进而封装成相应的VxLAN数据。
层次化绑定步骤如下:
用户用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里面。
硬件交换机与服务器要运行LLDP之类的协议,来获取连接关系
OpenStack层次化端口绑定在 SDN中host和交换机如何协同?
方法一、计算节点开启lldp服务,从underlay nic接口发送携带主机名的lldp报文,作为VTEP设备的交换机接收后上报控制器,控制器就记录计算节点所属的交换机端口,
当计算节点启动虚机的时候,虚机的vport中会携带主机名(计算节点的名字,也就是lldp报文中携带的主机名),控制器就知道了这个虚拟机的报文将进入交换机的哪个端口。
- 点赞
- 收藏
- 关注作者
评论(0)