configure replace file

Команда configure replace file заменяет текущую Cisco-like конфигурацию на конфигурацию, сохраненную в файле. Команда доступна в привилегированном режиме. В конфигурационном режиме используется команда do  configure  replace  file. В зависимости от режима существует отличие в функциональности: в привилегированном режиме выполняется конвертирование, в конфигурационном режиме – конвертирование не делается.   

 

Синтаксис                     configure replace file:file-path

file-path          путь к файлу.

                                      Если file-path – относительный путь (начинается не с прямого слэша; частный случай – просто имя файла), то полный путь к файлу формируется как /var/cspvpn/file-path.

                                     

Режимы команды                               privileged EXEC.

 

Рекомендации по использованию

Команда configure  replace  file используется для восстановления сохраненной в файле конфигурации.

В качестве параметра для данной команды рекомендуется задавать только файлы, полученные с помощью команды copy  running-config. Не рекомендуется вручную писать и редактировать данные файлы.

После ввода этой команды выдается запрос подтверждения:

% Warning: This will replace the current running configuration with the contents of the specified configuration file, which is assumed to be a complete configuration, not a partial configuration.

Are you sure you want to do this? [yes/no]:

На который надо ответить “yes” для подтверждения команды, “no” – для прерывания команды (следует ввести слово целиком, без сокращений). Для отмены команды можно нажать на CTRL+C.

Текущая конфигурация полностью меняется на конфигурацию из файла с учетом следующих особенностей (далее для простоты используются следующие термины: «старая конфигурация» – конфигурация до ввода команды, «новая конфигурация» – конфигурация, загруженная из файла):

Если в старой конфигурации присутствует описание пользователя, из-под которого запущен данный процесс cs_console (команда username), а в новой конфигурации команда с описанием этого пользователя отсутствует, то данная команда будет автоматически перенесена из старой конфигурации в новую с выдачей сообщения:

User '<user-name>' added to the current configuration automatically

Существуют особенности, связанные с обработкой команд username – их обработка существенно отличается для случаев, когда пользователь присутствовал или отсутствовал в старой конфигурации:

·       Если пользователь уже присутствовал в старой конфигурации, логика обработки команды аналогична логике при загрузке начальной конфигурации (см. Таблица 2 ).

·       Если пользователь отсутствовал в старой конфигурации, логика обработки аналогична логике при ручном вводе команды с новым пользователем (см. username password).

·       Основное отличие этих двух ситуаций состоит в обработке ситуации, когда пользователь с данным именем уже существует в системе.

·       Если пользователь уже присутствовал в старой конфигурации и в качестве shell у него прописана cs_console, то он будет перенесен в новую конфигурацию без дополнительных сообщений пользователю, если в качестве shell прописана другая программа, то с выдачей сообщения: User "<user-name>" shell changed to /opt/VPNagent/bin/cs_console.

·       Если пользователь отсутствовал в старой конфигурации и в качестве shell у него прописана cs_console, то он будет перенесен в новую конфигурацию с выдачей сообщения: Warning: User "<user-name>" already exists in the system. It was reused, в противном случае команда будет отвергнута с выдачей сообщения об ошибке: % User addition failed. User "<user-name>" already exists in the system.

Примечание 1: если в новой конфигурации отсутствуют пользователи, присутствовавшие в старой конфигурации, они будут удалены из системы с выдачей сообщения: User '<user-name>' removed  from  the  system  automatically, за исключением пользователя, из-под которого запущен процесс cs_console.

 

Если в новой конфигурации присутствуют команды настройки сетевых интерфейсов, отсутствующих в данной системе, эти команды будут проигнорированы с выдачей сообщения: % Warning: network  interface(s) <interface-list> currently  not  present  in  the  system. They  are  ignored.

Если в системе присутствуют интерфейсы, отсутствующие в загружаемой конфигурации:

·       их системные настройки (IP адреса, MTU, административный статус) останутся без изменений;

·       будет выдано сообщение: % Warning: network interface(s) <interface-list> have not present in the loaded config. They left intact;

·       настройки, специфичные для cs_console (привязки различных фильтров и crypto maps, настройки DF bit и т.п.) удаляются.

Если в новой конфигурации присутствуют системные настройки для ненастраиваемых сетевых интерфейсов, отличные от текущих настроек, они игнорируются с выдачей сообщения: % Warning: network  interface(s) <interface-list> have  different  settings  in  the  loaded  config. They  are  not  configurable, so  they  left  intact.

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

·       В случае если на одном интерфейсе будет зафиксировано расхождение в IP-адресах, на данном интерфейсе будут удалены все текущие адреса, а затем будет сделана попытка добавить адреса из новой конфигурации.

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

·       При детектировании любого расхождения в системных настройках на настраиваемом интерфейсе (IP-адреса, MTU, административный статус), в конце на интерфейсе будет принудительно выставлен административный статус из новой конфигурации, даже если он не менялся по конфигурации.

 

Примечание 2: если в базе локальных настроек агента присутствуют CA сертификаты, отсутствующие в загружаемой конфигурации, они будут удалены из базы локальных настроек агента с выдачей сообщения: CA '<subject-name>' removed  from  local  settings  automatically.

 

