web-dev-qa-db-ja.com

iproute2ルールとiptablesNAT ...違いは何ですか?

2つの異なるISP接続があります。以前の「IT担当者」は、ファイアウォールを次のように設定しました。

起動時に/etc/rc.localが実行されると、特定のISP接続を使用するように特定の内部ホストをルーティングするためにip rule addコマンドとip route addコマンドが実行されました。

次に、/etc/rc.localの最後に、Firewall Builderによって生成されたiptablesファイアウォールルールを実行しました。これらのiptablesルールには、ポリシーとNATルールの両方が設定されています。

私が理解していないのは、なぜ彼はiproute2を使用してルールとルートを指定しただけでなく、NAT iptablesのルールも指定したのですか?なぜ彼はただ両方を使用するのではなく、どちらか一方ですべてを実行しますか?彼はiproute2ルールとルートを取り除き、それらすべての同じルールをiptables NAT設定?

8
Jake Wilson

2つのツールの機能にはいくつかの重複がありますが、一方のツールからしか実行できないことがたくさんあります。 iproute2は、netfilterファイアウォールルールでは何もできません。 iptablesは、IPアドレスの割り当てなどを実行できません。

機能が重複しているように見える場所でも、実際には重複しません。たとえば、iproute2iptablesの両方を使用してアドレス変換を行うことができます。ただし、iprouteで実行できるアドレス変換では、状態は考慮されず、パケットの書き換えはまったく行われません。 FTP、SIP、H.323などのようないくつかのネットワークプロトコルがあり、IPアドレスはヘッダーだけでなくパケット内に含まれています。アドレス変換にiprouteメソッドを使用すると、これらのタイプのプロトコルは機能しなくなります。 Netfilterは、アドレス変換ではるかに優れた仕事をします。

機能が重複するほとんどの場合、機能はさまざまな方法で処理されます。モジュールを使用してiptablesでルーティングを行うことは可能ですが、前回、モジュールがほとんどのディストリビューションにないことを確認したところ、netfilter/iptables[〜#〜] route [〜#〜] のパッチが適用されていませんでした。 =ターゲット。そのターゲットが利用できない場合は、独自のカーネルをコンパイルする気がない限り、ルーティングにnetfilterを使用することはできません。使用するツールのバージョンで機能が使用できないという理由だけで、使用するツールの決定が行われます。 ROUTEターゲットがある場合でも、私が理解していることから、ルーティングの決定にnetfilterを使用することは、iproute2操作を使用して標準のルーティングテーブルでルーティングを行うことほど効率的ではありません。

その多くは、適切な仕事に適切なツールを使用しています。 iproute2は、主にコンピューター上のルーティングとアドレスを管理するために設計されています。 iptables/Netfilterはファイアウォール用に構築されています。

どちらのツールも使える場所では、なじみのあるツールを使うのが普通だと思います。 iproute2を使用して同じルールを記述できたとしても、iptablesのMARKターゲットを使用して、1つのルートまたは別のルートのいくつかのパケットにフラグを立てることはわかっています。

13
Zoredache