在中子中支持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第三方库


热门话题
javafx在java中显示图像或形状的二维网格   java如何部署WAR文件而不是根文件。AWS Elastic Beanstalk中配置了Amazon AMI的war?   java如何在Eclipse中设置runnable jar的目标版本   Java 8流/收集器按地图分组   java ParseServer:不保存用户信息?   MySQL:java。sql。BatchUpdateException:键“PRIMARY”的重复条目“242243”   java Jersey测试框架为grizzly中的所有未知路径定义默认错误响应   java使用所有请求参数将请求从一个jsp转发到另一个jsp?   java为什么在JavaFX8中选择CheckboxTableCell时SelectedStateCallback不起作用?   期待EOF的java发现“异常”   java如何使用SeleniumWebDriver捕获弹出窗口的屏幕?   java无法从安卓手机向我的数据库发送截击post请求   java Selenium单击切换元素   java使用Spring api向服务器发送数据   继承和创建新类之间的java差异   数组io。内蒂。ByteBuf writeBytes(java.nio.ByteBuffer src)顶点化   java相对于多次选择和一次更新,删除和插入的代价有多高?   java单向一对多,父级具有复合密钥   Java Spring批处理多线程作业失败,原因是“致命:由于idleintransaction超时而终止连接”