Примечание 3: если в новой конфигурации отсутствуют описания Preshared Keys (команда crypto isakmp key), присутствующие в старой конфигурации, то из базы локальных настроек будут удалены соответствующие им записи.

 

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

В случае неудачи будут выданы сообщения вида:

 % Can't delete route '<prefix> <mask> { <gw-ip-addr> | <interface-name> }': <reason>

или  

% Can't add route '<prefix> <mask> { <gw-ip-addr> | <interface-name> }': <reason>

где <prefix> <mask> – адресная информация маршрута (подробнее см. команду ip route), <gw-ip-addr> – адрес шлюза, через который проходит маршрут, <interface-name> – имя сетевого интерфейса, через который проходит маршрут, <reason> – причина ошибки.

 

Отличие данной команды от подобной команды Cisco  IOS:

Используется префикс “file:”, специфичный для cs_console.

Отсутствуют дополнительные параметры команды.

Существенно отличается логика исполнения команды – в Cisco IOS происходит автоматическое формирование дельта-конфигурации, преобразующей текущую конфигурацию в конфигурацию из файла, в cs_console данная команда просто загружает конфигурацию из файла. Указанные различные действия должны приводить к аналогичному результату.

Существенно отличается формат вывода информационных сообщений и сообщений об ошибках.

 

Возможные сообщения об ошибках при выполнении команды приведены в таблице.

Таблица 20

Сообщение

Пояснение

% Unknown destination prefix (should be 'file:')

Перед путем к файлу не введен префикс file:

% File path is empty

Введен пустой путь к файлу:
configure replace file:

% File not found

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

CA '<subject-name>' removed from local settings automatically

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

% Error: CA '<subject-name>' removal falied

Была сделана неуспешная попытка удалить CA, отсутствующий в новой конфигурации

% Warning: network interface <interface> configuration failed: <msg>

Ошибка настройки сетевого интерфейса.
<msg> – сообщение, аналогичное сообщению при ручной настройке интерфейса (команды ip address, mtu, shutdown).

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

% Warning: network interface <interface> configuration failed: 'no ip address' command is not allowed in the loaded config

Ошибка настройки сетевого интерфейса: команда no ip address недопустима в загружаемой конфигурации.

% Warning: network interface <interface> configuration failed: more than one primary address are not allowed in the loaded config

Ошибка настройки сетевого интерфейса: больше одного primary адреса на интерфейсе не допускается в загружаемой конфигурации.

% Warning: network interface(s) <interface-list> currently not present in the system. They are ignored.

Сетевые интерфейс(ы) <interface-list> отсутствуют в системе. Их настройки проигнорированы.

% Warning: network interface(s) <interface-list> have not present in the loaded config. They left intact.

Сетевые интерфейс(ы) <interface-list> отсутствуют в загружаемой конфигурации. Их системные настройки оставлены без изменений.

% Warning: network interface(s) <interface-list> have different settings in the loaded config. They are not configurable, so they left intact.

Сетевые интерфейс(ы) <interface-list> имеют отличные от текущих настройки в загружаемой конфигурации. Эти интерфейсы не настраиваемые, поэтому их настройки оставлены без изменений.

User '<user-name>' removed from the system automatically

Пользователь <user-name> автоматически удален из системы.

% Error: User '<user-name>' removal failed

Не удалось автоматически удалить пользователя <user-name> из системы.

User '<user-name>' added to the current configuration automatically

Пользователь <user-name> автоматически добавлен в текущую конфигурацию.
Примечание: пользователь <user-name> – пользователь, из-под которого в данный момент запущен процесс cs_console.

User "<user-name>" shell changed to /opt/VPNagent/bin/cs_console

Shell пользователя <user-name> сменен на /opt/VPNagent/bin/cs_console
Примечание: только для пользователя, который уже присутствовал в старой конфигурации.

Warning: User "<user-name>" already exists in the system. It was reused.

Пользователь <user-name> уже существует в системе. Консоль теперь будет его использовать.
Примечание: только для пользователя, отсутствовавшего в старой конфигурации; shell пользователя – /opt/VPNagent/bin/cs_console.

% User addition failed. User "<user-name>" already exists in the system.

Не удалось добавить пользователя. Пользователь <user-name> уже присутствует в системе.
Примечание: только для пользователя, отсутствовавшего в старой конфигурации; shell пользователя отличен от /opt/VPNagent/bin/cs_console.

% ERROR: Replace of the current running configuration failed

Не удалось заменить текущую конфигурацию на новую.
Возвращается старая конфигурация.
Примечание: в данной ситуации возможно некорректное восстановление конфигурации (особенно ссылок на внешние объекты: пользователи, CA, preshared keys). Рекомендуется перезапустить cs_console.

LSP conversion failed:
<cs_converter_err_msg>

Ошибка конвертирования LSP
<cs_converter_err_msg> – сообщение об ошибке конвертора

LSP conversion complete with additional message(s):
<cs_converter_msgs>

Конвертирование LSP завершено успешно, но с дополнительными сообщениями:
<cs_converter_msgs> – сообщения конвертора