1 - DNS 入門:インターネットの住所録

DNS とは?

私たちの DNS 記事シリーズへようこそ!技術的な詳細に立ち入る前に、まずシンプルな問いから始めましょう:DNS とは何でしょうか?

想像してみてください。あなたのスマートフォンの連絡先。友達の電話番号をひとつひとつ覚える必要はなく、名前を思い出すだけで十分です。友達「张三」に電話したいときは、連絡先で名前を探してタップするだけ。スマートフォンが自動的に「张三」の番号を見つけて発信してくれます。

DNS(Domain Name System、ドメインネームシステム) は、まさに「インターネットの連絡先」のような役割を果たします。覚えやすいウェブサイトのドメイン(例:www.google.com)をコンピューターが理解できる IP アドレス(例:172.217.160.78)へ「翻訳」するのが役目です。DNS がなければ、ウェブサイトにアクセスするために規則性のない長い数値列を覚えなければならず、それはほぼ不可能でしょう。

DNS はどのように動くのか?

この「翻訳」処理は、裏側で電光石火のうちに完了します。ブラウザに URL を入力すると、おおむね次のステップが実行されます:

  1. リクエスト:パソコンやスマートフォンが DNS リゾルバー(Resolver)にリクエストを送信します:「www.example.com の IP アドレスは?」
  2. クエリ:DNS リゾルバーは探偵のように、階層的な問い合わせを通じ(ルートサーバー→トップレベルドメインサーバー→権威 DNS サーバーの順で)答えを見つけます。
  3. レスポンス:見つかったら、リゾルバーは IP アドレスをパソコンに返します。
  4. 接続:ブラウザはその IP アドレスを使ってウェブサイトのサーバーと接続し、最終的にページコンテンツを画面に表示します。

このシリーズでは何を学ぶ?

DNS の世界はこの単純な比喩よりもずっと奥深く複雑です。このシリーズでは、DNS の様々な側面を詳しく掘り下げます:

  • 基本概念:ドメイン、IP アドレス、およびそれらの関係を深く理解。
  • レコードタイプ:A レコード、CNAME レコード、MX レコードなど、さまざまな DNS レコードの用途を学習。
  • サーバータイプ:リカーシブサーバー、権威サーバーなど、異なる役割を担う DNS サーバーを理解。
  • DNS クエリの流れ:完全な DNS クエリがどのように実行されるかを詳細に分解。
  • DNS キャッシュ:DNS キャッシュがどのようにウェブサイトへのアクセス速度を向上させるかを探る。
  • プライベート DNS:ネットワークのセキュリティとプライバシーを高めるプライベート DNS サービスの構築・活用方法。

ネットワーク知識に触れ始めたばかりの初心者でも、既存の基礎知識を整理したい開発者でも、このシリーズが明快で分かりやすい導きとなるでしょう。

それでは、DNS の探求の旅を始めましょう!

2 - パブリックサービス

まず最初に, 一部の家庭用ネットワークはサービス契約締結時の契約書により商用利用が禁止されている点を示しておく必要がある. 実際の運用では商用かどうかを問わず, インターネットの http/https 接続が多数(一部の人によると 250 件)に達するとサービスが降格され, ネットワークにさまざまな影響が出る. したがって, 一般ユーザーに公開するサービスは商用サービスとして扱い, できればクラウドプロバイダの VPS を借りてパブリックサービスを提供することを推奨する.

3 - デバイス

ここでは、家庭用サービスを稼働させるために使えるデバイスについて考察します。

ハードウェアプラットフォーム

家庭向けデバイスには多くの選択肢があります。退役したノートPCや使われていないデスクトップPC、さらには電子商取引サイトで見つけられる開発ボード、NAS、ソフトルーター、Macなど、これらすべてがサービスを稼働させることができます。

ハードウェア選択においてはx86プラットフォームにこだわりすぎない方がよいでしょう。ARMプラットフォームは成熟しており、価格が安く、パフォーマンスも十分で、省エネルギーで、エコシステムも豊富です。家庭での使用に適しており、古いソフトウェアを必ず動作させる必要がない場合は、ARMプラットフォームは優れた選択です。

AppleデバイスにWindows/Linuxをインストールしたり、非AppleデバイスにHackintoshやHackintosh NASをインストールすることは、研究に時間がかかり、技術ベースを備えていて、試行錯誤を楽しむ人に適しています。しかし、正直なところ、それに見合う価値はありません。

デバイス選択の参考指標

  • CPU: 消費電力/パフォーマンスタイプ比率を考慮
  • メモリ: 最低4GBから
  • ストレージ: 冗長性と拡張性を考慮
  • ネットワーク: ギガビットポートは基本的な要件
  • 冷却: 24時間365日稼働するためには信頼度の高い冷却が必要
  • 騒音: 設置場所により騒音要件が決まる

オペレーティングシステム

エコシステムが最も豊かで、ツールソフトウェアが最も多いのはLinuxです。コマンドラインワークは一部のユーザーにとってはよりシンプルな操作であり、Linux上では自動化を簡単に実現できます。操作ベースを持つユーザーに適しています。 Linuxでは様々な選択肢があります。プロユーザー以外はUbuntu Desktopを検討することもできます。Hackintosh NASも選択可能ですが、問題が発生した場合は自分で解決策を見つける必要があります。

Windowsシステムは最も広範なユーザー層を持ち、ほとんどすべての人のニーズはWindows上のIIS(Internet Information Services)で満たすことができます。マウスを動かす程度で十分な機能を実現できます。 Windowsのインストールについてはmassgrave.devを参照してください。

