iptablesを使用したTTLと長さに基づいてパケットを表示する

iptablesを使用したTTLと長さに基づいてパケットを表示する

TTL でパケットを照合できません。

次のコマンドを使用して、ルーティング後にTTLが10未満のパケットを表示したいと思います。

iptables -v --table mangle -A POSTROUTING -o h_0_0-eth0 -m ttl --ttl-lt 10 -j MARK --set-mark 10

しかし、引き続き同じエラーが発生します。

MARK  all opt -- in * out h_0_0-eth0  0.0.0.0/0  -> 0.0.0.0/0   TTL match TTL < 10 MARK set 0xa
iptables: No chain/target/match by that name.

使っていますiptables v1.4.21。詳細な出力がTTL一致を識別するため、モジュールのロードに問題があるとは思いません。

問題が何であるかを知っている人はいますか?

答え1

問題は、パッチ適用されたLinuxカーネルバージョンにnetfilter拡張が含まれていないことです。

そのため、カーネルを再コンパイルし、次のようなさまざまな設定オプションを有効にする必要がありました。

# Xtables targets
#
CONFIG_NETFILTER_XT_TARGET_AUDIT=y
CONFIG_NETFILTER_XT_TARGET_CHECKSUM=y
CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y
CONFIG_NETFILTER_XT_TARGET_CONNMARK=y
CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y
CONFIG_NETFILTER_XT_TARGET_DSCP=y

# This one provides the TTL target
CONFIG_NETFILTER_XT_TARGET_HL=y 
CONFIG_NETFILTER_XT_TARGET_HMARK=y
...

今、すべてがうまくいきます!

関連情報