FiberBit | Broadband Mansion
メンテナンス・障害情報
サポート情報
・アカウント等の変更方法
・設定マニュアル
・設定方法
・ルーター設定方法
・接続方法
・FAQ
・トラブルシューティング
・出張設定サポート
各種変更・確認
・会員メニュー



(5)NAT多段使用時のMTU障害
 
NAT多段使用時のMTU障害について。
現象
  WAN側にPPPoEなどのLAN側よりも小さいMTU値を持つ回線を使用した場合、ルーター配下にPCを直結した場合には問題ないが、ブロードバンドルーター(NAT)を設置すると大きなサイズのメールの送信ができなくなる場合があります。
  原因
  これはRFC1191にて定義されているPathMTUDiscovery(PMTUD・経路MTU検出)のフローが正常に動作していないことが原因です。

MTUとはネットワークの物理的な種類によって決まるパラメーターで、一回に送信できるパケットのサイズを示します。

フレッツサービス等で使用されるPPPoE は、Ethernet上で認証を行うため、通常のEthenetフレームにPPPヘッダが含まれる分、運搬可能なパケットサイズが若干小さくなります。

具体的に言いますと、EthernetでのMTU値は1500ですが、PPPoEでのMTU値は1492になります。ただし、NTTのフレッツサービスでは、1454が使用されます。

通常、端末が送信するパケットのMTU値は、使用される物理インターフェイスに依存します。

一般的なEthernet では1500の値が使用され、送信パケットのMTUは全て1500 に設定されます。

そして送信元の端末は、接続先サーバーまでの間に異なるMTU値が存在するかどうかを、自発的に調べることはしません。

PMTUDにおけるパケットのMTU値取得の手順を簡単に解説すると下記の様なフローになります。
 
(1) 端末がインターフェイスに指定されたMTU値(1500)でパケットを送信します。
(2) MTU値が異なるセグメントを繋ぐルーターがパケットを受信すると、パケットのサイズを調べ、もしそのパケットサイズが宛先インターフェイスのMTU 値よりも大きかった場合、受信したパケットがフラグメント(細分化)可能かどうかを調べます。(TCPのフラグメントビットのフラグが立っているかを確認します。)
(3) もし、パケットサイズが宛先インターフェイスのMTU値よりも小さかった場合や、大きくてもフラグメントが許可されているのであれば、ルーターはパケットをフラグメントしてWAN側に送信します。
(4) もし、フラグメントが許可されていなければ、ルーターはそのパケットを一度破棄し、その発信元アドレスに対して正しいパケットサイズをICMP/Destination Unreacheable(DU)/Fragmentation Needed(FN)パケットにて通知します。
(5) パケット発信元端末は、ルーターからのICMPパケットを受信すると、そこに含まれる正しいMTU値を読み取り、先ほどのパケットを正しいMTU値に変更・細分化して再送信します。
(6) 項目(2)に戻ります
  問題になるのは、この項目(4)で使用されるICMPパケットが正しく発信元に届かない場合です。
つまり、正しいMTU値をパケットを発信した端末が取得できない場合には、その後に続くパケットも全てオーバーサイズのMTU値で送信されてしまうので、それらのパケットは全てルーターにて「不正パケット」として破棄されてしまいます。
  このような現象はPMTUD Blackhole と呼ばれ、RFC2923にて定義されており、具体的には以下のような状況で発生します。

・ MTU値の異なるセグメントを繋ぐルーターがICMPを送信しない。
・ 途中経路にあるルーターやFirewallがICMP/DU/FNを透過しない。
・ 途中経路にNATが存在し、ICMP/DU/FNが正しく転送されない。

この現象の発生時には、今回のケース以外にも下記の様な症状が現れます。

HTTP:特定のサイトがうまく表示されない。
FTP:コネクトはでき、ファイルが少ないディレクトリのList表示はできるが、大きなサイズのファイルをGETしようとするとフリーズしてしまう。

本現象の見分け方としては、通常は問題なく使用できるにも関わらず、大きなデーターが送られるタイミングで、そのコネクションが止まってしまうという点です。
  対処方法
  Fiber Bitにて使用しているルーターはPMTUD機能に対応していますので、問題のあるパケットを受信したとき、そのインターフェイスに対して、自動的にICMPパケットを送信します。

よって、対処方法としては、MTUサイズ変更のためのICMPパケットが正しく発信元の端末まで届くようにするか、Fiberbitマンションルーターの届くパケットのMTU 値そのものを変更する必要があります。

ただし、ユーザーが宅内で使用しているような一般的なブロードバンドルーターのNAT機能では、外部(この場合はFiber Bitマンションルーター)からのICMPパケットを内部に転送することはまずありませんので、実質的には端末そのもののMTU値を直接変更するか、ユーザーが使用しているブロードバンドルーターでMTU値を変更するしかありません。




| エフビット | 千都泥棒 | Fiber Phone |