「192.168.x.x」のようなIPv4のIPアドレスは見慣れているでしょう。いまだに普及期を脱し切れないIPv6も、「fe80::x」のようなリンクローカルアドレスはよく見かけるでしょう。

 IPv4/IPv6はネットワーク層に属しています。このレイヤーのプロトコルとしては、IPパケットのセキュリティを担保するIPsecがあります。よく利用するICMP(ping)もネットワーク層のプロトコルです。

▼リンクローカルアドレス
特殊なIPアドレスの一種で、すべてのNICが備えているアドレスです。
▼IPsec
Security Architecture for Internet Protocolの略です。
▼ICMP
Internet Control Message Protocolの略です。
▼ネットワーク層
以前のパソコンLANではIPX(Internetwork Packet Exchange)というプロトコルも使われてきました。米ノベルのネットワークOS「NetWare」で使われていたからです。最近のOSでは標準で対応しなくなってきています。インターネットの普及とともにIPが主流になって、すっかり廃れてしまいました。

シンプルなIPv6のヘッダー

 IPv4とv6のヘッダーを比較すると、IPv6のほうがシンプルな構造をしています(図4-1)。IPv4は1981年9月にRFC化されました。筆者がまだ4歳の時です。読者の中には、まだ生まれていなかった人もいるでしょう。その頃に将来を見越して作った仕様なので、実際には使っていない機能もあります。例えば「サービスタイプ」はIPパケットの優先度を表すフィールドですが、ほとんど使われていません。

図4-1●IPパケットの構造
IPv4では20バイトだったヘッダー部が、IPv6では40バイトに増えた。「TTL」と「最大ホップ数」のように、IPv4とIPv6でヘッダー中の位置や名称が変わっても役割が変わらないものがある。
[画像のクリックで拡大表示]

 IPv4パケットをWiresharkで見てみましょう(図4-2)。フラグメント化禁止のフラグが立っています。MTUの値を超えたサイズのパケットが送られてきたルーターは、自分のIPの機能を使ってパケットを複数に断片化(フラグメント化)して送信する仕様になっています。しかし、実際にはそのような処理をせず、パケットを廃棄(ドロップ)し、エラーのみを返すルーターが多いのです。

図4-2●WiresharkでIPv4パケットを確認
WiresharkでパケットをキャプチャーしてIPv4パケットを見たところ。上位のプロトコルの情報などが見てとれる。
[画像のクリックで拡大表示]

 これはフラグメント化されたIPパケットにセキュリティ上の問題があるためです。このため、フラグメント化されたIPパケットが送られてくると問答無用で廃棄するのです。

▼あるためです
「teardrop攻撃」のように、フラグメント化されたIPパケットのオフセット値を改ざんする攻撃があります。オフセットは断片化したデータの位置を表します。また、セキュリティパッチの当たっていないWindows NTやWindows 2000では、フラグメント化されたパケットを送ると動作不能にできる「IPフラグメント攻撃」が有効でした。

この先は会員の登録が必要です。有料会員(月額プラン)は申し込み初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら