configure replace
configure replace
Команда 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.
Таблица 9
| Сообщение | Пояснение |
| % 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 |
| LSP conversion complete with additional message(s): | Конвертирование LSP завершено успешно, но с дополнительными сообщениями: <cs_converter_msgs> – сообщения конвертора |