サイト間接続
ベータCloudflare WARPコネクタは、基盤となるネットワークルーティングインフラストラクチャに変更を加えることなく、サイト間、双方向、メッシュネットワーキング接続を可能にするソフトウェアです。WARPコネクタは、プライベートネットワークとCloudflareの間に安全なレイヤー3接続を確立し、次のことを可能にします:
- 2つ以上のプライベートネットワークを相互接続する。
- プリンタやIP電話など、外部ソフトウェアを実行できないIoTデバイスを接続する。
- VoIPやSIPトラフィックなど、サーバーから開始されたトラフィックをフィルタリングおよびログ記録する。
- リクエストの送信元IPに基づいてゼロトラストセキュリティポリシーを適用する。

図に示すように、WARPコネクタはプライベートネットワーク内のサブネットのルーターとして機能し、Cloudflareを通じてトラフィックをオンランプおよびオフランプします。サブネット内のすべてのデバイスはCloudflareに接続された任意のサービスにアクセスでき、Cloudflareに接続されたすべてのデバイスはサブネット内の任意のサービスにアクセスできます。各サブネットは指定されたLinuxマシン(通常はデフォルトゲートウェイルーター)でWARPコネクタを実行しますが、ネットワーク上の他のデバイスはソフトウェアをインストールする必要はありません。
このガイドでは、例えば10.0.0.0/24と192.168.1.0/24の2つの独立したサブネットを接続する方法を説明します。
- 各サブネットにLinuxホスト 1
- ファイアウォールがWARP IPアドレス、ポート、およびドメインを介した入出力トラフィックを許可していることを確認します。
新しいサービストークンを作成し、そのクライアントIDとクライアントシークレットをコピーします。WARPコネクタは、このサービストークンを使用してゼロトラスト組織に認証します。
次に、WARPコネクタが認証できるようにデバイス登録ルールを作成します:
-
ゼロトラスト ↗に移動し、設定 > WARPクライアントを選択します。
-
デバイス登録カードで、管理を選択します。
-
ルールを追加を選択します。
-
ルールに名前を付けます。
-
ルールアクションとして、_サービス認証_を選択します。
-
次のフィールドを設定します:
セレクタ 値 サービストークン <SERVICE-TOKEN-NAME> -
保存を選択します。
ゼロトラスト組織内のすべてのWARPコネクタおよびWARPクライアントデバイスは、デフォルトで同じローカルIPアドレスを持ちます。さまざまなWARPデバイス間でトラフィックをルーティングするには、Cloudflareに各デバイスに一意のCGNAT IPを割り当てることを許可する必要があります。
-
ゼロトラスト ↗に移動し、設定 > ネットワークを選択します。
-
プロキシを有効にします。
-
WARPからWARPへを有効にします。これにより、CloudflareがCGNAT IPスペースへのトラフィックをルーティングできるようになります。
-
次に、設定 > WARPクライアントに移動します。
-
ローカルインターフェイスIPをオーバーライドを有効にします。
-
スプリットトンネルの設定を確認し、CGNAT IPスペース(
100.96.0.0/12)がWARPを介してルーティングされていることを確認します。例えば、除外モードを使用している場合は、リストから
100.64.0.0/10を削除し、100.64.0.0/11と100.112.0.0/12を再追加します。
各サブネットは、Linuxホスト上で独自のWARPコネクタを実行する必要があります。ルーターにインストールするのが最も簡単な設定ですが、ルーターにアクセスできない場合は、サブネット内の他の任意のマシンを選択できます。
この例では、サブネット10.0.0.0/24のWARPコネクタを作成し、10.0.0.1にインストールします。次に、サブネット192.168.1.0/24のために2番目のWARPコネクタを作成し、192.168.1.97にインストールします。
-
ゼロトラスト ↗に移動し、ネットワーク > トンネルを選択します。
-
トンネルを作成を選択します。
-
コネクタタイプとしてWARPを選択します。次へを選択します。
-
前提条件のリストが表示されます。確認を選択して続行します。
-
トンネルに任意の名前を付けます(例えば、
Subnet-10.0.0.0/24)と選択し、トンネルを保存します。 -
ホストマシンのオペレーティングシステムを選択します。
-
コマンドをターミナルウィンドウにコピー&ペーストし、コマンドを実行します。WARPコネクタソフトウェアがインストールされましたが、まだCloudflareに接続されていません。
-
WARPコネクタをゼロトラスト組織に認証するには:
- 任意のテキストエディタを使用して、
/var/lib/cloudflare-warpにmdm.xmlファイルを作成します:
Terminal window cd /var/lib/cloudflare-warpsudo vim mdm.xml- ファイルに次のテキストを追加します。チーム名、サービストークンのクライアントIDとクライアントシークレット、ダッシュボードに表示されるWARPコネクタトークン値を入力してください。このファイルを保存すると、WARPは自動的に提供された資格情報で登録されます。
<dict><key>organization</key><string>myteam</string><key>auth_client_id</key><string>b33d5a65a6e801cd875scefff5908457f29.access</string><key>auth_client_secret</key><string>cdb5fa2721018c39cfaf8ec7fca9b5f62860ff5c584a89121241c6d0c83878124591cce23</string><key>warp_connector_token</key><string>fVTLilTWgMiF3TMxTIMM3nMU2NsixOYTTDHW1IamOMyORL0Y0jUcMWAoZDZhVhLVdn2pTDhy0VFRWZdE22rQCFNN6jQUoOx0eIV0ehcj5RyTZl5PYRwU25wMMi0kDGUS2XZn5W0eJS3mZXS9DkUTJatMNiMZDtNb1TmtmMptENJ20WY0NmdYmIBLoVhtToFichIjtiMnTZIMMOYOGZmpATzzEm2MjhnC6tWMHwNwFGhoIN==</string></dict>- 登録を確認します:
Terminal window warp-cli accountアカウントタイプ: チームデバイスID: f174e90a-fafe-4643-bbbc-4a0ed4fc8415公開鍵: 4w5uugfh0q03nrmcn95ltfzeghfzuhl75o7pruyd0h7z9ar9x6doxwq50aszar5kdアカウントID: 699d98642c564d2e855e9661899b7252組織: myteam - 任意のテキストエディタを使用して、
登録が行われない場合のトラブルシューティング
登録が行われなかった場合は、次のトラブルシューティング戦略を試してください:
mdm.xmlが正しくフォーマットされ、/var/lib/cloudflare-warpに保存されていることを確認します。- _サービス認証_アクション(_許可_ではない)を持つデバイス登録ルールがあることを確認します。
- WARP systemdサービスを再起動します:
Terminal window sudo systemctl restart warp-svc.service - 古い登録をクリアし、WARPに再登録をトリガーします:
Terminal window sudo warp-cli delete - 登録が失敗している理由についての情報を得るために、WARPデーモンログを確認します。
- WARPがCloudflareに接続されていることを確認します:
warp-cli statusステータス更新: 接続済み成功接続のトラブルシューティング
WARPが切断されている場合は、次のトラブルシューティング戦略を試してください:
-
warp-cli connectを実行します。 -
プライベートネットワークがインターネットトラフィックを制限するファイアウォールを使用している場合は、WARPポートとIPを許可していることを確認します。
-
接続が失敗している理由についての情報を得るために、WARPデーモンログを確認します。
- 次へを選択します。
- CIDRに、このWARPコネクタを介してルーティングしたいプライベートIPv4アドレス範囲(例えば、
10.0.0.0/24)を入力します。WARPコネクタは現在、IPv6ルートをサポートしていません。
-
トンネルを保存を選択します。
-
スプリットトンネルの設定で、CIDRがWARPトンネルを介してルーティングされていることを確認します。これを行う方法については、WARPを介してプライベートネットワークIPをルーティングするを参照してください。
10.0.0.0/24のWARPコネクタは、Cloudflareに接続されました。flowchart LR subgraph subnet1[サブネット 10.0.0.0/24] router1["WARPコネクタを実行しているデバイス 10.0.0.1"] end router1<-->C((Cloudflare)) -
サブネット
192.168.1.0/24に追加のWARPコネクタをインストールするために、これらの手順を繰り返します。サービストークンを再利用できますが、新しいトンネルとMDMファイルを作成する必要があります。flowchart LR subgraph subnet1[サブネット 10.0.0.0/24] router1["WARPコネクタ #1を実行しているデバイス 10.0.0.1"] end subgraph subnet2[サブネット 192.168.1.0/24] router2["WARPコネクタ #2を実行しているデバイス 192.168.1.97"] end router1<-->C((Cloudflare))<-->router2
WARPコネクタをインストールしたマシンで次のコマンドを実行します。各サブネットのホストマシンを構成する必要があります。
-
IP転送を有効にします:
Terminal window sudo sysctl -w net.ipv4.ip_forward=1再起動後に設定を保存する
Terminal window echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-warp-svc.confsudo sysctl -p /etc/sysctl.d/99-warp-svc.conf
-
WARPの仮想インターフェイスは、最大転送単位(MTU) ↗が1280バイトであり、標準のイーサネットMTUは1500バイトです。1280バイトを超えるパケットがドロップされないように、ホストマシンの最大セグメントサイズ(MSS) ↗を制限して、受信ペイロードがWARPのMTU未満になるようにします:
Terminal window sudo iptables -t mangle -A FORWARD -i CloudflareWARP -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtusudo iptables -t mangle -A FORWARD -o CloudflareWARP -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu再起動後に設定を保存する
iptableルールをファイルに書き込むbashスクリプトを作成します:
Terminal window echo '#!/bin/bash# ルールを定義しますRULES=("-A FORWARD -i CloudflareWARP -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu""-A FORWARD -o CloudflareWARP -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu")# ルールを適用しますfor rule in "${RULES[@]}"; doiptables -t mangle $ruledone# ルールを保存しますiptables-save > /etc/iptables/rules.v4' | sudo tee /usr/local/bin/apply_iptables_rules.sh- スクリプトを実行します:
Terminal window sudo chmod +x /usr/local/bin/apply_iptables_rules.shsudo /usr/local/bin/apply_iptables_rules.sh- 起動時にルールを復元するsystemdサービスを作成します:
Terminal window echo '[Unit]Description=起動時にiptablesルールをロード[Service]Type=oneshotExecStart=/sbin/iptables-restore < /etc/iptables/rules.v4[Install]WantedBy=multi-user.target' | sudo tee /etc/systemd/system/iptables-persistent.service
WARP Connectorをどこにインストールしたかによって、サブネット上の他のデバイスを構成してトラフィックをWARP Connector経由でルーティングする必要がある場合があります。
WARP Connectorをルーターにインストールした場合、追加の構成は必要ありません。すべてのトラフィックはルーターをデフォルトゲートウェイとして使用します。

