Курс молодого бойца: тонкости настроек маршрутизаторов и коммутаторов

    Будем считать, что вы уже активно осваиваете хитрости настройки через консоль. Пришло время рассказать ещё несколько тонкостей. О чём имеет смысл подумать при настройке маршрутизаторов и коммутаторов cisco.

    Тонкость 1. Аккуратность.
    Часто возникает задача что-нибудь добавить в текущую конфигурацию. Наверняка вы знаете, что многие элементы пишутся отдельно, а отдельно применяются (на интерфейс, ко всей железке и т.д.). Будьте крайне осторожны, изменяя настройки таких технологий, как PBR (route-map), QoS (policy-map), IPSec (crypto map), NAT. Лучше всего сначала снять их с использования, потом изменить, потом повесить снова. Связано это с тем, что все изменения вы вносите сразу же в состояние железки. Иногда то, что уже работает (например, подгружено в оперативку) конфликтует с новым конфигом. Не редки ситуации, когда железка уходит в перезагрузку после попытки изменения конфига.

    Пример: пусть у нас есть route-map, примененный на интерфейс. Пусть нам надо его изменить. Наиболее «чистый» способ такой:

    1. Копируем из конфига существующий route-map
    2. Вставляем его в блокнот.
    3. Меняем ему имя в блокноте
    4. Меняем сам route-map
    * Обязательно проверьте его на логику: будет ли он делать то, что нужно
    5. Копируем его из блокнота
    6. Вставляем в конфиг.
    * Он ещё никуда не применен, т.к. с другим именем, поэтому процедура безопасна
    7. Применяем новый route-map на интерфейс

    К сожалению, такую красивую процедуру делать обычно лень :)

    Если политика безопасности требует, чтобы в конфиге все названия были каноническими, то можно дополнительно сделать так:

    3А. Копируем route-map с новым именем
    3Б. Вставляем в конфиг.
    3В. Применяем route-map с новым именем

    А измененному route-map оставляем старое, каноническое имя.Если нет возможности снять, например, crypto map (в этом случае упадут все туннели), а добавить новый абзац надо, то необходимо минимизировать время, в течение которого будет «недоделанный конфиг» (incomplete crypto map). Это происходит, если в абзаце не хватает одной или двух строчек из

    match address
    set transform-set
    set peer

    Для минимизации времени простоя вбейте необходимый кусок конфига crypto-map в блокноте и потом копи-пастом влейте его на циску.

    2. Тонкость. Подстраховка.
    Помните, что пока вы не набрали

    copy running-config startup-config

    или что тоже самое

    wr

    файл начальной конфигурации ещё старый. Поэтому, если всё поломалось, достаточно перезагрузить железяку. Дабы не бегать самому или не звонить на другой конец (офиса/города/планеты) есть технология «отложенной перезагрузки»

    reload in

    и перезагрузки в конкретное время

    reload at

    (о них упомянули в топике про консоль)

    Отменить отложенную перезагрузку можно командой

    reload cancel

    3. Тонкость. Сохранение конфигов
    Помните, что файл конфигурации — это просто текстовый файл. Можно скидывать файл настройки на tftp, ftp, http, flash и т.д. А можно просто забрать его к себе на рабочую машину. Например, включив в PuTTy (или другом терминальном клиенте) лог выводимого на экран, можно банально дать команду

    sh run

    и получить свой конфиг в файл лога.

    *Хинт: sh run выводит конфиг поэкранно, разделяя полосочками. В файле эти полосочки тоже будут. Если лень эти полосочки потом убирать, можно дать команду

    sh run | tee http:// 1.1.1.1

    Команда tee копирует на экран то, что пытается отправить по http на 1.1.1.1. Отправить ей не удастся, но на экран вывалится весь конфиг без задержек и разделителей.

    4. Тонкость. Имена.
    Не секрет, что проще написать конфиг самому, чем разобраться в чужом :) Да и свои старые конфиги иногда трудно читать. Поэтому, чтобы помочь себе и другим рекомендую

    — Все названия (ACL, route-map, crypto-map, transform-set и т.д.) писать большими буквами (ну или хотя бы с большой буквы). И имена желательно подбирать не слишком длинные (иначе замучаешься вбивать), но «говорящие». Приведу для примера любимую строчку из конфига ASA (в ней для внешнего NAT на внешнем интерфейсе применяется ACL с названием outside)

    nat (outside) 10 access-list outside outside

    Если использовать ACL большими буквами легко выделить, где ключевые слова, а где названия.

    nat (outside) 10 access-list OUTSIDE outside

    — СРАЗУ УДАЛЯТЬ НЕНУЖНОЕ! Потренировались, побились лбом, поэкспериментировали — мусор удалить! Уже через неделю трудно вспомнить, нужные это конструкции или нет.

    — В новых IOS (начиная с версии 12.3) строчки поименованных ACL нумеруются через 10 (это легко увидеть, дав команду sh ip access-list). Поэтому можно удалить существующую или добавить новую строку между существующими, используя синтаксис (для примера добавим между 20 и 30 номером строки)

    ip access-list ex NEW
    25 permit tcp any any eq 25


    — Если ACL всё-таки используются нумерованные (исторически, например), их можно изменять, используя синтаксис поименованных ACL

    ip access-list ex 101
    no 10
    25 permit tcp host 1.1.1.1 any eq 25


    Дерзайте и пусть Ваши циски работают устойчиво!
    И ждите следующих серий :)

    WBR, Сергей Фёдоров

    ЗЫ Я немного правлю топик без уведомления по Вашим просьбам или сам, если мысль приходит в голову
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 40

      0
      Спасибо!
        0
        1. Кто знает про relo in / relo can, тот и так знает; а кто не знает, тот из Вашего описания не очень поймет. Без обид.
        Хотя бы упомяните «relo can».

        2. В описании про «правильную очередность», я бы упомянул, что в современных IOS-ах «наконец-то» можно вставлять строки в access-list-ы не перегружая их полностью.
          0
          1. Это способ подвигнуть людей ткнуть вопросик после очевидной команды reload. Часто в голову не приходит, что там что то есть :)

          2. Да, правильнее было бы добавить сразу. Сейчас добавлю про строки, забыл, увлекшись хинтом.
          0
          Спасибо за новую статью!
          Еще бы написали, что шаг правил можно менять.
          Причем новое правило добавляется сразу после последнего, даже если перед двумя последними 100000 номеров.
          Я не определил максимальный номер правила, но я смог получить номера длиной в три миллиона. (была такая необходимость)
            0
            Отличный коммент!

            Добавляйте, комментируйте, пишите про свой опыт!

            Я при всём своём желании не могу знать и охватить все. Будем вместе расти над собой. Коллективный разум — это сила :)
          • НЛО прилетело и опубликовало эту надпись здесь
            • НЛО прилетело и опубликовало эту надпись здесь
              0
              А не проще вместо «sh run | tee http:// 1.1.1.1», если уж надо на экран получить весь конфиг, сказать «term len 0» и затем«sh run»? :)
                0
                Привет, Кость!

                А потом обратно длину терминала менять? Не лень? :)

                Мне проще ничего не меняя от так загнать.
                  0
                  Наверное, все дело привычки. Я привык длину терминала туда сюда менять :)
                0
                Если память не изменяет, то хотел бы еще сказать, что при изменении акцесс-листа, он начинает работать по новой схеме только после выхода из режима конфигурации этого самого листа.
                  0
                  Да, и кстати метод копипаста — конечно же прост, но стоило бы упомянуть, что злоупотреблять им нельзя.
                  Как например, скопировать из блокнота весь конфиг и вставить его через телнет или консоль. Часть команд пропадает либо не успевает примениться.
                  Я уже пару раз поплатился за это =)
                    0
                    Если сидишь на хардверной консоли то бывает(непредсказуемые результаты), обычно вешаю адрес и захожу телнетом.
                      0
                      Кстати, тоже верно.

                      Если надо поменять конфиг полностью, лучше залить его не в running, а как файл в startup и перегрузить железку.

                      В примерах я везде использую только кусочки небольшие, по несколько строчек. На практике бывает, что кусок текста более 50 строк не влезает полностью и начинается расколбас :(

                      0
                      Расскажите как в PuTTY бороться со случайным кликом правой кнопкой мыши — бывает такие поэмы в конфиг заносишь)
                        0
                        В настройкаx: ->Window -> Selection. В пункте «Action of mouse buttons» выберете «Windows».
                        +1
                        Умоляю, продолжайте :) Тем, что можно использовать wr вместо copy run start вы перевернули мой мир.
                          0
                          Ну, для меня года два назад это действительно перевернуло мир. Теперь только «wr» и пишу. Думаю, тут много найдется тех, для кого это станет открытием =).
                          0
                          Ого, спасибо ) Вроде мелочи, а вроде и удобней работать. Хотя из мелочей и складывается наша жизнь…
                          Честно не представляю в каких ситуациях может потребоваться ребут по расписанию. Вы не могли бы пример привести?
                            0
                            Таких случаев — миллион =).
                            Есть такие изменения параметров, которые начинают действовать только после ребута (Например, на каталисте изменение mtu требует перезагрузки, если не ошибаюсь). Если устройство в рабочей сети, то так просто это не сделаешь. Вот и приходится ставить ребут по расписанию. Например часа в 4 утра, когда проходит минимальный трафик.
                              0
                              Ну про 4 утра — да, но что будет если например Вы что то изменили, поставили ребут на 4 утра но все стало работать не так как Вам надо. А Вы спите и узнаете об этом только утром )
                              0
                              Ниже верно написали: живое железо перегружать не всегда можно «по желанию», а сидеть до 3 часов ночи — не охота :)

                              Например, изменение sdm profile на коммутаторе, system mtu и др.

                              Второй пример: когда надо подстраховаться.

                              Меняем конфиг удалённо, на площадке нет квалифицированного персонала или доступа, что получится заранее неизвестно. Проще поставить reload in 10 (мин) и в случае пропадания связи через 10 минут получить обратно железку, чем долго рвать на себе волосы

                              Третий пример: на живом железе какой то незначительный сбой, требующий перезагрузки (подвисли терминальные сессии, не отвечает какой-нить сервис). Редко, но бывает…
                                0
                                Спасибо. Второй пример очень убедителен. Пару раз так полчалось :)
                                  0
                                  у всех так получалось… кто-то с первого раза понял, а кто-то не сделал никаких выводов до сих пор… есть у меня один такой непонятливый
                              0
                              Я бы, кстати, сюда добавил краткий рассказ о бекапе конфигов и cron.
                                0
                                Не будем всё в одну кучу валить :)

                                Всему своё время!
                                0
                                Мне кажется, что вместо tee 1.1.1.1 проще использовать ter len 0
                                  0
                                  it's up to U

                                  Хорошо, когда есть выбор :)

                                  Моя задача — дать пищу для размышлений и пути решения.
                                  Никогда не претендую на истину в последней инстанции :)
                                  0
                                  ip access-list ex 101

                                  Вещь полезная а я все по привычке с CCNA делают так
                                  1. Выключаю ip access-group
                                  2. Копирую в блокнот лист
                                  3. Редактирую его
                                  4. Удаляю лист на роутере
                                  5. вставляю на роутер
                                  6. включаю ip access-group
                                  иногда еще reload in ставлю если большой правлю.
                                    0
                                    Рекомендация та же, что и для route-map

                                    Не надо делать первый шаг.
                                    Надо поменять название (или номер) ACL (удобно автозаменой в блокноте)

                                    Тога 6 пункт просто применит новый ACL, а на время правки будет работать старый, не оставляя неприкрытой циску
                                      0
                                      Хороший путь, но у меня номера везде листов одинаковые и я их как бы уже знаю на автомате где какой применен поэтому изменяя номера меня это больше в путаницу введет.
                                        0
                                        Хозяин — барин :)

                                        Я вообще где можно от номеров ушёл.

                                        А создать 2 конструкции типа XXX1 и XXX2 в-общем не сложно и понятно, что относятся к одному и тому же.
                                          0
                                          Да меня переодическии наталкивают на мысли на имена перейти, но както времени нет. Не сломалось — Не чини, как известно. :)
                                    0
                                    можно я слегка позлорадствую?

                                    > Лучше всего сначала снять их с использования, потом изменить, потом повесить снова. Связано это с тем, что все изменения вы вносите сразу же в состояние железки.

                                    я категорически согласен с тем что поставленное в продакшн оборудование (не важно цизко это или сервер или что еще) никак не подлежит к какой-либо модификации: реконфигурация «на лету», апдейт софта и прочее. однако, за частую приходиться делать весьма не безопасные вещи «на лету». и вот тут, как вобщем и не только тут, крайне роляет предсказуемость реакции системы на действия. в этом плане, цизко не очень то предсказуема. но, извините, кто вам даст снять «офисную» c2811 чтобы поправить роутмап и оставить при этом весь офис без работы? я понимаю что критические работы надо проводить в нерабочее время. но с каких пор правка таких мелочей к этому относится? вобщем не та вещь, за которую стоит платить ценой личного времени. ну да ладно.

                                    > Иногда то, что уже работает (например, подгружено в оперативку) конфликтует с новым конфигом. Не редки ситуации, когда железка уходит в перезагрузку после попытки изменения конфига.

                                    воистину так. иногда блядь вставленный модуль в цизку уводит эту цизку с «правильным» иосом в ребут. действительно надежное решение, да. (это сарказм какбе)

                                    > 1. Копируем из конфига существующий route-map
                                    > 2. Вставляем его в блокнот.
                                    > 3. Меняем ему имя в блокноте
                                    >…

                                    дооо! я так думаю cisco действительно никогда не будет конкурентом тем же juniper, как раз вот с таким вот сифилисом. кстате, вы не правильный алгоритм избрали. т.е. почти не правильный. мой опыт показывает, что помимо «скрипта» вносимых изменений надо делать аналогичный для их отката. и как же меня достает полдня рисовать буквы в блокноте. :(

                                    про reboot in|at|cancel хорошая и полезная тонкость. только вот не всегда ее получится применить. одно дело какая вшивая c1800 в офисе в каком гавножопске, а другое дело что-то вроде catalyst 6500 и выше. оно какбе не 5 секунд закружается. простой в оказании сервиса успеют заметить все.

                                    можно еще много мусолить. но единственный верный вариант в этом случае это полное резервирование устройства, например по hsrp или glbp. пока вы мусолите одну, все работают на другой. меняете роли и мусолите вторую. ну или как-то так. нервные клетки целее будут.

                                    кстате, про предсказуемость реакции. практика показывает, что брендовый писироутир на FreeBSD гораздо более предсказуем чем любая cisco. это никак не повод к холивару, каждое решение имеет свою нишу, но как минимум повод задуматься на тему «стоит ли брать в мелкий офис гирлянду цисок или таке обойтись бсдой с прокурвами?» :)
                                      +1
                                      Прости за ответный сарказм: изобилие ругательного сленга не прибавляет веса твоим очень правильным и разумным словам.
                                      ИМХО, более взвешенная позиция меньше отталкивает.

                                      Спорить не буду. Ибо много правильного: и про откаты, и про правку мелочей «на лету», и про то, что резервирование решает часть проблем.

                                      Но чтобы как то уравновесить всёж скажу:
                                      1. Не так часто надо ребутить циски при нормальных настройках. Это миф, рождённый виндолюбителями
                                      2. упомянутый 6500 можно ребутить помодульно
                                      3. Почти никакое недорогое железо не любит втыкания модулей «на лету»
                                      4. Для неоставляния офиса без работы как раз и придуман метод со вторым route-map (crypto-map, ACL и т.д.) Либо через ребут можно откатить, либо через обратное применение старой конструкции, которая на время отладки остаётся в конфиге
                                        0
                                        ну там где я все таки выругался — это те места где я «напоролся» по молодости общения с cisco, но впрочем и не только с cisco, тут вы правы)

                                        вобщем-то со всем что вы упомянули я согласен или почти согласен с оговорками, так что не буду особо комментировать :)

                                        скажу что забыл сказать в первом посте. данная статья уже интереснее, описаны хоть и тривиальные, но все таки полезные «хитрости». кому-то эта статья облегчит жизнь. =) вобщем ждем следующего .)
                                      0
                                      полезная штука сохранение старых конфигов
                                      archive
                                      path tftp://IP/cisco-backup/$h-$t
                                      write-memory

                                      при каждом выполнении write-memory на tftp сохраняется конфиг в формате hostname-date-time-№

                                      и попутно вопрос существует ли метод расшифровки enable secret 5?
                                        0
                                        Метод 5 — это не шифрование, а хэширование (MD5)
                                        А хеш тем и отличается, что его нельзя обратно «дехешировать»

                                        Поэтому пароли типа secret нельзя «расшифровать».

                                        ЗЫ ПОэтому, кстати, нельзя использовать пользователя типа
                                        user secret для подключения, скажем, по CHAP
                                          0
                                          Добавлю, что разрядность «соли» при хешировании достаточно большая,
                                          поэтому порядок скорости при попытке взлома «подбором по словарю» около 100 паролей в минуту,
                                          что на практике неприменимо.
                                          0
                                          еще один способ удобно редактировать acl, рутмапы и прочая — подгружать их с tftp
                                          то есть на tftp создается файлик с отредактированным acl, etc. и потом copy tftp: running-config

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

                                          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                          Самое читаемое