IPプロトコル(2)

by 菊地時夫 last modified 2009-07-09 11:04

経路制御

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

経路制御表

  • 宛先 vs 次のルータ の表
  • デフォルトルート (Default Route)

    宛先を 0.0.0.0/0 で表す

  • ホストルート (Host Route)

    IPアドレス/32

  • ループバック

    127.0.0.1/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) の違い
  • 分割されたパケットは、再構築してから上位層へ渡す
  • 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 パケットフォーマット

  • 0123
    0123456789 0123456789 0123456789 01
    Hardware Type (=1) Protocol Type (=0x0800)
    Hardware Size (=6) Protocol Size (=4) Operation (req=1,res=2)
    Sender Ethernet Address(1)
    Sender Ethernet Address(2) Sender IP Address (1)
    Sender IP Address (2) Target Ethernet Address(1)
    Target Ethernet Address(2)
    Target IP Address

RARP

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

ARP/RARP

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

IPヘッダ

  • 0123
    0123456789 0123456789 0123456789 01
    VersionIHLType of ServiceTotal Length
    IdentificationFlagsFragment Offset
    Time to LiveProtocolHeader Checksum
    Source Address
    Destination Address
    OptionsPadding
  • STD 5

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)
  • ICMPエコーメッセージ (Type 0,8)

本日の問題

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