DNS 要求と応答は、それぞれ DNS.REQ と DNS.RES で始まる式を使用して評価できます。DNS メッセージの送信に使用されているトランスポート層プロトコルを特定することもできます。
次の関数は DNS クエリの内容を返します。
| 機能 |
説明 |
| DNS.REQ.QUESTION.DOMAIN |
DNS クエリの質問セクションのドメイン名 (QNAME フィールドの値) を返します。ドメイン名はテキスト文字列として返され、EQ ()、NE ()、およびテキストを処理するその他の関数に渡すことができます。 |
| DNS.REQ.QUESTION.TYPE |
DNS クエリ内のクエリタイプ (QTYPE フィールドの値) を返します。このフィールドは、ネームサーバが照会されるリソースレコードのタイプ (A、NS、CNAME など) を示します。戻り値は、EQ () および NE () 関数を使用して、A、AAAA、NS、SRV、PTR、CNAME、SOA、MX、ANY のいずれかの値と比較できます。メモ:TYPE 関数では EQ () および NE () 関数のみを使用できます。例:DNS.REQ.QUESTION.TYPE.EQ (MX) |
次の関数は DNS レスポンスの内容を返します。
| 機能 |
説明 |
| DNS.RES.HEADER.RCODE |
DNS レスポンスのヘッダーセクションのレスポンスコード (RCODE フィールドの値) を返します。RCODE 関数では、EQ () および NE () 関数のみを使用できます。指定できる値は、NOERROR、FORMERR、SERVFAIL、NXDOMAIN、NOTIMP、および拒否です。 |
| DNS.RES.QUESTION.DOMAIN |
DNS レスポンスの質問セクションにドメイン名 (QNAME フィールドの値) を返します。ドメイン名はテキスト文字列として返され、EQ ()、NE ()、およびテキストを処理するその他の関数に渡すことができます。 |
| DNS.RES.QUESTION.TYPE |
DNS レスポンスの質問セクションにクエリタイプ (QTYPE フィールドの値) を返します。このフィールドは、レスポンスに含まれるリソースレコードのタイプ (A、NS、CNAME など) を示します。戻り値は、EQ () および NE () 関数を使用して、A、AAAA、NS、SRV、PTR、CNAME、SOA、MX、ANY のいずれかの値と比較できます。TYPE 関数では、EQ () および NE () 関数のみを使用できます。例:DNS.RES.QUESTION. TYPE.EQ (SOA) |
次の関数はトランスポート層プロトコル名を返します。
| 機能 |
説明 |
| DNS.REQ.TRANSPORT |
DNS クエリの送信に使用されたトランスポート層プロトコルの名前を返します。返される値は TCP と UDP です。TRANSPORT 関数で使用できるのは EQ () 関数と NE () 関数のみです。例:DNS.REQ.TRANSPORT.EQ (TCP) |
| DNS.RES.TRANSPORT |
DNS 応答に使用されたトランスポート層プロトコルの名前を返します。返される値は TCP と UDP です。TRANSPORT 関数で使用できるのは EQ () 関数と NE () 関数のみです。例:DNS.RES.TRANSPORT.EQ (TCP) |
次の関数は、クエリに DNS ECS オプションが含まれている場合と含まれていない場合に、一致した場所の名前を返します。
| 機能 |
説明 |
| DNS.REQ.OPT.ECS.IP.MATCHES_LOCATION |
DNS ECS オプションを使用して、クエリで使用された一致した場所の名前を返します。例: (DNS.REQ.OPT.ECS.IP.MATCHES_LOCATION(".CH.....") |
| client.IP.SRC.MATCHES_LOCATION |
DNS ECS オプションを指定せずにクエリで使用された、一致した場所の名前を返します。例: (client.IP.SRC.MATCHES_LOCATION(".CH.....") |
| DNS.REQ.OPT.ECS.IP.MATCHES_LOCATION または client.ip.src.matches_LOCATION |
DNS トラフィックにクエリで ECS オプションがある場合とない場合がある場合に、ポリシーで使用される共通の式。例: "(((DNS.REQ.OPT.ECS.IP.MATCHES_LOCATION(".CH.....").typecast_text_t) ALT (client.IP.SRC.MATCHES_LOCATION(".CH.....").typecast_text_t)).eq("true"))" |