Skip to main content

Library for testing network virtual appliances using Docker

Project description

Alpy

Test network virtual appliance using Docker containers

This project is a Python library for testing network virtual appliances.

The appliance being tested is referred to as a device under test or DUT.

This repository includes scripts and modules to build a simple appliance called Rabbit. Rabbit is Alpine Linux with a few packages pre-installed. Having this simple DUT allows to quickly test the alpy library and to demonstrate its features.

The tests for the Rabbit device share a lot of code so the code is organized as a library. The library is called carrot.

Network design

The DUT communicates with containers attached to each of its network links.

Guest network adapters are connected to the host via tap devices.

Each tap device lives in its network namespace. This namespace belongs to a dedicated container - a node. The node's purpose is to keep the namespace alive during the lifetime of a test.

For an application to be able to communicate with the DUT the application is containerized. The application container must be created in a special way: it must share network namespace with one of the nodes.

This sharing is supported by Docker. All we have to do is to create the application container with the --network=container:NODE_NAME Docker option. For example, if we want to send traffic to the DUT via its first link, we create a traffic generator container with Docker option --network=container:node0.

Author

Alexey Bogdanenko

License

Alpy is licensed under:

SPDX-License-Identifier: GPL-3.0-or-later

See COPYING for more details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

alpy-0.12.0.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

alpy-0.12.0-py3-none-any.whl (22.3 kB view details)

Uploaded Python 3

File details

Details for the file alpy-0.12.0.tar.gz.

File metadata

  • Download URL: alpy-0.12.0.tar.gz
  • Upload date:
  • Size: 8.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.3

File hashes

Hashes for alpy-0.12.0.tar.gz
Algorithm Hash digest
SHA256 a6f7e70b09730cd7471b10de581476f173e4af96fa6a6dcb26b82facaa2b0f4d
MD5 ff15d6084616e5c9381f01e4774ad744
BLAKE2b-256 d0d0e0cbd0e3cc3c89127c67ba5b9a092d7f0536330457f3b95a5b6b40126916

See more details on using hashes here.

File details

Details for the file alpy-0.12.0-py3-none-any.whl.

File metadata

  • Download URL: alpy-0.12.0-py3-none-any.whl
  • Upload date:
  • Size: 22.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.3

File hashes

Hashes for alpy-0.12.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5848511d82df243235ddf7f374aba86ae81e3327d5b80204561568d75b4b7422
MD5 7095ec712734b9da38da38c4908cf2e6
BLAKE2b-256 47453eca25cb6c9228291b82ec236f4c45990745867165a2d60118e94ff61a12

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page