サイト間vpnのルーティングが10.0.0.1ネットワークから192.168.1.1/24ネットワークへ機能しません

こんにちは、ITの同僚の皆さん、

状況について

私には2つの場所があります:

  • 自宅
  • コロケーションにて

自宅のESXiホストにはWireGuardを搭載したUbuntuサーバVMを作成し、コロケーションに接続しています。また、もう一つのESXiホストにUbuntuサーバとWireGuardを配置し、VPNサーバとして機能させています。

コロケーションのVPNサーバは、コロケーションのDHCPサーバとしても動作します:

ens34はパブリックIPを持ち、
ens35は内部IP、10.0.0.1です。
wg0はWireGuard NICです。

wg0.confファイルの設定

[Interface]
PrivateKey = HIDED
Address = 10.0.0.1/24
ListenPort = 51820
[Peer]
PublicKey = HIDED
AllowedIPs = 10.0.0.2/24
PersistentKeepalive = 25

IPルート

default via パブリックIP HIDED dev ens34 proto static
10.0.0.0/24 dev wg0 proto kernel scope link src 10.0.0.1
パブリックIP HIDED/29 dev ens34 proto kernel scope link src パブリックIP HIDED
192.168.1.0/24 dev ens35 proto kernel scope link src 192.168.1.1

自宅のVPNクライアント:

ens34は内部IP、10.0.0.2です。
wg0はWireGuard NICです。

wg0.confファイルの設定

[Interface]
PrivateKey = HIDED
Address = 10.0.0.2/24
[Peer]
PublicKey = HIDED
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = パブリックIP HIDED:51820
PersistentKeepalive = 25

この2つの接続は動作しています。さらに、もう一つのVPNのゲートウェイ設定を変更した場合でも、自宅のESXiホストのVPNクライアントはインターネットに接続でき続けます。ただし、ゲートウェイのIPを存在しないものに変更すると、当然ながら接続できなくなります。路由はきちんと機能していると確信しています。

現在、コロケーションのESXiホストにあるWindowsサーバ(IP:192.168.1.100)に接続したいのですが、pingを送り合っても動作しません。VPNクライアントからもVPNサーバからもです。これが解決すべき最後のピースのようです。理想的には、コロケーションのESXiホストを自宅のサーバのように利用し、さまざまなネットワークをシミュレートできるようにしたいです(たとえば、Windowsドメインを設定し、自宅のコンピュータでそれを使うなど)。

私はVPNの経験が初めてで、知識もあまりありません。多くの情報はYouTubeやインターネットの他の情報源によるものです。

誰か助けていただき、192.168.1.0/24も到達可能にルーティングできる方法を教えてください?また、AllowedIPsに10.0.0.2/24も追加しようと試みましたが、WireGuardを起動すると「RTNETLINK answers: File exists.」というエラーが出て停止しています。現在、行き詰まっています。何かアドバイスをいただけると幸いです!

もし何かをリンクさせ始める場合、192.168.0.xや192.168.1.x、10.0.0.xなどの一般的な範囲は避けてください。これらは他のネットワークと干渉することがよくあります。

ネットワークをあまり一般的でない範囲に再割り当てしてから、再度試してください。

VPNホストでIPフォワーディングを有効にしましたか?

sysctl net.ipv4.ip_forward=1

すでにsysctlでip転送を有効にしており、iptables/nftables/ufwルールで転送を妨げていない場合は、Windowsサーバでも次のルートを追加して、10.0.0.2ネットワークへの経路を知らせる必要があります:

route add 10.0.0.0 MASK 255.255.255.0 192.168.1.x

XはWireguardサーバのIPです。これを行わないと、Windowsマシンはデフォルトゲートウェイで10.0.0.0/24ネットワークを探そうとしますが、当然ルーティングされません。

例えば、私の場合は自宅のPCはWireguardクライアントではありませんが、自宅サーバはVPSのWireguardクライアントです。そこで、Windowsマシンに次のルートを追加しました:

IPv4ルート表
===========================================================================
アクティブルート:
ネットワークアドレス          マスク   ゲートウェイアドレス       インターフェース   コスト
          0.0.0.0          0.0.0.0    192.168.100.1   192.168.100.38     25
       10.11.12.0    255.255.255.0    192.168.100.2   192.168.100.38     26
        127.0.0.0        255.0.0.0      なし                  127.0.0.1    331
        127.0.0.1  255.255.255.255      なし                  127.0.0.1    331

この設定を有効にしたい場合は、wg0.confAllowedIPs部分に192.168.100.0/24を含める必要がありました。あなたの場合は、クライアントが0.0.0.0/0に設定されているので、通常は不要です。

これで解決するはずです。