AppleのARM CPUは非常に優れており、Mac miniはコスト効果のあるハードウェアオプションとなっています。ただし、macOSシステムはUIとコマンドラインを交互に使用する必要があり、いずれも完全に離れることはできません。技術ベースを持つユーザーに適しています。

システム選択アドバイス

  • ユーザーエントリー: Windows + Docker Desktop
  • 日中のユーザ: Ubuntu Server/Debian
  • 高い安定性が求められる: RHEL/Rocky Linux
  • 特定のニーズ:
    • メディアサーバ: unRAID
    • ストレージ志向: TrueNAS
    • 全機能 NAS: Synology DSM

推奨デバイスとシステム

専門ユーザーには多様なニーズがありますが、プロユーザー以外のニーズは総じてNASです。電子商取引サイトでNASを検索し、必要に応じて購入してください。

もし節約したい場合は、家にあるいらないデバイスや、それほど高価でないホストを取得したビンフリマを使用して、Windows Server 2022/2025やHackintosh NASをインストールすることもできます。

データセキュリティ

ハードディスク破損

ハードディスクの破損は最初は時折読み取れないだけですが、完全に読み取れなくなる前に復元しようとしても、一つは復元が高額である可能性、二つは一部のハードディスクベンダーが復元能力を持っていない可能性があります。 そのため、ハードディスクアレイボックスを購入し、ディスクアレイを構築することを推奨します。Hard diskの5年破損率が10%の場合、双アレイの破損率は1%となり、同時に破損しなければ、破損したハードディスクを交換することでデータを失わずに済みます。

データ盗難

もしハードディスクが盗まれ、すべてのデータが暗号化されていないと、追加の問題が生じる可能性があります。特に、機密文書やパスワードバックアップなどのプライベートデータが挙げられます。すべてのディスクを暗号化するように推奨され、ハードディスクが盗まれても損害を減らすことができます。 暗号化を有効にするとシステムリソースの一部が使用されるため、計算リソースに敏感なユーザーは暗号化を無効にすることもできますが、ハードディスクのセキュリティに注意する必要があります。

複数のバックアップ

家のハードディスクは完全に安全ではなく、泥棒や子供、地震や洪水、あるいはネット上のランサムウェアなどが原因でデータが失われる可能性があります。そのため、複数のバックアップを推奨し、信頼できるクラウドサービスを見つけて重要なデータをバックアップしてください。

ネットワークセキュリティ

直結 IP を不用意に公開しない

一部のネットワーク設定により、一部のデバイスが独立した公衆 IPv6を取得することができるため、これらのIPv6をポートスキャンに利用することができます。ポートをスキャンすると、一部のサービスには脆弱性が存在し、攻撃者が利用する可能性があります。 したがって、明確なニーズがない限り、家庭ネットワークのIPv6はNAT6に設定し、レイアウト変換を行い、直結IPがスキャンされないようにすることを推奨します。サービスを外部に公開する必要がある場合は、DMZホストを設定してください。 自己用の場合は、wireguard/tailscale/zerotier/cloudflareを使用してVPNを構築し、VPN経由で家のサービスにアクセスすることを検討してください。

不用意にソフトウェアをインストールしない

大衆的なものでも小規模のものでも、ソフトウェアは脆弱性を持つ場合があり、ソフトウェアのアップデートに注目し、脆弱性があれば速やかにアップデートし、使用しないソフトウェアは速やかにアンインストールしてください。ソフトウェアに高権限を与えるべきではありません。

ファイアウォールを使用する

ファイアウォールを無効にすると、一時的な快感がありますが、それまでに攻撃される日が来るまでです。条件があれば、ルールの設定について少し研究し、簡単に無効にしないようにしてください。

セキュリティソフトウェアを使用する

一部のセキュリティソフトウェアは無料であり、何らかの保護能力があります。何も入れないよりは若干良い傾向があります。

セキュリティアドバイス総括

  • ネットワーク区画: VLAN セグメント化
  • アクセス制御: リバースプロキシ+認証
  • 監視&アラート: ハードウェアステート監視
  • バックアップ戦略: 3-2-1 原則
    • 3つのバックアップ
    • 2つのメディア
    • 1つの場外

4 - デバイスの分類

  • デバイスの分類

世間のNAS、ソフトルーター、Mac mini、ルーターといった機器を「デバイス」というひとくくりに抽象化し、名称や外部形態にとらわれることなく、プロセッサストレージネットワークアプリケーションエコシステムという4つに焦点を当てて考える。

プロセッサを検討する際にはまずアーキテクチャ重視となる。一般的に使われるのはx86およびARMであり、それ以外のアーキテクチャは専門家でなければ選ばないことを推奨する。乏しいエコシステムは学習・運用コストを増やす。

こうした中、「ARMは低消費電力向けで家庭利用に適し、x86は高性能向けで企業に適する」といった見解も見受けられる。しかし、本稿を執筆する2024年時点では、この議論は既に陳腐化しており、判断はエコシステムベースで行うべきである。現状ではARMエコシステムは非常に充実しており、さらに優れたコストパフォーマンスを誇るため、積極的な選択肢となる。専門家以外の方はARMアーキテクチャのデバイスを選ぶだけで十分であり、例えばAlibaba CloudではARMデバイスの価格がx86の半分で済み、家庭用途には十分なパフォーマンスを発揮する。専門家の場合はニーズに応じてx86アーキテクチャのデバイスを選択すればよい。