mirror of
https://github.com/outbackdingo/firezone.git
synced 2026-01-27 10:18:54 +00:00
Initial version of the `firezone-connection` crate. To begin with, we only establish a connection in a LAN, i.e. no hole-punching, no STUN or TURN servers, just host candidates. As such, a lot of this PR is just scaffolding for setting up the test environment and the actual `ConnectionPool` implementation. For the curious, I've left some TODOs where I am going to attempt extending the implementation once we start dealing with STUN and TURN servers. I also extended CI to run these tests.
821 B
821 B
firezone-connection integration tests
This directory contains Docker-based integration tests for the firezone-connection crate.
Each integration test setup is a dedicated docker-compose file.
Running
To run one of these tests, use the following command:
sudo docker compose -f ./docker-compose.lan.yml up --exit-code-from dialer --abort-on-container-exit --build
This will force a re-build of the containers and exit with 0 if everything works correctly.
Design
Each file consists of at least:
- A dialer
- A listener
- A redis server
Redis acts as the signalling channel. Dialer and listener use it to exchange offers & answers as well as ICE candidates.
The various files simulate different network environments. We use nftables to simulate NATs and / or force the use of TURN servers.