2. Основы работы

В ПАК “Фортикс” предусмотрены следующие режимы работы:

  • режим администрирования: позволяет осуществлять первичную настройку, диагностические функции, работу с ключевой информацией и другие функции по обслуживанию устройства;

  • режим конфигурации: позволяет изменять конфигурацию устройства.

Для описания процесса конфигурирования устройства применяются следующие понятия:

  • running – действующая конфигурация;

  • candidate – конфигурация-копия действующей конфигурации running, используемая для внесения изменений;

  • startup – сохранённая на внутренний носитель конфигурация (по умолчанию запись running сохраняется в startup), используемая при запуске системы;

  • commit – успешно применённая конфигурация-точка восстановления, используемая для сохранения состояния конфигурации.

Конфигурации commit хранятся в виде списка точек восстановления, который “сдвигается вниз” при добавлении новой точки восстановления (в случае переполнения списка последняя (наиболее старая) запись удаляется). Список точек восстановления может содержать не более 50 элементов.

Конфигурация устройства представлена в виде древовидной схемы на языке YANG (см. RFC 7950).

2.1. Основы работы с интерфейсом командной строки

Для управления системой используется Juniper-подобный интерфейс, команды в котором применяются следующим образом:

> command parameters

где

  • command – команда;

  • parameters – параметры команды (если параметров несколько, они указываются через пробел).

Каждый параметр команды может быть:

  • опциональным (необязательным);

  • имеющим аргумент;

  • не имеющим аргумент.

Далее по тексту обязательный параметр команды обозначается в <>, необязательный – [].

Для удобства взаимодействия с командной строкой ПАК “Фортикс” доступно использование следующих горячих клавиш:

  • <Tab> – автодополнение команды/параметра или вывод возможных вариантов команд/параметров;

  • <?> – вывод списка доступных на текущем уровне конфигурации команд или параметров.

2.2. Режим администрирования

2.2.1. Процесс администрирования

Непосредственно после запуска системы используется режим администрирования, который обозначается символом > в начале командной строки:

> command

Пример применения команды режима администрирования для просмотра действующей конфигурации running:

> show running

Для преобразования вывода команды command-1 с помощью команды command-2 применяется конструкция:

> command-1 | command-2

Предупреждение

Данная конструкция применима не для всех команд.

По умолчанию для многих команд применяется опция pager для постраничного преобразования вывода.

Для подавления опции pager применяется конструкция:

> command | no-pager

Пример подавления опции pager в выводе команды для просмотра действующей конфигурации running:

> show running | no-pager

Для преобразования вывода с использованием n-ого количества команд применяется конструкция:

> command-1 | command-2 | ... | command-n

Пример преобразования вывода с использованием n-ого количества команд для записи информации о версии ядра в файл:

> show version | grep Kernel | write <file-name>

где <file-name> – полное имя файла или имя файла относительно домашней директории пользователя.

Список некоторых команд для преобразования ввода:

  • grep – найти (выбрать);

  • sort – отсортировать;

  • compare – сравнить;

  • silent – подавить интерактивность (не спрашивать);

  • write – записать.

2.2.2. Команды режима администрирования

