` openstack(六) | 听云轩

openstack(六)

openstack网络类型(OVS)

local

    local网络与其他网络和节点隔离,此网络中的实例只能和同一节点上的local网络中的实例之间进行通信,主要用于单机的一个测试。

flat

    flat是没有VLAN tag的网络,flat网络中的主机实例可以跨节点和同一flat网络中的主机实例通信。宿主机中的物理网卡通过br-int网桥与flat network相连,每一个flat网络都需要占用一个物理网卡。 因此在ml2文件中创建了一个flat网络后 flat_networks=flat1,还需要将其与我们的某一个网桥所绑定bridge_mappings=flat1:br-eth1 ,通过这个网桥与我们的物理网卡通信。这时需要通过ovs-vsctl命令创建网桥和相应的设备,比如:

1
2
ovs-vsctl add-br br-eth1
ovs-vsctl add-port br-eth1 eth1

    重启所有节点的neutron服务后,查看ovs网桥情况,此时会发现在网桥br-int和br-eth1上会多了一对peer设备来指向彼此,实例的网卡连接在br-int上,物理网卡eth1连接在br-eth1上,此时两个网桥之间通过那一对peer设备来进行通信。

VLAN

    VLAN是带标签的网络,同一个VLAN中的实例可以相互通信,不同VLAN的主机需要通过三层router转发进行通信。在OVS机制下,不同VLAN instance的虚拟网卡都接到br-int上(Linux bridge则是不同的VLAN接到不同的网桥上)。在ml2文件中定义VLAN的label和VLAN号段,比如:network_vlan_ranges=default:3001:4000,然后和flat网络一样需要指定VLAN网络和物理网络的对应关系bridge_mappings=default:br-eth1。重启相关服务后,如果我们创建一个VLAN网络,那么这个时候在br-int上会连接一个tap设备,这个设备是这个VLAN的DHCP接口,br-int和br-eth1之间的通信方式和flat网络一样,通过一对peer设备去通信。

VXLAN

    vxlan网络是基于隧道技术的overlay网络,vxlan网络通过唯一的VNI标识号与其他vxlan区分,也就是说只有相同的VNI号的隧道才能进行通信,vxlan数据包会通过VNI封装成UDP包进行传输,这样将二层的包封装在三层去进行传输,能够克服VLAN和物理网络基础设置的限制。另外,vxlan之间的通信时借助于br-tun网桥进行通信。

    vxlan的封装和解封是通过VTEP(virtual tunnel endpoint)设备来进行的,每一个VTEP都有一个IP interface,并且配置得有一个IP地址,通过该interface来发送和接收vxlan的数据包。而我们的br-tun网桥其实可以分为两个部分,如图:

YVZafU.png

    上层是VTEP,下层是一个普通的VLAN bridge,所以对于host来说它有两层网络,一部分是VLAN,一部分是vxlan。

GRE

    GRE是与vxlan类似的一种overlay网络,主要区别是封住的协议不同,GRE采用的是IPIP协议进行封装。

------ 本文结束 ------
您的支持将鼓励我继续创作