一、问题
问题:Neutron中的三类节点,各自的作用是什么?
计算节点:主要负责计算服务,本身主要也以VM为主,计算节点Host中,本身存在Bridge。
网络节点:为VM提供DHCP、Router等网络服务
控制节点:主要对各种虚拟网元管理配合,起到大脑的作用。
问题:Neutron中的安全组的底层承载载体为?
答:qbr实现安全组的功能,qbr承载载体为Linux bridge,主要通过iptables来实现安全功能。br-int来作为一个综合网桥。
问题:再Neutron的实现模型中,为什么会有内外VLAN ID之分?
答:再Neutron中存在多种网络类型Local、Flat、VLAN、GRE、VXLAN、Geneve等类型,每种网络类型各有不同,再VLAN ID中需要进行VLAN ID的内外转换,主要是为了避免内部VLAN ID的冲突。
外部VID:用户(租户)视角,不关心内部实现细节
内部VID:内部视角就是再Host内部视角,物理网络视角。
二、计算节点实现模型
用户网络层:用户网络层实现VM采用哪种网络网络类型(VLAN、VXLAN、GRE等)访问外部网络,同时“用户网络层”也是对本地网络层的一个屏蔽,不管用户网络层采用什么技术(VXLAN、GRE等),本地网络永远感知一个技术:VLAN。
本地网络层:由于用户网络层实现的屏蔽,本地网络层本身只感知一种基数:VLAN。br-int的实现载体一般为OVS,负责内部转发,对上呈现tag,对下呈现utag;qbr实现载体为Linux Bridge,只负责安全。
三、Neutron网络实现模型总览
控制节点:控制节点的Neutron进程与网络节点、计算节点的各Agent进程互相配合,通信协议采用RPC,对内网络网络节点、控制节点中的虚拟网络配置管理,对外提供RESTful等服务接口。
计算节点:计算节点内各Bridge构建不同的二层网络(Local、vxlan、gre等)
- br-ethx、br-tun对外构建用户网络,对内为br-int屏蔽用户网络的各种差异,将不同类型的用户网络统统转换为VLAN网络。
- br-int再host内部为各VM建立一个本地vlan网络。
- qbr为br-int提供辅助的安全功能。
网络节点:网络节点为Neutron提供其他网络服务,如DHCP Service等。网络节点中的Router提供三层服务,跨网段的路由转发,SNAT/DNAT等功能。
本文参考:《深入理解Openstack Neutron》——李宗标