저는 RaspberryPi를 홈 네트워크의 DHCP 및 DNS 서버로 사용하고 네트워크에 원격 액세스하기 위한 와이어가드 서버로 사용합니다.
내 설정은 다음과 같습니다: 192.168.1.4 - ISP 라우터 192.168.1.1 - Raspbian을 실행하는 Raspi 4
Raspberry Pi에서 다음을 실행합니다. Docker 컨테이너의 pi-hole Wireguard DNSmasq HostAPd OpenVPN 클라이언트
Raspi의 인터페이스는 다음과 같습니다: br0에는 192.168.1.1이 있고 HostAPd, DNSmasq 및 Wireguard 서버에 대해 eth0 및 wlan0을 브리지합니다. tun0은 OpenVPN 클라이언트에 의해 생성됩니다.
제가 달성하고 싶은 것은 raspi가 와이어가드 서버 기능을 유지하면서 OpenVPN 클라이언트를 통해 홈 네트워크의 인터넷 트래픽을 라우팅하는 것입니다.
지금까지 저는 다음의 스크립트로 OpenVPN을 사용했습니다.여기VPN 터널을 통해 모든 트래픽을 실행합니다. 그러나 이로 인해 Wireguard 서버가 더 이상 트래픽에 응답하지 않게 됩니다. 이는 OpenVPN이 기본적으로 모든 인터넷 트래픽의 기본 경로를 변경하기 때문이라고 가정합니다.
나의 또 다른 시도는 OpenVPN 구성에 'route-nopull' 옵션을 추가하고 다음 명령을 사용하여 가장을 활성화하는 것이었습니다.
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
iptables -A FORWARD -i tun0 -o br0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i br0 -o tun0 -j ACCEPT
그러나 해당 설정으로는 연결을 통해 트래픽을 얻을 수 없었습니다.
결국 제가 원하는 것은 다음 중 하나를 허용하는 구성입니다.
일반 게이트웨이를 통한 인바운드 트래픽을 허용하면서 OpenVPN 터널을 통한 RaspberryPi의 트래픽을 포함한 모든 아웃바운드 트래픽.
또는
RaspberryPi의 경로는 변경하지 않고 OpenVPN을 통한 개인 네트워크의 트래픽만 허용됩니다.
도움을 주셔서 감사합니다!
편집: 출력 추가
ip route show table main:
default via 172.21.2.1 dev tun0
default via 192.168.1.4 dev br0 src 192.168.1.1 metric 204
10.10.10.0/24 dev wg0 proto kernel scope link src 10.10.10.1
146.255.57.19 via 192.168.1.4 dev br0
169.254.0.0/16 dev vethcf887f2 scope link src 169.254.226.72 metric 210
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
172.18.0.0/16 dev br-743f216227c9 proto kernel scope link src 172.18.0.1
172.21.2.0/24 dev tun0 proto kernel scope link src 172.21.2.43
192.168.1.0/24 dev br0 proto dhcp scope link src 192.168.1.1 metric 204
현재 상태는 모든 네트워크 트래픽이 VPN 연결을 통해 나가는 것이므로 괜찮습니다. 이제 모든 인바운드 트래픽이 RaspberryPi로 직접 이동하도록 하고 싶습니다.