私は、自宅のネットワークの DHCP および DNS サーバーとして RaspberryPi を使用し、ネットワークへのリモート アクセスを取得するための Wireguard サーバーとしても使用しています。
私の設定は次のとおりです: 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 クライアントによって作成されます。
私が実現したいのは、Wireguard サーバーを機能させながら、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 に直接送信したいと思います。