ルーターにアクセスできるが、WARP Connectorを別のマシンにインストールした場合、ルーターを構成してトラフィックをWARP Connectorに転送できます。これは通常、Cloudflareを通じて接続したい宛先IPのために静的ルートを追加することを含みます。IPルートを追加する方法については、ルーターのドキュメントを参照してください。
たとえば、サブネット 10.0.0.0/24 にいて、サブネット 192.168.1.0/24 の背後にあるアプリケーションに到達したい場合、192.168.1.0/24 をWARP ConnectorのIP(以下の図では 10.0.0.100)にルーティングするルールを追加します。デバイスが 192.168.1.0/24 にリクエストを送信すると、ルーターは最初にトラフィックをWARP Connectorマシンにリダイレクトします。WARP Connectorはトラフィックを暗号化し、宛先IPをWARPイングレスIPに変更し、ルーターに戻します。ルーターはこの暗号化されたトラフィックをCloudflareに転送します。

ルーターにアクセスできない場合、サブネット上の各デバイスをデフォルトゲートウェイの代わりにWARP Connectorマシンを通じてエグレスするように構成する必要があります。

デバイス上のすべてのトラフィックをWARP Connectorを通じてローカルソースIPでエグレスするように構成できます。すべてのトラフィックは、ゲートウェイネットワークポリシーによってフィルタリングされます。
sudo ip route add default via <WARP-CONNECTOR-IP> dev eth0 metric 101metricの値が他のデフォルトゲートウェイよりも低いことを確認してください。WARP Connectorが現在の優先デフォルトゲートウェイであることを確認するには、ip route get <DESTINATION-IP>を実行します。
sudo route -n change default <WARP-CONNECTOR-IP> -interface en0route /p add 0.0.0.0 mask 0.0.0.0 <WARP-CONNECTOR-IP> metric 101特定のルートのみをWARP Connectorを通じてエグレスするように構成できます。たとえば、内部アプリケーションやデバイスに向けられたトラフィックのみをフィルタリングし、公共のインターネットトラフィックはCloudflareをバイパスさせることができます。
sudo ip route add <DESTINATION-IP> via <WARP-CONNECTOR-IP> dev eth0sudo route -n add -net <DESTINATION-IP> <WARP-CONNECTOR-IP>route /p add <DESTINATION-IP> mask 255.255.255.255 <WARP-CONNECTOR-IP>サブネットルーティングを検証するには、ルーティングテーブルを確認し、トラフィックがCloudflareWARP 仮想インターフェースを通じてルーティングされていることを確認してください。
これで、2つのサブネット間の接続をテストできます。たとえば、10.0.0.2デバイスでping 192.168.1.100を実行します。
flowchart LR
subgraph subnet1[サブネット 10.0.0.0/24]
device1["デバイス
10.0.0.2"]--"ping
192.168.1.100"-->router1["WARP Connectorを実行しているデバイス
10.0.0.1"]
end
subgraph subnet2[サブネット 192.168.1.0/24]
router2["WARP Connectorを実行しているデバイス
192.168.1.97"]-->device2["デバイス
192.168.1.100"]
end
router1-->C((Cloudflare))-->router2