DNSの歴史からわかること

2018年11月21日BIND, DNS

はじめまして。システムマネジメントサービス部の森内晃と申します。

僕はこれまで「インフラ」をメインに、さまざまなシステムを構築/運用してきました。
最近では「DNS、プロキシ、メール」などのリニューアルをしています。

はじめに

僕は、システムを作ることはもちろんですが、そのシステムが「ちゃんと動くかどうか」を見届けることが好きです。そして、システムは思ってもいない動きをすることがあります。

マクロな視点からすると、ITや企業などが想像以上に急激に変革しているからと考えられます。
「今日良かれと思って実装したものが、明日も良いとは限らない」
まさにそんな風潮の変化を感じています。

それでは、今後どのように取り組めばよいのでしょうか。

「安全で運用しやすいシステム」にするには、「見直しをするサイクル」が重要になります。過去にうまくいったからといって、同じやり方を続けるのではなく、常にIT動向と活用のベストプラクティスを蓄積し、その環境にふさわしい方策を立てることです。

僕は限られた条件の中でも「最適なシステムにしたい」という思想があります。企業などが求める要求を満たし、システムを導入/運用するのは当たり前ですが、考慮から漏れがちな、運用者のITリテラシーを把握することも大事であると感じています。

なぜならば、運用者のITリテラシーとあまりにもかい離しているシステムは、どんなに優れたシステムであっても、実質「ちゃんと動かない」からです。それは面白くありませんし、だれも幸せになりません。何事も調和が大切だということです。

また、知識や技術がつたないために努力が空回りすると、「中途半端なシステム」ができあがります。そういったシステムはすぐに壊れます。運用しづらかったり、処理が遅かったり、セキュリティにも欠陥があったりします。

多くの企業にとって、ITはビジネスを成功に導くためのツールであり、競争力や生産性の向上を実現するためのものです。そのため、「中途半端なシステム」ではなく、「安全で運用しやすいシステム」を導入し、ビジネスが成功する期待値を上げていく必要があります。

ITは1つの最適解を他のすべてに適用できるわけではありません。最適解の1つとして「そういう考え方があるのか」と思ってもらえるように、このブログを通して、僕の考えを書いていこうと思います。

DNSの歴史からわかること

前提知識の確認

まずは、前提となる知識を確認しておきましょう。

インターネットでコンピューター同士が通信するには、「IPアドレス」を使います。インターネット上の住所にあたるものがIPアドレスなので、IPアドレスを知らなければ、FacebookやTwitterなども利用できないわけです。

IPアドレスは、「192.0.2.1」というような数字の羅列になります。10進数(0~9の世界)表記なので、コンピューターが扱う2進数(0と1の世界)よりは幾分わかりやすいですが、それでも、人間が数字の羅列を記憶するには無理があります。円周率を数万桁も暗記できる人がいますが、それは限られた人であって、万人向けではありません。

そこで考えられたのが、IPアドレスをもっと人間がわかりやすい名前(ドメイン名)に置き換えてしまうということです。コンピューター同士の通信はIPアドレスですが、ドメイン名を覚えていれば、自動的にIPアドレスに変換(名前解決)してアクセスできるようになります。

この役割を担っているのが、「DNS」になります。

DNSとは…

DNS (Domain Name System)は人間にとって画期的なシステムです。当時の天才たちが、努力に努力を重ねて手に入れました。

1983年頃に誕生したDNSは、インターネット上の重要なプロトコルです。「分散処理方式」を採用し、世界中にサーバーを分散して運用しています。全体を管理しているのは、国際的な非営利団体である「ICANN」になります。

ICANNは、TLD(Top Level Domain)と呼ばれる[ .jp ]、[ .com ]などの全体の管理をしています。TLD単位の管理は、ICANNから委任された管理組織などが行っています。たとえば、[ .jp ]は、「JPRS」が管理しています。

今やインターネットを利用するユーザーは37億人を超えているそうです。調査会社ガートナーによると、2020年には200億デバイスを超えると予想されています。

インターネット上には、Facebook、Twitter、Googleなど、さまざまなサービスが溢れています。これらのサービスを利用する際にDNSが使われています。見えないところで我々の社会的インフラを支えているのです。

DNSができる前は…

1970年頃、まだDNSはありませんでした。

インターネットの起点となる「ARPANET」の運用が始まったころです。ネットワークの規模はかなり小さく、せいぜいホストが数百台程度でした。今と比較すると、雲泥の差です。

