1. help - в любой момент можно ввести "?" - киска в
    ответ выдаст список команд или
    операндов;

  2. любое ключевое слово или имя можно
    сокращать до
    минимально
    возможного;

  3. если терминал нормально настроен, то можно
    редактировать командную строку как в emacs или bash.

  4. почти каждую команду можно
    предварять словом no.


Уровни привилегий:
предусмотрено 16 уровней
привилегий - от 0 до 15. Если не
производить
дополнительной настройки, то уровень 0 - это
уровень
пользователя: доступны только
"безопасные" команды. Уровень 15 - это
уровень
супервизора: доступны все команды.
Переходим с уровня на уровень по
команде:

епable
[номер уровня]

Любую команду можно
перевести на уровень, отличный от
стандартного; любому
пользователю можно
назначить
определенный уровень,
устанавливаемый при входе на киску этого
пользователя; таким образом права
пользователей можно тонко
настраивать (только help-ом при этом тяжело
пользоваться :(


Режимы командного языка:



  1. Режим
    пользователя

  2. Привилегированный режим:


    1. верхний уровень

    2. режим глобальной
      конфигурации


      1. собственно верхний уровень
        конфигурирования

      2. конфигурирование
        интерфейса


        1. конфигурирование
          интерфейса

        2. конфигурирование
          подинтерфейса (serial в режиме Frame Relay)


      3. конфигурирование
        контроллера (T1)

      4. конфигурирование хаба (cisco 2500 - ethernet)

      5. конфигурирование списка карт (ATM и FrameRelay)

      6. конфигурирование класса карт (Quality of Service over Switched Virtual Circuit
        - ATM, FrameRelay или dialer)

      7. конфигурирование линий

      8. конфигурирование
        маршрутизатора (bgp, egp, igrp, eigrp, is-is, iso-igrp, mobile, OSPF, RIP,
        static)

      9. конфигурирование
        IPX-маршрутизатора

      10. конфигурирование карт
        маршрутизатора

      11. конфигурирование ключевых цепочек с его
        подрежимами (RIP authentication)

      12. конфигурирование
        генератора отчетов о времени ответа

      13. конфигурирование БД LANE (ATM)

      14. режим команд APPN с его
        подрежимами (advance peer-to-peer Networking -
        второе поколение SNA)

      15. режим команд
        присоединения канала IBM с его
        подрежимами (Cisco 7000 с CIP)

      16. режим команд сервера TN3270

      17. конфигурирование списков доступа (для
        именованых IP ACL)

      18. режим
        шестнадцатеричного ввода (задание
        публичного ключа для шифровки)

      19. конфигурирование карт шифровки


    3. ROM монитор (нажать break в первые 60 секунд
      загрузки, тоже есть help).


    TFTP
    должен быть настроен так, чтобы
    генерировать и проверять
    контрольные суммы UDP (я ничего не делал). Везде
    вместо TFTP можно
    использовать rcp (rsh), но мне
    лениво следить за
    безопасностью в этом случае.


    Посмотреть, что там лежит: show flash all

    System flash directory:
    File Length Name/status
    addr fcksum ccksum
    1 3243752 igs-i-l.110-1
    0x40 0xB5C4 0xB5C4
    [3243816 bytes used, 950488 available, 4194304 total]
    4096K bytes of processor board System flash (Read ONLY)

    Chip Bank Code Size Name
    1 1 89A2 1024KB INTEL 28F008SA
    2 1 89A2 1024KB INTEL 28F008SA
    3 1 89A2 1024KB INTEL 28F008SA
    4 1 89A2 1024KB INTEL 28F008SA
    Executing current image from System flash



    Иметь два файла во флэш можно только, если
    имеется два банка памяти (у меня нет) и
    выполнить
    специальную процедуру (IOS надо
    настроить адреса -
    выполняется-то она из флэша!). Буква l в имени
    файла как раз и означает, что адреса можно
    настроить.


    Посмотреть, сколько раз туда чего
    записывали: show flash err
    (по-моему, ерунду
    показывает).


    Копировать из флэш на tftp: copy flash tftp,
    после чего спросят имя сервера,
    исходное имя файла и
    результатирующее имя файла (файл должен
    существовать с правами 666).


    Копировать
    конфигурацию на tftp: copy startup-config/running-config tftp


    Загрузить
    конфигурацию с tftp: copy tftp startup-config/running-config
    (по-моему, если грузить текущую
    конфигурацию, то
    происходит не
    копирование, а слияние).


    Копировать из tftp во флэш (если
    достаточно памяти!!!): copy tftp flash


    Понятное дело, что если IOS
    выполняется из флэш, то грузить новое
    содержимое флэша во время работы IOS не стоит, надо
    загрузиться из ROM (либо нажав Break при
    загрузке, либо выдав no boot system flash).


    Черта-с два! На самом деле все не так
    как в книжке. Надо выдать copy tftp flash
    прямо из IOS (ибо в bootstrap такой
    команды нет вовсе), будет запущен flash load helper,
    который задает все
    необходимые вопросы, затем
    перезапускает киску из ROМа, стирает флэш,
    копирует файл с tftp (заходить только с
    консоли - иначе ничего не увидишь, и об
    ошибках не узнаешь ;). После этого надо
    сохранить
    конфигурацию (copy run start). А
    все-таки интересно, как
    выбираться из ситуации, если что-то
    получилось не так. Кстати,
    рекомендуется сохранить
    конфигурацию
    куда-нибудь на tftp перед
    изменением флэша. p.s. все-таки можно было бы
    сделать и
    загрузившись из ROM (только не ROM
    монитор, а ROM IOS), если задать в
    регистре
    конфигурации младшие 4 бита равными 0-0-0-1.


    Копирование текущей
    конфигурации в
    загрузочную: copy run start


    Копирование
    загрузочной
    конфигурации в текущую: copy start run


    Посмотреть состояние: show version


    Проверить
    контрольную сумму: verify flash


    Сжатие
    конфигурационного файла работает только на Cisco 3xxx и Cisco 7xxx.


    Повторно выполнить
    конфигурационный файл: configure memory


    Очистить
    конфигурацию: erase startup


    Посмотреть
    текущую/загрузочную
    конфигурацию: show run/start


    В NVRAM
    записываются только
    параметры, отличные от
    параметров по умолчанию.


    Регистр
    конфигурации: 16 бит. Меняется
    командой: config-register.
    Младшие 4 бита (3,2,1, и 0)
    образуют поле загрузки:



    • 0-0-0-0 загрузить ROM-монитор вместо IOS

    • 0-0-0-1 загрузить boot ROM

    • если между 0-0-1-0 и 1-1-1-1 то грузить то, что
      задано командой boot system (если
      ничего не задано, то грузить файл с
      сетевого сервера с именем
      определяемым по умолчанию: имя
      формаируется исходя из значения
      регистра). Можно задать
      несколько команд boot system. Только не надо
      задавать имя файла в boot system flash (все
      равно он ровно один, а то после
      прошивки новой версии IOS
      загрузчик будет упрямо искать старый файл).


    Файл
    конфигурации сети (по
    умолчанию имя файла: network-config):

    boot network [tftp]
    имя-файла
    [ip-адрес]


    service config


    Файл
    конфигурации хоста (по
    умолчанию имя файла: network-config):

    boot host [tftp]
    имя-файла
    [ip-адрес]


    service config


    Перезагрузка:



    • просто
      перезагрузка

      reload

    • перезагрузка в
      определенное время:

      reload at hh:mm [month day] [reason]

    • перезагрузка через
      определенное время:

      reload in [hh:]mm [reason]

    • отмена отложенной
      перезагрузки:

      reload cancel

      NTP
      (прием и передача - включен по
      умолчанию - при
      перезагрузке и при
      выключении на пару минут время
      сохраняется), SNTP на
      кисках серии 1000 (только прием -
      выключен по умолчанию).


      • посмотреть

        show clock [detail]

      • установить вручную

        clock set hh:mm:ss
        день месяц год


      • аутентификация NTP:


        • ntp authenticate -
          включить

        • ntp authentication-key number md value -
          задать значение ключа

        • ntp trusted-key
          номер-ключа
          - знающий этот ключ может
          синхронизовать нас


      • определить соседей:

        ntp peer ip-address [version
        номер] [key
        номер-ключа][source
        интерфейс] [prefer]


      • определить сервер:

        ntp server ip-address [version
        номер] [key
        номер-ключа][source
        интерфейс] [prefer]


      • широковещательная
        рассылка

        ntp broadcast [version
        версия]


      • получать
        широковещательную
        рассылку

        ntp broadcast client

      • установить
        предполагаемое значение задержки при
        широковещательной
        рассылке

        ntp broadcastdelay
        микросекунд


      • управление доступом (номер ACL
        задается базовой командой access-list)(по
        умолчанию все разрешено, даже
        синхронизация с
        незнакомыми системами! -
        сделать)

        ntp access-group query-only/serve-only/serve/peer
        номер-ACL


      • запретить NTP сервис на
        определенном
        интерфейсе

        ntp disable

      • если киска имеет несколько IP-адресов то можно
        определить исходный IP-адрес в
        NTP-пакетах

        ntp source
        интерфейс


      • определить киску как властный
        источник времени, даже если она не
        синхронизована с внешним миром

        ntp master [слой]

      • задать размер
        аппаратного тика
        (теоретически 250 Гц) в единицах 2^-32

        ntp clock-period единиц

      • максимальное число соседей
        NTP-протокола
        (сделать!)

        ntp max-associations число

      • посмотреть статус

        show ntp status

      • посмотреть список
        соседей

        show ntp associations [detail]

      • откуда SNTP будет
        запрашивать NTP пакеты

        sntp server адрес [version
        версия]


      • SNTP будет брать NTP пакеты из
        широковещательных
        потоков

        sntp broadcast client

      • посмотреть сосотояние SNTP (Cisco 100x)

        show sntp

      • задать часовой пояс - почему только целое число
        часов?

        clock timezone имя(MSK)
        смещение
        (3)

      • задать летнее время (по правилам) (last Sun Mar 2:00 last Sun Sep
        2:00)

        clock summer-time имя(MSD) recurring
        first/last/номер-недели-начала
        день-недели месяц hh:mm
        first/last/номер-недели-окончания
        день-недели месяц hh:mm

        [смещение-в-минутах]

      • задать летнее время
        непосредственно

        clock summer-time имя
        месяц-начала день
        год hh:mm
        месяц-окончания
        день
        год hh:mm
        [смещение-в-минутах]

      • на Cisco 4500 и Cisco 7000 есть
        батареечный календарь


      Запустить TFTP сервер на
      киске:



      • предоставлять
        содержимое флэша (там лежит не
        обязательно IOS):

        tftp-server flash
        имя-файла [alias
        синоним] [acl]


      • предоставлять
        содержимое ROМа (можно
        одновременно с флэш):

        tftp-server rom
        имя-файла [alias
        синоним] [acl]



      Запустить RARP
      сервер на киске (чтобы это реально
      использовать
      необходимо выполнить кучу
      дополнительных условий -
      обеспечить broadcast UDP - ip forward-protocol udp 111,
      заполнить таблицу АRP
      MAC-адресами клиентов, ip helper-adress
      адрес-настоящего-сервера
      -
      говорят, что проблемы возникли из-за
      недоделанности rpc.bootparamd в SunOS - судя по
      нашему принтеру так оно и есть):

      cat(config-if)>ip rarp-server
      ip-адрес-настоящего-сервера


      rcp и rsh сервис:



      • задание базы данных
        пользователей (не знаю что за засада, но мне и
        локальное и внешенее имя пришлось задать свое):

        ip rcmd remote-host local-username
        ip-address/host remote-username [enable [level]]


      • запуск rcp сервера (а для чего его можно
        приспособить?):

        ip rcmd rcp-enable

      • запуск rsh сервера (надо
        избавиться от expect при сборе
        статистики)

        ip rcmd rsh-enable


      HTTP-сервер (при входе в
      качестве имени надо говорить имя киски, а
      пароля - пароль
      супервизора) - пользы от этого
      никакой:

      ip http server

      ip http port 80

        PPP. О SLIP мы
        забудем сразу же.


        Режим:
        интерактивный или жестко
        настроенный (dedicated): в
        последнем случае не
        запускается EXEC, так что нельзя
        поменять адрес и другие
        параметры:

        async mode interactive/dedicated


        Разрешить протоколы
        динамической
        маршрутизации:

        async dynamic routing


        Групповая
        конфигурация (столько
        предупреждений об ошибках, что лучше и не
        трогать)



        1. определение группы:

          interface group-async unit-number

          общие команды

          member номер
          индивидуальная-команда


          group-range low-number high-number - тут же
          начинается построение
          конфигурации



        хаб (2505, 2507, 2516)



        hub ethernet number port

        no shutdown


        auto-polarity

        link-test

        source-address [MAC-address]
        -
        пропускать только пакеты от этого MAC-адреса


        loopback (позволяет удержать BGP-сессию, даже если
        другие интерфейсы упадут)



        interface loopback number


        null (позволяет
        маршрутизировать все ненужное в /dev/null)



        interface null 0


        синхронный
        последовательный интерфейс (serial)



        interface serial номер

        encapsulation
        atm-dxi/hdlc/frame-relay/ppp/sdlc-primary/sdlc-secondary/smds/stun/x25

        - по умолчанию HDLC (есть
        обнаружение ошибок, но нет повтора
        неверно переданных данных)

        compress stac - если
        загрузка CPU превышает 65%, то
        выключить

        pulse-time секунд - какую паузу
        сделать при
        пропадании несущей


        тунель
        (инкапсуляция пакетов одного
        протокола внутри пакетов другого)



        Для чего это надо:



        1. многопротокольная локальная сеть через
          однопротокольный бэкбон

        2. для обхода протоколов
          ограничивающих число
          промежуточных узлов

        3. виртуальные частные сети через WAN


        Компоненты:



        1. протокол-пассажир

        2. протокол-носитель

        3. протокол
          инкапсуляции (обычно GRE,
          остальные в
          исключительных случаях)


        Предупреждения:



        1. большая загрузка CPU

        2. возможное нарушение
          безопасности

        3. увеличение времени задержки

        4. множественные тунели могут забить канал
          информацией о маршрутах

        5. протокол
          маршрутизации может
          предпочесть тунель как якобы самый
          короткий маршрут

        6. появление
          рекурсивных маршрутов


        interface tunnel номер

        тут должно быть описано каким
        протоколам позволено
        туннелироваться

        tunnel source
        ip-address-или-интерфейс


        tunnel destination
        ip-address-или-интерфейс


        tunnel mode aurp/cayman/dvmrp/eon/gre ip/nos -
        определяет протокол
        инкапсуляции

        tunnel checksum - все плохие пакеты будут
        выкидываться (некоторые
        протоколы требуют этого)

        tunnel key номер - должны быть
        одинаковы на обоих концах (слабая
        защита)

        tunnel sequence-datagramms -
        отбрасывать пакеты,
        пришедшие не в том порядке
        (некоторые протоколы требуют этого)


        управление и
        мониторинг



        show async status

        show interface async
        номер


        show compress

        show controller
        имя-контроллера


        show interface accounting

        show interface тип
        номер


        clear counters тип
        номер


        show protocols

        show version

        clear interface тип
        номер


        clear line номер

        shutdown

        no shutdown


        down-when-looped - считать
        интерфейс упавшим, если на нем включен loopback
        (необходимо для backup)

          tacacs+) - это
          программа, которая крутится на
          UNIX-компьютере и отвечает на запросы киски типа: есть ли
          такой
          пользователь, какие у него права и ведет
          журнал посещений. Как
          конфигурировать сервер смотри
          отдельную главу, а киска
          конфигурируется так:

          аaa new-model # будем
          использовать tacacs+, а не старые
          варианты

          аaa authentication login default tacacs+ enable #
          по-умолчанию проверяем каждый вход на линию с
          помощью tacacs+ сервера, а если он не
          отзывается, то
          спрашиваем пароль
          суперпользователя

          аaa authentication ppp default if-needed none # при
          включении PPP,
          производим проверку
          пользователя, если не
          проверяли его раньше (может это уже
          можно
          выключить?
          )

          аaa authorization exec tacacs+ if-authenticated #
          проверяем права на запуск EXEC (shell так у киски
          называется) с помощью сервера tacacs+, а если его нет, то
          даем разрешение, если личность
          пользователя
          удостоверена - только
          благодаря этой строчке tacacs+ сервер
          возвращает
          автокоманду (в нашем случае telnet или ppp)

          аaa authorization commands 1 tacacs+ if-authenticated #
          проверяем права на
          исполнение команд уровня 1
          (непривилегированных) с помощью сервера tacacs+, а если его
          нет, то даем
          разрешение, если личность
          пользователя
          удостоверена

          аaa authorization commands 15 tacacs+ if-authenticated #
          проверяем права на
          исполнение команд уровня 15

          (привилегированных) с помощью сервера tacacs+, а если его нет, то
          даем разрешение, если личность
          пользователя
          удостоверена

          aaa authorization network tacacs+ if-authenticated #
          проверка прав, если кто-то лезет к нам по сети с
          помощью сервера tacacs+, а если его нет, то даем
          разрешение, если личность
          пользователя
          удостоверена

          аaa accounting network stop-only tacacs+ #
          посылаем учетную запись tacacs+ серверу в
          случае окончания сетевого события
          (завершение PPP-сеанса,
          например)

          аaa accounting connection stop-only tacacs+ #
          посылаем учетную запись tacacs+
          серверу в случае окончания
          telnet-сеанса

          аaa accounting system stop-only tacacs+ #
          посылаем учетную запись tacacs+ серверу в
          случае окончания
          системного события (например,
          перезагрузки)

          еще должна работать команда: aaa authentication local-override
          (если конечно перед ней завести
          пользователя на киске username admin privilege 15 password <пароль>),
          которая позволяет
          использовать локальную базу
          пользователей, но такие
          пользователи
          получаются абсолютно
          бесправными (даже EXEC не могут
          запустить :( Отлично! Я
          использую это для запрета входа
          пользователя bbs на киску с
          быстрыми модемами, не
          разбираясь с tacacs+
          сервером.

          tacacs-server host 194.84.39.28 # адрес
          компьютера, на котором работает tacacs+
          сервер

          tacacs-server host 194.84.39.27 # адрес
          компьютера, на котором работает
          запасной tacacs+ сервер (в
          реальности он не работает, но при
          необходимости можно
          запустить)

          tacacs-server key <пароль> # ключ, с
          помощью которого шифруются
          сообщения между киской и tacacs+
          сервером

            конфигурирование PPP-доступа


            <!-- -->конфигурирование маршрута по умолчанию