Skip to content

Ruakij/RoutingTableToWg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 Type Default
INTERFACE* Wireguard-Interface Name String
FILTER_PROTOCOL Protocol to react on Number / iproute2-name All
FILTER_TABLE Table to react on Number / iproute2-name All
PERIODIC_SYNC Reguarly sync the routing-table
Useful when the wg-interface is changed/updated without us knowing
Seconds -1

* 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:
  routingtabletowg:
    image: ruakij/routingtabletowg
    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

About

Translate Routing-Table Entries to Wireguard AllowedIPs with Filters

Resources

Stars

Watchers

Forks