ネームサーバ

ネームサーバ(DNS サーバ)についてまとめています。


ネームサーバの設定パターン

独自ドメインをサーバへ設定する場合にネームサーバの設定を行いますが、
大きく 2 種類の設定方法があります。

ホスト名を指定する

ホスト名の場合はドメインを登録・管理しているサービスで設定します。
通常が管理メニュー上からでしょう。

この実態は NS レコード を設定しています。

例: さくらインターネット

ネームサーバ
ns1.dns.ne.jp
ns2.dns.ne.jp

【ドメイン設定】他社で取得・管理中のドメインを利用 | さくらのサポート情報
🎈 さくらのレンタルサーバ・さくらのメールボックス | ふうせん🎈 Fu-sen.

レコードを設定する

最近はこれもドメインを登録・管理しているサービスで設定できる事が多いですが、
上項目のホスト名を変更する事で他のネームサーバサービスを使用する事もできます。
ドメイン登録・管理サービスによってはこれを提供していません。

例: Google サービス(Google サイト、G Suite、Google Cloud Platform など)

サブドメイン 種類
www CNAME ghs.googlehosted.com.

www 以外のサブドメインも設定できます。
Google Cloud Platform を除き、サブドメインなし は設定できません。

サイトにカスタム URL を使用する | サイト ヘルプ

例: G Suite の MX レコード

サブドメイン 種類 優先度
@・空白・ドメイン名 MX 1 ASPMX.L.GOOGLE.COM.
@・空白・ドメイン名 MX 5 ALT1.ASPMX.L.GOOGLE.COM.
@・空白・ドメイン名 MX 5 ALT2.ASPMX.L.GOOGLE.COM.
@・空白・ドメイン名 MX 10 ALT3.ASPMX.L.GOOGLE.COM.
@・空白・ドメイン名 MX 10 ALT4.ASPMX.L.GOOGLE.COM.

G Suite の MX レコードの値 | G Suite 管理者 ヘルプ


レコードの種類

ネームサーバによって微妙に仕様が異なっている場合があります。

  • 対応しているレコードの種類
  • @ または サブドメイン 部分のみをいれる または ホスト名をフル表記
  • サブドメインなしの表記( @ ・なし・ドメイン名フル のいずれか)
  • 値のホスト名末尾 . の有無
  • TXT レコード "~" 囲み有無
  • サブドメインなしの CNAME・ANAME・ALIAS 提供

A

IP アドレスを設定します。IP アドレスは IPv4 です。

サブドメイン 種類
@・空白・ドメイン名 A 10.15.41.1
www A 10.15.41.1
sub A 172.21.15.1

一つのサブドメインに複数の値を設定する事ができます。
複数のサーバを割り当てる事で負荷分散を行います。

AAAA

IPv6 の IP アドレスを設定します。

サブドメイン 種類
@・空白・ドメイン名 AAAA 2001:db8::a1
www AAAA 2001:db8::a1
sub AAAA 2001:db8::a2

一つのサブドメインに複数の値を設定する事ができます。
複数のサーバを割り当てる事で負荷分散を行います。

CNAME

ホスト名を設定します。

サブドメイン 種類
@・空白・ドメイン名 CNAME example.net.
www CNAME example.net.
sub CNAME example.net.

末尾 . はネームサーバによって不要な場合があります。

通常 CNAME は @・空白・ドメイン名 に対して設定できないのですが、
ネームサーバサービスにより例外があります。(下項目 ANAME・ALIAS 参照)

ANAME・ALIAS (CNAME)

ホスト名を設定します。

ネームサーバそのものとして ANAME・ALIAS レコードは存在せず、
ネームサーバサービスが値に設定している ホスト名 を参照し、
A レコードまたは AAAA レコードの IP アドレスで返す仕組みです。
したがって、nslookup や sig では A・AAAA レコードで表示されます。

これは @・空白・ドメイン名 の CNAME レコードを実現させるために
ネームサーバサービスで付加されている機能です。
@・空白・ドメイン名 で CNAME が設定できる場合も同じ動作になります。

サブドメイン 種類
@・空白・ドメイン名 CNAME example.net.
@・空白・ドメイン名 ALIAS example.net.
@・空白・ドメイン名 ANAME example.net.

末尾 . はネームサーバによって不要な場合があります。

MX

メールサーバを設定します。

サブドメイン 種類 優先度
@・空白・ドメイン名 MX 10 mail1.example.net.
@・空白・ドメイン名 MX 20 mail2.example.net.

MX には優先度があります。値が小さいホストが優先されます。

NS

ネームサーバを設定します。通常 2 ヶ所以上です。
これにより他のネームサーバを参照させます。

サブドメイン 種類
sub NS ns1.example.org.
sub NS ns2.example.org.

