Команда configure replace заменяет текущую Cisco-like конфигурацию на конфигурацию, сохраненную в файле. Команда доступна в привилегированном режиме. В конфигурационном режиме используется команда do configure replace. В зависимости от режима существует отличие в функциональности: в привилегированном режиме выполняется конвертирование, в конфигурационном режиме – конвертирование не делается. В команде используются префиксы, аналогичные используемым в командах работы с файлами.
Синтаксис configure replace fs-prefix:file-path
fs-prefix: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 данная команда просто загружает конфигурацию из файла. Указанные различные действия должны приводить к аналогичному результату.
Существенно отличается формат вывода информационных сообщений и сообщений об ошибках.
Возможные сообщения об ошибках при выполнении команды приведены в таблице.
Таблица 9
Сообщение |
Пояснение |
% Unknown destination prefix (should be 'file:') |
Перед путем к файлу не введен префикс file: |
% File path is empty |
Введен пустой путь к
файлу: |
% 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> |
Ошибка настройки сетевого
интерфейса. Примечание: ниже приведены еще несколько сообщений с указанным шаблоном; однако сообщения в них специфичны для загрузки конфигурации из файла и не имеют аналогов при ручном вводе команд. |
% 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 "<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>
уже существует в системе. Консоль теперь будет его использовать. |
% User addition failed. User "<user-name>" already exists in the system. |
Не удалось добавить пользователя.
Пользователь <user-name> уже присутствует в системе. |
% ERROR: Replace of the current running configuration failed |
Не удалось заменить текущую
конфигурацию на новую. |
LSP
conversion failed: |
Ошибка конвертирования
LSP |
LSP
conversion complete with additional message(s): |
Конвертирование LSP завершено
успешно, но с дополнительными сообщениями: |