标签:
OpenStack Neutron是一个比较复杂的组件,如果说OpenStack安装部署过程哪一个组件最麻烦,那就肯定是网络组件Neutron了。
因为我对OpenStack网络这块也不是很熟,就把我所了解的记录一下。
典型的OpenStack网络分为管理网络、数据网络、外部网络,以下是一个图例:
外部网络:用户调用Openstack的API;虚拟机要访问外网;外网要ssh到虚拟机。
数据网络:虚拟机之间的数据传输;虚拟机连接到虚拟路由。
管理网络:各模块之间交互;Message Queue。
在安装部署方面,Neutron分成多个模块分布在3个节点上。
Controller节点
neutron-server,用于接收API请求。
Network节点
neutron-l3-agent,用于创建和管理虚拟路由、namespace、iptables。
neutron-dhcp-agent,创建和管理DHCP服务器,每个虚拟网络都有一个DHCP服务器。
neutron-openvswitch-agent,创建虚拟的L2 switch,Router和DHCP Server都会连接到二层的switch上。
Compute节点
neutron-openvswitch-agent,创建虚拟的L2的switch的,虚拟机的网卡连接到二层的switch上。
下图是一个简单的场景:1个租户,2个网络和1个路由。
分析Compute Host和Network Host上网络虚拟化的实现:
Compute Host
TAP device:KVM和Xen等hypervisor实现的虚拟网卡(eg VIF、vNIC),比如图中的vnet0。发送到TAP设备的frame会被guest OS收到。
veth pair:一对直接连接的虚拟网络接口。以太网帧发送到其中一个veth pair,另一个veth pair就会收到。
Linux Bridge:就像一个简单的交换机。
Open vSwitch:一个虚拟交换机软件,网络接口连接到openvswitch的port,port可以像物理交换机一样配置,包括VLAN配置。
Integration bridge
br-int:所有guest都连接到br-int,通过配置br-int ports可以实现网络隔离。
Physical connectivity bridge
br-eth1:提供到物理网卡eth1的连接,通过veth pair连接br-int。
VLAN translation
net01和net02各自有VLAN ID号 1 和 2,分别对应物理网络VLAN ID 101和102,openvswitch agent负责在br-int和br-eth1上配置flow rule,使其对应上。
Security groups: iptables and Linux bridges
理想情况下,TAP device直接连接到br-int,但是为了实现安全组,所以中间加了linux bridge以及其他。因为OpenStack在TAP device(比如vnet0)上实现了安全组,但是带安全组的TAP device不能直接连接到openvswitch端口。
Network Host
br-ex:和连接到外网的网卡(eth0)连接。
Open vSwitch internal ports
openvswitch internal ports使得可分配多个地址给openvswitch。
DHCP agent
DHCP agent用dnsmasq进程来提供DHCP服务。每个需要DHCP服务的网络都会有一个internal port,并且attach 一个dnsmasq进程给这个port。在之前的例子中,tapXXX对应net01_subnet01,tapWWW对应net02_subnet01。
L3 agent (routing)
上例中,qr-YYY接口对应net01_subnet01,IP地址为192.168.101.1/24。qr-ZZZ对应net02_subnet01,IP地址为192.168.102.1/24。qg-VVV的IP地址为10.64.201.254/24
。每个接口操作系统可见的,网络节点可以转发这个packets。
L3 agent用iptables实现floating IP network address translation(NAT)。
Overlapping subnets and network namespaces
有一个问题,就是如果管理网络也用了192.168.101.0/24
地址段,那么host就会区分不开。所以通过namespaces来避免冲突,这里的namespace和编程语言中的作用空间有类似的效果。
下图有三个namespace。分别是qdhcp-aaaa、qrouter-bbbb和qdhcp-cccc
标签:
原文地址:http://www.cnblogs.com/gorlf/p/4372080.html