python中的alp怎么用_Python alp包_程序模块 - PyPI - Python中文网

使用Docker容器测试网络虚拟设备

这个项目是一个用于测试网络虚拟设备的python库。

正在测试的设备称为正在测试的设备或dut。

这个存储库包括脚本和模块,用于构建一个名为

兔子。Rabbit是Alpine Linux,预装了几个软件包。有这个

简单的dut允许快速测试alpy库并演示其

特征。

Rabbit设备的测试共享许多代码,因此代码组织为

图书馆。这个库名为carrot。

作者

阿列克谢·博格丹恩科

许可证

Alpy的许可证有效期为:SPDX-License-Identifier: GPL-3.0-or-later

有关详细信息,请参见复制。

网络设计

DUT与连接到其每个网络链路的容器通信。

来宾网络适配器通过TAP设备连接到主机(图1)。+-----QEMU hypervisor------+

| | +-------------+

| +-----Guest OS-----+ | | |

| | | | | docker |

| | +--------------+ | | | container |

| | | | | | | network |

| | | NIC driver | | | | namespace |

| | | | | | | |

| +------------------+ | | +-----+ |

| | | | | | | |

| | NIC hardware +---+-----------+ tap | |

| | | | | | | | |

| +--------------+ | | | +-----+ |

| | | | |

+--------------------------+ +-------------+

|

|

v

+-----------+

| |

| pcap file |

| |

+-----------+

图1。QEMU来宾和Docker容器之间的网络链接。

每个tap设备都位于其网络名称空间中。此命名空间属于

专用容器-anode。节点的目的是保留名称空间

在测试的生命周期中活着。

为了使应用程序能够与被测设备通信,应用程序是

集装箱运输。应用程序容器必须以一种特殊的方式创建:它

必须与其中一个节点共享网络命名空间。

图2显示了一个示例,其中应用程序容器app0和app1共享

具有节点容器node0的网络命名空间。应用程序容器app2

与node2共享另一个网络命名空间。

Docker支持此共享。我们要做的就是创造

带有--network=container:NODE_NAMEdocker选项的应用程序容器。

例如,如果我们想通过dut的第一个链接向它发送流量,我们创建

带有docker选项--network=container:node0的流量生成器容器。+----QEMU---+ +------shared network namespace-----+

| | | |

| | | eth0 |

| +---+ | | +---+ +-----+ +----+ +----+ |

| |NIC+-----------+tap| |node0| |app0| |app1| |

| +---+ | | +---+ +-----+ +----+ +----+ |

| | | |

| | +-----------------------------------+

| |

| |

| |

| | +------shared network namespace-----+

| | | |

| | | eth0 |

| +---+ | | +---+ +-----+ |

| |NIC+-----------+tap| |node1| |

| +---+ | | +---+ +-----+ |

| | | |

| | +-----------------------------------+

| |

| |

| |

| | +------shared network namespace-----+

| | | |

| | | eth0 |

| +---+ | | +---+ +-----+ +----+ |

| |NIC+-----------+tap| |node2| |app2| |

| +---+ | | +---+ +-----+ +----+ |

| | | |

+-----------+ +-----------------------------------+

图2。连接到DUT链接的应用程序容器。

关于gitlab容器注册表的说明

许多ci作业使用一个基于“构建docker映像”的自定义映像

舞台。图像存储在gitlab容器注册表中。

图像是从gitlab变量指定的位置提取的。默认情况下,

变量指向当前gitlab项目的注册表。

如果派生此项目,并且Gitlab容器注册表在

project,重写项目级别上的变量,以便提取图像

从其他登记处。

例如,设置IMAGE_ALPINE=registry.gitlab.com/abogdanenko/alpy/alpine。

欢迎加入QQ群-->: 979659372

推荐PyPI第三方库

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值