二层网络架构创建代理----Linux bridge和open vswitch
在收到需要创建虚拟网络的请求后,在计算节点的代理会虚拟出二层数据链路层的网络结构。现如今主流的是:Linux bridge和open vswitch这两种。
一、基本网络类型介绍
这两种代理可以支持多种网络类型:local、vlan、vxlan、flat、GRE等。
flat类型网络:用户只能创建一个网络,且不能指定网段和自动获取IP地址,但是在不同虚拟机之间由于不存在vlan所以可以相互通信。
vlan类型网络:vlan顾名思义,每个用户被分配到一个vlan之中,所以用户之间可以隔离了。但是由于vlan的限制最多只能容纳4096个用户使用。
vxlan类型网络:是在vlan类型网络的基础上有增加了一个隧道技术,通过隧道技术大大增加了用户量可以容纳16M的用户,并且用户可以创建不同的网段,同时隧道技术还大大的增加了网络的安全性能。
gre类型网络:主要的特点是通用路由封装,即用一种三层的网络协议去封装另一层网络协议。也可以理解为数据包里套着包。并且大规模部署比较麻烦浪费资源。
二、相关名词解释
1.名字命名空间namespace:在传统的Linux系统中资源是全局的,如进程的id号。比如为了让很多用户在同一台物理机上使用虚拟机就需要将这些资源分配给每个用户,且互不影响,所以就产生了名字命名空间将每个用户隔离起来,用户之间即使创建了相同的IP地址依旧不会影响通信,这叫做网络重叠。
2.veth对:在二层网络架构中veth对可以理解为在现实生活中得二层物理接口,只不过这里是网络节点虚拟出来的,目的是为了连接名字命名空间和网桥。
3.网桥:这里的网桥bridge原理上其实就是一台二层的交换机。
4.tap接口:虚拟出来的逻辑接口。
三、open vswitch构建网络介绍
open vswitch简称ovs,具有多种管控功能和性能优异,是主流选择对象。其主要支持:local、flat、vlan、vxlan、gre这几种网络类型。
其主要作用是:通过支持vlan、GRE、vxlan网络类型支持网络隔离;通过qos控制网络流量和流量的监控;数据包也可以进行分析。
在ovs结构中,虚拟机网卡连接tap接口,多个tap接口会连接Linux网桥,Linux网桥再通过veth对连接ovs网桥。最终连接路由与外部通信。
ovs网桥又分为ovs集成网桥和ovs物理网桥,其作用有点类似于nat地址转换的原理。这里我会详细讲解一下两个网桥的作用。
数据包出去与外部通信:进入ovs集成网桥的数据包会打上内部网络的vlan id号,再通过中间的patch对发送到ovs物理网桥这时ovs物理网桥会根据一张vlan流量转换表装换为外部通信用的vlan。
数据包从外部进入内部虚拟环境反之,外部数据包首先通过路由进入到ovs物理网桥上时会打上外部网络的valn,通过patch对后进入到ovs集成网桥时会将外部网络vlan转换成内部网络vlan进行通信。
四、Linux bridge构建网络介绍
Linux bridge也是一种非常成熟的构建二层网络的技术。其主要是将多个网卡连接在一起形成网桥。其主要支持的网络类型有:vlan、flat、vxlan和local,不支持GRE。
其内部主要还是由:tap接口、Linux bridge、vlan接口和vxlan接口构成。
虚拟网卡连接tap接口,再与Linux bridge相连,而物理网卡会用虚拟的端口去连接网桥形成完整的二层网络拓扑。可以通过联想到单臂路由进行类比。这里的物理网卡的虚拟接口可以根据网络类型分为vlan和vxlan两种。
五、小结
neutron主键在OpenStack群集中非常复杂,所以要学好neutron需要环肥很大的精力。所以这里我把所学的做成了一幅思维导图便于理解。