📘

Cloudflare でプライベートネットワーク ‐ 内部ドメインの DNS 解決(WARP クライアント編)

に公開

はじめに

Cloudflare でプライベートネットワークを作るための Tips を書いていこうと思います。
まずは内部ドメイン の DNS で。

  • ネットワークを繋ぐ部分は準備済みの前提でここでは解説しません
  • エンタープライズプラン(Contract Plan)での機能も記載します
  • Magic WAN の契約があると追加で設計が必要なので分けて書きます
  • この記事で対象とする DNS クライアントは WARP クライアントです

設計のポイント

設計の際は下記がポイントになります。

参考フロー

実装方法

内部ドメイン名の DNS 解決には大きく 4 つの方法があります。(Magic WAN 併用時は後述

図中の番号 DNS リソースの場所 備考
1 Gateway の DNS Policies に記載 Gateway DNS Policies(Override)
2 WARP トンネルの外にある DNS サーバー WARP Local Domain Fallback
3 WARP トンネルの先にある DNS サーバー
cloudflared 経由)
Gateway Resolver Policies(カスタム IP)
または
WARP Local Domain Fallback
4 Cloudflare の DNS サーバー Gateway Resolver Policies(DNS ビュー)

Internal DNS
エンタープライズのみ (2025 7月時点 closed beta)

DNS クライアント

この記事での DNS クライアントは WARP クライアント Gateway with WARP モードです。

1. Gateway(DNS Policies)

DNS Policies の Override で応答を返します。
ゾーンを持つわけではなく、単にルールのとおりに応答します。

設定

  • リクエストを Gateway Resolver に誘導するか( YES )
    Local Domain Fallback

    デフォルトでは localdomain は Local Domain Fallback の対象となっています。
    そのままでは localdomain のクエリーが Gateway Resolver に届きません。
    このような場合は Fallback domains から削除し、 Gateway Resolver に誘導します。

  • DNS Policies
    hoge.localdomain のクエリーに対し、172.16.0.252 を返す(Override)
    ダッシュボード

結果

warp-cli

Fallback domains

PS C:\Users\AdeleVance> warp-cli settings
Merged configuration:

(network policy)        Fallback domains:
 ** 宛先ドメインがマッチするドメインなし **
hoge.localdomain
PS C:\Users\AdeleVance> Resolve-DnsName hoge.localdomain

Name                                           Type   TTL   Section    IPAddress
----                                           ----   ---   -------    ---------
hoge.localdomain                               A      60    Answer     172.16.0.252

2. WARP トンネルの外にある DNS

WARP トンネルからはアクセスできないプライベートネットワークで DNS 解決ができるケースです。

設定

  • リクエストを Gateway Resolver に誘導するか( NO )
    Local Domain Fallback

    Local Domain Fallbacklocal.oymk.work と DNS サーバー 192.168.88.253 を指定

  • DNS サーバーは WARP トンネルの先にいるか( NO )
    Split Tunnels

    192.168.88.253/32(ここではそれを含む 192.168.88.0/24)を Split TunnelsWARP トンネルの外に転送(Exclude モード)

結果

warp-cli

Exclude mode Fallback domains

PS C:\Users\AdeleVance> warp-cli settings
Merged configuration:

(network policy)        Exclude mode, with hosts/ips:
  192.168.88.0/24

(network policy)        Fallback domains:
  local.oymk.work       -> [192.168.88.253]
local.oymk.work
PS C:\Users\AdeleVance> Resolve-DnsName pi.local.oymk.work

Name                                           Type   TTL   Section    IPAddress
----                                           ----   ---   -------    ---------
pi.local.oymk.work                             A      60    Answer     192.168.88.253

PS C:\Users\AdeleVance> Resolve-DnsName -TYPE NS local.oymk.work

Name                           Type   TTL   Section    NameHost
----                           ----   ---   -------    --------
local.oymk.work                NS     60    Answer     ns.local.oymk.work

3. WARP トンネルの先にある DNS

DNS サーバーが cloudflared の先にあるケースです
Resolver Policies または Local Domain Fallback のどちらかで実装が可能です。
併用の場合は Local Domain Fallback が先に行われます。
ここでは Resolver Policies で実装します。

設定

  • リクエストを Gateway Resolver に誘導するか( YES )
  • Resolver Policies
    intra.oymk.work ドメインは 172.16.0.253:53 に問い合わせ
    ダッシュボード


結果

warp-cli

