Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Guide [8.17] ›Ingest pipelines ›Ingest processor reference

Процессор направления сети

Вычисляет направление сети на основе исходного IP-адреса, целевого IP-адреса и списка внутренних сетей.

Процессор направления сети по умолчанию считывает IP-адреса из полей Elastic Common Schema (ECS). Если вы используете ECS, необходимо указать только опцию internal_networks.

Таблица 33. Опции направления сети

Имя Обязательно По умолчанию Описание

source_ip

нет

source.ip

Поле, содержащее исходный IP-адрес.

destination_ip

нет

destination.ip

Поле, содержащее целевой IP-адрес.

target_field

нет

network.direction

Поле вывода для направления сети.

internal_networks

да *

Список внутренних сетей. Поддерживает IPv4 и IPv6 адреса и диапазоны в CIDR-нотации. Также поддерживает перечисленные ниже именованные диапазоны. Они могут быть созданы с помощью фрагментов шаблонов. * Необходимо указать только один из internal_networks или internal_networks_field.

internal_networks_field

нет

Поле в данном документе для считывания конфигурации internal_networks.

ignore_missing

нет

true

Если true и все необходимые поля отсутствуют, процессор тихо завершается, не изменяя документ.

description

нет

-

Описание процессора. Полезно для описания цели процессора или его конфигурации.

if

нет

-

Условное выполнение процессора. См. Условное выполнение процессора.

ignore_failure

нет

false

Игнорировать ошибки для процессора. См. Обработка ошибок конвейера.

on_failure

нет

-

Обрабатывать ошибки для процессора. См. Обработка ошибок конвейера.

tag

нет

-

Идентификатор процессора. Полезно для отладки и метрик.

Необходимо указать либо internal_networks, либо internal_networks_field. Если указан internal_networks_field, то он следует поведению, указанному в ignore_missing.

Поддерживаемые именованные диапазоны сетей

Поддерживаемые именованные диапазоны для опции internal_networks:

  • loopback - Соответствует адресам петли обратной связи в диапазоне 127.0.0.0/8 или ::1/128.
  • unicast или global_unicast - Соответствует глобальным адресам одноадресной рассылки, определённым в RFC 1122, RFC 4632 и RFC 4291, за исключением IPv4 адреса широковещательной рассылки (255.255.255.255). Это включает в себя диапазоны частных адресов.
  • multicast - Соответствует адресам групповой рассылки.
  • interface_local_multicast - Соответствует IPv6 адресам групповой рассылки интерфейса.
  • link_local_unicast - Соответствует адресам одноадресной рассылки локальной связи.
  • link_local_multicast - Соответствует адресам групповой рассылки локальной связи.
  • private - Соответствует диапазонам частных адресов, определённым в RFC 1918 (IPv4) и RFC 4193 (IPv6).
  • public - Соответствует адресам, которые не являются адресами петли обратной связи, неопределёнными, IPv4 адресами широковещательной рассылки, адресами локальной связи, адресами групповой рассылки интерфейса или частными.
  • unspecified - Соответствует неопределённым адресам (либо IPv4 адрес "0.0.0.0", либо IPv6 адрес "::").
Примеры

Следующий пример демонстрирует использование процессора направления сети:

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"
        }
      }
    }
  ]
}

Что даёт следующий результат:

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

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/network-direction-processor.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API