web-dev-qa-db-ja.com

Linux-パケットを断片化しないようにインターフェースを設定する

Linuxをルーターとして使用しています。

マシンには2つのNICがあります。このルーターは実験に使用されるため、インターフェイスの1つに標準よりも低いMTUを設定しました(議論のために、MTUが200に設定されていると判断しましょう)。

現在、ほとんどのルーター(またはすべてのルーター?)は、MTUを超えるIPパケットをフラグメント化するかどうかを決定する機能を備えています。

Linuxマシンでも同じ動作をしたいのですが、パケットを断片化したくありません。特大のパケットはドロップする必要があります。 DFフラグがオンの場合、インターフェイスがICMPメッセージを返すようにします( "packet tobig。DF set to 1")

これはどのように行うことができますか?

1
summerbulb

DFビットが設定されている場合、ルーター(ここではルーターは、あるインターフェイスから別のインターフェイスにパケットをルーティングするデバイス)はフラグメント化されません。これは、断片化を望まないため、ホストがDFビットを設定できるようにする目的です。

とにかく、ルーターがDFビットが設定されているパケットをフラグメント化する場合、RFCに準拠していません。 ICMP到達不能メッセージを送信するかどうかは別の話です。

通常、この動作が必要なのは、PMTU検出が可能になるためですが、多くの人がDoS攻撃を恐れて無効にし、十分なパケットが与えられるとルーターのリソースを消費してメッセージを生成します。

さて、あなたの本当の質問に戻りましょう。それがあなたがすでに知っていることだったらごめんなさい。 iptablesには、パケットサイズに基づいてドロップする機能があります。これらのICMP到達不能メッセージを送信したくない場合は、iptablesを使用することもできます...

http://www.linuxtopia.org/Linux_Firewall_iptables/x2682.html

2
matak