Translate Routing-Table Entries to Wireguard AllowedIPs with Filters
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Go to file
Ruakij d0840e6171 Swap check for slightly better performance 2 years ago
build Add missing \ 2 years ago
cmd/app Add project 2 years ago
doc Add documentation 2 years ago
lib Swap check for slightly better performance 2 years ago
Dockerfile Add build scripts and dockerfile 2 years ago
README.md Add information about required capabilites for docker 2 years ago
go.mod Remove unnecessary require 2 years ago
go.sum Remove unnecessary require 2 years ago

README.md

RoutingTableToWG

Translate Routing-Table Entries to Wireguard AllowedIPs with Filters



1. Overview

1.1. Usage

The Program will listen for RoutingTable Changes and can translate the changes to a Wireguard-Interface.

It will detect the Peer to add the Route to using the Gateway from the Route-Entry.
In case routes clash or cant be added to Wireguard, Warnings will be logged.


1.1.1. Examples

  • Dynamic Routing with Routing-Protocols (e.g. OSPF)
  • Interacting with Wireguard using the familiar Tools like iproute2

1.2. Install

1.2.1. Environment

Variable Description Default
INTERFACE* Wireguard-Interface Name
FILTER_PROTOCOL Protocol to react on All
FILTER_TABLE Table to react on All

* Required


1.2.2. Docker

Depending on the needs, the Container can be run in network_mode: host to be able to access routing-tables and interfaces of the host.

Additionally the capability NET_ADMIN is required for interacting with interfaces.

docker-compose.yml
version: '3'

services:
  routingTableWGTranslator:
    image: ruakij/RoutingTableWGTranslator
    restart: unless-stopped
    network_mode: host
    cap_add:
      - NET_ADMIN
    environment:
      - INTERFACE="<wgInterfaceName or empty for wg0>"

1.2.3. Without Docker

Clone the Repository git clone <URI> and build the Program with go build cmd/app

Then you can run it with ./app


2. Behaviour

2.1. Adding Route


2.2. Deleting Route