Skip to main content

Component for creating VPN client environments

Project description

Agent for ioppytest framework

About

Agent (~VPN client) is a component of the ioppytest framework ecosystem which creates tunnels between the IUTs, or between IUT and test system.

The following diagram described the resulting network connection between implementations:

+--------------------------------+                                             +--------------------------------+
|  +--------------------------+  |                                             |  +--------------------------+  |
|  |              |           |  |                                             |  |              |           |  |
|  |     IUT      |   ping    |  |                                             |  |     IUT      |   ping    |  |
|  |              |           |  |                                             |  |              |           |  |
|  |              |           |  | PC 1                                  PC 2  |  |              |           |  |
|  +--------------------------+  |                                             |  +--------------------------+  |
|  |          tun0            |  |                                             |  |          tun0            |  |
|  |                          |  |                                             |  |                          |  |
|  |  virtual ip  10.2.0.1    |  |                                             |  |  virtual ip  10.2.0.2    |  |
|  |  addresses:  bbbb::1     |  |                                             |  |  addresses:  bbbb::2     |  |
|  |                          |  |                                             |  |                          |  |
|  +--------------------------+  |                                             |  +--------------------------+  |
|  |          agent_1         |  | +-----------------------------------------> |  |          agent_2         |  |
|  |        (VPN client)      |  |         transport  (ip over foo)            |  |        (VPN client)      |  |
|  +--------------------------+  | <-----------------------------------------+ |  +--------------------------+  |
+--------------------------------+                                             +--------------------------------+

The agent components needs to run in the user's host. It builds a virtual interface for enabling the communication, same way openVPN does. The previous diagram show a two IUT network build with the agent, but the network can support any number agents.

Error handling

When there is a user interrupt signal (Ctrl-C) the agent should all running threads and should gracefully disconnect.

Running the agent

For running the agent you will need privileges on the machine, basically cause we need to open a virtual interface to tunnel the packets.

The command for executing it will be provided to you by the GUI or AMQP broker sys admin, it should look something like this:

sudo python -m agent connect  --url amqp://someUser:somePassword@f-interop.rennes.inria.fr/sessionXX --name agent_x

for more info

python agent.py --help
python agent.py connect --help

AMQP as IP packet transport

IP packets sent to the virtual interface will be encapsulated in AQMP messages and sent over the event bus. This messages are then forwarded to the corresponding agent. The routing between the agents is automagically hanlded by the packet router.

    +--------------------------------+                                          +--------------------------------+
    |  +--------------------------+  |                                          |  +--------------------------+  |
    |  |              |           |  |                                          |  |              |           |  |
    |  |    oneM2M    |  ping     |  |                                          |  |    oneM2M    |  ping     |  |
    |  |     IUT      |           |  |                                          |  |     IUT      |           |  |
    |  |              |           |  |  +----------------------------+          |  |              |           |  |
    |  +--------------------------+  |  |                            |          |  +--------------------------+  |
    |  |          tun0            |  |  |                            |          |  |          tun0            |  |
    |  |                          |  |  |       Packet Router        |          |  |                          |  |
    |  |  virtual ip  10.2.0.1    |  |  |    (forwards amqp messages)|          |  |  virtual ip  10.2.0.2    |  |
    |  |  addresses:  bbbb::1     |  |  |                            |          |  |  addresses:  bbbb::2     |  |
    |  |                          |  |  +----------------------------+          |  |                          |  |
    |  +--------------------------+  |                                          |  +--------------------------+  |
    |  |          agent_1         |  |              ^    +                      |  |          agent_2         |  |
    |  |        (VPN client)      |  |              |    |                      |  |        (VPN client)      |  |
    |  +--------------------------+  |              |    |                      |  +--------------------------+  |
    +--------------------------------+              |    |                      +--------------------------------+
                                                    |    |
                 +     ^                            |    |                                      ^     +
                 |     |                        1,3 |    | 2,4                                  |     |
               1 |     | 2                          |    |                                    4 |     | 3
                 |     |                            |    |                                      |     |
                 v     +                            +    v                                      +     v

 +----------------------------------------------------------------------------------------------------------------->
                                            AMQP Event Bus
 <-----------------------------------------------------------------------------------------------------------------+


AMQP Topics:
1=fromAgent.agent_1_name.ip.tun.packet.raw
2=toAgent.agent_1_name.ip.tun.packet.raw
3=fromAgent.agent_2_name.ip.tun.packet.raw
4=toAgent.agent_2_name.ip.tun.packet.raw

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

ioppytest-agent-0.2.20.tar.gz (44.7 kB view details)

Uploaded Source

Built Distribution

ioppytest_agent-0.2.20-py3-none-any.whl (52.7 kB view details)

Uploaded Python 3

File details

Details for the file ioppytest-agent-0.2.20.tar.gz.

File metadata

  • Download URL: ioppytest-agent-0.2.20.tar.gz
  • Upload date:
  • Size: 44.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.48.1 CPython/2.7.16

File hashes

Hashes for ioppytest-agent-0.2.20.tar.gz
Algorithm Hash digest
SHA256 77f2236d8f86897920da8b5ef1b6a6060a1b5118d053aa496d716705877f33dc
MD5 b55e31c4b9af0c1cb38e83e3d67dc4d6
BLAKE2b-256 162538836d8fdbdf2c503e8ed7c40e0c0fd185a048482d8a1f6c95f2cbca62c0

See more details on using hashes here.

File details

Details for the file ioppytest_agent-0.2.20-py3-none-any.whl.

File metadata

  • Download URL: ioppytest_agent-0.2.20-py3-none-any.whl
  • Upload date:
  • Size: 52.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.48.1 CPython/2.7.16

File hashes

Hashes for ioppytest_agent-0.2.20-py3-none-any.whl
Algorithm Hash digest
SHA256 78a9c2f36e9b958e32f7a253a72032c3e784f2deabb08d395198e6f674e2d073
MD5 7be5fa206972a1383450cb8d3a6eb438
BLAKE2b-256 dabcb7dadc75777989c2c325a79c0c7c02118d07d24271db4f75b9f09c285ba3

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