末尾 . はネームサーバによって不要な場合があります。

ホスト名を指定する は NS レコードを設定している事になります。

TXT

任意の文字列を設定します。最近はドメイン認証や SPF に使われます。

サブドメイン 種類
@・空白・ドメイン名 TXT “v=spf1 mx include:spf.example.net -all”
sub TXT “_acme-challenge.example.net”

"~" 囲みはネームサーバによって不要な場合があります。

SPF は現在 SPF レコードの定義があります。下項目 SPF を参照して下さい。

SPF

メール送信のドメイン認証に使われる SPF を設定します。
まだ普及していないため、同じ値を TXT レコードで設定して下さい。

サブドメイン 種類
@・空白・ドメイン名 SPF “v=spf1 mx include:spf.example.net -all”
@・空白・ドメイン名 TXT “v=spf1 mx include:spf.example.net -all”

"~" 囲みはネームサーバによって不要な場合があります。

通常 "V=spf1 ~" と記載します。 は次の種類を複数記載します。
複数のホストを記載する場合、1 つの SPF レコードおよび TXT レコードにすべて含めて下さい。
一つのサブドメインで複数の SPF レコード・TXT レコードにまたがって異なる値を入れないで下さい。

種類 意味
all デフォルト動作。一番最後に記載
include:ホスト名 ホスト名 の情報を参照
a:IP アドレス IP アドレス に一致
mx 現ホスト名の MX レコードを参照
mx:ホスト名 ホスト名の MX レコードを参照
ip4:IP アドレス IP アドレス に一致。IP アドレスは IPv4
ip6:IP アドレス IP アドレス に一致。IP アドレスは IPv6
exists:ホスト名 ホスト名 の A レコードを参照

種類の前に次の限定子を付加する場合があります。
all は通常 -all または ~all です。

限定子 意味
+ または 省略 認証許可
- 認証拒否
~ 認証公開
? 認証非公開

これを用いて、このドメイン名ではメールサーバを運用していない事を記載できます。

サブドメイン 種類
@・空白・ドメイン名 SPF “v=spf1 -all”
@・空白・ドメイン名 TXT “v=spf1 -all”

Sendguid はこの方法をしていませんが、
docomo・au 向けに配信する場合、別途この設定が必要です。

携帯キャリアの SPF 設定

SRV

サービスを割り当てているポート番号を設定します。
通常複数指定し、サーバの負荷分散に使用します。
一部サービスの認証で使われる場合もあります。

サブドメイン 種類 優先度 Weight ポート ホスト名
_http._tcp SRV 1 0 80 http.example.org.
_ftp._tcp SRV 1 0 21 ftp.example.org.

Weight = 負荷分散の値。0~65535 で 0 は負荷分散なし

CAA

SSL サーバ証明書を制限します。証明書の偽造を防ぎます。

サブドメイン 種類 フラグ タグ ホスト名
@・空白・ドメイン名 CAA 0 issue “letsencrypt.org”
sub CAA 0 issue “letsencrypt.org”
@・空白・ドメイン名 CAA 0 issue “mailto:[email protected]
@・空白・ドメイン名 CAA 0 issue “https://iodef.example.net/”

SSL サーバ証明書の発行元(CA)がこの情報を公開しています。

PTR

IP アドレスからホスト名を返します。逆引きの設定です。

サブドメイン 種類
1.15.168.192.in-addr.arpa. PTR www.example.net.

上は 192.168.15.1 の参照で www.example.net を返します。

プロバイダやサーバ業者などが設定します。
大手ネットワークなどで内部割り当てのために設定する場合があります。
個人レベルで通常 PTR レコードを設定する機会はほとんどありません。

他のレコード

他にも次のレコードが存在します。

  • CERT
  • DNSKEY
  • DS
  • LOC
  • NAPTR
  • SMIMEA
  • SSHFP
  • TLSA
  • URI

TTL (Time To Live)

レコードの設定が反映されるまでの秒数を設定します。

TTL 意味
1 1 秒
600 10 分
1800 30 分
3600 1 時間
86400 24 時間

通常レスポンスをはやくするため、数時間単位の TTL にします。
Google 推奨は 3600=1 時間 です。

DNS に関する基本ガイド - TTL(Time To Live)| G Suite 管理者ヘルプ

レコードを変更する時に反映がすぐに行われるように TTL を 1 など、
短時間の値にする場合があります。


ネームサーバサービス・アプリケーション

通常ドメイン登録・管理サービスがネームサーバも提供しているので、
そちらで設定して完結できますが、
他のネームサーバサービスを使用して安定度工場・レスポンス高速化などを実現できます。

ドメイン登録・管理専門、レンタルサーバはこの一覧から外しています。

