【Nova】nova-network网络模型之vlan网络

      因为flat和flatdhcp中所有虚拟机处于同一个虚拟网络, 所以不同租户间不能进行网络隔离。为了解决这个问题, 引入了vlan网络,这也是默认的网络模式。在vlan网络中,nova-network会为每个租户创建一个vlan和网桥,在多节点部署的情况下,vlan需要交换机能支持vlan tagging(IEEE 802.1Q)。每个租户会获取一段私有IP并且只能在对应的vlan中访问;为了让用户能访问虚拟机实例,需要创建一个特殊的VPN实例(代码中命名为cloudpipe)。在这种模式下,每个租户会获取属于自己的vlan、linux网桥和子网。

     vlan即虚拟局域网,一个vlan相当于一个2层的广播域,它能将广播控制在内部,不同vlan之间的数据通信必须通过网络层完成。传统的linux网桥只能用于构建单一的广播域,为了进行广播隔离,我们可以使用vlan这种逻辑分段技术,将一个网络划分为多个虚拟子网。802.1Q vlan是通过在以太网帧头插入4字节的vlan tag来工作的,因此多节点部署的情况下,我们需要使用支持vlan的交换机。

     支持vlan的交换机的端口有3种类型可供配置:access/trunk/hybird:

1.access端口只能加入1个vlan,它有一个缺省的vlan id,收到一个以太网帧时,先判断是否有vlan tag;如果没有则打上端口的PVID,然后进行交换转发;有则直接丢弃。发送以太网帧时,会先剥离vlan信息,然后直接发送出去。access口适合PC之间的连接

2.trunk端口可以允许多个vlan通过,它需要设置缺省的vlan id;收到一个以太网帧时,先判断是否有vlan tag;如果没有则打上端口的PVID,并进行交换转发;有则判断该端口是否允许该vlan的数据进入;如果可以则转发,不可以则丢弃。发送以太网帧时,比较端口的PVID和帧的vlan id,如果相等则剥离vlan信息后转发,不等则直接发送。我们在使用vlan网络时,可以把交换机的端口配置成trunk类型

3.hybird端口是trunk的升级版,可以允许多个vlan通过,它需要设置缺省的vlan id;收到以太网帧时,工作流程和trunk端口一致;发送以太网帧时,我们可以配置一些vlan是tag而另一部分是untag的,那么如果帧的vlan id在tag的vlan中那么直接发送;在untag的vlan中则剥离vlan信息再发送;那都不在的情况下会怎么样呢?我也不造,我也很无奈orz

     从上面我们可以看出,使用vlan网络,每次添加租户或者添加子网时,需要管理员对交换机进行适当的配置工作。

【Nova】nova-network网络模型之vlan网络_第1张图片

你可能感兴趣的:(OpenStack学习)