启用ML2中的本地网络(local network)配置详解

需积分: 0 0 下载量 46 浏览量 更新于2024-08-04 收藏 824KB DOCX 举报
"在OpenStack Neutron中启用ML2机制的本地网络功能" 在OpenStack的网络服务Neutron中,ML2(Multiple Mechanisms Layer 2)插件提供了一种灵活的方式来实现网络连接,允许使用多种不同的底层网络技术。本节主要关注如何在ML2插件中启用本地网络(local network),这是一种适用于隔离且不直接连接到外部网络的虚拟网络。 本地网络(local network)的主要特点是它并不与主机上的任何物理网络接口绑定,也不会关联任何VLAN标识。它主要用于创建仅限于同一宿主机内部实例间通信的网络环境。ML2插件配合linux-bridge机制会在每个本地网络上创建一个独立的桥接设备(bridge),这些实例(instance)的TAP(Tun/Tap)设备将连接到对应的桥接器上。这种方式使得相同本地网络中的实例可以相互通信,但无法与宿主机外部的网络通信,也无法与其他本地网络通信,除非有额外的路由配置。 例如,如果有两个本地网络,分别对应两个网桥brqXXXX和brqYYYY,每个VM(虚拟机)通过TAP设备连接到相应的网桥。在这种情况下,VM0和VM1可以通过brqXXXX进行通信,而VM2通过brqYYYY与VM0和VM1之间存在网络隔离,不能直接通信。 为了启用本地网络,首先需要在ML2的配置文件`/etc/neutron/plugins/ml2/ml2_conf.ini`中设置类型驱动器(type drivers)。需要将`type_drivers`参数设置为包含`local`,表示支持本地网络类型,同时可能包括其他网络类型如`flat`, `vlan`, `gre`, `vxlan`等。 ```ini type_drivers = local, flat, vlan, gre, vxlan ``` 接着,为了允许非管理员用户在他们的租户(Project)中创建默认为本地网络类型的网络,需要设置`tenant_network_types`参数为`local`: ```ini tenant_network_types = local ``` 配置完成后,管理员可以通过OpenStack命令行工具(CLI)或Web管理界面(WebGUI)创建本地网络。非管理员用户虽然也可以创建网络,但其创建的网络类型将默认为`local`,除非他们有权限指定网络类型。 创建本地网络的CLI命令示例: ```bash openstack network create --provider-network-type local my_local_network ``` 这将创建一个名为`my_local_network`的本地网络。然后,可以创建子网,分配IP地址,并将实例连接到这个网络。 启用ML2中的本地网络是在OpenStack环境中构建内部隔离网络的一种方法,适合于那些仅需内部通信而不需要外部访问的场景。正确配置ML2和linux-bridge机制,可以有效地管理和控制实例间的网络流量。