ALE レイヤー

アプリケーション層の適用 (ALE) は、複数のフィルター処理レイヤーと一致する破棄レイヤーで構成されます。 ALE を含むすべての Windows フィルター プラットフォーム (WFP) フィルター エンジン レイヤーについては、「 レイヤー識別子のフィルター処理」を参照してください。 このトピックでは、ALE の一部であるフィルターレイヤーについて詳しく説明します。

RESOURCE_ASSIGNMENT

FWPM_LAYER_ALE_RESOURCE_ASSIGNMENT_V{4|6} 層のフィルターは、明示的または暗黙的なネットワーク バインド操作と一致します。

このレイヤーのフィルターが一致して未加工のソケットの作成を承認すると、 FWP_CONDITION_FLAG_IS_RAW_ENDPOINT フラグが設定されます。

このレイヤーのフィルターが一致して無差別モードの受信を承認すると、 FWP_CONDITION_ALE_PROMISCUOUS_MODE フィールドはSIO_RCVALLに設定されます。 SIO_RCVALLの説明については、「 WSAIoctl」を参照してください。

注意

これは、無差別モードをフィルター処理できる唯一のレイヤーです。

 

bind() の間にポートが指定されていない場合、つまり port が 0 (ゼロ) に設定されている場合、TCP/IP スタックは動的ポート範囲 (19152 ~ 65535) からポートを選択します。 選択したポートは、このレイヤーで FWP_CONDITION_FLAG_IS_WILDCARD_BIND フラグと共に分類されます。

bind() 呼び出しでローカル アドレスが指定されていない場合、ローカル アドレス フィールドは FWP_EMPTY に設定されます。

AUTH_LISTEN

FWPM_LAYER_ALE_AUTH_LISTEN_V{4|6} 層のフィルターは、TCP listen() 呼び出しと一致します。

AUTH_RECV_ACCEPT

FWPM_LAYER_ALE_AUTH_RECV_ACCEPT_V{4|6} 層のフィルターは、TCP accept() 呼び出し、一意のリモート アドレス/ポートタプルからの最初の UDP パケット (ユニキャスト)、および一意の ICMP タイプ、コード、ID を持つ最初の受信非エラー ICMP メッセージ (ユニキャスト) に対して一致します。

注意

TCP または ICMP ではないプロトコルは、UDP のように扱われます。

 

生のソケットによって受信された TCP パケットは、UDP トラフィックと同様に処理されます。 つまり、生ソケット上の最初の TCP send() と最初の TCP recv() のみがフィルター処理されます。

AUTH_CONNECT

FWPM_LAYER_ALE_AUTH_CONNECT_V{4|6} 層のフィルターは、TCP connect() 呼び出し、一意のリモート アドレスとポートタプルに送信される最初の UDP パケット、および一意の ICMP の種類、コード、ID を持つ最初の送信非エラー ICMP メッセージに対して一致します。

注意

TCP または ICMP ではないプロトコルは、UDP のように扱われます。

 

生のソケットによって送信される TCP パケットは、UDP トラフィックと同様に処理されます。 つまり、生ソケット上の最初の TCP send() と最初の TCP recv() のみがフィルター処理されます。

FLOW_ESTABLISHED

TCP 三方向ハンドシェイクが正常に完了した後、 FWPM_LAYER_ALE_FLOW_ESTABLISHED_V{4|6} レイヤーのフィルターが一致します。 TCP 以外のトラフィックの場合、フィルターは、 AUTH_RECV_ACCEPT または AUTH_CONNECT レイヤーからのフィルターが一致した直後に一致します。

このレイヤーのフィルターは、[ブロック] または [許可] を返さないでください。

このレイヤーは、 Windows Driver Kit のドキュメントで詳しく説明されている接続状態を追跡するために、引き出しドライバーによって使用されます。

RESOURCE_RELEASE

FWPM_LAYER_ALE_RESOURCE_RELEASE_V{4|6} レイヤーのフィルターは、RESOURCE_ASSIGNMENT経由で割り当てられたリソースが解放された後に一致します。

ENDPOINT_CLOSURE

接続された TCP フローまたは UDP ソケット エンドポイントが閉じられると、 FWPM_LAYER_ALE_ENDPOINT_CLOSURE_V{4|6} レイヤーのフィルターが一致します。

CONNECT_REDIRECT

FWPM_LAYER_ALE_CONNECT_REDIRECT_V{4|6} 層のフィルターを使用すると、リモート アドレスとポートを変更できます。 送信接続は、その接続の間リダイレクトされます。

BIND_REDIRECT

FWPM_LAYER_ALE_BIND_REDIRECT_V{4|6} レイヤーのフィルターを使用すると、基になるソケットのローカル アドレスとポートを変更できます。 ローカル ソケットは、ソケットの有効期間中にリダイレクトされます

ALE DISCARD レイヤー

上記で説明した ALE レイヤーごとに、フィルター 処理エンジンには一致する破棄レイヤーが含まれています。 ALE 破棄レイヤーは、ログ記録のために吹き出しによって使用されます。 ALE フィルタリング レイヤの 1 つで破棄されたパケットと表示は、一致する ALE 破棄レイヤに示されます。

アプリケーション層の適用 (ALE)

ALE ステートフル フィルター処理

ALE マルチキャスト/ブロードキャスト トラフィック

ALE 再認証

ALE フローのカスタマイズ

TCP パケット フロー

UDP パケット フロー

Winsock 関数

条件フラグのフィルター処理

各フィルター レイヤーで使用できるフィルター条件