pozwole sobie dodac troche dokladniejszy opis bez wykorzystania VPN policy based routingu, korzystajac tylko z sekcji network + instalujac wireguarda
Podstawowa konfiguracja (site to site VPN + policy based routing dla 1 klienta)
z perspektywy routera 1
Zalozenia : router 1 lan = 192.168.1.0/24 ; router 2 lan = 10.1.1.0/24
1 host PBR = 192.168.1.97
konfiguracja drugiego routera jest "lustrzanym odbiciem" ponizszej konfiguracji
Instalujemy pakiety (zaleznosci zalatwiaja reszte)
opkg install luci-proto-wireguard
opkg install luci-app-wireguard
Generujemy klucze prywatne i publiczne
wg genkey | tee privatekey | wg pubkey > publickey
Tworzymy dodatkowa tablice routingu "vpn" :
cat /etc/iproute2/rt_tables
#
# reserved values
#
128 prelocal
255 local
254 main
253 default
10 vpn
0 unspec
#
# local
#
#1 inr.ruhep
Calosc konfiguracji mozemy osiagnac przez modyfikacje pliku /etc/config/network :
config interface 'wg0'
option proto 'wireguard'
option private_key 'my-private-key'
list addresses '172.16.1.1/30'
option listen_port '51820'
config wireguard_wg0
option endpoint_host 'x.x.x.x'
option endpoint_port '51820'
option public_key 'remote-public-key'
list allowed_ips '0.0.0.0/0'
# zezwalamy na ruch do wszystkich sieci
Kolejna sekcja to PBR, mozemy korzystac z /etc/config/network, albo luci-app-vpn-policy-routing
# dodajemy trasy :
# LAN po drugiej stronie tunelu
config route 'lanbehindtun'
option interface 'wg0'
option target '10.1.1.0/24'
option gateway '172.16.1.2'
# trasa domyslna dla PBR, tabela 10 = vpn :
config route 'defaultviavpntable'
option interface 'wg0'
option target '0.0.0.0/0'
option gateway '172.16.1.2'
option table '10'
# ip rule dla source routingu
config rule
option src '192.168.1.97/32'
option lookup 'vpn'
Modyfikujemy firewall :
# ruch UDP na WAN
config rule
option target 'ACCEPT'
option src 'wan'
option proto 'udp'
option dest_port '51820'
option name 'wireguard'
# nowa strefa I ogolne zasady :
config zone
option name 'wireguard'
option input 'ACCEPT'
option forward 'REJECT'
option output 'ACCEPT'
option network 'wg0'
# zezwalaj by 1 zdalny klient (PBR) wychodzil do internetu przez lacze drugiego routera
config forwarding
option dest 'wan'
option src 'wireguard'
# zezwalaj na ruch z mojego lan do wireguard (tunelu)
config forwarding
option dest 'wireguard'
option src 'lan'
# zezwalaj na ruch z tunelu do mojego lan
config forwarding
option dest 'lan'
option src 'wireguard'