はじめてUNIXで仕事をする人が読む本 の備忘録 15 IPと関連プロトコル

はじめてUNIX で仕事をする人が読む本 の備忘録 15

お世話になった本

この連載ブログを書くにあたり、お世話になった本がこちら。LPICと被っているところもありますが、実務での使い方なんかも扱っており、良書だと思います。

第15章 IP と関連プロトコル

IP (Internet Protocol) はコンピュータ同時の通信を行う際に、通信の単位であるパケットの配送を制御するプロトコルである。

IP の基本

IPを理解する上で非常に重要になるのが「IPアドレス」と「ルーティング(経路制御)」である。
ちなみに、IPはルーテッド(Routed)プロトコル、パケットの経路を制御するプロトコルを、ルーティング(Routing)・プロトコルと呼んだりする。

IP アドレスによって「どこに」、ルーティングによって「どのような経路で」パケットを決定し、通信が可能になる。

IPv4IPv6

IPv4IPv6 がある。残念ながら、互換性はない。
しかも、移行のことを考えていると、IPv4IPv6に埋め込めなったりするので、IPv10 が考えられていたりする。
※完全に余談だが、IPv5, IPv7, IPv8, IPv9 は既に定義されている。IPv10はアサインされておらず、現在議論中のようだ。

IPv10 RFC.

IP アドレス

とりあえず、ここは割愛

特殊なIPアドレス

特殊な用途に使用されるIPアドレス
特定用途のアドレス

  • ループバックアドレス
  • ネットワークアドレス
    • IPアドレスのうち、サブネットマスクで指定されているビットのみをネットワークパート、残りのビットをホストパートと呼ぶ
    • ネットワーク空間を表現するときに使われる
  • 未定アドレス
    • まだIPアドレスが決まっていないネットワークインターフェースから送出されるパケットの送信元アドレスは、IPv4 で0.0.0.0、IPv6なら::。
  • ユニキャストアドレス
  • マルチキャストアドレス
    • 0台以上のホストからなるグループを指すIPアドレス
    • 1:n 通信の時に使用される
  • エニーキャストアドレス
    • 0台以上のホストからなるグループを指すIPアドレス
    • パケット送出時に宛先IPアドレスに指定することで、グループに属するホストのうちどれか1台に届くことを期待できる
    • 1:1 通信用に使用される
    • エニーキャストアドレスを使用する場合には、例外的にネットワーク上に同じIPアドレスを持つホストが複数台存在することを許可する
    • どれにパケットが届くかを特定することは出来ない
    • DNS サーバや DHCP サーバなどで使われることが想定される
  • ブロードキャストアドレス

アドレスのスコープ(範囲)

  • グローバルアドレス
  • プライベートアドレス
    • インターネット上で使用されないことが保証されているIPアドレス
    • 組織内や、家庭内、個人環境で使える
    • インターネット上に出してはいけない
  • リンクローカルアドレス
    • 同じネットワークアドレスを割り当てる範囲に相当するネットワークリンク上でのみ一意性が保証されているIPアドレス
    • 単一のデータリンクか、若しくはL2ブリッジなどで接続されている複数のデータリンクからなるネットワークが対象
    • ルータを越えてルーティングしてはいけない
    • IPv4 では、169.254.0.0/16、IPv6 ではfe80::/10。
  • ISP シェアドアドレス
    • いわゆるキャリアグレードNATで提供されるIPアドレスの事
    • IPv4 のみ
    • 100.64.0.0/10

ルーティング

IPパケットを最終的な目的ホストに正しく転送する制御がルーティング
ネットワークに接続するホストが増えてきたり役割が増えてきたことにより、ルーティングが必要になってきた。
スタティックルーティングだけでは限界が見えたこともある。
ダイナミックルーティングもある。
詳しくは、書籍やWebで。

関連プロトコル

IP自体にはパケットを転送する能力しか無いため、実際の通信には強調して使用されるプロトコルがいくつかある

  • ARP
  • RARP
  • ICMP
    • IPv4を補助するプロトコル
    • IPはデータの送受信を目的としているが、ICMPはデータではないコントロールメッセージの送受信を目的としている。
    • ネットワークの疎通確認でよく使われる
    • ただ、攻撃にも使えるので、グローバルアドレスの中には、ICMP パケットを落とす設定をしているものもある。
  • ICMPv6
    • IPv6 において使用されるARP及びICMPの機能を持つ
    • IPv6 はこのICMPv6 と`Neighbour Discovery (ND) を使用してサブネット内の機器のMACアドレスの探索を行う。
    • ARP と異なり、データリンク層のブロードキャストではなくIPv6マルチキャストにより探索を行う
    • ICMPv6 のRouter Solicitation 及び、Router Advertisement により、自身が属するサブネットを問い合わせて、自身でIPv6 アドレスを決定できる仕組みがある。
      • これにより、DHCP が必須ではなくなっている
  • DHCP
    • ホストの設定情報を提供するプロトコル
    • IPアドレスDNSサーバなどホストをネットワークに接続して通信可能な状態になるまでの設定情報を取得する
    • IPv4 用の機能
  • DHCPv6
    • DHCPIPv6
    • IPv4 用のDHCPが単一のIPアドレス割り当てとネットワーク設定情報の提供をまとめて行うのに対し、DHCPv6は単一のIPアドレス割り当て、ネットワークアドレスの移譲、ネットワーク設定情報の提供を行う機能が独自に用意されている
    • アドレス自動設定機能について
      • アドレス辞退の設定を行う機能しか無い
      • その他のネットワーク設定情報は提供されない
      • Route Advertisement と、DHCPv6 の機能のうちネットワーク設定情報提供機能のみを併用することが出来る
  • IPsec
    • IP パケットに付加情報を追加して安全にIP通信を行えるよう拡張したプロトコル
    • AH、ESP、IKE の3種類が利用可能
    • AH
      • Authentication Header
      • パケット全体のハッシュ値をヘッダ情報に付加
      • 受信側でIPパケットの内容が壊れていないことを確認するための機能
      • 改ざん防止用に使われる
      • 経路の途中でアドレス変換を適用された場合には、改ざんとみなされてしまう為、最近はあまり利用されていない
    • ESP
      • Encupsulated security Payload
      • IPパケットを暗号化する機能
      • AH があまり使われなくなったことでIPsec といえばほぼESP機能の事を指す
      • 暗号化と復号化は、送信側と受信側で暗号アルゴリズムや暗号鍵、IV(Initialization Vector) 等のパラメータを共有する必要がある
      • これらのパラメータは手動で設定する方法と自動で設定する方法がある
    • IKE
      • Internet Key Exchange
      • AHやESPと併用し、送信側と受信側とでパラメータの交換や一定期間ごとの自動的な鍵更新を行う機能
      • 長期にわたって同じ暗号鍵を使い続けるのは安全性の観点から推奨されない
      • ある程度以上の期間IPsec を運用する際はIKEで自動設定するのが望ましい


以上で、第15章 IP と関連プロトコル を終わります。
次回は、第16章 TCPUDP です。