Wireguard 터널을 통해 LXC 컨테이너 트래픽을 라우팅하는 방법은 무엇입니까?

Wireguard 터널을 통해 LXC 컨테이너 트래픽을 라우팅하는 방법은 무엇입니까?

여기에 이미지 설명을 입력하세요. 이 사진은 제가 만들고 있는 것의 전체 그림을 보여줍니다. 그런데 이제는 홈서버와 원격서버에 LXC 2개, ipv4 2개를 사용하여 작은 부분을 구현하고 싶습니다. 2개의 LXC 컨테이너에 2개의 서로 다른 Wireguard 터널을 사용하고 싶습니다. Wireguard 터널이 하나만 있는 경우 수정하기 쉽습니다. "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

관련 정보