Amazon Route 53

Amazon Route 53 | Amazon Web Services

Amazon Web Services(AWS)の 1 サービス。無料枠がなく完全課金ですが、
使用ケースは多く、ブログ記事などは検索ででてきやすいです。

Azure DNS

Azure DNS | MIcrosoft Azure

MIcrosoft Azure の 1 サービス。無料枠がなく完全課金です。

BIND (named)

BIND 9 | Internet Systems Consortium
BIND | ISC Open Source Projects

世界で最も利用されている DNS サーバです。そのため資料も多いです。
アプリ・ディレクトリ・設定ファイルが named なので、named とも言われます。
BIND は Berkeley Internet Name Domain の略称です。
(旧定義は Berkeley Internet Name Daemon)

Cloud DNS

Cloud DNS | Google Cloud Platform

Google Cloud Platform の 1 サービス。無料枠はなく、完全課金です。

Cloudflare

Cloudflare
🎈 Cloudflare | ふうせん🎈 Fu-sen.

Cloudflare は CDN サービスですが、ネームサーバも提供しています。
CDN を使用せずにネームサーバだけ使用する事もできます。

  • ドメイン登録数制限なし
  • ネームサーバ制限数なし

無料でも制限がありません。 そのため、Cloudflare はおすすめです。

無料プランでも制限として、必ずドメイン単位
(厳密には 🎈 Public Suffix List の範囲)で登録する必要がありますが、
有料プランでは、サブドメインで Cloudflare へのサイト登録・管理ができます。

ClouDNS

ClouDNS

無料で次が使用できます。
ネームサーバだけでなく、Web・メール転送も対応しています。

  • 4 ドメイン分のネームサーバ
  • 50 レコード
  • 月 500000 クエリー
  • 1 メール転送
  • ダイナミック DNS
  • Web 転送
  • チャットサポート

NS1

NS1

Free Developer Plan として無料で次が使用できます。

  • 月 500000 クエリー
  • 50 レコード
  • 1 モニター
  • モニターインターバル 60 秒
  • 1 フィルターチぇイン

Vercel

Vercel
🎈 Vercel | ふうせん🎈 Fu-sen.

Web サービス ZEIT Now はネームサーバを提供しています。
メールサーバやサブドメインなどを他のサービスに設定できます。
Now CLI のコマンド now dns でネームサーバの設定を行います。

Now CLI Reference - DNS | Vercel Docs

Dozens(サービス終了)

Dozens

Dozens は 2019年11月 までにサービスを終了しています。


ネームサーバの設定確認

ネームサーバの設定を確認する方法として dig または nslookup があります。
設定内容が正しく反映されているか、また各地に設定内容が反映されているかを確認できます。

dig

Windows 以外の環境ではシェル・ターミナルより dig を用います。
Windows の場合、🎈 Scoop でインストール可能です。

scoop install bind

インストールしても dig の動作がおかしい場合は
次のパッケージをインストールしなおしてみて下さい。

Visual Studio 2012 更新プログラム 4 の Visual C++ 再頒布可能パッケージ | Microsoft

最小限は dig ドメイン名 とします。

dig www.example.com

レコードの種類を追加して、具体的にレコードを参照できます。

dig www.example.com txt

@ の後ろにネームサーバを付けて、そのネームサーバを用いて参照できます。
@8.8.8.8 は Google Public DNS を参照しています。

🎈 Public DNS | ふうせん🎈 Fu-sen.

dig @8.8.8.8 www.example.com

Dig | G Suite Toolbox

Google によって dig のオンラインツールが公開されています。

nslookup

Windows では Windows 10 でも nslookup が入っています。
最小限は nslookup ドメイン名 とします。

nslookup www.example.com

-type=種類 でレコードの種類を追加し、具体的にレコードを参照できます。

nslookup -type=TXT www.example.com

後ろにネームサーバを付加できます。 8.8.8.8 は Google Public DNS を参照しています。

🎈 Public DNS | ふうせん🎈 Fu-sen.

nslookup www.example.com 8.8.8.8

携帯キャリアの SPF 設定

docomo・au は From に入っているドメインの SPF(TXT レコード)を参照します。

送信ドメイン認証(Sender ID/SPF)について | NTTドコモ
送信ドメイン認証SPFレコードについて | au

Sendguid の初期設定で行える SPF 設定(Sender Authentication)はサブドメインを用いるため、
別途サブドメインなしに対して SPF 設定に u~.wi~.sendgrid.net の追加が必要になります。
部分はアカウントによって変化します。

また、docomo は From に入っているドメイン名の MX レコードを使用します。

携帯キャリアにメールを届けるための設定 ~なりすまし規制編~ | SendGuid