📍

DNSレコードについて、自分が使ってるのだけでもわかるようにしておく件

に公開

普段AWSのRoute53にDNSレコードを追加して、ルーティングとかしているのですが、先人の設定をパクっているだけで、イマイチよくわかってはいないので、自分らが使っているものだけでもわかるようにしておこうと思いました!

DNSレコードってなあに?

 そもそもDNSレコードとは、DNSの権威サーバがドメイン名を元にIPを返す際に参照するファイル(ゾーンファイルというらしい)の中身のことです。ゾーンファイルはこんなのらしい↓↓

$ORIGIN example.com.
  		@                    3600 SOA   ns1.p30.oraclecloud.net. (
  		zone-admin.dyndns.com.     ; address of responsible party
  		2016072701                 ; serial number
  		3600                       ; refresh period
  		600                        ; retry period
  		604800                     ; expire time
  		1800                     ) ; minimum ttl
  		86400 NS    ns1.p68.dns.oraclecloud.net.
  		86400 NS    ns2.p68.dns.oraclecloud.net.
  		86400 NS    ns3.p68.dns.oraclecloud.net.
  		86400 NS    ns4.p68.dns.oraclecloud.net.
  		3600 MX    10 mail.example.com.
  		3600 MX    20 vpn.example.com.
  		3600 MX    30 mail.example.com.
  		60 A     204.13.248.106
  		3600 TXT   "v=spf1 includespf.oraclecloud.net ~all"
  		mail                  14400 A     204.13.248.106
  		vpn                      60 A     216.146.45.240
  		webapp                   60 A     216.146.46.10
  		webapp                   60 A     216.146.46.11
  	www                   43200 CNAME example.com.

引用: https://docs.oracle.com/ja-jp/iaas/Content/DNS/Reference/formattingzonefile.htm#:~:text=ゾーン・ファイルの例&text=3600 MX 10 mail.example,www 43200 CNAME example.com.&text=前述のゾーン・ファイルの,情報を省略します。

 DNSの仕組みあたりは、みんなの味方のピヨピヨさんに教えてもらいました。なんとなくわかった気になれますね。

レコードタイプ

 レコードタイプを指定して、DNSレコードを作成できます。タイプによって、役割がかわります。

SAO

@     IN     SOA    {primary-name-server}     {hostmaster-email} (
				{serial-number}
				{time-to-refresh}
				{time-to-retry}
				{time-to-expire}
			{minimum-TTL-for-negative-cache} )

 Start Of Authorityの略、権威を持つゾーンの開始を示す。権威サーバーが管理するゾーンに関しての情報(名前、連絡先、シリアル番号、ネガティブキャッシュ時間等) を記録します。
 メタ情報的な感じですかね。

A

paopao.com.	60	IN	A	xxx.255.228.125

 AddressのA。一番想像しやすい、ドメインとIPアドレス(IPv4)の組み合わせを示すレコード。上の例でいうと、paopao.comというドメイン名はxxx.255.228.125のIPアドレスに解決されます。
 ルーティングを設定したい時に使う感じ。AWSのRoute53だと、IPアドレスではなく、CloudFrontのディストリビューションを設定できて、指定したドメインでアクセスした際に、CloudFront経由でアクセスするリソースを参照するように設定できる。
 似たものでAAAAレコードというのがあるが、そちらは、ドメインとIPアドレス(IPv6)の組み合わせを示すものです。

CNAME

paozou.example.com.     IN CNAME            azuki.example.com.

 Canonical NAMEの略で、正規名という意味。ドメイン名とは別の名前を登録することができます。例で言うと、paozou.example.comの正式名はazuki.example.comということを示しています。
 Aレコードと同じく、ドメインの参照先を示すものですが、Aレコードはドメイン名とIPを紐づけ、CNAMEレコードはドメインと別ドメインを紐づけるという違いがある。別ドメインだけど、同じIPを参照させたい時に使う。

 すごくどうでもいいけど、ずっとCANMEだと思ってました。CNAME(しーねーむ)ですね。

NS

paopao.com.      IN NS         ns.paopao.com.

 Name Serverの略で、どのDNSがドメインの権威サーバーかどうかを示す。権威サーバーは実際にDNSレコードがあるDNSサーバーのこと。例で言うと、paopao.comというドメイン名とIPアドレスの組み合わせは、ns.paopao.comという権威サーバーの下に登録されているよ〜ということ。これが登録されていないと、どこに行けばドメイン名解決できるのかがわからなくて、迷子になります。

TXT

example.com.     IN TXT            "いいかんでぃ"

 Textの意。テキスト書けるよってこと。そのまま。
 証明書発行時に、ドメインを所有しているかの確認(チャレンジ)の時に指定されたTXTレコードを作っておいて、ドメイン所有している証明をするのに利用したことがあります。他にもメール送信元チェック用のSPFレコードというものにも使われたりするみたいです。

感想

 とりあえず使っているものについては、理解したつもりです。総じて、ルーティングに影響するような結構重要な意味があるから、編集する時には気をつけようと思いました!

Discussion