iptablesのマングルテーブルとは何ですか?


28

Ubuntuサーバーでパケットをフィルタリングおよび操作するためにiptableルールを使用しています。しかし、マングルテーブルは理解できません。

このiptablesチュートリアルから引用:

このテーブルは、既に述べたように、主にパケットのマングリングに使用されます。言い換えれば、TOS(Type Of Service)フィールドなどを変更するために使用できるマングルマッチなどを自由に使用できます。

このテーブルをフィルタリングに使用しないことを強くお勧めします。この表ではDNAT、SNAT、マスカレードも機能しません。

誰でもマングルテーブルを説明して、いつ使用するかを理解するための例を提供できますか?


6
iptables(8)manページには、マングルテーブルの使用方法のいくつかの素敵な例を含め、必要な情報のすべてを持っています。
マイケルハンプトン

回答:


23

他の良い答えに加えて、最近、マングルテーブルを使用して、PPPoE、PPP、およびATMを介してもたらされるトラフィックに起因するMTU(最大伝送ユニット)の不一致を調整する必要がありました。通常の1500バイトのイーサネットフレームから。

通常のように、パイプの両端のシステムは、MTUが通常のデフォルトの1500であるため、そのサイズのIPフレームを送信しようとします。実際の利用可能なペイロードサイズが小さかったので、これはパケットの断片化を引き起こしますが、送信者がパケットを断片化しないように要求することが多く、そのため最終的に完全にドロップされます。

理想的な世界では、パスMTUディスカバリーにより、エンドポイントは必要に応じてMTUを調整できますが、このディスカバリーはICMPに依存しており、私の制御外のネットワークは多くの場合、セキュリティ上の理由でICMPをドロップするように構成されていました。

唯一の選択肢は、TCP SYNパケットを変更してトランスポート層の最大セグメントサイズを小さくするために、ルーターでパケットマングリングを使用することでした。

iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1452

この種のことは厄介であり、理想的には避けるべきですが、他の選択肢はなく、これで問題は解決しました。

これらの例がマニュアルページと同様に役立つことを願っています。


23

最近ここで良い説明を見つけました。基本的に、IPパケットに特定のヘッダーを設定して、さらに行われるルーティングの決定に影響を与えるために使用されます。もしあれば、TTLオプションがおそらく最も興味深いでしょう:

TTLターゲットは、パケットのTTL(Time To Live)フィールドを変更するために使用されます。特定のTTLのみを持つようにパケットに指示することができます。この理由の1つは、おせっかいなインターネットサービスプロバイダーに身を任せたくないことです。一部のインターネットサービスプロバイダーは、単一の接続で複数のコンピューターを実行しているユーザーを嫌い、異なるTTL値を生成する単一のホストを探し、これを単一のコンピューターに接続された複数のコンピューターの多くの兆候の1つと見なすインターネットサービスプロバイダーがいくつかあります接続。

他のターゲットはTOS, MARK, SECMARK, CONNSECMARKです。


4
Mangleは、パケットのマーキングを処理するためにQOSで使用されたり、パケットを異なるルートに配布するためのデータ負荷分散で使用されます。
トムトム

8

iptables noobとして、私は言うでしょう:マングルテーブルは、パケットのヘッダー内のいくつかの特別なエントリを変更することができます。(例:サービスの種類、生存期間)(特別なマークとセキュリティコンテキストマークを設定することもできます)


2

良い深いダイビングが、iptablesの上のチュートリアル理解することはそれほど難しくありませんがあり、ここでは

マングルテーブルは、パケットのIPヘッダーをさまざまな方法で変更するために使用されます。たとえば、パケットのTTL(Time to Live)値を調整して、パケットが維持できる有効なネットワークホップの数を長くしたり短くしたりできます。他のIPヘッダーも同様の方法で変更できます。

このテーブルは、他のテーブルおよび他のネットワークツールでさらに処理するために、パケットに内部カーネル「マーク」を配置することもできます。このマークは実際のパケットには触れませんが、カーネルのパケット表現にマークを追加します。

また、すべての部品がどのように組み合わされて相互作用するかを明確に説明しているので、私を大いに助けてくれました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.