支持Neutron中的L2网关的API和实现。
项目描述
支持Neutron中L2网关的API和实现。
自由软件:Apache许可证
L2网关
该项目提出了一种Neutron API扩展,可用于表示和管理L2网关组件。最简单的说法,L2网关的目的是将两个或多个网络连接起来,使它们看起来像单个L2广播域。
初始实现
有许多使用情况可以通过L2网关API来解决。最值得注意的是,在云计算环境中,一个典型的用例是连接虚拟和物理网络。将此翻译为Neutron和OpenStack的世界,这意味着依赖于L2网关功能将Neutron逻辑(叠加)网络扩展到OpenStack领域之外的物理(服务提供商)网络。这些网络可以是,例如,可能或可能不由OpenStack管理的VLAN。
更多信息
要获取使用或修改L2GW的帮助,您可以向 OpenStack Discuss邮件列表 <mailto:openstack-discuss@lists.openstack.org> 发送电子邮件;请在主题中使用[L2-Gateway]标签。大多数人都在IRC频道#openstack-neutron上。
入门指南
要开始使用,您必须在已经运行 Neutron 服务器的 Controller 节点上安装 l2gw 插件软件。然后您需要一个新节点,我们称之为 l2gw 节点,在这里您将进行 vxlan 租户网络和物理网络之间的实际桥接。l2gw 节点可以是一个支持 OVSDB 架构的裸金属交换机,或者一个已安装 OVS 的服务器。在这个例子中,我们将使用服务器。
在这个例子中,l2gw 节点有一个 ens5 接口连接到一个物理段,以及一个管理接口,IP 地址为 10.225.0.27。
ip link set up dev ens5 apt-get update 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 # Stop OVS services started by the installer. systemctl is-active --quiet ovs-vswitchd && systemctl stop ovs-vswitchd systemctl is-active --quiet ovsdb-server && systemctl stop ovsdb-server mkdir -p /var/run/openvswitch/ 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
确保 neutron-server 以 --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-gateway 对象。我们需要提供接口名称和之前在 OVS 命令中使用的桥接名称。
l2-gateway-create --device name="myphyswitch",interface_names="ens5" openstackname
使用刚刚创建的 GATEWAY-NAME/UUID 来提供第二个命令,其中执行 VXLAN 租户网络和物理 L2 网络之间的实际桥接。
l2-gateway-connection-create <GATEWAY-NAME/UUID> <NETWORK-NAME/UUID>
现在让我们看看发生了什么。在 l2gw 节点上,您可以执行以下命令:
ovs-vsctl show vtep-ctl show
您应该看到创建了一些 VXLAN 隧道。您将看到每个托管连接到您桥接的租户网络的实例的计算节点上的 vxlan 隧道。如果此租户网络中还有一个路由器,您将找到连接到网络节点的 VXLAN 隧道。
项目详情
下载文件
下载您平台对应的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码分发
构建分发
networking-l2gw-20.0.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6ea3dd5b8413a7f8fa213badee87c961391a557a445f4d91a07ab812f9d8f5df |
|
MD5 | 7b85b245ad0228957a97119bcb6d16b9 |
|
BLAKE2b-256 | e3317836b6a7163fe7f8fccb1e62544edaafc3981270152b6774608a16c60f2e |
networking_l2gw-20.0.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fa58458847c5b26821f41febdeaa85ea035058c944163128e682d22ca2cda737 |
|
MD5 | ed524a7a78304326499a9f97dd82b4d8 |
|
BLAKE2b-256 | 2541136d6d416c6db57d805e74808af4cde835a226f39c69ab65d1edf7992336 |