ネットワークに接続するコンピューターとIPアドレスの対応づけは、「SRI-NIC」が管理していました。「HOSTS.TXT」というファイルを保守・運用し、利用者はそのファイルをFTPで取得し名前解決しました。「集中処理方式」による運用です。

名前解決の仕方

集中処理方式の問題

利用者が少ないうちは、これでうまくいきました。1983年、TCP/IPがARPANETの標準プロトコルとして採用されます。これを機にネットワークが爆発的に拡大していきます。この時すでに数万台が利用していました。 DNSの前身は「集中処理方式」でしたが、ネットワークの成長に伴って破綻します。 問題は3つありました。

問題は3つありました。

異常な処理量に耐えられなかった(サーバー、ネットワーク)

HOSTS.TXTの容量が増大し、SRI-NICのサーバー処理やネットワークトラフィックが耐えられなくなった。

ドメイン名の重複を制御できなかった

SRI-NICにはドメイン名の割り当て権限がなく、同じ名前の登録を防止できなかった。ドメイン名が重複することで、既存のメールサービスが利用できなくなるなど大混乱する可能性があった。

ファイルの一貫性を保てなかった

HOSTS.TXTの更新が頻繁に行われるようになったため、全ての利用者が最新のファイルを持っているとは限らなかった。そのため、適切に名前解決ができず、意図したホストに接続できなくなったりした。

DNSへ移行

当時、この問題に対処できるシステムはありませんでした。根本的に作り変える必要があったのです。

1983年、要件を満たす技術仕様などをRFCにまとめます。まだ実用段階ではありません。ドメイン名の表記をどうするかなどを年単位で議論していきます。

ARPANETの利用者にDNS利用を働きかけたのが1985年となり、その頃から徐々に「DNS」へ移行します。なお、「BIND」がリリースされたのは、1984年になります。現在(2018年)も使われているように、かなり古くからある技術だといえるでしょう。

DNSはドメイン名をIPアドレスに名前解決するだけではなく、インターネット上のホストに関するさまざまな情報を公開しています。たとえば、メールの配送では、なりすまし防止のために、SPFやDKIMなどを利用して、メール送信者を認証しています。

DNSは安定運用のために絶えず「技術的な試み」を行っています。2018年は「DNSの世界的な運用変更」となる、ネット史上初の「ルートゾーンKSKロールオーバー」がありました。

今後もDNSの役割はさらに重要になることでしょう。

歴史に学ぶ(まとめ)

「名前解決」の歴史を辿ることで、DNSに必要とされることが浮き彫りになりました。それは過去の問題を解決するために、次の3つをDNSに実装することです。

  1. サーバー、ネットワーク共に、異常な処理量に耐えられること
  2. ドメイン名が重複しないように制御できること
  3. 全ての利用者が最新の名前解決情報を利用できること

DNSは黎明期の技術であり、今や複数の組織団体などで運用されています。具体的にどのような仕組みで実装されているか・・・は、次回ご紹介したいと思います。

さて、過去(歴史)に学ぶというのはとても大事です。たとえば、歴史のテストで、「何年に●●が起きた」を覚えると得点がアップしましたが、それだけでは価値がありません。

『過去に、■■という情勢・出来事があったから、●●が起きた』が分かれば、『現在、▲▲という情勢・出来事があるから、★★になるだろう』ということが想定できるようになります。

「点」だけの知識を「線」にすることが、今後の未来を創るためには必要です。過去だけに囚われず、過去を教訓として今後に活かすことが重要になります。

余談ですが、J・S・バッハといえば、18世紀を代表するクラシックの作曲家です。ピアノ用の楽譜も数多く出版されています。

現代のピアノは、ハンマーで叩いて弦を振動させて音を出す構造で、「音の強弱」を表現できます。ところが、J・S・バッハが生存していた18世紀は、まだピアノは楽器として完成しておらず、ピアノの前身となるチェンバロという楽器が主流でした。チェンバロは、爪で弦を弾くことによって音を出す構造のため、音の強弱はあまり表現できませんでした。

音楽家(演奏家)は作曲家の意図をくみ取り、当時の演奏を再現することが善しとされるので、J・S・バッハのチェンバロ曲をピアノで情緒豊かに強弱をつけて弾くことは、クラシック的には正しくないことになります。クラシック音楽は再現芸術ともいわれ、作曲家の心に感じたこと(楽譜)を忠実に音で再現します。

そういう原点回帰からも、つまり「基本に戻ること」という観点からも新たな発見があるのではないでしょうか。

  • 株式会社アークシステムの来訪管理・会議室予約システム BRoomHubs
  • 低コスト・短納期で提供するまるごとおまかせZabbix