背景:
ローカル(プライベート)ネットワークにWireguard VPNサーバーを設定しました。 [プライベートネットワーク仮定:192.168.1.0/24] Wireguardクライアントは同じIPネットワーク192.168.1.Xを持っています。
私のネットワークに固定ローカルIPアドレスを使用するいくつかの非Wireguard互換デバイス(IPカメラ、DVR)があります。
クエリ:
Wireguardクライアントを使用してWireguardサーバー(ローカルネットワークの外側)に接続するときは、ローカル固定IPアドレスを使用してWireguardと互換性のないデバイスにアクセスしたいと思います。 IP競合が発生しないようにしました。
ベストアンサー1
WireGuardを介してさまざまな外部ホストをLANに接続する場合は、次の3つの主なタスクを実行する必要があります。
AllowedIPs
各デバイスのWireGuard構成設定に、LANのIPブロック(または少なくとも接続する各LAN側ホストのIPアドレス)が含まれています。外部所有者- LAN側WireGuardホストでのパケット転送設定(例
sysctl -w net.ipv4.ip_forward=1
:) - LAN側WireGuardホストでパケットマスカレーディング(SNATとも呼ばれます)の設定(通常はルールを介して
iptables
実行)
完全な例は次のとおりです。
https://www.procustodibus.com/blog/2020/11/wireguard-point-to-site-config/
この例では、LANのサブネットがあるため、外部ホスト(例ではエンドポイントA)のWireGuard設定の設定192.168.200.0/24
です。AllowedIPs
AllowedIPs = 192.168.200.0/24
この例では、パケット転送と偽装は、LAN側WireGuardホスト(例ではホストβ)のWireGuard構成に次のものを追加することによって行われます。
# IP forwarding
PreUp = sysctl -w net.ipv4.ip_forward=1
# IP masquerading
PreUp = iptables -t mangle -A PREROUTING -i wg0 -j MARK --set-mark 0x30
PreUp = iptables -t nat -A POSTROUTING ! -o wg0 -m mark --mark 0x30 -j MASQUERADE
LAN 側 WireGuard ホストの WireGuard インターフェイスがwg0
動作している場合、外部ホストは LAN アドレスを介して LAN 内のすべてのホストに接続できます。例では、外部ホスト(エンドポイントA)はLANホスト(エンドポイントB)に接続できます。 )エンドポイントBのローカルアドレスを介して192.168.200.22
。