Open2

「マスタリングTCP/IP入門編 」メモ

haseyuyhaseyuy

IPアドレスの基礎知識

  • 32ビットの正整数値で表されるホストやルータを識別する値
  • そのままだと分かりにくいので、32ビット のIPアドレスを 8ビット ずつ4つの組に分け、その境目にピリオドを入れて10進数で表現される

IPアドレスはネットワーク部とホスト部から構成される

  • ネットワーク部:そのIPが属しているネットワークを識別するための部分
  • ホスト部:ネットワーク内のコンピュータを識別するための部分
  • ネットワーク部とホスト部の境目を表す際にはCIDR表記が用いられる
  • ネットワーク部はデータリンクのセグメントごとに値が割り当てられる
  • IPアドレスのホスト部は、同一セグメント内で重ならないように値を割り当てる
  • IPパケットが途中のルーターで転送されるときは、宛先IPアドレスのネットワーク部が利用される

IPアドレスのクラス

  • クラスA:0.0.0.0 ~ 127.0.0.0
    • 下位24ビットがホストアドレス(2^24 -2 = 16,777,214)
  • クラスB:128.0.0.0 ~ 191.255.0.0
     - 下位16ビットがホストアドレス(2^16 - 2 = 65,534)
  • クラスC:192.0.0.0 ~ 255.255.255.0
    • 下位8ビットがホストアドレス(2^8 - 2 = 254)
  • クラスD:224.0.0.0 ~ 239.255.255.255
    • ホストアドレス部分はなく、IPマルチキャスト通信に利用される

特別なアドレス

ネットワークアドレス

  • ネットワークアドレスは、そのネットワーク自体を表すもの
  • ホスト部ビットがすべて0で示されるアドレス
  • ルータはルーティングテーブルにネットワークアドレスを格納し、最適な経路を決定する

ブロードキャストアドレス

  • ホスト部のビットを全て1にすると、ブロードキャストアドレス
  • 同一リンクに接続されたすべてのホストにパケットを送信するアドレス

ループバックアドレス

  • そのホスト自身を表すアドレス
  • 例:127.0.0.1

グローバルIPとプライベートIP

グローバルIP

  • インターネットで使用されるIPアドレス
  • NICと呼ばれる組織でアドレス供給の管理が行われている

プライベートIP

  • プライベートなネットワーク上で使用されるIPアドレス

サブネットワークとサブネットマスク

  • クラスごとに決まるホスト部をサブネットワークアドレス部として使うことで、複数の物理ネットワークに分割できるようにする仕組み
  • 現在IPアドレスを利用するときは、ネットワーク部とホスト部はクラスに縛られない
  • サブネットマスクという識別子によって、クラスAやクラスBのネットワークと小さく区切るサブネットマスクアドレスが利用される

CIDR(Classless Inter-Domain Routing)

  • クラスに縛られない組織間の経路制御
  • 例:192.168.123.45 / 24は上位24ビットがネットワークアドレスであることを表す
  • サブネットマスクとIPアドレスは論理積をとることで、そのIPアドレスが所属するネットワークアドレスを知ることができる
haseyuyhaseyuy

IPアドレス計算

サブネットマスクの計算

206.140.3.0のネットワークから6つのサブネットを作成し、各サブネットには最大30のホストアドレスを必要とする

  1. アドレスのクラスを確認する
     - 第一オクテットの206は192~223の範囲になるため、このアドレスはクラスC
  2. デフォルトのホスト部およびサブネットマスクを確認する
     - クラスCの場合第4オクテットのみホスト部となる
    • したがってホスト部のビットは8ビット、デフォルトのサブネットマスクは255.255.255.0となる
  3. 何ビットサブネット化するか(ホスト部との境界を右にずらす)を求める
     - 2^sの式に当てはめ、サブネットを6つ作るのに必要なビット数を求める
    • 2^1 = 2, 2^2=4, 2^3=8
    • これにより3ビットサブネット化すればよいことがわかる
  4. ホストアドレス数を確認する
    • 2^n-2の数式に当てはめ、使用可能なホストアドレス数が要件の30を満たしているか確認
    • ホスト部8ビットからサブネット3ビットをシャクよするので、実質5ビットがホスト部
    • 2^5-2=30 --- OK
  5. サブネットマスクを求める
    • サブネットに必要な3ビットを1にすると、第4オクテットは11100000となる
    • 10進数に変換すると255.255.255.224となる