Skip to content

Instantly share code, notes, and snippets.

@TakashiSasaki
Created October 30, 2024 03:20
Show Gist options
  • Save TakashiSasaki/e74bd6bbae99e634c272b505f07e0d64 to your computer and use it in GitHub Desktop.
Save TakashiSasaki/e74bd6bbae99e634c272b505f07e0d64 to your computer and use it in GitHub Desktop.
Explanation of AllowedIPs in WireGuard: 0.0.0.0/1, 128.0.0.0/1, ::/1, 8000::/1

WireGuardのAllowedIPs設定で「0.0.0.0/1128.0.0.0/1」および「::/18000::/1」を使用する意味

WireGuardは、シンプルで高速、かつ現代的なVPNプロトコルとして、ネットワークのプライバシーとセキュリティを強化するために利用されます。WireGuardの設定ファイルでの「AllowedIPs」の設定は、VPN経由で転送したいIPアドレス範囲を指定する重要な部分です。

一般的に、「AllowedIPs」に0.0.0.0/0(IPv4全体)や::/0(IPv6全体)を設定すると、全トラフィックがVPN経由でルーティングされるようになります。しかし、WireGuardの設定では、0.0.0.0/1128.0.0.0/1に分割する方法が推奨される場合があります。この記事では、この設定の理由と意味について詳しく解説します。


1. 0.0.0.0/1128.0.0.0/1とは?

0.0.0.0/1:

  • これはIPv4アドレス空間の前半を示し、0.0.0.0から127.255.255.255までの範囲をカバーします。
  • 前半の範囲を分割して定義することで、VPNトンネルを通過するIPv4のトラフィックの一部を特定します。

128.0.0.0/1:

  • こちらはIPv4アドレス空間の後半を示し、128.0.0.0から255.255.255.255までの範囲をカバーします。
  • これにより、後半のIPアドレス範囲もVPNを通るように設定できます。

この2つを設定することで、IPv4アドレス全体(0.0.0.0255.255.255.255)をカバーすることが可能になります。


2. ::/18000::/1とは?

::/1:

  • これは、IPv6アドレス空間の前半部分を表し、アドレスが0で始まる範囲、つまり::から7FFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFFまでをカバーします。

8000::/1:

  • IPv6アドレス空間の後半部分に相当し、アドレスが8で始まる範囲を示します。具体的には8000::からFFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFFまでを含みます。

これら2つの指定により、IPv6アドレス全体(::FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF)がカバーされ、すべてのIPv6トラフィックがVPN経由でルーティングされる設定となります。


3. なぜ0.0.0.0/1128.0.0.0/1を使用するのか?

AllowedIPs0.0.0.0/0(または::/0)を指定することで全トラフィックをVPNにルーティングするのが一見シンプルな方法に見えますが、いくつかの理由でこの範囲指定が使われることがあります。

  • ルーティングの互換性:

    • 一部のネットワークデバイスや古いルーター、ファイアウォールでは、0.0.0.0/0::/0の単一指定が適切に解釈されない場合があります。
    • 0.0.0.0/1128.0.0.0/1に分けることで、複数のエントリとして処理され、互換性が向上する可能性があります。
  • ルーティングテーブルの最適化:

    • 大規模なネットワーク構成や複雑なルーティング設定を持つ環境では、ルーティングテーブルが最適化されることで、パケットの送信先が適切に処理されることがあります。
  • トラフィックの管理:

    • IPアドレス範囲を分割することで、特定のトラフィックのみをVPN経由で通すといった柔軟な管理が可能になる場合があります。このテクニックを応用して、一部の範囲だけVPNを利用し、他はデフォルトゲートウェイを通過させるような設定も可能です。

まとめ

WireGuardのAllowedIPs設定において0.0.0.0/1128.0.0.0/1、および::/18000::/1を利用することで、IPv4とIPv6の全アドレス範囲をVPNトンネル経由に設定できます。この方法は、互換性やパフォーマンスの向上、ルーティングテーブルの最適化を目的としています。

WireGuard設定ではこうした範囲指定を活用することで、全トラフィックを対象とするVPN設定を信頼性高く実現することができるのです。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment