データフォーマット

Ethernet Frame(46 - 1518 bytes)

1.Destination Mac Address
6 bytes
2.Source Mac Address
6 bytes
3.Ether Type
2 bytes
4.Payload/Data(IP Packet)
46 - 1500 bytes
5.CRC Checksum
4 bytes
  • 1,2,3,4がヘッダ(合計18 bytes)
  • Maxmum Transmission Unit(MTU)はヘッダ18bytesを除いた1500 bytes
  • フレームサイズは最大1518 bytes

IPv4 Packet(1480 bytes)

1.Version
4 bits
IPバージョン(4が入る)
2.Internet Header Length
4 bits
3.Type of Service
1 bytes
4.Total Length
2 bytes
IPヘッダを含むパケット長
5.Identification
2 bytes
6.Flags(Various Control Flags)
3 bits
断片化制御に使用
7.Flagment Offset
13 bits
8.Time to Linve
1 bytes
9.Protocol
1 bytes
10.Header Checksum
2 bytes
IPヘッダのみの誤り検出
11.Source IP Address
4 bytes
12.Destinagion IP Address
4 bytes
Options
3 bytes
Padding
1 bytes
Payload(TCP/UDP Data)
1480 bytes(Option未使用の場合)
  • 一般的に1~12がヘッダ(合計20 bytes)
  • Maxmum Transmission Unit(MTU)はヘッダ20bytesを除いた1480 bytes
  • パケットサイズは最大1500 bytes

トンネリングプロトコル

GRE(Generic Routing Encapsulation):RFC 2784

  • 通常ルータ間でカプセル化
  • マルチキャストパケットをカプセル化できる
  • 暗号化機能を持たない

L2TP(Layer 2 Tunneling Protocol):RFC 2661

  • IPネットワーク上でレイヤ2通信を実現
  • VPNクライアントとVPN装置間でPPPトンネルを構築
  • PPPフレームをL2TPヘッダ、UDPヘッダ、IPヘッダの順にカプセル化する
  • 暗号化機能を持たない

PPTP(Point to Point Tunneling Protocol):RFC 2637

    PPPヘッダごとGREでカプセル化する

IPSec:RFC 4301

通信モード

  1. トランスポートモード
    データ部のみ暗号化
    全区間トンネリング
  2. トンネルモード
    ヘッダ部も含めて暗号化
    新IPヘッダ付加
    通信経路の一部の区間をトンネリング

プロトコル

  1. AH(Authentication Header)
    データの認証を行う
    データの暗号化は行わないが外側IPヘッダも認証する
  2. ESP(Encapsulating Security Payload)
    データの認証と暗号化を行う
    外側IPヘッダとESP認証データは暗号化および認証の範囲外で、ESPヘッダは暗号化の範囲外

フェーズ

  1. ISAKMP SA(IKE SA)
    鍵交換に使用される制御用トンネル
    メインモードとアグレッシブモードがある
    メインモード
    双方のIPアドレスは固定である必要がある
    アグレッシブモード
    イニシエータは動的IPアドレスが使用できる
  2. IPSec SA
    データ通信用のトンネル

IKE(Internet Key Exchange)

  • IPSecの鍵交換で使用されるプロトコル
  • UDP 500番を使用
  • 起動側をイニシエータ、応答側をレスポンダと呼ぶ
  • Diffie Hellmanを使用

NAT超えの方法

  • NATトラバーサル
    新IPヘッダとESPヘッダの間にUDPヘッダを挿入する
  • VPNパススルー
    IPヘッダのプロトコルフィールドを見て、上位層がポート番号を持たない時はIPのみを書き換える
    AHの場合はIPヘッダも認証対象のため、書き換えると認証エラーとなる