netfilterフレームワークのフックポイント

1. Netfilter内のフックの場所

ここに画像の説明を挿入

  • パケットは、によって、ネットワーク上に到着したとき、ドライバからデータパケットにカードメモリ領域によってDMAデバイスのメインメモリ領域(メモリ領域)に転送し、割り込みをトリガーして、CPUに非同期で応答するよう通知します。その後、ip_rcv関数が呼び出されます。
  • ip_rcv関数は最初にメッセージをチェックし、最後にNF_HOOK関数を呼び出して制御をNF_IP_PRE_ROUTING登録されたルールが処理され、データがip_rcv_finish関数に到着し、ルーティングターゲットがクエリされて、メッセージがローカルに送信されるか転送されるかが決定されます。
    • メッセージがローカルに送信される場合は、処理のためにip_local_deliver関数を呼び出し、次に制御を渡します。NF_IP_LOCAL_IN登録されたルールが処理され、処理後、ip_local_deliver_finishがデータパケットをトランスポート層に送信します。
    • メッセージが転送メッセージの場合、それは通過しますNF_IP_FORWARDそしてNF_IP_POST_ROUTING登録ルールは最終的にドライバーによってネットワークに送信されます。
  • ローカル発信メッセージの場合、それらは通過しますNF_IP_LOCAL_OUTそしてNF_IP_POST_ROUTING登録ルールは、最終的にドライバーによってネットワークに送信されます。
81件の元の記事が公開されました 高く評価されました 69 訪問者50,000以上

おすすめ

転載: blog.csdn.net/s2603898260/article/details/103839076