よくある質問・用語集

  • もっと調べる
  • どうやって使う?

DNSサーバとは

DNSサーバとは、DNSに関するサービスを行うサーバの総称である。ネームサーバとも呼ぶ。大きく分けて、DNSキャッシュサーバ、権威DNSサーバの2つの機能がある。以前は、この2つのサーバ機能を一台で行うことが多かった。そのため、単純にDNSサーバと一括りで呼んでいた。しかし、DNSのキャッシュを不正に書き換えるキャッシュポイズニング攻撃が頻繁に行われるようになり、DNSキャッシュサーバと権威DNSサーバを同居することは危険であると考えられるようになった。そのため、最近では、この2つの名称で明確に分離して呼ぶことが多くなった。

権威DNSサーバ

組織で管理するホストやドメインの情報をインターネットに公開するためのサーバである。コンテンツDNSサーバともよばれる。権威DNSサーバが停止するとインターネットへの情報提供に支障があるため、通常は2台以上の権威DNSサーバを使って情報を提供する。

DNSサーバとドメイン

権威DNSサーバでは、ゾーン(zone)と呼ばれる単位でDNSのホストやドメイン(domain)を管理する。

ドメイン(domain)とは、WebサイトのURLや、メールアドレスの中で使われている組織に付けられた名前のことで、designet.co.jpのように「.」で区切って表記される。一番右端のjpの部分はトップレベルドメイン(TLD)と呼ばれ、com、org、netなど、用途や国などを示している。次の「co」の部分は、第二レベルドメイン、「designet」の部分は第三レベルドメインのように呼ぶ。www.designet.co.jpのような表記の場合、一番左側のwwwはホスト名である。

インターネットに接続する組織は、レジストラに申請することでドメインを取得することができる。ドメインを取得した組織は、ドメイン内のホストやIPアドレスの情報をインターネットに知らせるために権威DNSサーバを設置して情報を公開する。大きな組織の場合には、ドメインの中に、さらにサブドメインを作って管理することもできる。例えば、designet.co.jpにサブドメイン「sub」を作った場合には、sub.designet.co.jpのように表記する。

DNSサーバのゾーン管理

ゾーンとは、DNSの名前空間の中にあるノードや、ノードを含むそれ以下のノードの一部または全部のことを言う。つまり、designet.co.jpというドメインの場合、その配下にあるホストwww.designet.co.jpやサブドメインsub.designet.co.jpを含む全体をゾーンと呼ぶ。

権威DNSサーバは、ゾーンに対して配置され、ゾーンに含まれる下位ゾーンの管理を、必要に応じて別の権威DNSサーバに委託することもできる。DNSの名前空間の頂点は「.」で、これはルートと呼ばれる。そして、ルートを管理する権威DNSサーバを、ルートサーバと呼ぶ。ルートサーバは、.com、.net、.jpなどの自身のゾーンの一部を、別の権威DNSサーバに移譲している。そして、そのDNSサーバも、自身のゾーンの一部を別のDNSサーバに移譲する。このように、DNSの名前空間は、DNSサーバが委譲を繰り返すことで、階層的に管理されている。

正引きゾーンと逆引きゾーン

権威DNSサーバでは、一般的に正引きゾーンと逆引きゾーンの情報を管理する。DNSによる名前解決で、www.designet.co.jpのようなドメイン名からIPアドレスを調べる通常の使い方を「正引き」と呼ぶ。これとは反対に、IPアドレスからドメイン名を調べる使い方を「逆引き」と呼ぶ。

「正引き」ゾーンは、ルートサーバを示す「.」を起点とする階層構造で管理され、「逆引き」のゾーンは、「in-addr.arpa.」を起点とする階層構造で管理される。192.168.1.1というIPアドレスの逆引きの情報は、1.1.168.192.in-addr.arpa.のように、「in-addr.arpa.」を起点としてIPアドレスを逆に並べた形式で表記される。通常、権威DNSサーバでは正引きと逆引きの両方のゾーンを管理するのが一般的ある。

