在中子中支持L2网关的API和实现。
networking-l2gw的Python项目详细描述
在中子中支持L2网关的API和实现。
- 免费软件:apache许可证
- 来源:https://git.openstack.org/cgit/openstack/networking-l2gw
二级网关
这个项目提出了一个中子api扩展,可以用来表示 管理二级网关组件。简单地说,二级网关是指 将两个或多个网络连接在一起,使它们看起来像一个l2 广播域。
初始实施
有许多用例可以通过二级网关api解决。 最显著的是在云计算环境中,一个典型的用例是桥接 虚拟的和物理的。把它转换成中子和露天堆 世界,这意味着依赖L2网关能力来扩展中子 逻辑(覆盖)网络到外部的物理(提供者)网络 OpenStack领域。例如,这些网络可以是 不能由OpenStack管理。
更多信息
如需有关使用或破解L2GW的帮助,您可以向 openstack discus mail list<;mailto:openstack discus@lists.openstack.org>;; 请使用主题中的[L2网关]标记。大多数人都在外面闲逛 IRC通道开放堆中子。
开始
要开始,您必须在控制器上安装l2gw插件软件 已在其中运行中子服务器的节点。那你需要一个新的 节点,我们称之为l2gw节点,在这里您可以在 vxlan租户网络和物理网络。l2gw节点可能是裸机 支持ovsdb架构的金属交换机,或安装了ovs的服务器。在 这个例子我们将使用一个服务器。
在本例中,l2gw节点有一个连接到物理 段和IP 10.225.0.27的管理接口。
ip link set up dev ens5 apt-get install openvswitch-vtep ovsdb-tool create /etc/openvswitch/vtep.db /usr/share/openvswitch/vtep.ovsschema ovsdb-tool create /etc/openvswitch/vswitch.db /usr/share/openvswitch/vswitch.ovsschema ovsdb-server --pidfile --detach --log-file --remote ptcp:6632:10.225.0.27 \ --remote punix:/var/run/openvswitch/db.sock --remote=db:hardware_vtep,Global,managers \ /etc/openvswitch/vswitch.db /etc/openvswitch/vtep.db ovs-vswitchd --log-file --detach --pidfile unix:/var/run/openvswitch/db.sock ovs-vsctl add-br myphyswitch vtep-ctl add-ps myphyswitch vtep-ctl set Physical_Switch myphyswitch tunnel_ips=10.225.0.27 ovs-vsctl add-port myphyswitch ens5 vtep-ctl add-port myphyswitch ens5 /usr/share/openvswitch/scripts/ovs-vtep \ --log-file=/var/log/openvswitch/ovs-vtep.log \ --pidfile=/var/run/openvswitch/ovs-vtep.pid \ --detach myphyswitch
此时,您的l2gw节点正在运行。
对于openstack控制平面的配置,您必须检查三个文件: neutron.conf、l2gw_plugin.ini和l2gateway_agent.ini 在控制器节点上编辑neutron.conf,并确保在service_plugins中有字符串 networking_l2gw.services.l2gateway.plugin.L2GatewayPlugin。
您可以添加:
sudo sed -ri 's/^(service_plugins.*)/\1,networking_l2gw.services.l2gateway.plugin.L2GatewayPlugin/' \ /etc/neutron/neutron.conf
确保中子服务器使用--config-file=/etc/neutron/l2gw_plugin.ini运行。 l2gw_plugin.ini文件的默认值应该是可以的。
现在,您可以使用以下命令为Neutron L2GW插件创建数据库表: neutron-db-manage upgrade heads
文件l2gateway_agent.ini用于配置neutron-l2gateway代理。 代理是在与openstack api交互时配置l2gw节点的软件。 在这里,把指针指向开关是很重要的。 ovsdb_hosts = 'ovsdb1:10.225.0.27:6632'
名称ovsdb1只是OpenStack数据库中用于标识此开关的名称。
既然已经配置了l2gw节点和openstack控制平面,我们就可以使用api服务将vxlan租户网络连接到l2gw节点的物理接口。
首先让我们在openstack中创建一个l2网关对象。我们需要给出接口名和之前在ovs命令中使用的桥的名称。
l2-gateway-create--devicename="myphyswitch",interface_names="ens5" openstackname
使用刚刚创建的<;gateway-name/uuid>;来提供第二个命令,您可以在其中执行vxlan租户网络和物理二级网络之间的实际桥接。
l2-gateway-connection-create<GATEWAY-NAME/UUID><NETWORK-NAME/UUID>
现在让我们看看发生了什么。在l2gw节点上,您可以执行以下命令:
ovs-vsctl show vtep-ctl show
您应该会看到一些vxlan隧道已经创建。您将看到一个vxlan隧道,它连接到承载 连接到您桥接的租户网络的实例。如果这个租户网络中也有路由器, 您还可以找到一个到网络节点的vxlan隧道。