tcp/udp以外のプロトコルでのiptables -p

tcp/udp以外のプロトコルでのiptables -p

私の理解では、iptablesはトランスポート層(レイヤー4)で動作し、パケットフィルタリングはtcpやudpなどのレイヤー4のIPプロトコルに基づいて行われます。したがって、esp、gre、l2tpなどのプロトコルを入力すると、iptables -pオプションですが、意味があるのでしょうか? iptables を使用してレイヤー 2/3 プロトコルに基づいてパケットをフィルタリングできますか? そうでない場合、iptables は icmp プロトコルに基づいてパケットをどのようにフィルタリングするのでしょうか?

iptables は初めてで、まだ学習中です。ありがとうございます!

答え1

iptablesデータリンク層、ネットワーク層、トランスポート層でのフィルタリングをサポートします。

(プロトコル)オプション-pは、特にレイヤー4プロトコルに限定されません。マニュアルページでは、icmp と esp について具体的に言及しています。gre もサポートされていることはわかっています (「gre」またはプロトコル「47」のいずれか)。指定されたプロトコルは、名前または で指定された整数値でこのオプションに渡すことができます/etc/protocols。このリストのすべてのプロトコルが iptables でサポートされているかどうかはわかりません。

-p または --protocol が指定され、不明なオプションが見つかった場合にのみ、iptables はプロトコルと同じ名前の一致モジュールをロードして、オプションを利用できるようにしようとします。

この「match module」構文は拡張パケットマッチングモジュールであり、-m --matchオプションを使用して指定されます。

サポートされている拡張機能のリストは、こちらで確認できます:iptables 拡張機能利用可能な netfilter カーネル モジュールのリストは にあります/lib/modules/$(uname -r)/kernel/net/netfilter

関連情報