権威DNSサーバに登録される情報はレコードと呼ばれる。ドメインを管理するDNSサーバの情報はNSレコード、管理するIPv4アドレスの正引きの情報はAレコード、IPv6アドレスの正引きの場合にはAAAAレコード、 逆引きの場合にはPTRレコード、のように、いくつかの種類のレコードが用意されている。

マスタサーバとスレーブサーバ

権威DNSサーバのサービスが利用できないと、インターネットからWebサイトへのアクセスができなくなったり、メールが届かなくなったりする。そのため、権威DNSサーバは、非常に重要なサービスである。そのため、1つのゾーンに対して、2台以上の権威DNSサーバを配置するのが一般的である。この構成を実現するために、1台をマスタサーバとして配置し、残りをスレーブサーバとして配置する方法が使われる。

マスタサーバもスレーブサーバも、管理するIPアドレスやホスト名の情報を提供する点では、まったく同じ機能を提供する。そして、クエリはマスタサーバとスレーブサーバに分散される。ただし、マスタサーバは、ゾーンのデータベースを持っていて、登録、管理を行なうことができる。一方、スレーブサーバはマスタサーバと通信し、ゾーンの情報を受け取りコピーを保存し、その情報を提供するサーバである。データの登録や変更は、常にマスタサーバに対して行う。マスタサーバのデータ変更をすると、自動的にスレーブサーバの情報が更新される。

DNSキャッシュサーバ

DNSサーバのうち、利用者から名前解決のリクエストを受け結果を返す役割のサーバである。例えば、wwww.designet.co.jpという名前から、IPアドレスを調べるような用途で使われる。

利用者は、一般的に1つのDNSキャッシュサーバに問い合わせを行う。DNSキャッシュサーバは、依頼のあった名前解決の処理を行うために、複数の権威DNSサーバに検索を行い、利用者に結果を返す。

DNSキャッシュ

DNSキャッシュサーバは、DNSの名前解決をできるだけ短い時間でおこなうため、問い合わせの調査結果をキャッシュする。例えば、Googleのような多くの人が頻繁に利用するようなサイトの情報は、リクエスト毎に何度も調査するのは不経済である。そのため、DNSキャッシュサーバは、調査した結果をキャッシュとして保管する。DNSのデータには有効期限(TTL)が設定されていて、この時間が経過した古い情報を廃棄することで、常に新しいデータを管理することができる。

キャッシュポイズニング

インターネットでは、DNSを基礎として様々な情報が交換されている。そのため、DNSサーバのデータを改竄すると様々な不正が可能になる。例えば、メールサーバのアドレスを改竄されると、別のメールサーバでメールを受け取ることができてしまう。そのため、DNSの情報を改竄する目的で、DNSキャッシュサーバに攻撃が行われることがある。このような攻撃は、キャッシュポイズニング攻撃と呼ばれている。

オープンレゾルバ

インターネット上に公開され、どこからでもアクセスできるDNSキャッシュサーバをオープンレゾルバと呼ぶ。オープンレゾルバは、他のサイトの攻撃に使われてしまう可能性があり、たいへん危険である。そのため、DNSキャッシュサーバにはアクセス制御を実施する必要がある。DNSサーバへの検索リクエストに対して応答を返すホストを限定し、それ以外のホストからの検索リクエストにはエラーとなるように設定しておく。

DNSSEC

キャッシュポイズニング攻撃によってデータが改竄されることを防ぐために、DNSSECと呼ばれる仕組みが用意されている。DNSSECでは、暗号鍵の技術を使って、DNSの情報に署名を設定し、正しい情報かを検証できるようにしている。DNSキャッシュサーバは、DNSの情報が正しいかを確認するため、DNSSECを使った検証を行うべきである。

DNSキャッシュサーバの設定

DNSキャッシュサーバは非常に重要なサービスを提供している。もし、DNSキャッシュサーバが利用できなくなると名前解決を行うことができなくなり、インターネットのほとんどの機能が利用できなくなってしまう。そのため、Windowsパソコンでも複数のDNSキャッシュサーバを登録できるようになっている。できるだけ、複数のDNSキャッシュサーバを設定することが望ましい。

DNSサーバのソフトウェア

