IPプロトコル(2)

経路制御

  • ルーティング (routing)
  • 経路制御表
    • ダイナミックルーティング (dynamic:動的)
    • スタティックルーティング (static:静的)

経路制御表

  • 宛先 vs 次のルータ の表
  • デフォルトルート (Default Route)
    • 宛先を 0.0.0.0/0 で表す
  • ホストルート (Host Route)
    • IPアドレス/32
  • ループバック

UNIX の経路制御表

  • netstat -nr
    Routing Table: IPv4
      Destination           Gateway           Flags  Ref   Use   Interface
    -------------------- -------------------- ----- ----- ------ ---------
    192.168.201.0        192.168.201.13       U         1  79636  fjgi1
    133.97.166.0         133.97.166.13        U         1 402299  fjgi0
    133.97.166.0         133.97.166.17        U         1      0  fjgi0:1
    224.0.0.0            133.97.166.13        U         1      0  fjgi0
    224.0.0.0            133.97.166.13        U         1      0  fjgi0
    default              133.97.166.1         UG        13119322  
    127.0.0.1            127.0.0.1            UH        61769466  lo0
    

IPパケットの分割・再構築

  • MTU (Maximum Transfer Unit) の違い
    • FDDI (4352 octet) Ethernet (1500 octet) PPPoE (1492 octet)
  • 大 -> 小のところで、パケットを分割する
  • 分割されたパケットは、分割されたまま届くので、再構築してから上位層へ渡す
  • Path MTU Discovery
    • 分割するな!というパケットを送る
    • エラーが返ったら、長過ぎる

ARP

  • Address Resolution Protocol
  • IPアドレスと MACアドレスの対応
    • ARP Table (ARP 表)
    • arp -a

ARP

  • ARP要求
    • Source IP, Source MAC, Target IP をブロードキャスト
    • ブロードキャスト: 宛先MAC=ff:ff:ff:ff:ff:ff
  • ARP応答
    • ARP要求で空欄であった Target MAC を記入して、Source MAC へユニキャスト応答
  • Ethernetフレームでタイプは 0806

ARP パケットフォーマット

RARP

  • RARP要求
    • Source MAC のみブロードキャスト
  • RARP応答
    • RARPサーバが必要
    • 空欄であった、Source IP を記入して応答
  • Ethernetフレームでタイプは 0835

ARP/RARP

  • ARP ... あなた、どこにいるの?
  • RARP ... 私は誰?

IPヘッダ

IPヘッダ説明(1)

  • Version ... バージョン = 4
  • IHL ... ヘッダ長
    • オプションが無ければ 5 x 32 bit = 160 bit = 20 octet
  • TOS ... サービスタイプ
  • Total Length ... パケット長

IPヘッダ説明(2)

  • ID ... Identification
  • Flags ... パケット分割について
    • 分割可能/不可
    • 継続あり/なし
  • Fragment Offset ... 分割パケットのオフセット (どこから始まるか)

IPヘッダ説明(3)

  • TTL ... Time To Live (1ホップ毎に1減)
  • Protocol ... ペイロードデータのプロトコル
  • Header Checksum

IPヘッダ説明(4)

  • Source Address ... 送信元IPアドレス
  • Destination Address ... 宛先IPアドレス
  • Option/Padding ... あれば追加

ICMP

  • Internet Control Message Protocol
  • Protocol = 1
  • IPパケット中継などで発生したエラーを通知する
  • 相手ホストの存在を確認する
  • etc.

ICMP のフォーマット

|<-Type(8bit)->|<-Code(8bit)->|<--Checksum(16bit)-->|
|<--Data...
  • Type
  • Code (Type によって定められている)

主な ICMP メッセージ

  • ICMP到達不能メッセージ (Type 3)
  • ICMPリダイレクトメッセージ (Type 5)
  • ICMP時間超過メッセージ (Type 11)
    • traceroute に利用 (TTL を 1 から順に大きくしてパケットを送ると、途中で time exceeded が返ってくる)
  • ICMPエコーメッセージ (Type 0,8)
    • ping コマンド

本日の問題

  • 同じネットワーク上で、通信相手のIPアドレスからMACアドレスを知るために使われるのは _____ _______ Protocol ( ___ ) である。