Exclude mode Fallback domains

PS C:\Users\AdeleVance> warp-cli settings
Merged configuration:

(network policy)        Exclude mode, with hosts/ips:
 ** 宛先 DNS サーバー IP がマッチするサブネットなし **
(network policy)        Fallback domains:
 ** 宛先ドメインがマッチするドメインなし **
intra.oymk.work
PS C:\Users\AdeleVance> Resolve-DnsName tun1.intra.oymk.work

Name                                           Type   TTL   Section    IPAddress
----                                           ----   ---   -------    ---------
tun1.intra.oymk.work                           A      60    Answer     172.16.0.147

PS C:\Users\AdeleVance> Resolve-DnsName -TYPE NS intra.oymk.work

Name                           Type   TTL   Section    NameHost
----                           ----   ---   -------    --------
intra.oymk.work                NS     60    Answer     ns.intra.oya.ma

4. Cloudflare の DNS

Cloudflare の提供する Internal DNS を利用するパターンです。(2025 年 7 月時点 closed beta)
Internal DNS を作成し Resolver Policies から参照します。

設定

  • リクエストを Gateway Resolver に誘導するか( YES )
  • Internal DNS
    内部 zone corp.oymk.work を 設定
    ダッシュボード


  • Internal DNS
    viewInternal を 設定し、zone と関連付け
    ダッシュボード

  • Resolver policies
    corp.oymk.work ドメインの検索は view 名 Intrenal を参照
    ダッシュボード


結果

warp-cli

Fallback domains

PS C:\Users\AdeleVance> warp-cli settings
Merged configuration:

(network policy)        Fallback domains:
  ** 宛先ドメインがマッチするドメインなし **
corp.oymk.work
PS C:\Users\AdeleVance> Resolve-DnsName tun1.corp.oymk.work

Name                                           Type   TTL   Section    IPAddress
----                                           ----   ---   -------    ---------
tun1.corp.oymk.work                            A      300   Answer     172.16.0.147

Magic WAN 併用時

WARP クライアント と Magic WAN との通信には下記の特徴があります。

  • デフォルトの状態では WARP クライアントと Magic WAN 配下の通信は Gateway を経由せず、Magic WAN 内で閉じる
  • Magic WAN との通信は Magic Firewall でのアクセスコントロールが可能

図中の番号 DNS リソースの場所 備考
5 Magic WAN の先にある DNS サーバー WARP Local Domain Fallback

5. Magic WAN の先にある DNS

Magic WAN の先にある DNS サーバーで内部ドメイン名の解決ができるケースです。

設定

  • リクエストを Gateway Resolver に誘導するか( NO )
    Local Domain Fallback

    Local Domain Fallbackwan.oymk.work と DNS サーバー 172.16.1.254 を指定

  • DNS サーバーは WARP トンネルの先にいるか( YES )
    Split Tunnels Exclude モードの場合、DNS サーバーの IP が のリストに無いことを確認

結果

warp-cli

Exclude mode Fallback domains

PS C:\Users\AdeleVance> warp-cli settings
Merged configuration:
(network policy)        Exclude mode, with hosts/ips:
  ** 宛先 DNS サーバー IP がマッチするサブネットなし **
(network policy)        Fallback domains:
  wan.oymk.work (dns server behind Magic WAN)   -> [172.16.1.254]
wan.oymk.work
PS C:\Users\AdeleVance> Resolve-DnsName  rt.wan.oymk.work

Name                                           Type   TTL   Section    IPAddress
----                                           ----   ---   -------    ---------
rt.wan.oymk.work                               A      60    Answer     172.16.1.254

PS C:\Users\AdeleVance> Resolve-DnsName  -TYPE NS wan.oymk.work

Name                           Type   TTL   Section    NameHost
----                           ----   ---   -------    --------
wan.oymk.work                  NS     60    Answer     ns.wan.oymk.work

改造

例題

Q. hoge.internal ドメインを解決させたい。

A. この場合、現時点でのベストプラクティスは

  • hoge.internal を解決できる DNS サーバー(権威またはリゾルバー)を cloudflared トンネルの背後に設置
  • Gateway で Resolver Policies を hoge.internal に適用
    • 当該 DNS サーバーに転送 3

になるかと思います。

  • Internal DNS に転送(エンタープライズプランが必要)4

も素敵ですが、 GA を期待しましょう。

おわりに

次回はエージェントレスでの接続を考えます。

Discussion