IPフラグメンテーション攻撃とは?

IPフラグメンテーション攻撃とは,DoS攻撃の一種です。攻撃者は,フラグメンテーションのメカニズムを悪用して,ネットワークの帯域を埋め尽くそうとします。

IPフラグメンテーション攻撃を理解するためには,IPフラグメンテーションのプロセスを理解しなければなりません。まず,データは小さなパケットに分割され,ネットワークを経由して転送された後,データを再結合するという方法です。

フラグメンテーションはデータ転送に欠かせない技術です。なぜなら,経由するネットワーク機器にはそれぞれ,転送できるデータサイズの上限があるからです。この上限は,Maximum Transmission Unit(MTU)サイズと呼ばれています。もし,データのサイズがこのMTUサイズよりも大きい場合,データは分割して送信されることになります。


すべてのデータにはIPヘッダーが付いており,そのヘッダー内には,このデータを分割して送信してもよいかどうか,という情報が含まれています。もし,フラグメンテーションを禁止するフラグが付いてる場合,そのデータは破棄され,「ICMPデータが大きすぎるため転送できない」というメッセージをサーバーは返します。
続きを読む

MTUサイズは9216と9000のどちらを選ぶべきか

スイッチの設定を行う際に必要なのが,Jumboフレームと呼ばれる大きなパケットを送信する際の設定です。

大まかにいって9Kbyteに設定するのですが,情報によっては9000と設定するように書かれているものもあれば,9216と設定するべきと書かれていることもあります。

9216とは,1024 x 9が元になっている数字です。

では,JumboフレームのMTUサイズは9000と9216のどちらに設定すべきなのでしょうか。
続きを読む

ネットワークのMTUサイズを決定する方法

リモートデスクトップ接続で黒画面しか出てこず、タイムアウトしてしまう場合など、

MTUサイズを変更しなければならない場合があります。

そのような際に、MTUサイズの値をいくつに設定すればよいか、決定する方法です。


まず、接続するマシンのIPアドレスに、下記のようにpingを送信してみます。


ping -f -l 1472 -n 1 ***.***.***.***

-f:分割処理禁止指定
-l:送信するデータサイズ
-n:送信する回数


すると、ある値では成功し、ある値では失敗します。

1472byteでは成功

MTUサイズを決定する方法1

1473byteでは失敗

MTUサイズを決定する方法2

ですので、上記の場合の適正なMTUサイズは、成功した最大値である1472byteと、28byte(pingコマンドを打つ場合のIPヘッダとICMPヘッダの合計はいつも28byte)を足して、1500byteが適正なMTUサイズになります。

ちなみに、イーサネットのデフォルトのMTUサイズは、1500byteですので、今回は調整する必要がありませんでした。


イーサネットではなく、PPPoE接続の場合などは、さらにPPPoEヘッダのサイズを考慮しなければならないので、MTUサイズを、1454に調整してやると、ちょうどよいサイズになります。

もちろん、他にも様々な要因がありますので、上述した、pingでMTUサイズの上限を調べる方が確実だと思います。

こうして、ネットワークのMTUサイズを決定することができました。

MTUサイズを変更する方法はこちらの記事を参考にしてみて下さい。

ネットワークのMTUサイズを変更する方法

リモートデスクトップの表示で真っ黒な画面しか出てこなくなり、タイムアウトしてしまう場合など、

ネットワークのMTUサイズを変更する必要が生じる場合があります。

MTUサイズとは、ネットワークで送信可能なパケットの最大サイズのことです。

MTUサイズを超えたIPパケットは、ファイアーウォールでブロックされてしまう場合があります。

そのような時には、MTUサイズを調整する必要があります。


まず、レジストリエディターを開き、下記の項目を選択します。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces

\{interfaceGUID}


{interfaceGUID}は、ネットワークインターフェース毎に設定されている文字列です。

{interfaceGUID}を選択した状態で、【編集】→【新規】→【DWORD(32ビット)値】を新規追加します。

名前をMTUとし、値を10進数で指定します。(MTUサイズを1500byteにしたいなら、1500と入力します。)

MTUサイズの値として何byteを指定すればよいかは、ネットワークのMTUサイズを決定する方法を参考にしてください。

再起動すると、MTUサイズが変更されます。

こうして、ネットワークのMTUサイズを変更することができました。