一見したところでは、ipchainsとiptablesは非常に似ているように思われます。どちらの方法でパケットフィルタリングを行っても、Linuxカーネル内で有効な規則のチェーンを使用して、システムに出入りできるパケットを決定するだけでなく、特定の規則を満たすパケットについての動作を決定します。しかし、iptablesを使用すると非常に柔軟な方法でパケットをフィルタリングできるので、管理者はシステムを複雑にせずにきめ細かい制御を行うことができます。
特に、ipchainsを使い慣れているユーザーは、次のようなipchainsとiptablesの著しい違いを認識してから、iptablesを使用してください。
iptablesの元では、フィルタリングする各パケットは複数のチェーンではなく1つのチェーンのみの規則を使用して処理されます。つまり、ipchainsを使用するシステムに入ってきたFORWARDパケットは、INPUT、FORWARD、OUTPUTの各チェーンを通らないと送信先に進めませんが、iptablesでは送信先がローカルシステムの場合はINPUTチェーン、ローカルシステムがパケットを生成した場合はOUTPUTチェーンのみにパケットが送信されます。この理由で、パケットを実際に調べる規則の中で特定のパケットを取り込む様に設計された規則を用意します。
DENYターゲットはDROPに変更されました。 ipchainsでは、チェーン内の規則に一致したパケットは DENYターゲットに送られます。このターゲットはiptablesの 元ではDROPに変更されなければいけません。
規則の中でオプションを設置する時、その順番が大切です。 以前は、ipchainsで規則のオプションの順序はあまり関係 ありませんでした。iptablesコマンドでは、もっと厳密な構文を 使用します。例えば、iptablesコマンドの中のプロトコル(ICMP、TCP、 UDP)は、送信元又は送信先のポートの前で指定する必要があります。
規則で使用するネットワークインターフェイスを指定する場合、INPUTチェーンかFORWARDチェーンでは 着信インターフェイス(-iオプション)、FORWARDチェーンかOUTPUTチェーンでは発信インターフェイス (-oオプション)のみを使用する必要があります。 これは、着信インターフェイスでは OUTPUTチェーンが使用されず、INPUTチェーンが発信インターフェイスを通過するパケットによって見えないためです。
iptablesは根本的に作り直されたネットワークフィルターなので、変更点はこれが すべてではありません。詳細については、項16.5の中の Linux 2.4 Packet Filtering HOWTOを参照して下さい。