昨日・一昨日と、DNS関連の記事(基礎)を書いている中で、
うまいこと記事に含められなかったDNS関連技術がいくつかありました。(色々技術があってすごい…)
ので、記事にしてみます。
DNSの基本的な仕組みや、DNSコンテンツサーバとDNSキャッシュサーバの違い、
DNSレコードの基本的な記述方法を知っている前提とします。
不明点がある場合は以下を先にご覧ください。
…DNSとは?DNSサーバの階層構造とは?DNコンテンツサーバとDNSキャッシュサーバとは?などを解説
…DNSレコード設定方法、名前解決のためのクライアント側の設定方法などを解説
もくじ
1.DNSラウンドロビン (概要/ゾーンファイルの登録イメージ/注意点)
2.DNS関連のLinuxコマンドたち (nslookup/dig/whois)
3.おわりに
■DNSラウンドロビン
◎概要
1つのドメイン名に複数のIPアドレスを割り当てておき、
問い合わせ毎に、順番にIPアドレスを返していく技術。
IPアドレスとドメイン名の対応表であるゾーンファイルに、同一ドメイン名で複数のIPアドレスを記述しておくだけで、簡潔かつコストのかからない負荷分散が可能となっている。
◎ゾーンファイルの登録イメージ
example.com IN A 100.200.50.100
example.com IN A 100.200.50.101
example.com IN A 100.200.50.102
◎注意点
順番にIPアドレスを返すだけなので、必ずしも効率的な負荷分散とはならない。
DNSキャッシュサーバは、一定期間、IP⇔ドメイン名の対応関係をキャッシュしているため、
場合によっては特定のIPのサーバに負荷が集中することにつながる。
また、特定のIPのサーバがダウンしていたとしても、DNSコンテンツサーバは認識できない。
そのため、名前解決で返却されたIPアドレスのサーバにアクセスしたら、エラーページが返される、といったこともありうる。
効率的な負荷分散を行うには、他の適切なソフトウェア等で補う必要がある。
■DNS関連のLinuxコマンドたち
※詳しいオプションなどは別途ググってください。とりあえずこういうコマンドがあるんだなあーという理解くらいで。。
◎nslookupコマンド
DNSの名前解決結果を応答するコマンド。
正引き(ホスト・ドメイン名からIPアドレスを割り出す)、逆引き(IPアドレスからホスト・ドメイン名を割り出す)はもちろん、DNSレコードでの絞り込み検索等、便利オプションも多々あるらしい。
基本の形:
nslookup ホスト・ドメイン名またはIPアドレス
例:
nslookup example.com
→正引きの結果を返す
nslookup 100.200.50.100
→逆引きの結果を返す
◎digコマンド
DNSの名前解決結果を応答するコマンド。
nslookupコマンドは、DNSサーバからの応答を(見やすく)加工したものを返却するのに対し、
digコマンドは、DNSサーバの応答をそのままの値で返してくれる。
状況に応じて使い分けると良さげ。
基本の形はnslookupに同じ。
◎whoisコマンド
Whoisとは、ドメインの登録者情報のこと。
whoisコマンドでは、「このドメイン(の登録者)って誰??」を確認したい時に使う。
基本の形:
whois ドメイン名
(英語そのまま、コイツ誰?ってかんじで覚えればよいとおもう・・・)
返される値は、ドメインの登録者情報はもちろん、DNSサーバの詳細や登録した年月日等、
そのドメインに関する詳しい情報となる。
■おわりに
3回にわたってDNS関連の記事を書いてきましたが、本当に基本の基本しか知らなかったなあと実感…。
職場でもよく出てくるDNSについて、理解を深められて良かった(^^)
このDNSの理解をもとに、独自のDNS技術をもつKubernetesの機能についても勉強していくぞー