---
canonical: https://docs.ideco.ru/v22/ru/ngfw/api/dhcp-api
---

# DHCP-сервер

::: page-constructor
blocks:
  - type: content-layout-block
    textContent:
      buttons:
        - text: Классический VCE
          theme: action
          width: 'auto'
        - text: Документация
          theme: outlined
          url: https://docs.ideco.ru/v22/ru/ngfw/settings/services/dhcp
          width: 'auto'
    resetPaddings: false
    textWidth: l
    size: m
    centered: false
:::

{% note info "" %}

Длина комментариев (`comment`) при API-запросах ограничена 255 символами.

{% endnote %}

{#top}

{% cut "Получение статуса службы DHCP-сервера" %}

```
GET /dhcp_server/status
```

**Ответ на успешный запрос:**

```json5
[
  {
      "name": "string",
      "status": "active" | "activating" | "deactivating" | "failed" | "inactive" | "reloading",
      "msg": [ "string" ]
  }
]
```

* `name` - название службы;
* `status` - текущее состояние службы;
* `msg` - список строк, подробно описывающих состояние службы.

{% endcut %}

## Настройки

{#top}

{% cut "Получение настроек" %}

```
GET /dhcp_server/settings
```

**Пример ответа на успешный запрос:**

```json5
[
  {
      "enabled": true | false,
      "interface": "string",
      "relay": {
          "external_servers": [
              "string"
          ]
      },
      "server": null,
      "id": "string"
    },
  {
      "enabled": true | false,
      "interface": "string",
      "relay": null,
      "server": {
          "dns": [ "string" ],
          "domain": "string",
          "gateway": "string",
          "lease_time": "integer",
          "options": [
              {
                  "comment": "string",
                  "enabled": true | false,
                  "forced": true | false,
                  "option": "string"
                }
            ],
          "ranges": [ "string" ],
          "routes": [ {
                  "destination": "string",
                  "gateway": "string"
                } ],
          "tftp_filename": "string",
          "tftp_server": "string",
          "wins": [ "string" ],
          "wpad_enabled": true | false
        },
      "id": "string"
    },
    ...
]
```

* `id` - идентификатор настройки;
* `enabled` - если `true`, то настройка включена, `false` - выключена;
* `interface` - интерфейс Ideco NGFW Novum;
* `relay` - режим работы (если активен `server`, должен быть `null`):
  * `external_servers` - IP-адрес внешнего DHCP-сервера.
* `server` - режим работы (если активен `relay`, должен быть `null`):
  * `dns` - поля DNS-1 и DNS-2 в веб-интерфейсе. Если не задано значение в поле DNS-1 или DNS-2, то DNS-сервером для всех сетевых устройств локальной сети будет являться Ideco NGFW Novum;
  * `domain` - DNS-суффикс;
  * `gateway` - шлюз для направления трафика по умолчанию. Если поле не заполнено, шлюзом будет выступать IP-адрес выбранного интерфейса;
  * `lease_time` - время аренды (в минутах);
  * `options` - опции dnsmasq (`comment` - комментарий, может быть пустым; `enabled` - включена или отключена опция; `forced` - принудительная отправка опции клиенту; `option` - значение опции);
  * `ranges` - диапазон IP-адресов для выдачи;
  * `routes` - статические маршруты (`destination` - хост, `gateway` - шлюз);
  * `tftp_filename` - имя файла для загрузки по TFTP;
  * `tftp_server` - IP-адрес TFTP-сервера для настройки загрузки образа по сети;
  * `wins` - IP-адрес WINS-сервера;
  * `wpad_enabled` - включение протокола автоматической настройки прокси. Для работы WPAD необходимо разрешить прямые подключения к прокси.

{% endcut %}

{#top}

{% cut "Создание настроек" %}

```
POST /dhcp_server/settings
```

**Json-тело запроса для режима сервера:**

```json5
{
      "enabled": true | false,
      "interface": "string",
      "relay": null,
      "server": {
          "dns": [ "string" ],
          "domain": "string",
          "gateway": "string",
          "lease_time": "integer",
          "options": [
              {
                  "comment": "string",
                  "enabled": true | false,
                  "forced": true | false,
                  "option": "string"
              }
          ],
          "ranges": [ "string" ],
          "routes": [ {
                  "destination": "string",
                  "gateway": "string"
              } ],
          "tftp_filename": "string",
          "tftp_server": "string",
          "wins": [ "string" ],
          "wpad_enabled": true | false
      }
  }
```

* `enabled` - если `true`, то настройка включена, `false` - выключена;
* `interface` - интерфейс Ideco NGFW Novum;
* `relay` - режим работы (если активен `server`, должен быть `null`):
  * `external_servers` - IP-адрес внешнего DHCP-сервера.
* `server` - режим работы (если активен `relay`, должен быть `null`):
  * `dns` - поля DNS-1 и DNS-2 в веб-интерфейсе. Если не задано значение в поле DNS-1 или DNS-2, то DNS-сервером для всех сетевых устройств локальной сети будет являться Ideco NGFW Novum;
  * `domain` - DNS-суффикс;
  * `gateway` - шлюз для направления трафика по умолчанию. Если поле не заполнено, шлюзом будет выступать IP-адрес выбранного интерфейса;
  * `lease_time` - время аренды (в минутах);
  * `options` - опции dnsmasq (`comment` - комментарий, может быть пустым; `enabled` - включена или отключена опция; `forced` - принудительная отправка опции клиенту; `option` - значение опции);
  * `ranges` - диапазон IP-адресов для выдачи;
  * `routes` - статические маршруты (`destination` - хост, `gateway` - шлюз);
  * `tftp_filename` - имя файла для загрузки по TFTP;
  * `tftp_server` - IP-адрес TFTP-сервера для настройки загрузки образа по сети;
  * `wins` - IP-адрес WINS-сервера;
  * `wpad_enabled` - включение протокола автоматической настройки прокси. Для работы WPAD необходимо разрешить прямые подключения к прокси.

**Json-тело запроса для режима релея:**

```json5
{
    "enabled": true | false,
    "interface": "string",
    "relay": {
        "external_servers": [
            "string"
        ]
    },
    "server": null
  }
```

**Ответ на успешный запрос:**

```json5
{
    "id": "string"
}
```

* `id` - идентификатор настройки.

{% endcut %}

{#top}

{% cut "Изменение настроек" %}

```
PATCH /dhcp_server/settings/<id настройки>
```

**Json-тело запроса - все или некоторые поля для создания настроек, например:**

```json5
{
    "relay": {
        "external_servers": [
            "string"
        ]
    }
  }
```

* `relay` - режим работы (если активен `server`, должен быть `null`):
  * `external_servers` - IP-адрес внешнего DHCP-сервера.

**Ответ на успешный запрос:** 200 OK

{% endcut %}

{#top}

{% cut "Удаление настроек" %}

```
DELETE /dhcp_server/settings/<id настройки>
```

**Ответ на успешный запрос:** 200 OK

{% endcut %}

## Привязка IP к MAC

{#top}

{% cut "Получение статических привязок" %}

```
GET /dhcp_server/static_leases
```

**Пример ответа на успешный запрос:**

```json5
[
  {
      "comment": "",
      "enabled": true,
      "ip_address": "192.168.0.40",
      "mac": "50:46:5d:6e:8c:20",
      "id": "3e4827dd-5e0c-4932-98b1-fa2d9826b0ce"
  },
  ...
]
```

* `ip_address` - IP-адрес;
* `mac` - MAC-адрес;
* `enabled` - если `true`, то запись включена, `false` - выключена;
* `comment` - комментарий, может быть пустым, максимальная длина - 255 символов;
* `id` - идентификатор статической привязки.

{% endcut %}

{#top}

{% cut "Создание статической привязки" %}

```
POST /dhcp_server/static_leases
```

**Json-тело запроса:**

```json5
{
    "comment": "string",
    "enabled": true | false,
    "ip_address": "string",
    "mac": "string"
  }
```

* `ip_address` - IP-адрес;
* `mac` - MAC-адрес;
* `enabled` - если `true`, то запись включена, `false` - выключена;
* `comment` - комментарий, может быть пустым, максимальная длина - 255 символов.

Будьте внимательны при согласовании настроек клиентских устройств и DHCP-сервера на Ideco NGFW Novum. Некоторые устройства предоставляют MAC-адрес с разделенными с помощью дефиса октетами (01-02-03-04-05-06). В настройках Ideco NGFW Novum октеты MAC-адреса разделяются только двоеточиями (01:02:03:04:05:06).

**Ответ на успешный запрос:**

```json5
{
  "id": "string"
}
```

* `id` - идентификатор статической привязки.

{% endcut %}

{#top}

{% cut "Редактирование статической привязки" %}

```
PATCH /dhcp_server/static_leases/<id статической привязки>
```

**Json-тело запроса (все или некоторые поля):**

```json5
{
    "comment": "string",
    "enabled": true | false,
    "ip_address": "string",
    "mac": "string"
  }
```

* `ip_address` - IP-адрес;
* `mac` - MAC-адрес;
* `enabled` - если `true`, то запись включена, `false` - выключена;
* `comment` - комментарий, может быть пустым, максимальная длина - 255 символов.

**Ответ на успешный запрос:** 200 OK

{% endcut %}

{#top}

{% cut "Удаление статической привязки" %}

```
DELETE /dhcp_server/static_leases/<id статической привязки>
```

**Ответ на успешный запрос:** 200 OK

{% endcut %}
