0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

お名前ドットコムで取得したドメインのネームサーバーをCloudflareに変えるまで

0
Posted at

お名前ドットコムで取得したドメインのネームサーバーをCloudflareに変えるまで

はじめに

ConoHa VPS で複数サイトを運用していると、ドメインの管理先がバラバラになることがあります。

今回はこういう状況でした。

  • example-a.comお名前ドットコムでドメイン取得、ネームサーバーもお名前ドットコムのまま
  • example-b.comCloudflareでドメイン取得、ネームサーバーもCloudflare

example-b.com は前編・後編でCloudflare経由のHTTPS化が完了していたので、example-a.com も同じようにCloudflareに統一しようという話です。

ネームサーバーって何?

「ドメイン名 → IPアドレスへの変換を誰が担当するか」を決めるのがネームサーバーです。

  • お名前ドットコムのネームサーバー → お名前ドットコムがDNS解決を担当
  • Cloudflareのネームサーバー → CloudflareがDNS解決を担当

担当をCloudflareに変えることで、CloudflareのCDN・DDoS保護・シンプルな管理画面が使えるようになります。

この記事は、僕とAIのやり取りをまとめたものです!主は、Claude Codeと Codexを使用しています。
※ちゃんとソースを見るようにしてはいますが、一部誤った情報を記載してしまっている場合があります。その場合は、優しくコメントで教えてください♪

環境

  • ドメイン取得元:お名前ドットコム
  • ドメイン移行先:Cloudflare(ネームサーバーのみ変更、ドメイン自体の移管ではない)
  • サーバー:ConoHa VPS
  • Webサーバー:nginx
  • Docker Compose運用(nginx + Next.js × 2の3コンテナ構成)

移行前の状態を確認する

まず現状を nslookup で確認しました。

$ nslookup example-a.com
Server:         8.8.8.8

Non-authoritative answer:
Name:   example-a.com
Address: xxx.xxx.xxx.xx

VPSのIPアドレス(xxx.xxx.xxx.xx)が直接返っています。お名前ドットコムのネームサーバーがそのまま使われている状態です。

これはあまりよくない状態です。VPSのIPが外から丸見えになっているので、攻撃者にサーバーの場所を直接知られてしまいます。DDoS攻撃を受けた場合もVPSが直撃します。

比較として、すでにCloudflare経由になっている example-b.com はこうなります。

$ nslookup example-b.com
Server:         8.8.8.8

Non-authoritative answer:
Name:   example-b.com
Address: 172.67.xxx.xxx
Name:   example-b.com
Address: 104.21.xxx.xxx

CloudflareのIPが返っています。返ってくるIPがCloudflareのものになっているので、VPSのIPは外から見えません。Cloudflareが盾になって、攻撃はCloudflare側で弾いてくれる状態です。

example-a.com もこの状態にするのがゴールです。


Step 1: CloudflareにドメインをZoneとして追加する

Cloudflareダッシュボードで追加します。

  1. dash.cloudflare.com にログイン
  2. 「サイトを追加」example-a.com を入力
  3. プランを選択(無料でOK)
  4. Cloudflareが既存のDNSレコードを自動インポートしてくれるので内容を確認

この時点ではまだお名前ドットコムのネームサーバーが生きているので、Cloudflare側は 「保留中」 の状態になります。Step 3でネームサーバーを変更して初めてCloudflareが有効になります。


Step 2: DNSレコードを確認・修正する

自動インポートされたレコードを確認します。VPSへのAレコードが正しく設定されているかチェックします。

タイプ 名前 コンテンツ プロキシ
A @ VPSのIPアドレス オン(推奨)

プロキシの状態によって挙動が変わります。

状態 説明
オン(Proxied) アクセスがCloudflare経由になる。VPSのIPが隠れ、DDoS保護・CDNが有効。推奨
オフ(DNS only) 単純なDNS解決のみ。VPSのIPが直接返る。移行前と同じ状態

WebサイトであればプロキシはオンにするのがCloudflareを使う一番の理由でもあります。


Step 3: お名前ドットコムでネームサーバーを変更する

Cloudflareダッシュボードに表示されている2つのネームサーバーをコピーします。

evelyn.ns.cloudflare.com
hunts.ns.cloudflare.com

お名前ドットコムの管理画面で変更します。

  1. お名前ドットコムにログイン
  2. 対象ドメイン(example-a.com)を選択
  3. 「ネームサーバーの変更」「その他のネームサーバーを使う」
  4. Cloudflareの2つのネームサーバーを入力して保存

反映には数分〜最大24時間かかります。


Step 4: 反映を確認する

しばらく待ってから nslookupdig で確認します。

$ nslookup example-a.com
Non-authoritative answer:
Name:   example-a.com
Address: 104.21.xxx.xxx
Name:   example-a.com
Address: 172.67.xxx.xxx

CloudflareのIPが返ってくればネームサーバーの切り替えは成功です。

dig でネームサーバー自体も確認できます。

$ dig NS example-a.com

;; ANSWER SECTION:
example-a.com.  21600  IN  NS  evelyn.ns.cloudflare.com.
example-a.com.  21600  IN  NS  hunts.ns.cloudflare.com.

evelyn.ns.cloudflare.com / hunts.ns.cloudflare.com が返ればCloudflareへの切り替え完了です。


遭遇したトラブル

1. 切り替え直後にnslookupで古いIPが返ることがある

$ nslookup example-a.com
Non-authoritative answer:
Name:   example-a.com
Address: xxx.xxx.xxx.xx   ← まだVPSのIPが返っている

DNSキャッシュの影響で、参照するサーバーによって古いIPが返ることがあります。しばらく時間が経てば揃います。dig NS でネームサーバー自体がCloudflareになっていれば問題ありません。

2. ERR_SSL_VERSION_OR_CIPHER_MISMATCH

ネームサーバー切り替え直後にブラウザでアクセスすると出ることがあります。CloudflareがHTTPSでVPSに接続しようとしているが、SSL/TLSの設定がまだ整っていない状態です。

しばらく待つか、CloudflareのSSL/TLS設定を確認してください。Let's Encryptの証明書がVPS側に入っていれば フル(厳密) のままで問題ありません。


まとめ

  • ネームサーバーの変更はドメインの移管ではない(お名前ドットコムでドメインを持ったまま、DNS解決だけCloudflareに任せる)
  • Cloudflare側に先にDNSレコードを設定してからネームサーバーを変更する順番が重要
  • 切り替え後のDNSのばらつきはキャッシュの問題なので、時間が経てば揃う
  • dig NS でネームサーバーがCloudflareになっていれば切り替え完了

参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?