ネットワークへの接続


🐡 必要な処理

IPネットワークへの接続の際には、おおむね次の処理が必要になります。

  • ハードウェアのネットワークインタフェースを利用可能にして物理的にネットワーク接続します
  • ホスト名とネットワークアドレスを割り当てます(ネットワークによってはDHCPが行います)
  • デフォルトゲートウェイを設定します
  • 必要なネットワーク設定をブート時に実行できるようにします
  • ネットワーク接続をテストします
  • 利用しようとしているネットワークサービスを設定し、使用可能にします

🐠 パケットの宛先

  • OSが内部で保持している宛先ごとの中継ルータの情報をルーティング・テーブルと呼びます
    • ルーティング・テーブルの表示は、 netstat -rn で表示できます
  • どの宛先にもマッチしないパケットは、デフォルトゲートウェイに送られます

🤔 名前解決(IP <=> ホスト名の変換)

ホスト名を対応するIPアドレスに変換する処理は次のように行います。

  • /etc/hosts ファイルに記載されている対応づけを参照します
  • DNS(Domain Name Service) サーバと通信し、検索を行います

🗽 DNS (Domain Name System)

DNSはホスト名とIPアドレスをマッピングして相互解決するための分散データベースです。

  • DNSの名前空間は木構造となっており、ドメイン・ツリーと呼ばれます
  • アプリケーションからの要求で名前解決を行うソフトが「リゾルバ/etc/resolv.conf
  • リゾルバ => ルートDNS => TLD => 下位のDNSの順に問い合わせを行い、名前解決します



参考元: 初めてUNIXで仕事をする人が読む本

🚌 DHCP (Dynamic Host Configuration Protocol)

  • 有効なIPアドレス、ネットマスク、DNSサーバなどの設定を情報を提供します
  • 設定した範囲内で個々のIPが動的に割り振ります
  • 設定パラメータも割り当てられるので、管理コストを削減できます

🎳 参考リンク

📚 おすすめの書籍

🖥 サーバについて

このブログでは「Cloud Garage」さんのDev Assist Program(開発者向けインスタンス無償提供制度)でお借りしたサーバで技術検証しています。 Dev Assist Programは、開発者や開発コミュニティ、スタートアップ企業の方が1GBメモリのインスタンス3台を1年間無料で借りれる心強い制度です!(有償でも1,480円/月と格安)