[CLI Tip]: Как сделать краткую выжимку-обзор running-config'а

    Часто получаешь в руки железку, нужно оценить, как она наконфигурена. При этом, размер running config может быть огромным (скажем, полный дамп конфига контроллера из моей лабы в данном примере 21KB ~=29 страниц). Для первого взгляда хочется увидеть, какие секции конфига присутствуют. В качестве примера взята платформа Motorola Solutions WING5 (WLAN), но, в принципе будет работать на любой железке, где конструкция "| include" поддерживает regexp (Cisco, Motorola WING4, другие IOS-подобные интерфейсы).

    Пишем:
    RFS-ADSP>sh run | include ^\\w
    

    Получаем:
    version 2.1
    ip access-list BROADCAST-MULTICAST-CONTROL
    ip access-list fw-acl-full
    ip access-list fw-acl-limited
    ip access-list fw-acl-verylimited
    mac access-list 12-block-mint
    mac access-list PERMIT-ARP-AND-IPv4
    mac access-list l2-block-mint
    firewall-policy default
    firewall-policy lab-fw-wips
    role-policy lab-rolepol
    mint-policy global-default
    wlan-qos-policy default
    radio-qos-policy default
    aaa-policy lab-aaapol
    captive-portal lab-hotspot
    wlan ADSP-TRG
    wlan team6-eap
    wlan team6-hotspot
    wlan team6-psk1
    wlan team6-psk2
    smart-rf-policy lab-smartrf
    wips-policy lab-wips-basic
    advanced-wips-policy lab-wips-adv
    auto-provisioning-policy lab-autopolicy
    radius-group radgroup-fullusers
    radius-group radgrp-hotspot
    radius-user-pool-policy lab-radpool
    radius-server-policy lab-radius
    dhcp-server-policy ADSPLAB
    dhcp-server-policy RFS2
    management-policy default
    management-policy lab-mgmt
    l2tpv3 policy default
    profile rfs4000 default-rfs4000
    profile rfs4000 lab-rfs4000
    profile ap71xx lab-7131
    profile ap650 default-ap650
    profile ap650 lab-ap650
    profile ap6521 lab-6521
    profile ap621 lab-621
    rf-domain default
    rf-domain lab-rfdomain
    rfs4000 5C-0E-8B-1B-9B-44
    ap650 5C-0E-8B-98-C5-44
    ap6521 5C-0E-8B-E8-31-68
    ap621 5C-0E-8B-97-C2-48
    ap621 5C-0E-8B-97-DA-AA
    end
    

    Для платформы WING5 эта команда весьма актуальна, т.к. контроллер держит мастер-конфигурацию для всей сети (а это могут быть сотни, если не тысячи секций для профилей/политик/устройств/сервисов и даже других контроллеров) — копаться в полном дампе running config нереально. <IMHO>Вообще, о том насколько круто реализована структура и синхронизация конфига в WING5 (распределенная сеть), и том, какие плюшки есть в CLI для массового конфигурирования/администрирования и траблшутинга можно писать отдельный цикл статей (типа запуска централизованного сбора пакетов со всех точек удаленного сайта командой в одну строчку). Возвращаться к сетям третьего поколения теперь вообще не хочется. </IMHO>

    Для железок с «отдельно стоящим» конфигом (свитчи, роутеры) команда может показать все ACL'ы, route maps, VPNы и проч секции конфига, что тоже удобно.

    Разбор regexp (на всякий случай, гуру могут пропускать)

    show run… |include <regexp> показывает только строки, в которых встречается regexp.

    Структура конфига (вывода «чистого» show run) выглядит так (обратите внимание на отступы):
    ! <заголовок>
    <версия>
    !
    <секция X>
     <команда>
     <команда>
     ..
    !
    <секция Y>
     <команда>
     <команда>
     ..
    !
    ...
    !
    <конец>
    

    Нам нужны только заголовки секций — строки без отступов. Соответственно, нужны все строки, начинающиеся не с пробела. Но еще есть комментации и разделители секций в виде восклицательных знаков — они нам тоже не нужны. Получается, regexp должен выглядеть как «строки, начинающиеся не с пробела или восклицательного знака».
    Воспользуемся конструкцией '[<XYZ>]', которая совпадает с любым символом, заключенным в квадратные скобки. [! ] даст нам «пробел или воскл знак», [^! ] даст нам «не пробел и не воскл знак». Добавим '^<X>' («строка начинается с X»): ^[^! ] = «строка начинается с любого символа кроме пробела или восклицательного знака».
    Однако, зная, что название секции всегда буква — можно упростить regexp и сэкономитиь себе несколько секунд топтания по клаве: ^\\w. '\w' обозначает «любая буква» (заглавная и строчная), еще один бекслэш нужен для экранирования бекслэша в '\w' — получаем '\\w'. Добавляем «начало строки» — '^\\w'. Получается «покажи мне строки, которые начинаются с буквы».

    P.S. Две страницы текста для описания одной строчки… o_O Как считаете, можно было без потерь обойтись одной-двумя строками?
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 10

      0
      Заработало почему-то только
      sh run | include ^[^! ]
        0
        Поэтому и привел два варианта. Попробуйте вместо \w использовать %w (POSIX vs PCRE, если не ошибаюсь).
          0
          Всё равно не заработало, ну и фиг с ним, главное что хоть один вариант работает.
          Да, и спасибо за хинт.
            0
            а на чем пробуете (модель, версия прошивки)?
              0
              Cisco IOS Software, 10000 Software (C10K2-P11-M), Version 12.2(33)SB11, RELEASE SOFTWARE (fc1)
              Всё таки грешу на старую версию IOS.
        +1
        Для железок с «отдельно стоящим» конфигом (свитчи, роутеры) команда может показать все ACL'ы, route maps, VPNы и проч секции конфига, что тоже удобно.

        show run | section access-list|route-map|crypto
        Это покажет все ACL, роут-мапы и все про VPN.

        «Section» поддерживается давно на роутерах и недавно на свитчах.
          0
          Это несколько иное — ваш пример показывает секции и содержимое (что тоже полезно). Мой — только заголовки секций. В WING5 вместо 'sh run | section interface' можно просто писать 'sh run interface', к примеру.
            +1
            Это да. К сожалению, IOS платформы крайне бедны по этой части.

            router#show run ?
              all            Configuration with defaults
              brief          configuration without certificate data
              class-map      Show class-map information
              control-plane  Show Control-Plane information
              flow           Global Flow configuration subcommands
              full           full configuration
              interface      Show interface configuration
              linenum        Display line numbers in output
              map-class      Show map class information
              partition      Configuration corresponding a partition
              policy-map     Show policy-map information
              view           View options
              vrf            Show VRF aware configuration
              |              Output modifiers
              
            


            ASA# show run?
            Скрытый текст
              aaa                           Show AAA configuration information
              aaa-server                    Show aaa-server configuration information
              access-group                  Show access group(s)
              access-list                   Show configured access control elements
              alias                         Show configured overlapping addresses with dual
                                            NAT
              all                           Show current operating configuration including
                                            defaults
              arp                           Show configured ARP entries, ARP timeout
              asdm                          Show ASDM configuration
              auth-prompt                   Show configured authentication challenge,
                                            reject and acceptance prompts
              auto-update                   Show Auto Update configuration
              banner                        Show configured login/session banners
              boot                          Show boot configuration information
              class                         Show class configuration
              class-map                     Show class-map configuration
              client-update                 Show global client-update configuration
                                            information
              clock                         Show clock configuration
              command-alias                 Show configured command aliases
              compression                   Show compression global configuration
              console                       Show console idle timeout
              crypto                        Show crypto configuration
              ctl-file                      Show configured CTL file instances
              ctl-provider                  Show configured CTL Providers
              ddns                          Show Dynamic DNS update methods configured
              dhcp-client                   Show dhcp-client configuration
              dhcpd                         Show configured DHCP Server
              dhcprelay                     Show DHCP Relay Agent configuration
              dns                           Show DNS configuration
              dns-guard                     Enforce one DNS response per query
              domain-name                   Show domain name
              dynamic-access-policy-record  Show dynamic access policy configuration
                                            details
              dynamic-map                   Show crypto dynamic map configuration
              enable                        Show enable password and levels
              eou                           Show EOU configurationn
              established                   Show established connections
              failover                      Show failover config
              filter                        Show filter configuration
              fips                          Show fips configuration.
              fixup                         Show configured fixup
              fragment                      Show IP Reassembly configuration
              ftp                           Show FTP mode
              global                        Show global address pool configuration
              group-delimiter               Show group-delimiter configuration information
              group-policy                  Show all group policy configuration details
              hostname                      Show hostname configuration
              http                          Show configured HTTP servers
              icmp                          Show configured access rules for ICMP traffic
              imap4s                        Show imap4s configuration information
              interface                     Show interface configuration information
              ip                            Show IP address, address pool, IDS
                                            configuration, etc
              ipsec                         Show crypto ipsec configuration
              ipv6                          Show IPv6 configuration
              isakmp                        Show ISAKMP configuration
              l2tp                          Show L2TP running configuration
              ldap                          Show LDAP configuration information
              logging                       Show logging config
              mac-address                   Show MAC address autogeneration setting for
                                            shared interface
              mac-list                      Show MAC list(s)
              management-access             Show management-access configuration
              map                           Show crypto map configuration
              monitor-interface             Show running-config failover interface
                                            monitoring configuration
              mount                         Show configured system mounts
              mroute                        Show mroute configuration
              mtu                           Show configured MTU values
              multicast-routing             Show run multicast-routing configuration
              nac-policy                    Show all NAC policy configuration details
              name                          Show names associated with IP addresses
              nameif                        Show nameif configuration for interfaces
              names                         Show IP address to name mappings
              nat                           Show NAT configuration
              nat-control                   Show NAT configuration requirement
              ntp                           Show NTP configuration
              object-group                  Show object group(s)
              pager                         Show page length
              passwd                        Show telnet console access password
              phone-proxy                   Show configured Phone proxies
              pim                           Show PIM configuration
              policy-map                    Show policy-map configuration
              pop3s                         Show pop3s configuration information
              prefix-list                   Show configured prefix-lists
              priority-queue                Show the priority-queue configuration details
                                            for the interface
              privilege                     Show configuration of privilege level of
                                            commands
              prompt                        Show configured session prompt
              regex                         Show all regex configuration
              remote-access                 Show Remote Access Trap configuration
              route                         Show configured routes
              route-map                     Show configured route-maps
              router                        Show routing processes
              same-security-traffic         Show same-security-traffic configuration 
              service                       Show configured system services
              service-policy                Show service-policy configuration
              sla                           Display SLA configuration
              smtp-server                   Show configured SMTP server address (primary
                                            and secondary)
              smtps                         Show smtps configuration information
              snmp-map                      Show snmp-map running configuration
              snmp-server                   Show snmp-server configuration
              ssh                           Show configured SSH commands or SSH idle
                                            timeout
              ssl                           Show SSL configuration information
              static                        Show host to global address mapping
                                            configuration
              sunrpc-server                 Show configured SUNRPC services
              sysopt                        Show configured system functional options
              tcp-map                       Show tcp-map running configuration
              telnet                        Show configured telnet commands or telnet idle
                                            timeout
              terminal                      Show configured terminal line parameters
              tftp-server                   Show configured TFTP server address and
                                            directory
              threat-detection              Show threat detection configuration
              time-range                    Show configured time-ranges
              timeout                       Show configured maximum idle times
              tls-proxy                     Show configured TLS proxies
              track                         Show tracking configuration
              tunnel-group                  Show tunnel group configuration information
              tunnel-group-map              Show tunnel-group-map configuration information
              url-block                     Show URL pending block buffer and long URL
                                            support config
              url-cache                     Show URL cache size
              url-server                    Show URL filter server configuration
              username                      Show username configuration details
              virtual                       Show addresses for authentication virtual
                                            servers
              vpdn                          Show vpdn running configuration
              vpn                           Show VPN Running Configuration.
              vpn-addr-assign               Show vpn-addr-assign
              vpn-sessiondb                 Show VPN Session Database configuration
              wccp                          Show WCCP configuration
              webvpn                        Show webvpn configuration information
              zonelabs-integrity            Show Zonelabs Integrity Firewall Server
                                            Configuration
              |                             Output modifiers
              
            
              0
              Некисло так… 8)
                0
                Это еще старая версия ASA OS, в 8.4 простыня длиннее :)

        Only users with full accounts can post comments. Log in, please.