私のテーブルとチェーンiptables
ルールは次のとおりです。nat
POSTROUTING
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
LOG all -- anywhere anywhere LOG level warning prefix " packet-pre-snat"
MASQUERADE all -- anywhere anywhere
LOG all -- anywhere anywhere LOG level warning prefix " packet-post-snat"
ホスト間でHTTP要求を送信してからログを調べると、エントリは1つだけ表示されます。
Mar 15 08:41:55 vpn-instance5 kernel: [ 385.657182] packet-pre-snatIN= OUT=ens5 SRC=10.132.0.2 DST=10.0.0.24 LEN=60 TOS=0x00 PREC=0x00 TTL=61 ID=40 DF PROTO=TCP SPT=53896 DPT=443 WINDOW=65320 RES=0x00 SYN URGP=0
なぜ記事が1つしか見えないのですか?
- TCP接続を確立するために交換されるパケットが多いため、少なくともいくつかのエントリがあると予想されます。
- Snet 以前のログエントリが表示されます。 snat以降の項目が見えない理由(iptablesの3番目の規則)
答え1
MASQUERADEは終了ターゲットであり、LOGは終了しないターゲットであるため、3番目のルールは決して実行されないため、post-snatエントリは表示されません。
pre-snat LOG ルールがアクティブな場合、iptables はチェーンのルール処理を続行して MASQUERADE ルールに移動し、MASQUERADE ルールがアクティブになると iptables はチェーンのルール処理を停止するので、以下の snat 後の LOG ルールは次のようになります.受信したパケットはすべて処理されないため、何も記録されません。
ターゲットの終了:ターゲットの終了は、チェーン内の評価を終了し、制御をnetfilterフックに返す操作を実行します。残りがある場合は、次のチェーンに移動します。
非終了対象:非終了対象は作業を実行し、チェーン内で評価を継続します。