この写真は私が作っているものの全体像を示しています。さて、今ではホームサーバーとリモートサーバーにLXC 2個、ipv4 2個を使って小さな部分を実装したいと思います。 2つのLXCコンテナに2つの異なるWireguardトンネルを使用したいと思います。 Wireguardトンネルが1つしかない場合は、簡単に修正できます。 「AllowedIPs = 0.0.0.0/0」の場合、すべての(ホストとゲスト)トラフィックはWireguardトンネルを通過します。しかし、さまざまなWireguardトンネルがある場合、これを解決する方法は何ですか?
ホームサーバー1
WireGuard設定:
[Interface]
PrivateKey = my_private_key
Address = 192.168.7.2/24
[Peer]
PublicKey = my_public_key
AllowedIPs = 0.0.0.0/0 <- ok for 1 LXC, but how to do it for 2?
Endpoint = 11.11.11.1:51194
PersistentKeepalive = 15
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 enp2s0
10.7.56.0 0.0.0.0 255.255.255.0 U 0 0 0 lxdbr0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 enp2s0
192.168.1.1 0.0.0.0 255.255.255.255 UH 100 0 0 enp2s0
192.168.7.0 0.0.0.0 255.255.255.0 U 0 0 0 wg1
リモートサーバー
/etc/wireguard/helper/add-nat-routing.sh
#!/bin/bash
IPT="/sbin/iptables"
IN_FACE="eth0"
WG_FACE="wg1"
SUB_NET="192.168.7.0/24"
WG_PORT="51194"
## IPv4 ##
$IPT -t nat -I POSTROUTING 1 -s $SUB_NET -o $IN_FACE -j MASQUERADE
$IPT -I INPUT 1 -i $WG_FACE -j ACCEPT
$IPT -I FORWARD 1 -i $IN_FACE -o $WG_FACE -j ACCEPT
$IPT -I FORWARD 1 -i $WG_FACE -o $IN_FACE -j ACCEPT
$IPT -I INPUT 1 -i $IN_FACE -p udp --dport $WG_PORT -j ACCEPT
$IPT -t nat -A PREROUTING -p tcp -d 11.11.11.1 --jump DNAT --to-destination 192.168.7.2
/etc/wireguard/wg1.conf
[Interface]
Address = 192.168.7.1/24
ListenPort = 51194
PrivateKey = private_key
PostUp = /etc/wireguard/helper/add-nat-routing.sh
[Peer]
PublicKey = public_key
AllowedIPs = 192.168.7.2/32