Это первая статья из серии, в которой будут рассматриваться различные полезные, на мой взгляд, возможности IOS (команды, функции и др). В этой серии каждая отдельная функция или механизм не будут объясняться подробно, будет дан только обзор возможностей и несколько примеров использования. Многие из них, вероятно, будут вам знакомы, но, надеюсь, что в каждой статье вы найдете что-то новое и полезное.
В этой статье будут рассмотрены базовые команды IOS, которые могут быть полезны всем, независимо от того, какие функции настроены на оборудовании.
По настройке оборудования Cisco достаточно много документации, как на официальном сайте, так и на других. Но бывает, что в поисках информации о конкретной команде или функции, приходится просматривать много сайтов и форумов, пока получается добраться до нужной информации. Возможно, небольшие подсказки помогут вам сократить время в следующий раз.
Возможности, которые будут рассматриваться в этой статье и следующих, или те, которые интересуют вас, могут быть доступны не во всех версиях IOS. Для того чтобы проверить доступно ли это (или любая другая функция) в конкретной модели оборудования или версии IOS, можно воспользоваться Cisco Feature Navigator (CFN).
CFN позволяет подходить к поиску с разных сторон. Вы можете найти в каких версиях IOS и для каких платформ доступна функция, или какие функции доступны в определенном IOS. Интерфейс CFN достаточно прост и понятен, так что не нуждается в особых объяснениях.
Документация на сайте cisco.com разбита на несколько разделов. Например, настройка, поиск неисправностей, дизайн. Начать знакомство с классификацией документов можно с общей страницы. Далее, можно выбрать технологию или тип устройства, для которого нужна документация.
Одни из основных документов, которые могут быть полезны при настройке оборудования – это command reference и configuration guide.
* Command reference – это документы на сайте Cisco, которые описывают команды. В них описан синтаксис команды, в каких случаях и для чего она используется, примеры использования, в какой версии IOS она появилась. Документы разделены по версиям IOS, так что лучше сразу искать документ, соответствующий вашей версии.
Пример описания команды shutdown в command reference.
* Configuration guide – документы на сайте Cisco, в которых описываются различные функции, протоколы и т.п. Есть и теоретические сведения, команды и примеры настройки. Документы разделены по тематике и версиям IOS, так что лучше сразу искать документ, соответствующий вашей версии.
Configuration guide по настройке NAT.
В этом разделе рассматриваются несколько простых, но полезных в работе с оборудованием, команд.
При настройке удаленного оборудования, можно допустить ошибку в настройках, из-за которой будет потерян доступ к оборудованию. Для того чтобы подстраховаться от подобных случаев, можно воспользоваться запланированной перезагрузкой.
Если Вы планируете изменять настройки, которые могут привести к потере связи, то можно заранее указать, например, что маршрутизатор должен быть перезагружен через 20 минут:
R1# reload in 20
В таком случае, если в конфигурации была допущена ошибка, то при перезагрузке маршрутизатор вернется к исходной рабочей конфигурации.
Если изменения были применены и никаких проблем не возникло, то можно отменить запланированную перезагрузку:
R1# reload cancel
Аналогичным образом можно указывать точное время, когда маршрутизатор должен быть перезагружен:
R1# reload at 20:35
Во время обычной работы с оборудованием или во время поиска неисправностей, может понадобиться информация о том, какие процессы работают на маршрутизаторе, какие из них больше всего загружают процессор.
Команда 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:
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 (будут рассмотрены в следующей статье). Эти функции могут использоваться вместе.
Иногда возникает необходимость обнулить настройки интерфейса. Но, если к интерфейсу применено большое количество команд, то удалять их может быть достаточно неудобно. Например, интерфейс настроен так:
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 показывает какие 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
Показать строки конфигурационного файла, в которых встречается "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
Исключить из вывода интерфейсы на которых не назначены 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
Очень удобный фильтр, который, к сожалению, есть только на маршрутизаторах (и только некоторых коммутаторах). С помощью него можно отфильтровать раздел конфигурации.
Например, показать настройки протоколов маршрутизации:
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
Существующие route-map
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 можно показать конфигурацию начиная с какой-то строки. Для коммутаторов это может использоваться и как альтернатива параметру 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 : !
В IOS есть еще один способ фильтрации, который по действию аналогичен параметру begin.
Если вывод команды достаточно длинный, то отображается только первая часть, а затем идет поле:
--More--
Если теперь набрать /выражение, то дальнейший вывод отфильтруется и ввод команды будет продолжен начиная со строки в которой встречается "выражение".
Просмотр команды 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. Рассмотрим некоторые менее известные параметры этой команды.
Параметр 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
Многие команды просмотра информации достаточно длинны, а использовать их нужно часто. В этом случае на помощь может прийти создание 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
При настройке оборудования бывает, что посреди процесса настройки вас отвлекают. По возвращению вы не помните, что уже успели сделать, а если сессия завершилась и истории перед глазами нет, то сложно вспомнить какие изменения вы внесли.
В этом может помочь возможность сравнения файлов, которая появилась благодаря функции 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, в том числе функции, которые позволяют автоматизировать выполнение различных действий и создавать свои собственные сценарии.