この記事は、初版をAI生成し、その後人間が肉付けして記載しています。
はじめに
お名前.com でドメインを購入したが、DNS 管理は Cloudflare に任せたい——という構成の解説です。
個人開発で AWS・OCI など複数クラウドを使う場合、DNS 管理を特定のクラウドベンダーに依存させず、独立したサービス(Cloudflare)に一元化しておくと取り回しが楽になります。
この記事では alphajinsei.com を例に、仕組みの理解からセットアップ、動作確認までを扱います。例として、お名前.comで購入したalphajinsei.comというドメイン名、および、そのサブドメイン名hoikuen.alphajinsei.comを例として記載します。
簡単には以下。
- お名前.com
- TLD(トップレベルドメイン)サーバに、「alphajinsei.comのDNSサーバはどこか?」というNSレコードを書き込む権限を有する
- 今回はこれを、cloudflareのDNSサーバに設定する。つまり、「alphajinsei.com のDNSサーバはcloudflare管理のネームサーバである」というNSレコードを設定する
- TLD(トップレベルドメイン)サーバに、「alphajinsei.comのDNSサーバはどこか?」というNSレコードを書き込む権限を有する
- cloudflare
- cloudflareが持っているネームサーバに、alphajinsei.comのサブドメインに対する各レコードを追加する。
DNS の仕組み:誰が何を管理しているのか
登場人物の整理
DNS の名前解決には、大きく 4 種類のサーバーが登場します。
| サーバー | 役割 | 例 |
|---|---|---|
| ルートネームサーバー | 「.com のことは TLD サーバーに聞いて」と案内する |
a.root-servers.net |
| TLD ネームサーバー | 「alphajinsei.com のことは Cloudflare に聞いて」と案内する |
a.gtld-servers.net(.com 用) |
| オーソリティティブネームサーバー | ドメインの実データ(A, CNAME, MX 等)を保持・回答する | ada.ns.cloudflare.com |
| リカーシブリゾルバー | ユーザーの代わりに上記 3 つを順に辿り、最終回答を返す |
8.8.8.8(Google Public DNS) |
前者 3 つが「階層構造」を成しており、リカーシブリゾルバーはその階層を辿るクライアント側の仕組みです。
クエリの流れ
hoikuen.alphajinsei.com の IP を知りたいとき:
ユーザーの PC
│
▼
リカーシブリゾルバー(ISP や 8.8.8.8 など)
│
├─① ルートネームサーバーに問い合わせ
│ Q: alphajinsei.com は?
│ A:「.com は a.gtld-servers.net に聞いて」
│
├─② TLD ネームサーバー(.com)に問い合わせ
│ Q: alphajinsei.com のネームサーバーは?
│ A:「ada.ns.cloudflare.com に聞いて」
│ ↑ お名前.com が設定した NS レコードがここで使われる
│
├─③ Cloudflare ネームサーバーに問い合わせ
│ Q: hoikuen.alphajinsei.com の A レコードは?
│ A:「104.21.57.122」
│ ↑ Cloudflare が管理しているレコードから回答
│
▼
ユーザーの PC に IP アドレスが返る
お名前.com と Cloudflare の役割分担
お名前.com(レジストラ)
└─ TLD ネームサーバー上の NS レコードを管理する権限
「alphajinsei.com の問い合わせ先は ada.ns.cloudflare.com である」
Cloudflare(DNS プロバイダー)
└─ alphajinsei.com 配下の実レコードを管理
「hoikuen.alphajinsei.com → 104.21.57.122」
「www.alphajinsei.com → 11.11.11.11」
「test.alphajinsei.com → 22.22.22.22」
...
重要なのは、Cloudflare が管理できるのは alphajinsei.com 配下のレコードだけという点です。他人のドメイン(例: example.com)のレコードを Cloudflare に勝手に登録することはできません。TLD の NS レコードで委任されているからこそ、Cloudflare はそのドメインの権限を持ちます。
DNS デリゲーション(サブドメインの委譲)
Cloudflare 上で NS レコードを設定すると、特定のサブドメインを別のネームサーバーに委譲できます。
Cloudflare ネームサーバー上のレコード:
info.alphajinsei.com NS dns1.onamae.com
info.alphajinsei.com NS dns2.onamae.com
この場合、info.alphajinsei.com やその配下のレコードは Cloudflare ではなくお名前.com のネームサーバーが回答します。DNS の階層は入れ子にできるわけです。
セットアップ手順
ステップ 1: Cloudflare アカウント作成
- https://dash.cloudflare.com/sign-up にアクセス
- メールアドレスとパスワードで登録
- メール確認を完了
ステップ 2: Cloudflare にドメインを追加
※以下ではalphajinsei.dev を例に画像を記載
- Cloudflareダッシュボード左メニュー → 「Domains」
- 展開後 「Registrations」 をクリック
- 「ドメインのオンボード」 を選択
- Free プラン を選択
- 既存のDNSレコードが自動で検索される。追加があればこの場で設定できる
ステップ 3: お名前.com でネームサーバーを変更
- お名前.com にログイン → https://www.onamae.com/
- 「お名前.com Navi」 にログイン
- 左メニュー → 「ドメイン一覧」
-
alphajinsei.comの行の 「ネームサーバー設定」 をクリック -
「ネームサーバーの選択」 セクション:
- 「その他のネームサーバーを使う」 を選択
- ネームサーバーを入力:
⚠️ 注意:変更後、全世界の DNS キャッシュに反映されるまで 24時間程度 かかります。その間、メール受信が一時的に停止する可能性があります。
ステップ 4: DNS 反映確認
以下のテストケースを順に実行して、各レイヤーが正しく機能しているか確認します。
DNS 反映確認テストケース
前提:この記事の環境
| 項目 | 値 |
|---|---|
| ドメイン | alphajinsei.com |
| Cloudflare ネームサーバー |
ada.ns.cloudflare.com, gabe.ns.cloudflare.com
|
| Cloudflare に登録したレコード例 |
test.alphajinsei.com A 22.22.22.22
|
| デリゲーション先 |
info.alphajinsei.com NS dns1.onamae.com
|
テスト 1:お名前.com の設定が TLD に反映されたか
確認対象:お名前.com が TLD ネームサーバー上に設定した NS レコード
nslookup -type=NS alphajinsei.com a.gtld-servers.net
期待される出力:
alphajinsei.com nameserver = ada.ns.cloudflare.com
alphajinsei.com nameserver = gabe.ns.cloudflare.com
判定:cloudflare.com を含むネームサーバーが返ってくれば、お名前.com での NS 変更が TLD に反映されています。
もし反映されていなかったら:
- 変更から 24 時間経っていなければ待つ
- お名前.com のダッシュボードで設定が保存されているか再確認
テスト 2:Cloudflare がこのドメインの権限を持っているか
確認対象:Cloudflare のネームサーバーが alphajinsei.com のオーソリティティブサーバーとして機能しているか
nslookup -type=NS alphajinsei.com ada.ns.cloudflare.com
期待される出力:
Server: ada.ns.cloudflare.com
Address: 2606:4700:50::adf5:3a36
alphajinsei.com nameserver = ada.ns.cloudflare.com
alphajinsei.com nameserver = gabe.ns.cloudflare.com
判定:Cloudflare のネームサーバーに「alphajinsei.com の NS レコードは何?」と聞いたとき、自分自身を返すことが「俺がこのドメインの権限者だ」という宣言になります。
もし Cloudflare がこのドメインの権限を持っていなければ、応答を拒否するか、「知らない」と返します。
テスト 3:Cloudflare の実レコードが正しく返るか
確認対象:Cloudflare ダッシュボードで設定した A レコードなどが実際に返されるか
nslookup test.alphajinsei.com ada.ns.cloudflare.com
期待される出力(Cloudflare でプロキシ無効の場合):
Server: ada.ns.cloudflare.com
Address: 2606:4700:50::adf5:3a36
Name: test.alphajinsei.com
Address: 22.22.22.22
期待される出力(Cloudflare でプロキシ有効の場合):
Server: ada.ns.cloudflare.com
Address: 2606:4700:50::adf5:3a36
Name: test.alphajinsei.com
Addresses: 172.67.190.94
104.21.57.122
判定:
- プロキシ無効(DNS のみ)の場合:Cloudflare ダッシュボードで設定した IP がそのまま返る
-
プロキシ有効(オレンジ雲マーク)の場合:Cloudflare の CDN 用 IP が返る。ダッシュボードで設定した
22.22.22.22とは異なる IP になるが、これは正常動作。Cloudflare がリバースプロキシとして間に入っているため
テスト 4:DNS デリゲーション(サブドメイン委譲)の確認
確認対象:Cloudflare で NS レコードを設定したサブドメインが、正しく別のネームサーバーに委譲されているか
4a. Cloudflare に問い合わせたとき、委譲先を返すか
nslookup info.alphajinsei.com ada.ns.cloudflare.com
期待される出力:
Server: ada.ns.cloudflare.com
Address: 2606:4700:50::adf5:3a36
Name: info.alphajinsei.com
Served by:
- dns1.onamae.com
- dns2.onamae.com
判定:Cloudflare が自分では回答せず、「dns1.onamae.com に聞いて」と返していれば、デリゲーションが機能しています。
4b. 委譲先のネームサーバーに直接問い合わせ
nslookup info.alphajinsei.com dns1.onamae.com
期待される出力:
Name: info.alphajinsei.com
Address: 150.95.255.38
判定:お名前.com のネームサーバーが実際の IP を返していれば、委譲先も正しく機能しています。
テスト 5:エンドユーザー視点での確認
確認対象:リカーシブリゾルバー経由で、全ての階層が連携して動くか
nslookup test.alphajinsei.com
期待される出力:
Name: test.alphajinsei.com
Addresses: 172.67.190.94
104.21.57.122
判定:ネームサーバーを指定せずに問い合わせて、期待通りの IP が返ってくれば、エンドユーザーからも正常に名前解決できる状態です。テスト 1〜4 の全階層が正しく連携している証拠になります。
テストケース一覧
| # | 確認対象 | コマンド | 判定基準 |
|---|---|---|---|
| 1 | NS 変更の TLD 反映 | nslookup -type=NS alphajinsei.com a.gtld-servers.net |
Cloudflare の NS が返る |
| 2 | Cloudflare の権限 | nslookup -type=NS alphajinsei.com ada.ns.cloudflare.com |
自分自身の NS を返す |
| 3 | 実レコードの応答 | nslookup test.alphajinsei.com ada.ns.cloudflare.com |
設定した IP(またはプロキシ IP)が返る |
| 4 | デリゲーション | nslookup info.alphajinsei.com ada.ns.cloudflare.com |
委譲先 NS を返す |
| 5 | E2E 確認 | nslookup test.alphajinsei.com |
期待通りの IP が返る |
複数クラウドでの活用
この構成の利点は、DNS をクラウドベンダーから独立させられることです。
alphajinsei.com(Cloudflare で DNS 管理)
├─ hoikuen.alphajinsei.com → Cloudflare Pages
├─ api.alphajinsei.com → AWS Lambda + API Gateway
├─ app.alphajinsei.com → OCI Compute
└─ blog.alphajinsei.com → GitHub Pages
ホスティング先を変えたいときは Cloudflare のレコードを書き換えるだけで、ドメインの移管やネームサーバーの変更は不要です。
トラブルシューティング
DNS が反映されない
原因:TLD への反映待ち、またはリカーシブリゾルバーのキャッシュ
対処:
# キャッシュクリア(Windows PowerShell、管理者権限)
ipconfig /flushdns
# キャッシュクリア(macOS)
sudo dscacheutil -flushcache
# キャッシュクリア(Linux systemd-resolved)
sudo systemctl restart systemd-resolved
キャッシュクリア後、テスト 1 から再実行してください。
Cloudflare ダッシュボードで Status が Active にならない
お名前.com でのネームサーバー変更が TLD に反映されるまで待つ必要があります。最大 24 時間。テスト 1 で TLD 反映状況を直接確認できます。
プロキシ有効時に設定した IP と異なる IP が返る
正常動作です。Cloudflare のプロキシ(オレンジ雲マーク)が有効な場合、Cloudflare の CDN 用 IP が返されます。実際のリクエストは Cloudflare が受け取り、設定した IP に転送します。テスト 3 の「プロキシ有効の場合」を参照してください。
まとめ
| 管理者 | 管理する場所 | 管理する内容 |
|---|---|---|
| お名前.com | TLD ネームサーバー上の NS レコード | 「alphajinsei.com の問い合わせ先は Cloudflare である」 |
| Cloudflare | Cloudflare ネームサーバー上の実レコード | A, CNAME, MX, TXT 等(alphajinsei.com 配下のみ) |
この 2 層の分離を理解しておけば、DNS 周りで何か問題が起きたときに「どのレイヤーで詰まっているか」をテストケースで切り分けられます。





