Propojení dvou sítí v Bridge modu pomocí WireGuard VPN je užitečným způsobem, jak vytvořit transparentní spojení mezi síťmi A a B prostřednictvím společného serveru. Tímto způsobem mohou klienti ve sítí A komunikovat přímo s klienty ve síti B, jako by byly ve stejné lokální síti. V tomto článku se podíváme na teorii tohoto scénáře a poskytneme praktický příklad konfigurace pro Linuxový server.
Teorie
V této konfiguraci máme Linuxový server s dvěma rozhraními: jedno pro síť A a druhé pro síť B. WireGuard je nakonfigurován na serveru jako VPN server a vytvoří tunelové rozhraní pro každou sít. Následně je vytvořen most mezi těmito tunelovými rozhraními, což umožňuje propojení sítí A a B.
Konfigurace síťových rozhraní
Síť A:
- IP adresa koncového bodu: 192.168.10.1/24
- IPv6 adresa koncového bodu: fd00:db80:0:10::1/64
- Rozsah klientů: 192.168.10.0/24
- IPv6 rozsah klientů: fd00:db80:0:10::/64
Síť B:
- IP adresa koncového bodu: 192.168.20.1/24
- IPv6 adresa koncového bodu: fd00:db80:0:20::1/64
- Rozsah klientů: 192.168.20.0/24
- IPv6 rozsah klientů: fd00:db80:0:20::/64
Server:
- IP adresa síťového rozhraní pro síť A: 192.168.222.1/24
- IPv6 adresa síťového rozhraní pro síť A: fd00:db80:0:222::1/64
- IP adresa síťového rozhraní pro síť B: 192.168.222.2/24
- IPv6 adresa síťového rozhraní pro síť B: fd00:db80:0:222::2/64
Konfigurace WireGuard
Na serveru je nakonfigurován WireGuard s dvěma peery, jeden pro síť A a druhý pro síť B. Každý peer má svůj privátní a veřejný klíč, který je sdílen s příslušnými koncovými body sítí A a B.
Konfigurace bridge
Na serveru je vytvořen bridge, který spojuje tunelová rozhraní pro síť A a síť B. Tímto způsobem je umožněno přenášet jak IPv4, tak IPv6 sítě mezi oběma sítěmi.
Praktický příklad konfigurace
- Instalace WireGuard: Nejprve je třeba nainstalovat WireGuard balíček na Linuxový server. Příkladem může být instalace pomocí nástroje
apt
na Ubuntu:sudo apt install wireguard
. - Generování klíčů: Na serveru vygenerujte privátní a veřejný klíč pro server a peerů sítě A a B pomocí příkazu
wg genkey
awg pubkey
. - Konfigurace serveru: Vytvořte konfigurační soubor
/etc/wireguard/wg0.conf
pro server s následujícím obsahem:
[Interface]
PrivateKey = <privátní klíč serveru>
Address = 192.168.222.1/24, fd00:db80:0:222::1/64
ListenPort = <port serveru>
[Peer]
PublicKey = <veřejný klíč peeru sítě A>
AllowedIPs = 192.168.10.0/24, fd00:db80:0:10::/64
[Peer]
PublicKey = <veřejný klíč peeru sítě B>
AllowedIPs = 192.168.20.0/24, fd00:db80:0:20::/64
- Konfigurace peeru sítě A: Vytvořte konfigurační soubor
/etc/wireguard/wg0.conf
pro peer síťe A s následujícím obsahem:
[Interface]
PrivateKey = <privátní klíč peeru sítě A>
Address = 192.168.10.1/24, fd00:db80:0:10::1/64
[Peer]
PublicKey = <veřejný klíč serveru>
Endpoint = <veřejná IP adresa serveru>:<port serveru>
AllowedIPs = 192.168.10.0/24, fd00:db80:0:10::/64
- Konfigurace peeru sítě B: Vytvořte konfigurační soubor
/etc/wireguard/wg0.conf
pro peer síťe B s následujícím obsahem:
[Interface]
PrivateKey = <privátní klíč peeru sítě B>
Address = 192.168.20.1/24, fd00:db80:0:20::1/64
[Peer]
PublicKey = <veřejný klíč serveru>
Endpoint = <veřejná IP adresa serveru>:<port serveru>
AllowedIPs = 192.168.20.0/24, fd00:db80:0:20::/64
- Konfigurace bridge: Vytvořte konfigurační soubor
/etc/network/interfaces.d/br0
pro bridge s nás
ledujícím obsahem:
auto br0
iface br0 inet static
address 192.168.222.2
netmask 255.255.255.0
bridge_ports eth0 wg0
bridge_stp off
bridge_fd 0
iface br0 inet6 static
address fd00:db80:0:222::2
netmask 64
gateway fe80::1
- Restartování sítě: Restartujte síťové rozhraní na serveru příkazem
sudo systemctl restart networking
. - Spuštění WireGuard: Spusťte WireGuard na serveru a obou peerech sítě A a B příkazem
sudo wg-quick up wg0
.
Po dokončení těchto kroků by měly být sítě A a B propojeny v Bridge modu prostřednictvím WireGuard VPN na Linuxovém serveru. Klienti v síti A a B by měli být schopni komunikovat přímo mezi sebou jak pomocí IPv4, tak pomocí IPv6.