В режиме администрирования в интерфейсе командной строки ПАК “Фортикс” возможно использование следующих команд:

  1. Команды для работы с файлами:

  • edit <file-name> – редактировать файл, где <file-name> – полное имя файла или имя файла относительно домашней директории пользователя;

  • archive [gzip|tar|zip] create <archive-name> <source-name> – создать архив, где gzip|tar|zip – тип создаваемого архива, по умолчанию – tar, <archive-name> – полное имя создаваемого архива или имя архива относительно домашней директории пользователя, <source-name> – полное имя архивируемого файла/директории или имя файла/директории относительно домашней директории пользователя;

  • archive [gzip] extract <archive-name> <destination-name> – извлечь архив, где <archive-name> – полное имя извлекаемого архива или имя архива относительно домашней директории пользователя, <destination-name> – полное имя директории для извлечённых из архива данных или имя директории относительно домашней директории пользователя (архивы типа tar|zip извлекаются автоматически);

  • archive list <archive-name> – вывести содержимое архива, где <archive-name> – полное имя существующего архива или имя архива относительно домашней директории пользователя;

  • cat <file-name> – вывести на экран содержимое файла типа tar|zip, где <file-name> – полное имя файла или имя файла относительно домашней директории пользователя;

  • compare <file-name-1> <file-name-2> – сравнить содержимое файлов, где <file-name-1>, <file-name-2> – полные имена сравниваемых файлов или имена файлов относительно домашней директории пользователя, на экран выводится сообщение при наличии отличий;

  • copy <name-1> <name-2> – скопировать содержимое файла/директории <name-1> в файл/папку <name-2>, где <name-1>, <name-2> – полные имена файлов/директорий или имена файлов относительно домашней директории пользователя;

  • echo <message> – вывести сообщение в терминал, где <message> – строка;

  • ls <file-name> – вывести размер в байтах, дату и время последнего изменения и имя файла, где<file-name> – полное имя файла или имя файла относительно домашней директории пользователя;

  • mkdir <directory-name> – создать директорию, где ` – полное имя директории или имя директории относительно домашней директории пользователя;

  • mv <file-name-1> <file-name-2> – перенести содержимое файла <file-name-1> в файл <file-name-2>, где <file-name-1>, <file-name-2> – полные имена файлов или имена файлов относительно домашней директории пользователя;

  • rm <file-name> – удалить файл, где <file-name> – полное имя существующего файла или имя файла относительно домашней директории пользователя;

  • tail <file-name> [follow|lines] – вывести конец содержимого файла, где <file-name> – полное имя существующего файла или имя файла относительно домашней директории пользователя, follow – режим отслеживания содержимого, lines – количество последних выводимых строк;

  • who ami – вывести имя текущей учётной записи (пользовтаеля).

  1. Команды для сетевого взаимодействия:

  • ping <domain-name>|<address> – проверить доступность сетевого узла, где <domain-name>|<address> – имя или IPv4/IPv6-адрес существующего узла;

  • traceroute <domain-name>|<address> – выполнить трассировку маршрута до сетевого узла, где <domain-name>|<address> – имя или IPv4/IPv6-адрес существующего узла;

  • arping <domain-name>|<address> – проверить доступность сетевого узла, где <domain-name>|<address> – имя или IPv4/IPv6-адрес существующего узла;

  • curl <url> – загрузить/выгрузить файл с/на указанный URL, где <url> – строка;

  • nslookup <domain-name>|<address> – получить доменную информации о сетевом узле, где <domain-name>|<address> – имя или IPv4/IPv6-адрес существующего узла;

  • ssh connect – подключиться к сетевому узлу по протоколу SSH (см. подраздел 16.2 Команды клиентской части);

  • ssh get|put – получить/отправить файл по протоколу SSH с/на сетевой узел (см. подраздел 16.2 Команды клиентской части);

  • ssh key generate – сгенерировать ключевую пару для аутентификации на SSH-сервере (см. подраздел 5.1.3 Настройка ключевой информации для учётной записи);

  • tcpdump [interface <interface-name>] [pcap <filter>] – выполнить анализ сетевого трафика, где <interface-name> – имя существующего интерфейса (см. раздел 6 Сетевые интерфейсы), <filter> – pcap-фильтр;

  • telnet <domain-name>|<address> – подключиться к сетевому узлу по протоколу Telnet, где <domain-name>|<address> – имя или IPv4/IPv6-адрес существующего узла (см. подраздел 17.2 Команды клиентской части);

  • whois <domain-name> – получить регистрационную информацию о сетевом узле, где <domain-name> – имя существующего узла.

  1. Прочие команды:

  • poweroff – выключить ПАК “Фортикс”;

  • reboot – перезагрузить ПАК “Фортикс”;

  • clear conntrack [<filters>] – удалить запись из таблицы отслеживания соединений, где<filter> – строка (см. ниже).

В качестве параметра <filter> возможно указание одного или нескольких из следующих фильтров:

  • dnat – DNAT-соединения;

  • dport <dport-number> – соединения с заданным DNAT-портом, где <dport-number> – число от 1 до 65535;

  • dst <dst-address> – соединения с заданным адресом назначения, где <dst-address> – IPv4/IPv6-адрес;

  • ipv4|ipv6 – соединения заданного семейства адресов;

  • proto <proto-name> – соединения заданного протокола, где <proto-name> – строка;

  • snat – SNAT-соединения;

  • sport <sport-number> – соединения с заданным SNAT-портом, где <sport-number> – число от 1 до 65535;

  • src <src-address> – соединения с заданным адресом источника, где <dst-address> – IPv4/IPv6-адрес.

2.3. Режим конфигурации

Для перехода в режим конфигурации применяется команда:

> configure
#

Режим конфигурации обозначается символом # в начале командной строки.

Для применения команд из режима администрирования в режиме конфигурации перед командой режима администрирования используется префикс do:

# do command

Пример применения команд из режима администрирования в режиме конфигурации для просмотра версии ПО:

# do show version

В режиме конфигурации доступны следующие основные команды:

  • commit – применить конфигурацию-копию candidate в качестве действующей конфигурации running;

  • del <path-to-element> – удалить элемент конфигурации, где <path-to-element> – строка в формате интерфейса командной строки;

  • diff – просмотреть разницу между действующей конфигурацией running и конфигурацией-копией candidate;

  • edit <configuration-level> – перейти на уровень дерева конфигурации, где <configuration-level> – строка в формате интерфейса командной строки;

  • up – подняться на уровень выше в дереве конфигурации;

  • end – выйти из режима конфигурации;

  • exit – в зависимости от текущего уровня в дереве конфигурации подняться на уровень выше (аналогично up) или выйти из режима конфигурации (аналогично end);

  • insert <path-to-element> first|last – вставить элемент в начало/в конец списка на его уровне конфигурации, где <element-path> – строка в формате интерфейса командной строки;

  • insert <path-to-element> after|before <path-to-element> – вставить элемент до/после другого элемента, где <path-to-element> – строка в формате интерфейса командной строки;

  • rollback <commit-date> – заменить конфигурацию-копию candidate на указанную конфигурацию-точку восстановления commit, где <commit-date> – строка в формате commit-yyyy-mm-dd-hh:mm:ss-<account-login>, в которой <account-login> – имя учётной записи, выполнившей команду commit для сохранения данной конфигурации-точки восстановления (например, commit-2025-10-10-20:10:10-root);

  • set <path-to-element> – установить элемент, где <path-to-element> – строка в формате интерфейса командной строки;

  • show – просмотреть конфигурацию-копию candidate;

  • top – подняться на корневой уровень в дереве конфигурации.

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

2.3.1. Процесс конфигурирования

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

  1. При внесении изменений администратор автоматически работает с конфигурацией-копией candidate, накапливая все необходимые модификации в ней.

  2. После формирования конфигурации-копии candidate согласно всем необходимым изменениям применяется команда commit для замены действующей конфигурации running на candidate. При этом конфигурация, сохраняемая на внутренний носитель, startup обновляется автоматически.

  3. После применения изменений сохраняется новая точка восстановления commit, равнозначная новой текущей конфигурации running.

Такой процесс управления конфигурацией позволяет администратору постоянно контролировать логическую атомарность и консистентность вносимых изменений, например, при изменении маршрутизации и правил фильтрации одновременно.

2.3.2. Процесс управления деревом конфигурации

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

  • set – установить элемент;

  • del – удалить элемент;

  • insert – вставить/переместить элемент.

Параметры данных команд см. выше.

Путь к элементу дерева конфигурации в формате интерфейса командной строки вводится как последовательность “слов”, разделённых пробелами.

Пример команды для установления значения "main interface" для элемента description (описание) интерфейса en0 типа ether:

# set interface ether en0 description "main interface"

Для настройки сразу нескольких элементов, находящихся на одном уровне конфигурации, используется конструкция one-liner: в команде указываются сразу несколько элементов через пробел на их уровне конфигурации.

Пример применения one-liner для перевода интерфейса из примера выше в рабочий режим и настройки получения IPv4-адреса по протоколу DHCP:

# set interface ether en0 description "main interface" enable ipv4 dhcp

2.3.2.1. Способы изменения, импорта и экспорта конфигурации

Команда show позволяет просматривать конфигурацию в текстовом формате и задавать в качестве её параметра путь к просматриваемому уровню конфигурации.

Пример применения команды show для просмотра конфигурации всех интерфейсов типа ether:

# show interface ether

Для добавления конфигурации в текстовом формате используется команда merge, позволяющая дополнять конфигурацию (не замещать её).

Возможны следующие варианты применения команды merge:

  • дополнить конфигурацию из терминала (командной строки);

  • дополнить конфигурацию из файла.

Так как команда merge позволяет вносить изменения на текущем уровне конфигурации (при применении команды edit), дополнение конфигурации из терминала с помощью данной команды применимо при копировании фрагментов конфигурации.

Пример применения команды merge для переноса конфигурации интерфейса en0 в конфигурацию интерфейса en1:

  1. Вывести конфигурацию интерфейса en0:

# show interface ether en0
description "main interface"
enable
ipv4 dhcp
[edit]
  1. Выделить и скопировать в буфер обмена вывод команды.

  2. Перейти на уровень конфигурации интерфейса en1 и применить команду merge для дополнения конфигурации из терминала:

# edit interface ether en1
[edit interface ether en1]
# merge terminal
Paste config and press C-d to ссс, C-c to abort.
enable
ipv4 dhcp
[edit interface ether en1]
  1. Вставить содержимое буфера обмена и воспользоваться комбинацией клавиш <Ctrl> + <D> для применения изменений к конфигурации-копии candidate.

  2. При необходимости выполнить команду diff для просмотра разницы между текущей конфигурацией running и конфигурацией-копией candidate. Выполнить команду commit для применения изменений к текущей конфигурации running:

# diff
interface {
ether en1 {
-    no-link-detect
    ipv4 {
+      dhcp
-      address 192.168.101.1/24
    }
  }
}
[edit interface ether en1]
# commit

Предупреждение

Не все настройки конфигурации возможно дополнить с помощью вышеописанного метода из-за особенностей вывода команды show. Например, пароли администраторов при применении команды show выводятся следующим образом:

# show system login account admin
uid 1001
passwd-hash <hidden>

Подобные настройки перенести через буфер обмена невозможно.

Для экспорта конфигурации-копии candidate в заданном формате применяется команда:

# export json|xml [component]

где

  • json|xml – формат экспортируемой конфигурации;

  • component – импортируемый уровень конфигурации в формате интерфейса командной строки.

По данной команде выводится вся конфигурация или настройки указанного уровня конфигурации при наличии параметра [component]. Для записи конфигурации в файл используется преобразование вывода с помощью команды write (см. подраздел 2.2 Режим администрирования).

Для импорта конфигурации в заданном формате применяется команда:

# import json|xml <file-name>

где

  • json|xml – формат файла с импортируемой конфигурации;

  • <file-name> – полное имя файла с импортируемой конфигурацией или имя файла относительно домашней директории пользователя.

Для импорта конфигурации-точки восстановления заданной версии (даты) применяется команда:

# import commit <commit-date>

где <commit-date> – строка в формате commit-yyyy-mm-dd-hh:mm:ss-<account-login>, в которой <account-login> – имя учётной записи, выполнившей команду commit для сохранения данной конфигурации-точки восстановления (например, commit-2025-10-10-20:10:10-root).

Для импорта заводской конфигурации применяется команда:

# import factory-default

Сброс к заводской конфигурации возможен только через применение заводской конфигурации factory-default посредством команды commit. Никакие комбинации клавиш на корпусе изделия не приведут к сбросу до заводских настроек.

Сохранённая конфигурация startup хранится в формате xml.

Предупреждение

Команды import, export, merge не вносят изменения в текущую конфигурацию running, данные команды изменяют конфигурацию-копию candidate. Для применения изменений к текущей конфигурации running используется команда commit.

2.4. Ошибки соответствия YANG-схеме

Схема конфигурации ПАК “Фортикс” описана на языке YANG (см. RFC 7950). При применении команды commit перед внесением изменений в текущую конфигурацию running, сформированных в конфигурации-копии candidate, осуществляется проверка конфигурации-копии candidate на соответствие YANG-схеме. Если конфигурация-копия candidate не проходит проверку, выводится информация об ошибке в виде текстового сообщения, содержащего информацию о проблемном участке конфигурации в виде пути XPath к YANG-схеме или пути к элементу конфигурации.

Пример сообщения об ошибке соответствия YANG-схеме:

# diff
qos {
  qdisc {
+    htb a
  }
}
# commit
Error: Mandatory node "ceil" instance does not exist. (Data location "/fx-qos:qos/qdisc/htb[name='a']".)
Error: Invalid candidate configuration

Команда commit не выполнена, так как не создан обязательный элемент ceil на участке /fx-qos:qos/qdisc/htb[name='a'] (данный путь соответствует пути qos qdisc htb a в формате интерфейса командной строки).

Сообщения об ошибке имеют следующий формат:

Error: Содержание ошибки (местоположение ошибки).

Значения, принимаемые полем Содержание ошибки представлены в таблице 2.1.

Таблица 2.1 Возможные значения поля Содержание ошибки

Сообщение

Значение

Too few <path> instances.

Недостаточное число элементов на участке <path>.

Too many <path> instances.

Избыточное число элементов на участке <path>.

Mandatory choice <choice-name> data do not exist.

Обязательная ветка <choice-name> не задана.

Mandatory node <node-name> instance does not exist.

Обязательный элемент <node-name> не задан.

When condition <expression> not satisfied.

Не выполнено условие <expression> в конструкции when.

Unique data leaf(s) <leaf-name> not satisfied in <path-1> and <path-2>.

Нарушено требование уникальности элемента(ов) <leaf-name> на участках <path-1> и <path-2>.

Must condition <expression> not satisfied.

Не выполнено условие <expression> в конструкции must.

Значения, принимаемые полем Местоположение ошибки, представлены в таблице 2.2.

Таблица 2.2 Возможные значения поля Местоположение ошибки

Сообщение

Значение

Data location

Путь к элементу конфигурации в формате XPath

Schema location

Путь к схеме конфигурации в формате XPath

Path

Путь в формате XPath, который не соответствует ни элементу, ни схеме

Для просмотра информации о YANG-схеме ПАК “Фортикс” применяется группа команд show system yang в режиме администрирования.

Пример применения группы команд show system yang:

> show system yang xpath interface ether en0
/fx-interface:interface/fx-interface-ether:ether[name="en0"]

> show system yang scheme /fx-interface:interface/fx-interface-ether:ether
fx-interface-ether:ether[name]/
 description
 enable
 mtu
 no-multicast
...
..
.
> show system yang package fx-interface