OpenStack Neutron:网络类型示意图(local、flat、vlan、vxlan);网络产品简介(dnsmasq、floating IP、安全组、FWaaS、LBaaS)
网络基本概念(network、subnet、port)
network:一个隔离的二层广播域。Neutron 支持多种类型的 network,包括 local, flat, VLAN, VxLAN 和 GRE。
subnet:一个 IPv4 或者 IPv6 地址段。instance 的 IP 从 subnet 中分配。每个 subnet 需要定义 IP 地址的范围和掩码。
port:虚拟交换机上的一个端口。port 上定义了 MAC 地址和 IP 地址,当 instance 的虚拟网卡 VIF(Virtual Interface) 绑定到 port 时,port 会将 MAC 和 IP 分配给 VIF。
Project 1 : m Network 1 : m Subnet 1 : m Port 1 : 1 VIF m : 1 Instance
======================================================================================================
Neutorn ML2 plugin 默认使用的 mechanism driver 是 open vswitch
linux-bridge mechanism driver 支持的网络类型: local,flat,vlan,vxlan
local网络示意图:
local网络不能跨host部署,仅在部署在一台host内部。
---------------------------------------------------------------------------------------------------------------------------------------------------------------
flat网络示意图:
flat网络需要单独占用一块物理网卡。
---------------------------------------------------------------------------------------------------------------------------------------------------------------
vlan网络示意图:
vlan网络基于vlan设备。
---------------------------------------------------------------------------------------------------------------------------------------------------------------
vxlan网络示意图:
vxlan网络基于vxlan设备。
---------------------------------------------------------------------------------------------------------------------------------------------------------------
外网示意图:
外网可以是flat网络或vlan网络,因为flat/vlan网络是直接和物理网络打通的;所以租户网络和外网通过虚拟router打通,那么租户网络就可以通过外网访问到物理网络or公网。
外网其实就是特殊的flat网络或vlan网络,需要在openstack创建时,勾选“外部网络”。
外网一定程度上可以理解为非租户网络,因为外网是打通租户网络和物理网络的枢纽,外网是不会挂VM的。
---------------------------------------------------------------------------------------------------------------------------------------------------------------
网络产品:dhcp、虚拟router、floating IP、L2 Population、安全组、FWaaS、LBaaS
DHCP服务:
Neutron通过Linux Network Namespace 完成隔离,使用 dnsmasq 提供 DHCP 服务
物理router:
虚拟router:
floating IP:
1.floating IP 提供静态 NAT 功能,建立外网 IP 与 instance 租户网络 IP 的一对一映射
2.当虚拟router提供外网访问能力时,虚拟router就需要连接到外网;floating IP 是落在虚拟router连接到外网的接口上
3.相应的iptables nat配置则是落在虚拟router所在的network namespace
L2 Population:
L2 Population不是网络产品,L2 Population的作用是在 VTEP 上提供 Porxy ARP 功能,使得 VTEP 能够预先获知 VXLAN 网络的信息:
1. VM IP -- MAC 对应关系
2. VM -- VTEP 的对应关系
L2 Population保证了 VXLAN 的 Scalability。
安全组:
安全组配置落在root namespace的iptables(主要为filter表),表项匹配了linux bridge port(VM的tun接口attach到linux bridge)
安全组守护的是具体的instance:每新增一台instance,则根据安全组配置在iptables中更新相应的条目;
FWaaS:
FWaaS配置落在虚拟router的network namespac的iptables中,表项匹配了虚拟router上相应的租户网络所在的port(猜测,devstack部署的环境无法启用FWaaS功能。。。)
本质也是通过iptables实现,但是使用上更灵活;
FWaaS生效的对象是整个租户网络
FWaaS 和安全组做比较:
相同点:
1. 底层都是通过 iptables 实现。
不同点:
1. FWaaS 的 iptables 规则应用在 router 上,保护整个租户网络;安全组则应用在虚拟网卡上,保护单个 instance。
2. FWaaS 可以定义 allow 或者 deny 规则;安全组只能定义 allow 规则。
LBaaS:
通过 HAProxy 软件提供负载均衡服务。HAProxy 是一个流行的开源 load balancer。
HAProxy 是部署在network namespace中的;创建LBaaS就会创建network namespace,并attach到租户网络bridge(LBaaS和vpc slb非常相似)
open vswitch mechanism driver 支持的网络类型: local,flat,vlan,vxlan,gre
local网络示意图:
local网络不能跨host部署,仅在部署在一台host内部。
---------------------------------------------------------------------------------------------------------------------------------------------------------------
flat网络示意图:
flat网络需要单独占用一块物理网卡。
---------------------------------------------------------------------------------------------------------------------------------------------------------------
vlan网络示意图:
vlan网络基于ovs设备的vlan功能
---------------------------------------------------------------------------------------------------------------------------------------------------------------
vxlan网络示意图:
vxlan网络基于vxlan tunnel
---------------------------------------------------------------------------------------------------------------------------------------------------------------
外网示意图:
外网其实就是特殊的flat网络或vlan网络,需要在openstack创建时,勾选“外部网络”。
外网一定程度上可以理解为非租户网络,因为外网是打通租户网络和物理网络的枢纽,外网是不会挂VM的。
---------------------------------------------------------------------------------------------------------------------------------------------------------------
虚拟router: