网络方向处理器

编辑

根据源 IP 地址、目标 IP 地址和内部网络列表计算网络方向。

默认情况下,网络方向处理器从 Elastic Common Schema (ECS) 字段读取 IP 地址。如果使用 ECS,则只需指定 internal_networks 选项。

表 33. 网络方向选项

名称 必需 默认值 描述

source_ip

source.ip

包含源 IP 地址的字段。

destination_ip

destination.ip

包含目标 IP 地址的字段。

target_field

network.direction

网络方向的输出字段。

internal_networks

是 *

内部网络列表。支持 IPv4 和 IPv6 地址以及 CIDR 表示法的范围。还支持下面列出的命名范围。可以使用 模板片段构造这些范围。 * 必须仅指定 internal_networksinternal_networks_field 中的一个。

internal_networks_field

给定文档上从中读取 internal_networks 配置的字段。

ignore_missing

-

true

-

如果 true 并且缺少任何必需字段,则处理器将静默退出而不修改文档。

description

处理器的描述。用于描述处理器的目的或其配置。

if

-

有条件地执行处理器。请参阅有条件地运行处理器

-

ignore_failure

false
编辑

忽略处理器的失败。请参阅处理管道失败

  • on_failure
  • 处理处理器的失败。请参阅处理管道失败
  • tag
  • 处理器的标识符。对调试和指标很有用。
  • 必须指定 internal_networksinternal_networks_field 中的一个。如果指定了 internal_networks_field,则它遵循 ignore_missing 指定的行为。
  • 支持的命名网络范围
  • internal_networks 选项支持的命名范围有
loopback - 匹配 127.0.0.0/8::1/128 范围内的环回地址。
编辑

unicastglobal_unicast - 匹配 RFC 1122、RFC 4632 和 RFC 4291 中定义的全局单播地址,但 IPv4 广播地址 (255.255.255.255) 除外。这包括私有地址范围。

resp = client.ingest.simulate(
    pipeline={
        "processors": [
            {
                "network_direction": {
                    "internal_networks": [
                        "private"
                    ]
                }
            }
        ]
    },
    docs=[
        {
            "_source": {
                "source": {
                    "ip": "128.232.110.120"
                },
                "destination": {
                    "ip": "192.168.1.1"
                }
            }
        }
    ],
)
print(resp)
response = client.ingest.simulate(
  body: {
    pipeline: {
      processors: [
        {
          network_direction: {
            internal_networks: [
              'private'
            ]
          }
        }
      ]
    },
    docs: [
      {
        _source: {
          source: {
            ip: '128.232.110.120'
          },
          destination: {
            ip: '192.168.1.1'
          }
        }
      }
    ]
  }
)
puts response
const response = await client.ingest.simulate({
  pipeline: {
    processors: [
      {
        network_direction: {
          internal_networks: ["private"],
        },
      },
    ],
  },
  docs: [
    {
      _source: {
        source: {
          ip: "128.232.110.120",
        },
        destination: {
          ip: "192.168.1.1",
        },
      },
    },
  ],
});
console.log(response);
POST _ingest/pipeline/_simulate
{
  "pipeline": {
    "processors": [
      {
        "network_direction": {
          "internal_networks": ["private"]
        }
      }
    ]
  },
  "docs": [
    {
      "_source": {
        "source": {
          "ip": "128.232.110.120"
        },
        "destination": {
          "ip": "192.168.1.1"
        }
      }
    }
  ]
}

multicast - 匹配多播地址。

{
  "docs": [
    {
      "doc": {
        ...
        "_source": {
          "destination": {
            "ip": "192.168.1.1"
          },
          "source": {
            "ip": "128.232.110.120"
          },
          "network": {
            "direction": "inbound"
          }
        }
      }
    }
  ]
}