DNSサーバとしては、古くからBINDが使われてきた。しかし、近年は多くの脆弱性が発見され頻繁にバージョンアップが行われている。BINDは、権威DNSサーバの機能とDNSキャッシュサーバの機能の両方を持っている。このため、非常に汎用的に利用できる一方で、コードが複雑で脆弱性が潜みやすいと言われている。

そのため、最近では、権威DNSサーバの専用のソフトウェア、DNSキャッシュサーバ専用のソフトウェアが使われるようになった。

DNSキャッシュサーバ専用のソフトウェア

DNSキャッシュサーバのソフトウェアとしては、unboundがよく使われている。RedHat Enterprise LinuxやCentOSにも採用されている。unboundには、非常に多くの攻撃対策機能が実装されている。例えば、Rate Control機能では、リクエストが多すぎるクライアントを検知して、自動的に対策を行なうことができる。また、攻撃を分析するため、DNSTAPなどの機構を通じてDNSの問い合わせを高速にログに保管する機能なども備えている。

権威DNSサーバ専用のソフトウェア

権威DNSサーバのソフトウェアとしては、PowerDNS、NSD、knotDNSなどが使われている。NSDやKnotDNSは、BINDにくらべて性能が良いことで知られている。

PowerDNSは、バックエンドにデータベースを使えるという特徴があり、Poweradminと呼ばれる管理ソフトウェアでWebインタフェースから管理を行うことができる。BINDの設定は独自のフォーマットで行う必要があり、難易度が高い。しかし、PowerDNSなら知識がない人でも管理を行うことができる。DNSSECなどの複雑な設定も簡単に行うことができる。PowerDNSは、性能的にもBINDより高速である。

DNSサーバ関連のコマンド

ipconfig

Windowsでは、ネットワークのプロパティにDNSキャッシュサーバを設定する。DHCPなど動的アドレス割り当てを利用するしている場合には、実際の設定の状況を調べるには、コマンドプロンプトやPowerShellからipconfigコマンドを利用する。

nslookup

nslookupは、古くから使われているDNSサーバへ問い合わせを行うコマンドである。次の例のように、ホスト名を入力するとIPアドレス(IPv4とIPv6)を検索して表示する。また、IPアドレスを入力するとホスト名を検索して表示する。WindowsでもLinuxでも利用することができる。

$ nslookup
> www.designet.co.jp
Server:        127.0.0.53
Address:    127.0.0.53#53

Non-authoritative answer:
Name:    www.designet.co.jp
Address: 192.168.0.2
Name:    www.designet.co.jp
Address: 2001:268:35d::53:1

host

nslookupは、最近では利用が推奨されなくなった。代わりに使われているのがhostコマンドである。次の例のように、引数にホスト名やIPアドレスを指定すると、非常にシンプルに検索結果を表示してくれる。

$ host www.designet.co.jp
www.designet.co.jp has address 192.168.0.2
www.designet.co.jp has IPv6 address 2001:268:35d::53:1

残念ながら、Windowsでは利用できない。

dig

digは、次の例のように最も詳細な情報を調査することができるコマンドである。

$ dig www.designet.co.jp
; <<>> DiG 9.11.27-RedHat-9.11.27-1.fc33 <<>> www.designet.co.jp
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47418
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;www.designet.co.jp.        IN    A

;; ANSWER SECTION:
www.designet.co.jp.    1882    IN    A    192.168.0.2

;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: 金  2月 05 15:43:33 JST 2021
;; MSG SIZE  rcvd: 63

【カテゴリ】:DNS  ネットワーク  ネットワークインフラ  

  • もっと調べる
  • どうやって使う?

【Webセミナー】様々なサービスに顔認証を導入できる『FaceAuth(フェイスオース)』紹介セミナー

日程: 11月26日(金) Webセミナー「BigBlueButton」を使用します。
内容: 今回は、弊社が提供する顔認証システム『FaceAuth(フェイスオース)』についてご紹介します。
ご興味のあるかたはぜひご参加ください。

セミナー申込

関連用語

DNSサーバに関連するページ(事例など)

DNSサーバとは先頭へ