neutron的作用是实现虚拟机之间的网络通信及其管理功能,其中,虚拟机可是位于多台服务器,也可以在一台服务器上,虚拟机之间可以划分LAN,同一LAN下的虚拟机可以相互通信,不同LAN的虚拟机之间是不可见的,同一LAN的虚拟机可以位于不同的服务器。Neutron 实现了基于物理 VLAN 交换机的跨物理服务器二层虚拟网络。在同一服务器下的相同LAN虚拟机通过虚拟网桥或交换机进行通信,不同服务器之间的虚拟机通过物理交换机通信。
NAT
NAT(Network Address Transorm)网络地址转换协议,用于内网和外网之间的地址转换。
SNAT(Source Network Address Transform)源网络地址转化。当内部地址需要访问外部服务时,内部地址会主动发起链接,由路由器或者网关对内部地址做源地址转化
DNAT(Destination Network Address Transform)目的地址转化。当外部网络需要访问内部服务时,由路由器或者网关接受外部链接,然后将外部链接转化为内部链接
网络拓扑结构
在典型的网络生产环境中,一般将网络分为一下4种:
- 公共网络,即外网网络
- 管理网络,即OpenStack自身组件使用的网络
- 服务网络,即虚拟机所使用的内网网络
- 存储网络,存储专用网络,一般和管理网络同网段。
Neutron支持一下5种网络拓扑结构
- 单一平面网络是指所有租户共享一个相同的服务网络和公共网络,意味着一个租户下的虚拟机能够访问其他租户下的虚拟机,隔离性不好。
- 多平面网络也是服务网络和公共网络相同,但是可以有多个共享网络,当两个虚拟机需要通信时,虚拟机内部可以通过多网卡同时共享一个网段,这些共享网段对所有租户共享。
- 混合平面私有网络是指每个租户拥有自己的服务网络同时共享相同的公共网络。
- 通过私有网络实现运营商路由功能,是指每个租户拥有自己的服务网络,并且虚拟机可以直接通过提供商路由所提供的SNAT功能访问外部网络命名空间
- 通过私有网络实现每个租户创建自己专属的网络专区,支持命名空间,每个网络可以选择拥有自己独立的提供商路由——一般来说是虚拟路由
VLAN
VLAN 表示 Virutal LAN。一个带有 VLAN 功能的switch 能够同时处于多个 LAN 中。最简单地说,VLAN 是一种将一个交换机分成多个交换机的一种方法。比方说,你有两组机器,group A 和 B,你想配置成组 A 中的机器可以相互访问,B 中的机器也可以相互访问,但是A组中的机器不能访问B组中的机器。你可以使用两个交换机,两个组分别接到一个交换机。如果你只有一个交换机,你可以使用 VLAN 达到同样的效果。你在交换机上分配配置连接组A和B的机器的端口为 VLAN access ports。这个交换机就会只在同一个 VLAN 的端口之间转发包。
以太网端口有三种链路类型:Access、Hybrid和Trunk。
- Access类型的端口只能属于1个VLAN,一般用于连接计算机的端口。这种类型的端口允许接收没有打标签的帧,再发出去时将会被打上标签。
- Trunk类型的端口可以属于多个VLAN,可以接收和发送多个VLAN的报文,一般用于交换机之间连接的端口
- Hybrid类型的端口可以属于多个VLAN,可以接收和发送多个VLAN的报文,可以用于交换机之间连接,也可以用于连接用户的计算机。Hybrid端口和Trunk端口的不同之处在于Hybrid端口可以允许多个VLAN的报文发送时不打标签,而Trunk端口只允许缺省VLAN的报文发送时不打标签。
标签是为了方便交换机识别传输的数据属于哪个LAN,对于计算机来说,其只接受其所在的LAN的数据帧,而筛选帧的过程是由交换机完成的。由于帧所属LAN的判断是由交换机完成而非计算机,因此,用于与计算机相连的Acess中的帧不含标签,而用于交换机与交换机之间的Trunk必须包含的标签。
概念
valn | 虚拟lan,同一个物理lan下用标签实现隔离 |
---|---|
vxlan | 一套利用UDP协议作为底层传输协议的Overlay实现。一般认为作为VLan技术的延申或替代者。 |
gre | 一种通过封装来实现隧道的方式。在openstack中一般是基于L3的gre |
TAP设备 | 比如vnet0,是虚拟化技术如KVM和Xen用来实现虚拟网卡的。当一个以太网帧发送给TAP设备时,该帧会被虚拟机操作系统所接收。 |
VETH pair | veth配对设备或OVS配对端口(patch port),是一对一直相连的虚拟网络接口。在虚拟网络技术中,经常使用veth pair作为虚拟配对线缆来连接两个虚拟网桥 |