No description
Find a file
2024-07-30 15:20:41 +02:00
config Add dns support 2024-07-05 15:59:47 +02:00
docker fix and clean dns 2024-07-30 14:55:06 +02:00
templates fix and clean dns 2024-07-30 14:55:06 +02:00
.dockerignore Add docker 2024-07-04 14:43:27 +02:00
.gitignore first commit 2024-05-02 11:31:34 +02:00
dns.py fix 2024-07-30 15:20:41 +02:00
docker-compose.yml Better instructions 2024-07-29 09:51:43 +02:00
LICENSE Add license 2024-05-03 19:07:09 +02:00
load.py fix and clean dns 2024-07-30 14:55:06 +02:00
poetry.lock Add DNS support 2024-07-30 09:50:47 +02:00
pyproject.toml Add DNS support 2024-07-30 09:50:47 +02:00
README.md Better instructions 2024-07-29 09:51:43 +02:00

PolyculeNetwork

PolyculeNetwork is a drop-in solution for infrastructure mutualisation, when subnets to mutualize use the same ip ranges. It is based on nftables, wireguard and python.

Installation

Install dependencies:

# Debian
apt install python3-poetry wireguard nftables

Install python dependencies :

poetry install

Docker

On the host, you'll need docker and docker-compose-plugin.

Clone this repo, edit the docker-compose.yml file to suit your needs, and set config/config.toml to reflect you infrastructure.

You will need to create an empty config/dnnsmasq.conf for the first launch (it will be generated by the main container, but the file needs to exist).

Launch docker compose, get the ip address of the polyculenetwork container, and set manual routes via this ip:

ip route add <translated remote network> via <container ip>

Finally, run on the host

sysctl -w net.ipv4.ip_forward
iptables -A FORWARD -j ACCEPT

You will need to run these commands after each restart of the host machine.