メモ > サーバ > 各論: ネットワーク > ドメイン
ドメイン
■ドメインとサブドメイン
ドメインは、インターネット上の住所。
サブドメインは、ドメイン内に割り当てられるドメイン。
ドメインとは?メリット・種類・決め方をかんたんに解説|ドメイン取るならお名前.com
https://www.onamae.com/clever/about/domain.html
■FQDN
Fully Qualified Domain Nameの略で、直訳すると「完全修飾ドメイン名」となる。
http://www.refirio.net/ の場合、以下のようになっている。
www ... ホスト名
refirio.net ... ドメイン名
www.refirio.net ... FQDN
つまり、ホスト名を省略しないドメイン名となる。
厳密には一番右端に「.(ピリオド)」を付ける。このピリオドは、ルートノードを示している。
FQDNとは?ドメイン名・ホスト名・IPアドレスとの違い | カゴヤのサーバー研究室
https://www.kagoya.jp/howto/network/fqdn/
FQDN − @IT ネットワーク用語事典
https://www.atmarkit.co.jp/aig/06network/fqdn.html
■DNS
ホスト名に対するIPアドレスとドメイン名を変換することを名前解決という。
名前解決の仕組みのことをDNS(ドメインネームシステム)と呼び、その役割を持ったサーバを「DNSサーバ」という。
DNSの情報は /etc/resolv.conf に記録されている。
さくらの物理サーバでは、以下のようになっていた。(例示用に、内容は改変している。)
$ vi /etc/resolv.conf
AWSのEC2では、以下のようになっていた。(例示用に、内容は改変している。)
nameserver 133.242.0.3
nameserver 2001:DB8::1
nameserver 133.242.0.4
options single-request-reopen
$ vi /etc/resolv.conf
まず、指定したDNSサーバ(フルサービスリゾルバ)に問い合わせる。
(フルサービスリゾルバーは通常、プロバイダーが用意したDNSサーバーになる。)
まずDNSルートサーバーに問い合わせるが、このサーバーは世界に13台しか無い。
負荷が集中することになるので、一度問い合わせた内容は一定時間キャッシュされる。
BINDで実際にDNSサーバを構築すると理解が深まるかも。
DNSの仕組みと調査方法について - embryo
http://embryo.hatenadiary.com/entry/2017/11/21/152225
インターネット10分講座:DNSルートサーバ - JPNIC
https://www.nic.ad.jp/ja/newsletter/No45/0800.html
DNSサーバー構築(BIND) - CentOSで自宅サーバー構築
https://centossrv.com/bind.shtml
浸透いうな!
http://www.e-ontap.com/dns/propagation/
DNSで浸透って言っちゃだめなの? - @tmtms のメモ
https://tmtms.hatenablog.com/entry/201805/dns
■DNSの文字数制限
さくらのDNSにDKIM用レコードを登録しようとすると、「255文字以下で入力してください」「行頭・行末に引用符「"」を記載してください」というエラーが発生した。
(AWSのRoute53では制限が無かったが。)
この場合、以下のように「適当な場所で区切ったうえで、各行を引用符でくくる」という加工を行ったうえで登録するといい。
options timeout:2 attempts:5
; generated by /sbin/dhclient-script
search ap-northeast-1.compute.internal refirio.net
nameserver 10.1.0.2
"v=DKIM1; k=rsa; p="
"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxfCFe8mdOdtL3oRVepm7"
"nJVGbWT3CBhZRGcCq/NzWFGP9SsAycraP5F1y9C8bnlh8thA1FJSPHgAWQig7yZf"
〜中略〜
"ENSo8xU1ZhXbhMJsVCOVzqj6GmPGhVrfBP9//mJDnpv2sxYZpgZ5mH5StDG7fHms"
"Y9/y4/OSDjSZgG30+QOs1zJAxmUms9dazVP8HLXpfINjcPGPuzNjpGzsl57UwXVL"
"/QIDAQAB"
■DNSラウンドロビン
1つのドメインに複数のIPアドレスを割り当てることで、負荷分散ができる。
AWSでの設定について確認したときの内容が、AWS.txt の「DNSラウンドロビン」にある。
■whois
ドメインの登録者を検索する仕組み。
$ whois refirio.net … ドメインのwhois情報を確認。
[Querying whois.verisign-grs.com]
[whois.verisign-grs.com]
Domain Name: REFIRIO.NET
Registry Domain ID: 1836407608_DOMAIN_NET-VRSN
Registrar WHOIS Server: whois.discount-domain.com
Registrar URL: http://gmo.jp
Updated Date: 2018-10-22T22:45:38Z
Creation Date: 2013-11-22T02:28:15Z
Registry Expiry Date: 2019-11-22T02:28:15Z
Registrar: GMO Internet, Inc. d/b/a Onamae.com
Registrar IANA ID: 49
Registrar Abuse Contact Email: abuse@gmo.jp
Registrar Abuse Contact Phone: +81.337709199
Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
Name Server: DNS01.MUUMUU-DOMAIN.COM
Name Server: DNS02.MUUMUU-DOMAIN.COM
DNSSEC: unsigned
URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
>>> Last update of whois database: 2019-01-29T05:09:35Z <<<
For more information on Whois status codes, please visit https://icann.org/epp
whoisコマンドが見つからない(CentOSなど)場合、以下のようにすればインストールできる。
# yum install jwhois
■ドメインの情報
digコマンドを使えば、ドメインの情報を確認できる。
$ dig refirio.net any … 特定ドメインの情報を取得。
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.2 <<>> refirio.net any
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63302
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;refirio.net IN ANY
;; ANSWER SECTION:
refirio.net. 3600 IN NS ns1.dns.ne.jp.
refirio.net. 3600 IN NS ns2.dns.ne.jp.
refirio.net. 3600 IN MX 10 mail1.refirio.net.
refirio.net. 3600 IN MX 20 mail2.refirio.net.
refirio.net. 3600 IN A 153.121.33.84
refirio.net. 3600 IN SPF "v=spf1 +ip4:153.121.33.84 -all"
refirio.net. 3600 IN SOA master.dns.ne.jp. tech.sakura.ad.jp. 2017032202 3600 900 3600000 3600
;; Query time: 3 msec
;; SERVER: 210.188.224.10#53(210.188.224.10)
;; WHEN: Sun Jun 11 23:48:17 2017
;; MSG SIZE rcvd: 206
「any」オプションですべての情報を表示、例えば「txt」だとTXTレコードのみ表示、省略するとドメインに対応するIPアドレスを表示する。
「ANSWER SECTION」にあるレコードの意味は以下のとおり。
FQDNは「Fully Qualified Domain Name」の略で何も省略しない完全修飾ドメイン名。
TTLは「Time To Live」の略で生存期間。
FQDN TTL INternet Address IPアドレス
refirio.net. 3600 IN A 153.121.33.84
各レコードの意味は以下の通り。
・NS(Name Server) ... ドメインの権限を持つDNSサーバ。可用性向上のため、通常複数台用意されている。
・MX(Mail eXchanger) ... メールの送受信で使うドメイン。「10」「20」は、数字が小さいものが優先的に参照される。
・A(Address) ... ドメインからIPアドレスを調べる際に参照される。正引きする際に必須。
・SPF(Sender Policy Framework) ... 改ざんが容易に出来てしまうメールの仕組み上、本当にそのドメインから送られてきてるよ、という証明。
・SOA(Start Of Authority) ... どのDNSサーバがどのドメインを管理しているのかを宣言する。
SOAレコードの後ろの数字の意味は以下の通り。
・serial ... シリアル番号。ゾーンファイルを新しく更新しても、このシリアル番号が低いものは更新されない。
番号であれば何でも良いが、「年月日」+「連番」を記述するのが定石となってる。
・reflesh ... 更新時間。スレーブの更新タイミングの目安となる秒数。
・retry ... 再試行時間。再実行する際にウェイトする秒数。
・expiry ... 有効期限。マスターがダウンしてる際の生存期間。
・minimum ... ネガティブキャッシュの生存期間。デフォルトのTTL。
他に以下のようなレコードもある。
・PTR(PoinTeR) ... 逆引き用のレコード。Aレコードの逆。
・CNAME(Canonical Name) ... ドメインに別名を付ける場合に指定する。元になるドメインはAレコードで指定されたものを使う。
最後にピリオドが付くので注意。(サービスによっては自動的に補完される。)
・SPF(Sender Policy Framework) ... TXTレコードの一種。電子メールの送信元ドメインが詐称されていないかを検査するための仕組み。
TXTレコードと同一の内容を設定しておく。
なおdigコマンドで以下のように「+short」を指定すれば、ANSWER SECTIONの値のみ取得できる。
$ dig refirio.net any +short
ns1.dns.ne.jp.
ns2.dns.ne.jp.
10 mail1.refirio.net.
20 mail2.refirio.net.
153.121.33.84
"v=spf1 +ip4:153.121.33.84 -all"
master.dns.ne.jp. tech.sakura.ad.jp. 2017032202 3600 900 3600000 3600
以下のようにすれば、IPアドレスのみ取得できる。
$ dig refirio.net a +short
153.121.33.84
【 dig 】コマンド――ドメイン名からIPアドレスを調べる:Linux基本コマンドTips(158) - @IT
https://www.atmarkit.co.jp/ait/articles/1711/09/news020.html
俺のDNS - 脱・初心者のためのメモ
https://qiita.com/Ogaaaan/items/b3ceb8827e98ce40f5f2
DNSとは
http://wa3.i-3-i.info/word1287.html
DNSサーバとは
http://wa3.i-3-i.info/word1288.html
フルサービスリゾルバ (full-service resolver)とは
https://wa3.i-3-i.info/word1776.html
DNSルートサーバとは
https://wa3.i-3-i.info/word12282.html
権威DNSサーバとは
https://wa3.i-3-i.info/word12272.html
以前やった社内向けDNS勉強会の資料を公開してみた
https://dev.classmethod.jp/cloud/dns-study/
ゾーンファイル (zone file)とは
https://wa3.i-3-i.info/word12283.html
リソースレコード (resource record)とは
https://wa3.i-3-i.info/word12301.html
NSレコードとは
http://wa3.i-3-i.info/word12286.html
SOAレコードとは
http://wa3.i-3-i.info/word12285.html
Aレコードとは
http://wa3.i-3-i.info/word12288.html
AAAAレコードとは
http://wa3.i-3-i.info/word12289.html
CNAMEレコードとは
http://wa3.i-3-i.info/word12290.html
MXレコードとは
http://wa3.i-3-i.info/word12287.html
TXTレコードとは
http://wa3.i-3-i.info/word12294.html
SPFレコードとは
http://wa3.i-3-i.info/word12304.html
以下のブラウザツールで調べることもできる。
nslookup(dig)テスト【DNSサーバ接続確認】
https://www.cman.jp/network/support/nslookup.html
以下のようにすると、GoogleのDNSサーバを使って情報を取得できる。GoogleのDNSサーバを使うと高速になる、と言われている。
ただし、表示されるTTLの値に差があったりする。問題ないのかは要勉強。
$ dig @8.8.8.8 refirio.net any
【 dig 】コマンド――ドメイン名からIPアドレスを調べる:Linux基本コマンドTips(158) - @IT
http://www.atmarkit.co.jp/ait/articles/1711/09/news020.html
最後にピリオドが付くので注意。(サービスによっては自動的に補完される。)
DNSレコードの最後のドット「.」は大事 - Qiita
https://qiita.com/tobari_ko/items/1310384f7b6b24d01fc7
VALUE-DOMAINでcname設定時、最後に.(ドット)を付けないと困る理由 | 怪しい物を開発するブログ
https://blog.supersonico.info/?p=1820
■ドメインの運用履歴
過去どのようにドメインが割り当てられていたかは、以下のサイトで確認できる。
Wayback Machine
https://web.archive.org/