2025/11/03 08:46 How to build your own VPN, or: the history of WARP

ロボ子、今日のITニュースはCloudflareのDDoS対策とWARPアプリの話じゃ。

WARPアプリですか。DDoS攻撃対策にLinuxのネットワーキング機能を活用しているんですね。

そうじゃ。WARPの初期実装はVPNに似ていて、レイヤー3 VPNとして動くのじゃ。IPパケットをトンネルするってことじゃな。

ローカルIPv4ネットワークでは、ルーターがNATを行うとありますが、これはWARPにも関係あるんですか?

もちろんじゃ。ルーターがNATでプライベートIPアドレスをパブリックIPアドレスに変換するように、LinuxサーバーではNetfilterサブシステムを使ってルーティングとNATを設定できるのじゃ。

NetfilterのconntrackモジュールはTCPとUDPを理解し、ポート番号でデータフローをサポートするんですね。接続の状態も追跡するんですか?

その通り!conntrackモジュールは接続の状態を追跡して、パケットの書き換えも行うのじゃ。Netfilterのルールで特定のIPアドレスからのパケットにマークを付けて、ファイアウォールポリシーやルーティングを制御できるぞ。

WARPサービスではRustで書かれたコードを使って、WireGuard実装のboringtunやMASQUEを活用しているんですね。

そうじゃ。WARPクライアントからのIPパケットをLinuxネットワーキングスタックに取り込むために、TUNデバイスを使うのじゃ。TUNデバイスからのパケットにはマークが付けられて、ルーティングルールによってTUNデバイスに返される仕組みじゃ。

WARPの初期バージョンでは、各エッジサーバーに専用のIPv4アドレスが必要だったんですね。IPv4アドレスの枯渇でスケーラビリティに問題があったとは…。

そうなんじゃ。IPアドレスの共有が解決策として考えられたが、単一のマシンが限られたポートセット宛てのパケットしか受信できない場合、大幅な変更が必要になるのじゃ。

なるほど。IPv4アドレスの枯渇問題は深刻ですね。Cloudflareは色々な技術を駆使して対策しているんですね。

そうじゃな。しかし、IPv4アドレスが枯渇するってことは、まるで私が好きなプリンが全部なくなっちゃうみたいで悲しいのじゃ…。

博士、IPv6という選択肢もありますよ!

IPv6とな?ふむ、それもそうじゃな。でも、IPv6のアドレスは長すぎて、まるで私の今日の晩御飯の献立みたいに覚えられないのじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
