# 13. Фильтр: первоначальная настройка и CLI

[← Оглавление](../README.md) · [← Раздел 12: Сессии и трансляции на фильтре](12.md)

---

## 13.1. Подключение: консоль (115200 8N1) и SSH (порт 22)

Доступ к фильтру осуществляется двумя способами:

| Способ         | Параметры                                        |
| -------------- | ------------------------------------------------ |
| **Консоль**    | 115200 бод, 8 бит данных, без паритета, 1 стоп-бит (8N1), контроль потока выключен |
| **SSH**        | Порт 22, стандартный доступ                      |

Расположение консольного порта на корпусе **отличается** в зависимости от модели и года выпуска — на каждом устройстве порт подписан. Настройки консоли стандартные и менять их необходимости нет.

## 13.2. Логин по умолчанию: admin / econat

При заводской прошивке на фильтре настроена учётная запись по умолчанию:

- **Логин:** `admin`
- **Пароль:** `econat`

Данного пользователя можно удалить и создать новых (подробнее о настройке пользователей — в [разделе 14.4](14.md)).

## 13.3. Операционный режим (>) и конфигурационный режим (#)

CLI фильтра имеет **два режима** работы:

| Режим                    | Приглашение | Назначение                                                |
| ------------------------ | ----------- | --------------------------------------------------------- |
| **Операционный**         | `>`         | Просмотр информации: команды `show`, мониторинг           |
| **Конфигурационный**     | `#`         | Изменение настроек, управление прошивками, перезагрузка    |

Переход из операционного в конфигурационный режим выполняется командой **`config`**.

В операционном режиме доступны команды просмотра (`show session`, `show interface` и т.д.). В конфигурационном режиме доступны все команды изменения параметров, а также управление прошивками (`firmware`), перезагрузка устройства и другие административные операции.

## 13.4. Навигация по дереву конфигурации: system, pools, access-lists

Конфигурация фильтра организована в виде **дерева** с тремя основными разделами:

```text
    / (корень)
    ├── system          ← все основные настройки устройства
    │   ├── mng-if      ← management-интерфейс
    │   ├── serial      ← консольный порт
    │   ├── terminal    ← SSH-настройки
    │   ├── users       ← пользователи
    │   ├── nat-defaults← параметры сессий, тайм-аутов
    │   ├── dpi         ← настройки DPI
    │   └── ...
    ├── pools           ← пулы обработки трафика
    └── access-lists    ← списки контроля доступа (ACL)
```

При заводской прошивке в дефолтной конфигурации **отсутствуют** пулы и access-листы — их необходимо создавать вручную.

### 13.4.1. Переход в раздел, exit (..), root (/)

Навигация по дереву конфигурации выполняется следующим образом:

| Действие                        | Команда / клавиша | Пример                     |
| ------------------------------- | ----------------- | -------------------------- |
| Перейти в раздел                | Имя раздела       | `system` → переход в system |
| Перейти на уровень выше         | `..` или `exit`   | Из mng-if → обратно в system |
| Вернуться в корень конфигурации | `/` или `root`    | Из любого уровня → в корень |

Пример навигации:

```text
    #  system              ← перешли в system
    # (system) mng-if      ← перешли в management-интерфейс
    # (mng-if) ..          ← вернулись в system
    # (system) serial      ← перешли в serial
    # (serial) /           ← вернулись в корень
    #
```

На практике наиболее удобны **`..`** (на уровень выше) и **`/`** (в корень).

### 13.4.2. Автодополнение (Tab), история команд (↑↓), справка (?)

CLI поддерживает стандартный набор средств навигации:

| Клавиша / команда     | Действие                                                  |
| --------------------- | --------------------------------------------------------- |
| **Tab**               | Автодополнение команды (если единственный вариант)        |
| **↑ / ↓**             | Переход по истории введённых команд                       |
| **?**                 | Показать все доступные команды на текущем уровне          |
| **часть_команды + ?** | Показать команды, начинающиеся с введённого текста        |
| **!**                 | Показать доступные ветки конфигурации на текущем уровне   |

## 13.5. Применение конфигурации: `apply`, сохранение: `wr`

Изменения в конфигурации **не применяются немедленно**. Процесс состоит из двух шагов:

```text
    Внесение изменений  ──►  apply  ──►  wr
         │                      │           │
         │                      │           └─ Сохранение в startup-config
         │                      │              (переживёт перезагрузку)
         │                      │
         │                      └─ Применение к running-config
         │                         (проверка синтаксиса, активация)
         │
         └─ Изменения только в буфере
            (не активны, не сохранены)
```

