回答:
このテーブルは、異なるパケットのNAT(ネットワークアドレス変換)にのみ使用してください。つまり、パケットのソースフィールドまたは宛先フィールドを変換するためにのみ使用する必要があります。
フィルタテーブルは、主にパケットのフィルタリングに使用されます。パケットを照合し、希望する方法でフィルタリングできます。これは、実際にパケットに対してアクションを実行し、その内容に応じて、パケットに含まれる内容を調べ、それらをDROPまたは/ ACCEPTする場所です。もちろん、事前のフィルタリングを行うこともできます。ただし、この特定のテーブルは、フィルタリングが設計された場所です。
ではテーブルとチェーンの道のり NATのPREROUTINGチェーンは、両方の転送が横切っている間に、我々はそのフィルタのFORWARDチェーンを見ることができ、コンピュータがルータのように動作している、つまり、のみ転送されたパケット(ネットワークから来て、ネットワークへ出て行くパケット)によって横断されますパケットおよび宛先がローカルホストであるパケット。
パケットの宛先アドレスを変更するためだけにnatのPREROUTINGを使用し、フィルタリング(パケットのドロップ/受け入れ)のためだけにフィルターのFORWARDを使用する必要があります。
ローカルマシン自体を宛先としない最初のルーティング決定にパケットを取得すると、そのパケットはFORWARDチェーンを介してルーティングされます。一方、パケットがローカルマシンがリッスンしているIPアドレス宛ての場合、INPUTチェーンを介してローカルマシンにパケットを送信します。 パケットはローカルマシン宛ての場合がありますが、NATを実行することにより、PREROUTINGチェーン内で宛先アドレスを変更できます。これは最初のルーティング決定の前に行われるため、パケットはこの変更後に調べられます。このため、ルーティングの決定が行われる前にルーティングが変更される場合があります。すべてのパケットがこのイメージのいずれかのパスを通過することに注意してください。パケットを送信元と同じネットワークにDNATしても、ネットワーク上に戻るまで、残りのチェーンを通過します。
PREROUTING:このチェーンは、パケットを送信する前に(PRE)ルーティング関連の決定を行うために使用されます。PREROUTING/POSTROUTING
ie NAT
テーブルACCEPT/DROP/REJECT
では、デフォルトFILTER
テーブルのetcターゲットが機能しないことを常に覚えておいてください。このNAT
テーブルは、ルーティングの決定にのみ使用されます。PREROUTING
ルーティングの決定、つまり、パケットがネットワークを通過し始める前に行う必要がある決定を行うときに使用する必要があります。次に例を示します。ポート80でサーバーに到達したトラフィックをポート8080にリダイレクトしています。
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
FORWARD:名前が示すように、テーブルのFORWARD
チェーンはFILTER
、ソースから宛先にパケットを転送するために使用されます。ここでは、ソースと宛先は2つの異なるホストです。したがって、想像できるように、FORWARD
ルールは基本的に、あるホストがサーバーを介して別のホストからトラフィックを送受信しているサーバーで使用されます。パケットがサーバーから生成されるとき、チェーンは、OUTPUT
つまりトラフィックがそれ自体から出て行くのに対し、INPUT
チェーンはパケットがサーバー自体のみを対象とすることを意味します。次に、ホスト用のインターフェイスのポート80で受信したトラフィックを受け入れて転送するFORWARD
チェーンの例を示しTCP
ます。eth0
192.168.0.4
192.168.0.4
iptables -A FORWARD -i eth0 -p tcp --dport 80 -d 192.168.0.4 -j ACCEPT
FORWARD
チェーンの2つの異なるインターフェイスのコンテキストで間違っていると思います。LANのあるホストから別のLANのホストにパケットが転送されるとき、パケットは単一のインターフェースを通過し、使用されるチェーンFORWARD
はここではサーバー(メディア)は厳密な意味でルーターとして機能しませんがむしろスイッチと考えることができます。