一、概述
- neutron:是为了实现网络即服务(Networking as a Service),基于SDN 网络实现虚拟化网络的一种技术 ----NaaS
- SDN:软件定义网络(Software-defined networking),是一种技术概念
- Neutron功能
- 二层交换Switching
支持多种虚拟交换机(Linux Bridge和Open vSwitch)
- 三层路由Routing
支持虚拟路由器,则虚机可划分不同网段IP来通过路由进行通信
(IP forwarding 实现路由转发、iptables实现NAT)
- 负载均衡Load Balancing
支持负载均衡能力,以Plugin的形式集成进neutron,当前默认的 Plugin是HAProxy ----LBaaS
- 防火墙 Firewalling
- (1)Security Group:放在虚机前,保护虚机(下图中蓝色部分)
- (2)Firewall as a Service:放在虚拟路由器中,限制进出网路包
----FWaaS
- VPN
虚拟专用网络,属于远程访问技术,简单的说就是利用公用网络进行加密架设成专用网络(形成隧道),从而构成‘局域网’—vpnaas
二、Neutron管理的网络资源
- 三大基础资源
- network 网络
- local网络:同节点同网络,用于本地测试
- Flat网络:跨多个节点无VLAN划分的网络
- VLAN网络:根据IEEE 802.1q协议构建的网络,用来实现网络隔离(不同VLAN网络只能通过路由进行通信)
编号:1-4096 header头部限长是12bit,212=4096
- VxLAN网络:VLAN的升级版,基于隧道技术的overlay网络
- overlay网络:与传统的物理网络不同,传统网络为了与虚机进行对接,需要网络自己进行调整;而overlay网络是在传统网络上虚拟出一个虚拟网络,物理网络不需要进行调整
- VNI:类似于VLAN中的编号,区分VxLAN网络
header头部限长为24bit,224=16000000
- GRE网络:也是属于一种overlay网络
- GRE:封装成IP包进行传输,OVS支持GRE
- VxLAN:封装VNI成UDP包进行传输,Linux Bridge目前只支持VxLAN
Network必须属于某个project,project中可创建多个network
- subnet 地址段
- subnet是一个ip的地址段,每个subnet需要定义IP的范围和掩码,虚机的IP从subnet中分配
- subnet与network是多对1的关系。一个subnet只能属于某个network;一个network可以有多个subnet,这些subnet可以是不同的ip段,但是子网地址不能重复
- port 端口
- 虚拟交换机上的一个端口,当虚机开机运行,就会将虚机的虚拟网卡VIF绑定到port,由dnsmasq分配IP到port上,port会将MAC和IP分配给VIF(因此neutron网络不需要ARP协议)
- Port和subnet是多对1关系,一个port必须属于某个subnet,一个subnet可有多个port
- 高级资源
- Routing
- Firewall
- Load balance
- neutron架构
- Neutron-server:提供网络API,接收请求并调用Plugin处理请求
- Neutron agents:安装在计算节点上,处理Plugin请求,调用LB/OVS处理请求
- Neutron plugins:接收neutron-server发来的请求,并调用计算节点的agents处理请求
- Core plugin:负责基础网络的实现(network、subnet、port)
- Service plugin:负责高级网络功能(routing、firewall、
load balance)
- Network provider:Linux Bridge /OVS或者其他支持neutron的交换机
- LB实现core plugin
- OVS实现service plugin
- Database:存放network、subnet、port、router等信息
- 搭建方案
- 控制节点+计算节点
控制节点:neutron server 、core plugin-agent、service plugin-agent
计算节点:core plugin-agent
此方式的弊端:所有计算节点的流量都要经过控制节点,因此控制节点的流量压力比较大
- 控制节点+网络节点+计算节点
控制节点:neutron server
网络节点:core plugin-agent 、service plugin-agent
计算节点:core plugin-agent
- neutron的分层结构
Core plugin:在数据库中维护network、subnet、port的状态,并负责调用相应的agent
Service plugin:在数据库中维护router、load balance、security group等资源的状态,并负责调用相应的agent
注:大二层网络
产生背景:虚拟机的动态迁移要保证业务不中断,IP地址不变,运行状态不变,因此虚机的迁移只能在二层中进行,为了提高网络的冗余性,采用了设备的冗余和链路冗余。但是会产生广播风暴,采用STP技术来解决,但是STP的性能限制,通常不超过50个网络设备,限制了迁移的范围。为了实现VM大范围跨地域的迁移,诞生了大二层
大二层的分类:
网络设备虚拟化技术(各厂商的私有技术)
TRILL/SPB等路由化二层转发技术(将三层路由的转发机制引入二层)
VxLAN和NVGRE等Overlay技术(采用隧道封装技术)
Overlay技术:将源主机发出的原始数据包(二层报文)进行二次封装后在现有网络中进行透明传输,到达目的地后再进行解封装,再转发给目的主机,从而实现主机之间的二层通信