| Команда   | Действие                                                                    |
| --------- | --------------------------------------------------------------------------- |
| **`apply`** | Проверяет синтаксическую корректность и применяет конфигурацию. Выдаёт сообщение об успехе или ошибке. Конфигурация становится активной, но **не сохраняется** при перезагрузке |
| **`wr`**    | Сохраняет текущую конфигурацию в **startup-config**. После перезагрузки устройство загрузится с сохранённой конфигурацией |

Если после `apply` не выполнить `wr` и перезагрузить устройство — оно вернётся к предыдущей сохранённой конфигурации.

## 13.6. Управление конфигурациями: save, load, copy, clear config

На фильтре существуют несколько предопределённых конфигураций:

| Конфигурация        | Описание                                                    |
| ------------------- | ----------------------------------------------------------- |
| **Startup config**  | Конфигурация, с которой устройство загружается              |
| **Effective config**| Текущая активная конфигурация (после последнего `apply`)    |
| **Factory config**  | Заводская конфигурация по умолчанию (неизменяемая)          |

Команды управления:

| Команда                     | Действие                                                    |
| --------------------------- | ----------------------------------------------------------- |
| `save <имя>`                | Сохранить текущую конфигурацию на диск под указанным именем  |
| `load <имя>`                | Загрузить ранее сохранённую конфигурацию                    |
| `load effective`            | Загрузить текущую активную конфигурацию (полезно, если кто-то изменил конфиг параллельно) |
| `copy <URL>`                | Скопировать конфигурацию на внешний сервер по URL           |
| `clear config`              | Сбросить текущую конфигурацию до заводской                  |

> **Осторожно с `clear config`:** после выполнения `apply` management-адрес сменится на заводской. Если вы подключены по SSH — **потеряете доступ** к устройству. Останется только возможность подключения через физическую консоль.

## 13.7. Одновременная работа двух пользователей: ограничения

Одновременная настройка фильтра двумя пользователями **не рекомендуется**. Механизма совместного редактирования конфигурации на текущий момент не реализовано.

Проблема: последний, кто выполнит команду `apply`, **полностью перезаписывает** конфигурацию. Все изменения, внесённые другим пользователем и ранее применённые, будут **затёрты**.

Если вы обнаружили, что на устройстве работает кто-то ещё и вносит изменения, можно периодически выполнять команду `load effective` — это загрузит в ваш буфер текущую активную конфигурацию (с изменениями, внесёнными коллегой).

## 13.8. «Мышеловка» (trap mode) при незакрытой скобке

В CLI фильтра существует режим многострочного ввода для списков значений (DNS-серверы, IP-адреса и т.д.). Этот режим активируется, когда вы открываете **скобку**, но **не закрываете** её перед нажатием Enter.

В результате вы попадаете в особый режим (неофициально называемый **«мышеловкой»**), в котором:

- невозможно выйти командой `exit` или `..`;
- невозможно перейти в корень конфигурации командой `/`;
- никакие стандартные команды навигации не работают.

Способ выхода: **поставить закрывающую скобку**. После этого введённые данные применятся, и CLI вернётся на предыдущий уровень конфигурации.

Это **не баг, а особенность** (feature) — режим предназначен для построчного ввода списков значений. Если вы попали в него случайно, просто введите закрывающую скобку `)`.

## 13.9. Ключевое слово `ls` для быстрого просмотра

При переходе в любую ветку конфигурации можно добавить ключевое слово **`ls`** в конце команды. Это приведёт к тому, что вы не просто перейдёте в указанный раздел, а сразу **увидите его содержимое** на экране.

```text
    # system ls              ← перейти в system и сразу показать всё содержимое
    # system mng-if ls       ← перейти в mng-if и сразу показать настройки
```

Это удобное сокращение, экономящее время при просмотре конфигурации — вместо двух действий (переход + просмотр) выполняется одно.

Аналогично, при вводе описаний (description) для интерфейсов и других сущностей значения вводятся **в кавычках**, если они содержат спецсимволы (например, дефис `-` может быть воспринят как оператор, а не как часть строки).

---

[← Оглавление](../README.md) · [← Раздел 12: Сессии и трансляции на фильтре](12.md) · [Раздел 14: Фильтр: конфигурация подсистем →](14.md)
