openstack vlan网络模式底层通信原理分析

来源:互联网 发布:淘宝前500名半价怎么抢 编辑:程序博客网 时间:2024/05/21 17:16
在nova vlan network模式下,每个计算节点上都存在着多个vlan的虚拟机,那么在具体的一个计算节点上,vlan是如何创建和工作的呢?
首先强调一些概念:
  • 单独一个vlan模拟了一个常规的交换以太网,每个以太网即为一个独立的广播域
  • linux下虚拟出来的bridge设备即可以实现一个交换以太网
  • 当多台交换机级联时,vlan通过vid来识别,该id插入标准的以太网帧中去,称作tag
  • 不同vlan之间通信需要三层参与
  • 在QEMU/KVM的网桥模式中,采用TAP和TUN来实现虚拟机的网络设备,TAP是仿真数据链路层设备的,TUN是仿真网络层设备的

linux vlan的创建过程:
1. 在em3这块物理网卡上创建vlan, 即em3承载vlan521的数据帧,vlan的流量最终通过em3网卡发出,这里em3就可以理解成为trunk口,汇聚各个vlan的流量,而vlan521就负责为接收到的数据帧打上521的tag。
ip link add link em3 name vlan521 type  vlan id 521
ip link set vlan521 up


2. 为vlan创建bridge:
brctl addbr br521
brctl setfd br521 0
brctl stp br521 on
ip link set br521 address $MAC
ip link set br521 up
brctl addif br521 vlan521
ip addr add $IP dev br521

3. 将某个虚拟机的虚拟TAP设备vnet0加入vlan521中,也就是将vnet0桥接到br521上,这里的vnet0就可以理解为vlan521的access口
brctl addif br521 vnet0

  
基于vlan进行通信的过程:
vlan间通信:
跨vlan进行通信时必须要通过三层路由进行转发,因此需要一个IP地址作为虚拟机的网关,在openstack中,每个vlan下虚拟机的网关被设置成了所在计算节点该vlan所绑定的网桥的ip地址,上面例子中vlan521下虚拟机的网关即为br521的地址
vlan内通信:
同一个计算节点同一个vlan内部的通信在网桥内既可以完成
不同计算节点同一个vlan内部需要进入汇聚口通过二层链路到达其它计算节点,并根据tag把数据帧传送给对应vlan的bridge
0 0
原创粉丝点击