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 library itself and to demonstrate its features.

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.

Authors

See CHANGELOG.md.

Licence

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.10.0.tar.gz (6.4 kB view details)

Uploaded Source

Built Distribution

alpy-0.10.0-py3-none-any.whl (20.8 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for alpy-0.10.0.tar.gz
Algorithm Hash digest
SHA256 077cb938d550f9d0a396048bc7c907398733f5c4b4c25cbe98cc8fcdfc3a28f6
MD5 d1f9f0dd2db77eab5e2155bce2821553
BLAKE2b-256 9aa34db400c9f750415375a776a56179b65c3bd8771a215fa8f301976eb2ccfe

See more details on using hashes here.

File details

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

File metadata

  • Download URL: alpy-0.10.0-py3-none-any.whl
  • Upload date:
  • Size: 20.8 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/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.3rc1

File hashes

Hashes for alpy-0.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bca61fa2fa41a0615a47290fe017aadf55e6c8cd77e3310e664447881611bfc3
MD5 e390a6cc971d6db1c7e954fe99446464
BLAKE2b-256 a34648afb02e95ae4605fb4dfeab3b08fc4d5b9069d2dfb415c4d577e8b19733

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