CIDR
Sumo Logic の 3 つの CIDR オペレータは、CIDR (クラスレス ドメイン間ルーティング、"cider" とも呼ばれる) 表記を使用し、IP ネットワークの分析を特定のサブネットに絞り込みます。CIDR 表記で IP アドレスのルーティング接頭辞を指定します。CIDR オペレータを使用すると、ネットワーク セグメント間のトラフィック量の判断、指定したネットワーク セグメント内のホストのイベント確認、または not オペレータを使用した特定のネットワーク セグメントからのものではないアドレスの検索ができます。
CIDR オペレータを使用すると、2 つの IP アドレスのネットワーク セグメントの比較や特定のメッセージに含まれるネットワーク セグメントの特定ができます。
IPv4 アドレスでは、ビット数を可変にして、ネットワークを記述します。たとえば、最初の 24 ビットはサブネットワークを表し、残りの 8 ビットでそのネットワークの個々のホストを指定することもできます。ネットワーク セグメントを表すアドレスの部分をプレフィックスと呼びます。このプレフィックスに割り当てられるビット数は prefix_length です。
IPv4 アドレスではお馴染みの "ドット区切りの 4 つ組み" 表記は、ネットワークに割り当てられたビット数が 16 や 24 ではない場合、比較が困難です。CIDR オペレータでこれを解決できます。
クラスレス ドメイン間ルーティングの全般的な情報については、オンライン記事を参照してください。
getCIDRPrefix
IPv4 アドレスからネットワーク プレフィックスを抽出します。
構文
getCIDRPrefix(<ip_addr>, <prefix_length>) as <field>
ip_addr
は文字列表現 ("10.10.1.35" など)
prefix_length
は整数 (0 ~ 32) です。
例
getCIDRPrefix("10.10.1.35", toInt(24)) as net
は 10.10.1.0
を返します。
getCIDRPrefix("10.10.1.35", toInt(27)) as net
は 10.10.1.32
を返します。
getCIDRPrefix("10.10.1.35", toInt(29)) as net
は 10.10.1.32
を返します。
compareCIDRPrefix
2 つの IPv4 アドレスを比較して、ネットワーク プレフィックスが一致する場合は true を返します。
構文
compareCIDRPrefix(<ip_addr1>, <ip_addr2>, <prefix_length>) as <field>
ip_add1
と ip_addr2
は文字列表現です ("10.10.1.35" など)。
prefix_length
は整数 (0 ~ 32) です。
ブール式の構文
compareCIDRPrefix(<ip_addr1>, <ip_addr2>, <prefix_length>)
例
特定のネットワーク セグメントのイベントを確認するには:
- イベントを検索します。たとえば、次のようにファイアウォールのログを確認します。
(denied OR rejected AND _sourcecategory=firewall | ...
- IP アドレスをパースします。例:
... | parse "ip=*," as ip_address ...
- リクエストした CIDR の完全表記と比較します。たとえば、10.10.1.32/27 とします。
... | where compareCIDRPrefix("10.10.1.32", ip_address, toInt(27)) | ...
- レコードの検索を繰り返して、一致しないレコードを検索結果からドロップします。
... | count by ip_address
特定のネットワーク セグメントからではないイベントを確認するには:
- イベントを検索します。たとえば、次のようにファイアウォールのログを確認します。
(denied OR rejected AND _sourcecategory=firewall | ...
- IP アドレスをパースします。例:
... | parse "ip=*," as ip_address ...
- リクエストした CIDR の完全表記と比較して、一致するレコートをドロップします。たとえば、10.10.1.32/27 とします。
... | where !compareCIDRPrefix("10.10.1.32", ip_address, toInt(27)) | ...
maskFromCIDR
IPv4 アドレスでブール演算をするためのサブネット マスクを返すユーティリティ関数。
構文
maskFromCIDR(<prefix_length>) as <field>
prefix_length
は整数 (0 ~ 32) です。
CIDR | マスク |
32 | 255.255.255.255 |
31 | 255.255.255.254 |
30 | 255.255.255.252 |
29 | 255.255.255.248 |
... | ... |