Cisco IOS. Знакомимся ближе. Часть 1
Это первая статья из серии, в которой будут рассматриваться различные полезные, на мой взгляд, возможности IOS (команды, функции и др). В этой серии каждая отдельная функция или механизм не будут объясняться подробно, будет дан только обзор возможностей и несколько примеров использования. Многие из них, вероятно, будут вам знакомы, но, надеюсь, что в каждой статье вы найдете что-то новое и полезное.
В этой статье будут рассмотрены базовые команды IOS, которые могут быть полезны всем, независимо от того, какие функции настроены на оборудовании.
Информация на сайте Cisco
По настройке оборудования Cisco достаточно много документации, как на официальном сайте, так и на других. Но бывает, что в поисках информации о конкретной команде или функции, приходится просматривать много сайтов и форумов, пока получается добраться до нужной информации. Возможно, небольшие подсказки помогут вам сократить время в следующий раз.
Cisco Feature Navigator
Возможности, которые будут рассматриваться в этой статье и следующих, или те, которые интересуют вас, могут быть доступны не во всех версиях IOS. Для того чтобы проверить доступно ли это (или любая другая функция) в конкретной модели оборудования или версии IOS, можно воспользоваться Cisco Feature Navigator (CFN).
CFN позволяет подходить к поиску с разных сторон. Вы можете найти в каких версиях IOS и для каких платформ доступна функция, или какие функции доступны в определенном IOS. Интерфейс CFN достаточно прост и понятен, так что не нуждается в особых объяснениях.
Документация на cisco.com
Документация на сайте cisco.com разбита на несколько разделов. Например, настройка, поиск неисправностей, дизайн. Начать знакомство с классификацией документов можно с общей страницы. Далее, можно выбрать технологию или тип устройства, для которого нужна документация.
Одни из основных документов, которые могут быть полезны при настройке оборудования – это command reference и configuration guide.
* Command reference – это документы на сайте Cisco, которые описывают команды. В них описан синтаксис команды, в каких случаях и для чего она используется, примеры использования, в какой версии IOS она появилась. Документы разделены по версиям IOS, так что лучше сразу искать документ, соответствующий вашей версии.
* Configuration guide – документы на сайте Cisco, в которых описываются различные функции, протоколы и т.п. Есть и теоретические сведения, команды и примеры настройки. Документы разделены по тематике и версиям IOS, так что лучше сразу искать документ, соответствующий вашей версии.
Полезные команды
В этом разделе рассматриваются несколько простых, но полезных в работе с оборудованием, команд.
reload
При настройке удаленного оборудования, можно допустить ошибку в настройках, из-за которой будет потерян доступ к оборудованию. Для того чтобы подстраховаться от подобных случаев, можно воспользоваться запланированной перезагрузкой.
Если Вы планируете изменять настройки, которые могут привести к потере связи, то можно заранее указать, например, что маршрутизатор должен быть перезагружен через 20 минут:
R1# reload in 20
В таком случае, если в конфигурации была допущена ошибка, то при перезагрузке маршрутизатор вернется к исходной рабочей конфигурации.
Если изменения были применены и никаких проблем не возникло, то можно отменить запланированную перезагрузку:
R1# reload cancel
Аналогичным образом можно указывать точное время, когда маршрутизатор должен быть перезагружен:
R1# reload at 20:35
show processes
Во время обычной работы с оборудованием или во время поиска неисправностей, может понадобиться информация о том, какие процессы работают на маршрутизаторе, какие из них больше всего загружают процессор.
Команда show processes отображает информацию об активных процессах. Параметры команды позволяют отобразить информацию о статистике загрузки процессора, объеме используемой памяти, и даже представить информацию в виде графиков. Далее несколько примеров использования команды.
Отображение отсортированного списка процессов:
R1# sh processes cpu sorted CPU utilization for five seconds: 0%/0%; one minute: 0%; five minutes: 0% PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process 3 708 11292 62 5.59% 3.45% 0.99% 0 Exec 112 110826 3142856 35 4.15% 2.31% 0.62% 0 IP Input 126 4770037 293797680 16 1.19% 0.95% 0.80% 0 IP SLAs XOS Even 82 3767733 253040524 14 1.03% 0.66% 0.65% 0 FastEthernet Msec Ti 252 911780 72797137 12 0.15% 0.09% 0.10% 0 MMON MENG 108 1399765 66059754 21 0.15% 0.10% 0.10% 0 IPAM Manager 44 81822 1645819 49 0.07% 0.00% 0.00% 0 Net Background 7 5836 38826 150 0.00% 0.00% 0.00% 0 Pool Manager 8 0 1 0 0.00% 0.00% 0.00% 0 DiscardQ Backgro 9 0 2 0 0.00% 0.00% 0.00% 0 Timers 11 0 1 0 0.00% 0.00% 0.00% 0 OIR Handler
Отображение списка процессов отсортированного по загрузке за последние 5 минут:
R1# sh processes cpu sorted 5min CPU utilization for five seconds: 0%/0%; one minute: 0%; five minutes: 0% PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process 3 708 11299 62 0.23% 2.68% 0.98% 0 Exec 126 4770065 293799841 16 0.95% 0.92% 0.80% 0 IP SLAs XOS Even 82 3767765 253042444 14 0.71% 0.63% 0.64% 0 FastEthernet Msec Ti 112 110826 3142879 35 0.00% 1.74% 0.60% 0 IP Input 252 911788 72797633 12 0.00% 0.08% 0.10% 0 MMON MENG 108 1399773 66060202 21 0.07% 0.09% 0.10% 0 IPAM Manager 6 740846 392936 1885 0.07% 0.07% 0.06% 0 Check heaps 81 164293 12959263 12 0.07% 0.01% 0.00% 0 FastEthernet Timer C 155 37609 2324186 16 0.00% 0.00% 0.00% 0 bsm_xmt_proc 26 54918 2426825 22 0.00% 0.00% 0.00% 0 ARP Background 11 0 1 0 0.00% 0.00% 0.00% 0 OIR Handler
Графическое представление загрузки процессора:
R1# sh processes cpu history 2121121112121112121 11111222222122 12211121119112121 12221 1926405121716641818 76211100148411 70088401221831611470011 100 90 * 80 * 70 * 60 * 50 * 40 * 30 * * 20 **** ** ***** **** ** ****** ** ***** * ** *** **** 10 ******************* **********#*** **********#****** ***** 0. 5. 1. 1. 2. 2. 3. 3. 4. 4. 5. 5. 0 5 0 5 0 5 0 5 0 5 CPU% per minute (last 60 minutes) * = maximum CPU% # = average CPU%
Отображение списка процессов отсортированных по объему используемой памяти:
R1# sh processes memory sorted Processor Pool Total: 132000208 Used: 63513008 Free: 68487200 PID TTY Allocated Freed Holding Getbufs Retbufs Process 0 0 83612752 37896152 40129488 0 0 *Init* 0 0 50331160 38366960 11307640 1709135 0 *Dead* 300 0 1372496 72104 1313456 0 0 EEM Server 1 0 3276096 2308008 981152 0 0 Chunk Manager 245 0 975432 0 922904 0 0 l4f mgt task 0 0 0 0 460536 0 0 *MallocLite* 287 0 352512 4992 364584 100548 0 EEM ED Syslog 37 0 260064 1664 271360 0 0 RF SCTPthread 247 0 254152 0 271216 0 0 QOS_MODULE_MAIN 3 0 1292184 1134328 227912 22680 0 Exec
Подробнее о команде show processes, ее параметрах и описание значений вывода команд.
interface range и interface range macro
При работе с коммутаторами, часто возникает задача выполнить одинаковое действие с группой портов. Для этого используется команда interface range:
sw1(config)# interface range fa0/1 - 5 sw1(config-if-range)# no shutdown
В команде могут быть перечислены не только порты идущие подряд:
sw1(config)# interface range fa0/1 - 3, fa0/6 - 8, gi0/1 sw1(config-if-range)# no shutdown
Кроме того, если какие-то диапазоны портов используются постоянно, удобно создать для этого диапазона имя (в этом примере имя диапазона «HOSTS») с помощью команды define interface-range:
sw4(config)# define interface-range HOSTS fa0/1 - 3, fa0/6 - 8, gi0/1
Тогда, при дальнейших настройках этого диапазона, порты можно не перечислять, а переходить в режим настройки портов по имени:
sw4(config)# int range macro HOSTS sw4(config-if-range)# no shutdown
Примечание: Не путайте задание имени диапазону со smart macros (будут рассмотрены в следующей статье). Эти функции могут использоваться вместе.
default interface
Иногда возникает необходимость обнулить настройки интерфейса. Но, если к интерфейсу применено большое количество команд, то удалять их может быть достаточно неудобно. Например, интерфейс настроен так:
interface FastEthernet0/1 switchport access vlan 10 switchport mode access switchport port-security switchport port-security violation restrict spanning-tree portfast spanning-tree bpduguard enable
Для того чтобы обнулить его настройки, можно воспользоваться командой default interface:
sw4(config)# default interface fa0/1
Эту команду можно выполнять и с диапазоном интерфейсов или используя заданное ранее имя для диапазона интерфейсов:
sw1(config)# default interface range fa0/5, fa0/8 sw1(config)# default interface range macro HOSTS
show control-plane host open-ports
Команда show control-plane host open-ports показывает какие TCP и UDP-порты открыты на маршрутизаторе. У нее есть некоторые ограничения: не все сервисы, использующие UDP, отображаются (RIP), и не отображаются протоколы, которые не используют TCP и UDP (например, OSPF, EIGRP).
Пример вывода команды:
R1# show control-plane host open-ports Active internet connections (servers and established) Prot Local Address Foreign Address Service State tcp *:22 *:0 SSH-Server LISTEN tcp *:23 *:0 Telnet LISTEN tcp *:80 *:0 HTTP CORE LISTEN tcp *:179 192.168.12.2:53157 BGP ESTABLIS tcp *:22 192.168.12.2:24597 SSH-Server ESTABLIS tcp *:179 *:0 BGP LISTEN udp *:53738 192.168.12.2:514 Syslog ESTABLIS
Фильтрация и перенаправление вывода командной строки
Как правило, со временем конфигурация разрастается и становится все сложнее просматривать ее полностью, при поиске каких-то определенных настроек. Упростить и ускорить просмотр нужных команд может фильтрация вывода.
Вывод любой команды show или more может быть отфильтрован или перенаправлен. Доступные параметры представлены в таблице:
Параметр фильтрации | Свойство |
---|---|
include | Показать строки, в которых встретилось выражение |
begin | Показать вывод начиная с первой строки, в которой встретилось выражение |
section | Показывает раздел вывода, если с заданным выражением есть совпадение в заголовке раздела. Иначе, работает как include |
exclude | Исключить строки, в которых встретилось выражение |
redirect | Перенаправить вывод в файл |
tee | Перенаправить вывод в файл и показать в командной строке |
append | Добавить вывод к существующему файлу |
count | Количество строк, которые совпадают с выражением |
Для того чтобы воспользоваться указанными параметрами, надо после команды show или more поставить pipe |, а затем указать параметр и ключевые слова или выражение. Далее все примеры будут показаны на командах show. Примеры использования команды more приведены ниже.
Команда more позволяет просматривать файлы. Например:
R1# more system:default-running-config ! ! Last configuration change at 15:47:50 UTC Thu Jul 25 2013 version 15.2 parser cache parser config partition … R1# more flash:backup_ipsec ! ! Last configuration change at 12:31:49 UTC Thu Jul 25 2013 version 15.2 service timestamps debug datetime msec service timestamps log datetime msec no service password-encryption ! hostname R1 !
Перенаправление вывода командной строки
Перенаправить вывод команды sh run в файл R1_config.cfg:
R1# show run | redirect tftp://10.0.1.1/R1_config.cfg
Перенаправить вывод команды sh ip route в файл R1_routing.cfg и показать вывод к командной строке:
R1# show ip route | tee tftp://10.0.1.1/R1_routing.cfg
Добавить вывод команды sh ip int br к файлу R1_routing.cfg:
R1# show ip int br | append tftp://10.0.1.1/R1_routing.cfg
Фильтрация вывода команд show
include
Показать строки конфигурационного файла, в которых встречается «ip nat»
R1#sh run | i ip nat ip nat inside ip nat outside ip nat outside ip nat inside source route-map NAT_ISP_R2 interface FastEthernet0/2 overload ip nat inside source route-map NAT_ISP_R3 interface FastEthernet0/3 overload action 2 cli command "clear ip nat trans *"
Если нас интересуют только строки, которые начинаются на «ip nat»:
R1#sh run | i ^ip nat ip nat inside source route-map NAT_ISP_R2 interface FastEthernet0/2 overload ip nat inside source route-map NAT_ISP_R3 interface FastEthernet0/3 overload
Если нужно вывести строки, которые начинаются на «ip nat» ИЛИ » ip nat» (следующие | в строке используются как ИЛИ):
R1#sh run | i ^ip nat|^_ip nat ip nat inside ip nat outside ip nat outside ip nat inside source route-map NAT_ISP_R2 interface FastEthernet0/2 overload ip nat inside source route-map NAT_ISP_R3 interface FastEthernet0/3 overload
Вариант этого же выражения (чтобы ввести знак вопроса надо набрать комбинацию crtl-v, а затем ?):
R1#sh run | i ^_?ip nat|^interface
Добавить к выводу интерфейсы, к которым применены команды ip nat inside и ip nat outside:
R1#sh run | i ^ip nat|^_ip nat|^interface interface FastEthernet0/0 ip nat inside interface FastEthernet0/1 interface FastEthernet0/2 ip nat outside interface FastEthernet0/3 ip nat outside ip nat inside source route-map NAT_ISP_R2 interface FastEthernet0/2 overload ip nat inside source route-map NAT_ISP_R3 interface FastEthernet0/3 overload
exclude
Исключить из вывода интерфейсы на которых не назначены IP-адреса:
R1#sh ip int br | e unass Interface IP-Address OK? Method Status Protocol Ethernet0/0 10.10.10.1 YES TFTP up up Ethernet0/2 192.168.12.1 YES TFTP up up Ethernet0/3 192.168.13.1 YES TFTP up up NVI0 10.10.10.1 YES unset up up
Показать sh run без знаков восклицания:
R1#sh run | e ! Building configuration. Current configuration : 3081 bytes version 15.2 service timestamps debug datetime msec service timestamps log datetime msec no service password-encryption hostname R1 boot-start-marker boot-end-marker no aaa new-model
section
Очень удобный фильтр, который, к сожалению, есть только на маршрутизаторах (и только некоторых коммутаторах). С помощью него можно отфильтровать раздел конфигурации.
Например, показать настройки протоколов маршрутизации:
R2#sh run | s router router eigrp 1 network 0.0.0.0 network 192.168.24.0 redistribute ospf 1 metric 4000 3000 255 1 1500 redistribute static metric 30000 200 255 1 1500 router ospf 1 redistribute eigrp 1 subnets network 192.168.12.0 0.0.0.255 area 0 default-information originate
R1#sh run | s ^route-map route-map PBR_RULES permit 10 match ip address HTTP set ip next-hop verify-availability 101.0.0.1 1 track 101 route-map PBR_RULES permit 20 match ip address LAN2 set ip next-hop verify-availability 102.0.0.1 1 track 102 route-map NAT_ISP_R3 permit 10 match ip address NAT match interface Ethernet0/3 route-map NAT_ISP_R2 permit 10 match ip address NAT match interface Ethernet0/2
begin
С помощью параметра begin можно показать конфигурацию начиная с какой-то строки. Для коммутаторов это может использоваться и как альтернатива параметру section.
Показать конфигурацию начиная со строки, в которой встречается «access»
R1#sh run | b access ip access-list standard NAT permit 10.1.1.0 0.0.0.255 permit 10.1.2.0 0.0.0.255 permit 10.10.10.0 0.0.0.255 ! ip sla 13 icmp-echo 10.1.3.100 source-interface Ethernet0/2 threshold 200 timeout 200 frequency 3 ip sla schedule 13 life forever start-time now
Фильтрация и нумерация строк конфигурации
Иногда может быть удобно использовать отображение номеров строк при фильтрации вывода команд. Например, если вы забыли точное название route-map, конфигурацию которой хотите посмотреть, то сначала можно дать такую команду:
R1#sh run linenum | i route-map 116 : ip nat inside source route-map NAT_ISP_R2 interface Ethernet0/2 overload 117 : ip nat inside source route-map NAT_ISP_R3 interface Ethernet0/3 overload 143 : route-map PBR_RULES permit 10 147 : route-map PBR_RULES permit 20 151 : route-map NAT_ISP_R3 permit 10 155 : route-map NAT_ISP_R2 permit 10
Теперь, когда понятно название route-map, можно, чтобы не писать его (особенно если название длинное), отфильтровать конфигурацию по номеру строки:
R1#sh run linenum | b 151 151 : route-map NAT_ISP_R3 permit 10 152 : match ip address NAT 153 : match interface Ethernet0/3 154 : ! 155 : route-map NAT_ISP_R2 permit 10 156 : match ip address NAT 157 : match interface Ethernet0/2 158 : ! 159 : !
Поиск из поля «—More—«
В IOS есть еще один способ фильтрации, который по действию аналогичен параметру begin.
Если вывод команды достаточно длинный, то отображается только первая часть, а затем идет поле:
Если теперь набрать /выражение, то дальнейший вывод отфильтруется и ввод команды будет продолжен начиная со строки в которой встречается «выражение».
Просмотр команды sh ip interface, а затем фильтрация, начиная со строки, в которой встречается 0/3:
R1#sh ip int Ethernet0/0 is up, line protocol is up Internet address is 10.10.10.1/24 Broadcast address is 255.255.255.255 Address determined by configuration file MTU is 1500 bytes Helper address is not set Directed broadcast forwarding is disabled Multicast reserved groups joined: 224.0.0.10 /0/3 filtering. Ethernet0/3 is up, line protocol is up Internet address is 192.168.13.1/24 Broadcast address is 255.255.255.255 Address determined by configuration file MTU is 1500 bytes
Просмотр команды sh run, а затем фильтрация начиная со строки в которой встречается route-map в начале строки:
R1#sh run Building configuration. Current configuration : 3081 bytes ! ! Last configuration change at 13:28:43 UTC Tue Jul 23 2013 version 15.2 service timestamps debug datetime msec service timestamps log datetime msec no service password-encryption ! hostname R1 ! /^route-map filtering. route-map PBR_RULES permit 10 match ip address HTTP set ip next-hop verify-availability 101.0.0.1 1 track 101 ! route-map PBR_RULES permit 20 match ip address LAN2 set ip next-hop verify-availability 102.0.0.1 1 track 102 !
Работа с конфигурацией
show run
Конечно же, одна из первых вещей, которую узнает начинающий сетевик – это команда show run. Рассмотрим некоторые менее известные параметры этой команды.
Параметр all позволяет посмотреть значения по умолчанию, которые скрываются при просмотре show run:
R1# sh run all Building configuration. Current configuration with default configurations exposed : 48318 bytes ! ! Last configuration change at 09:12:33 UTC Tue Jul 23 2013 version 15.2 parser cache parser config partition parser command serializer parser maximum utilization 100 parser maximum latency 40 downward-compatible-config 15.2 no service log backtrace no service config no service exec-callback no service nagle .
Например, используя параметр all и фильтрацию вывода, можно посмотреть какие значения по умолчанию у таймаутов относящихся к трансляции адресов:
R1# sh run all | i ip nat ip nat translation timeout 86400 ip nat translation tcp-timeout 86400 ip nat translation pptp-timeout 86400 ip nat translation udp-timeout 300 ip nat translation finrst-timeout 60 ip nat translation syn-timeout 60 ip nat translation dns-timeout 60 ip nat translation routemap-entry-timeout 3600 ip nat translation icmp-timeout 60 ip nat translation max-entries 0 ip nat translation max-entries all-vrf 0 ip nat translation max-entries all-host 0 ip nat translation arp-ping-timeout 60
Параметр brief позволяет скрыть некоторую информацию, которая, как правило, не нужна при просмотре. Например, открытые ключи SSH:
sh run brief
Параметр linenum перед каждой строкой дописывает номер строки. Может быть полезным, например, во время общения, когда надо указать о какой команде идет речь:
R1# sh run linenum Building configuration. Current configuration : 3109 bytes 1 : ! 2 : ! Last configuration change at 13:02:29 UTC Tue Jul 23 2013 3 : version 15.2 4 : service timestamps debug datetime msec 5 : service timestamps log datetime msec 6 : no service password-encryption 7 : ! 8 : hostname R1 9 : !
Кроме того, есть несколько параметров, которые позволяют просматривать отдельные части конфигурации. Самый популярный параметр interface. Отобразить конфигурацию интерфейса fa0/1:
sh run interface fa0/1 ip address 10.10.10.1 255.255.255.0 ip nat inside
aliases
Многие команды просмотра информации достаточно длинны, а использовать их нужно часто. В этом случае на помощь может прийти создание alias. Их использование сокращает время настройки, и позволяет быстрее найти ошибки, при возникновении каких-то проблем.
Синтаксис команды alias:
R1(config)# alias
Например, конфигурация устройств часто достаточно большая и просматривать ее полностью неудобно. Когда вы знаете, какая часть конфигурации вас интересует, можно воспользоваться фильтрами для поиска необходимых строк. Для того чтобы фильтры удобнее было использовать, можно создать для них alias.
Например, фильтры применяемые к команде show run, это поиск нужных частей в конфигурации. Можно считать, что это команда find и создать, например, такие alias:
alias exec fb sh run | begin alias exec fs sh run | section alias exec fi sh run | include alias exec fe sh run | exclude
После этого, для того чтобы, например, показать те строки конфигурации, в которых встречается ip nat, надо выполнить такую команду:
R1#fi ip nat ip nat inside ip nat outside ip nat outside ip nat inside source route-map NAT_ISP_R2 interface Ethernet0/2 overload ip nat inside source route-map NAT_ISP_R3 interface Ethernet0/3 overload action 2 cli command "clear ip nat trans *"
Для наиболее часто выполняемых команд также есть смысл создать alias. Например, для команды show ip interface brief:
alias exec siib sh ip int brief
Для того чтобы команду можно было выполнить в одинаковом сокращенном варианте в режиме enable и в конфигурационном, надо создавать дополнительный alias:
alias configure siib do sh ip int brief
Примеры alias для других популярных команд:
alias exec c config terminal alias exec w write mem alias exec sri sh run interface alias exec cdp show cdp neighbors alias exec sir show ip route alias exec sr show run brief alias exec acl show access-lists alias configure i interface alias interface ns no shutdown
Пример задания alias для одинаковых команд в разных режимах:
alias interface i ip address alias subinterface i ip address
Для команды exit:
alias interface x exit alias configure x exit alias interface x exit alias subinterface x exit alias router x exit
Часто бывает так, что при выполнении команды просмотра из конфигурационных подрежимов, забывают написать «do».
Можно создать alias в нужных подрежимах, для того чтобы можно было писать «sh» вместо «do sh» (конечно подрежимов очень много, но создание такого alias для основных из них, может быть вполне достаточным):
alias configure sh do sh alias interface sh do sh alias subinterface sh do sh
Далее еще несколько вариантов alias.
Отображение команды sh ip route без шапки с расшифровкой:
alias exec rib show ip route | e – R1#rib Gateway of last resort is 192.168.12.2 to network 0.0.0.0 S* 0.0.0.0/0 [1/0] via 192.168.12.2 10.0.0.0/8 is variably subnetted, 6 subnets, 2 masks D 10.1.3.0/24 [90/332800] via 192.168.12.2, 2d06h, Ethernet0/2 S 10.1.3.100/32 [1/0] via 192.168.12.2 D 10.1.4.0/24 [90/332800] via 192.168.12.2, 2d06h, Ethernet0/2 S 10.1.4.100/32 [1/0] via 192.168.12.2 C 10.10.10.0/24 is directly connected, Ethernet0/0 L 10.10.10.1/32 is directly connected, Ethernet0/0 12.0.0.0/32 is subnetted, 1 subnets S 12.1.1.1 [1/0] via 192.168.12.2
Соседи CDP с IP-адресами в кратком виде:
alias exec cdpn sh cdp nei det | i Device|IP address|Interface R1# cdpn Device ID: sw3 IP address: 10.10.10.2 Interface: FastEthernet0/0, Port ID (outgoing port): FastEthernet0/0 Device ID: R2 IP address: 192.168.12.2 Interface: FastEthernet0/2, Port ID (outgoing port): FastEthernet0/1 Device ID: R3 IP address: 192.168.13.3 Interface: FastEthernet0/3, Port ID (outgoing port): FastEthernet0/1
diff для Cisco
При настройке оборудования бывает, что посреди процесса настройки вас отвлекают. По возвращению вы не помните, что уже успели сделать, а если сессия завершилась и истории перед глазами нет, то сложно вспомнить какие изменения вы внесли.
В этом может помочь возможность сравнения файлов, которая появилась благодаря функции archive. Функция archive используется для автоматизации сохранения конфигурации. Она будет рассмотрена в одной из следующих статей. А сейчас мы воспользуемся только возможностью сравнения файлов.
Например, для того чтобы сравнить стартовую и текущую конфигурации, надо дать такую команду:
show archive config differences nvram:startup-config system:running-config
Пример выполнения команды:
R1# show archive config differences nvram:startup-config system:running-config !Contextual Config Diffs: +ip sla 14 +icmp-echo 10.1.4.100 source-interface FastEthernet0/2 +threshold 200 +timeout 200 +frequency 3 +ip sla schedule 14 life forever start-time now +route-map PBR_RULES permit 10 +match ip address HTTP +set ip next-hop verify-availability 101.0.0.1 1 track 101 +route-map PBR_RULES permit 20 +match ip address LAN2 +set ip next-hop verify-availability 102.0.0.1 1 track 102 -logging trap debugging -logging 192.168.12.2
Так как команда достаточно длинная, то лучше создать для нее alias:
alias exec diff show archive config differences nvram:startup-config system:running-config
Аналогичным образом можно сравнивать не только текущую и стартовую конфигурации, но и другие файлы:
R1# show archive config differences flash:backup_200713.cfg flash:routing.cfg !Contextual Config Diffs: +router eigrp 1 +network 0.0.0.0 +network 192.168.24.0 +redistribute ospf 1 metric 4000 3000 255 1 1500 +redistribute static metric 30000 200 255 1 1500 +router ospf 1 +redistribute eigrp 1 subnets +network 192.168.12.0 0.0.0.255 area 0 +default-information originate
Заключение
В этой статье были рассмотрены: несколько полезных команд, фильтрация вывода команд в IOS, и подсказки по поиску нужной документации.
В следующих статьях будут рассмотрены более продвинутые возможности IOS, в том числе функции, которые позволяют автоматизировать выполнение различных действий и создавать свои собственные сценарии.
https://nt.ua/ru/blog/introducing-cisco-ios-part-1