在中子中支持L2网关的API和实现。

networking-l2gw的Python项目详细描述


在中子中支持L2网关的API和实现。

二级网关

这个项目提出了一个中子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.confl2gw_plugin.inil2gateway_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隧道。

参考文献:

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何从java中链接到数组的数组中删除值。jar文件?   性能记录屏幕Java磁盘速度   java Elastic APM Tomcat zip文件或JAR清单丢失   java无法在eclipse控制台上打印结果   java如何在Android中解析json对象?   java如何更改边缘根类型   java根据一些规则替换EditText中的字母   java项目反应器:是否有类似Nosideeffect finally的方法(不是sideeffect方法doFinally)   java连接Cassandra节点和spark   开源Java作业调度器:远程处理、负载平衡、故障切换、依赖DAG?   使用矢量汇编程序(Java)在Spark中设置输入和输出时出现问题   swing如何在Java中为文本字段创建右键单击菜单?   java查找最近的邻居/纬度和经度   java计算完成的数独板的行和列