Основы Cisco IOS: режимы CLI, файловая система конфигураций, базовые команды управления и диагностики.
Где хранится running-config и что с ним происходит при перезагрузке?
Какая команда предотвращает зависание CLI при опечатках?
Какая последовательность режимов CLI правильная?
Какая команда сохраняет текущую конфигурацию в NVRAM?
Какая информация отображается по команде show version?
Основы CLI сетевого оборудования: Cisco IOS vs Junos OS — сравнение подходов
Cisco IOS классический vs IOS XR: модульная архитектура и кандидатская конфигурация
Архитектура Junos vs Cisco IOS: Control/Data Plane, CLI и конфигурация
Следующий модуль. Модуль будет у нас в какой-то степени практический. То есть вы, наверное, устали за предыдущий день слушать голую теорию. Теории у нас будет еще много, но сейчас мы ее разбавим практикой. И для того, чтобы практику пройти, нам придется немножечко посмотреть на слайдике, после чего потыкаем наши циски. Мы будем как раз заниматься тем, что посмотрим на включение и выключение и базовую работу с операционной системой циск-юс. То есть это та операционная система, которая у нас будет в качестве образцового показателя на операционке на сетевых устройствах в ближайшие, вот сколько получается, две недели. Что такое операционная система? Я думаю, что вы примерно представляете. Это та самая программа, которая управляет самим железом и она обеспечивает все его возможности. В частности, в нашем случае, это там, допустим, обеспечивает функции безопасности, чтобы никто не проадминил эту железку, чтобы железка правильно обрабатывала трафик, не пропускала то, что не нужно,
пропускало при этом то, что нужно. Если нужно какие-то указать правила обработки, то мы, опять же, путем взаимодействия с операционной системой мы указываем эти самые правила, и операционных систем у циски для сетевых устройств на самом деле много. Мы будем работать только с операционной системой циска АЭЛС, но при этом вы должны будете знать, что не только эта операционная система есть у циски, есть еще много разных других железных решений у циски, в том числе и с другими операционными системами. Если приводить пример, то вот из того, что на слайде у нас обозначено, это Cisco IOS обычный. Это просто обычное устройство. Операционная система с очень давней историей. Она тянется там с конца 80-х годов. IOS XE это ее наследница, которая очень похожа на IOS обычный. Фактически там экземпляр обычного IOS запущен в ядре Linux как процесс. То есть Cisco IOS это обычная операционная система, которая в кавычках обычная. Она основана на Unix Solaris, а вот IOS XE основана
на Linux ядре. IOS обычно там запущен как процесс. IOS XE, IOS обычная очень похожи друг на друга. Если вы научились работать с одной, переползти на другую, у вас вообще не составит никаких проблем. Они реально близнецы-братья. Ну то есть у них абсолютно одинаковый синтаксис, абсолютно одинаковое поведение. Разница только в архитектурном подходе к построению этой самой операционной системы. То есть внутри в кишках у нее различия большие. IOS XE более стабильная, более, скажем, корректно себя ведущая в случае аварии. То есть если у вас там, допустим, какой-то процесс подвис, вот IOS XE может выйти из положения, допустим, перезапустить сбойный процесс. В случае с IOS, как правило, всякие сбои, они заканчиваются довольно фатально. Вот. Дальше. IOS XR — это специальная операционная система для маршрутизаторов, в основном для маршрутизаторов такого провайдерского класса.
Там есть, в принципе, решения, которые можно ставить и в предприятия, то есть ISR-ы, там, тысячники, тысячники, не нравовал ли я, IOS XE или там, ну, неважно. Вот. И, соответственно, если говорить про вот самые нагруженные маршрутизаторы, не коммутаторы, а маршрутизаторы, которые есть у CISC, они все вот на XR работают. Это другая операционная система, прям сильно другая. Она немножко похожа на IOS, но она прямо как бы изначально с нуля разработана по совершенно другим принципам. Вы можете разобраться в том, как устроен XR, но у нее есть отличия и довольно заметные от обычного IOS. Если говорить про то, на что больше похоже и операционка IOS XR, это, наверное, на Juniper. То есть вот у Juniper операционная система Junos, она тоже довольно старая, но она прямо сильно не похожа на IOS. И это всегда было противостояние CISC-овода и Juno-вода. Вот одни говорили, что у нас самая удобная операционка, потому что ей пользуются больше всего народу,
типа миллионы бух не могут ошибаться. А Juno-воды говорили, у нас она просто удобная. То есть вы просто попробуйте, вы поймете, что она удобная. Но действительно, Juniper'овская операционка, она действительно логичная, удобная. Да, вот на тысячниках XE, спасибо. Ну, там девяти тысячники точно XR. Вот. Дальше. Что еще? Если говорить про Nexus, Cisco Nexus линейка, это высоконагруженные коммутаторы, то есть коммутаторы, которые могут обрабатывать там терабиты трафика, у них тоже своя операционная система. Cisco IOS обычный, там не работает. И Cisco IOS, она, как и на самом деле EOS XR, как и EOS XE, она тоже все будет построено на ядре Linux. Вот. Если говорить про NXS, она наследница другой операционной системы Cisco для коммутаторов Fiber Channel MDS. Ну и Nexus коммутаторы, да, они вот в некоторой степени наследуют логику работы
Fiber Channel-овских коммутаторов Cisco. Fiber Channel — это протокол, который другой по сравнению с Ethernet, то есть есть вот Ethernet, а есть другой протокол Fiber Channel. Ну и у Cisco когда-то были именно Fiber Channel-овские коммутаторы отдельно, у них была операционная система, своя собственная, и вот она развилась в то, что называется NXS. Тоже в какой-то степени похожий на IOS, но другое. Не только этими операционками ограничивается соответственно линейки Cisco, есть много других всяких разных операционных систем и много других линеек железа, у них у всех есть какие-то свои вот такие вот особенности, если говорить про примеры, вот, например, есть там, не знаю, контроллер точек доступа, у них там тоже своя операционная система. На точках доступа IOS обычно, а вот на контроллер точек доступа, там, по-моему, AirOS называется как-то, AirOS, вот. Ну да, то есть зоопарк.
На самом деле у Cisco, да, много всяких разных устройств, многих разных, на многих разных архитектурах, на многих разных платформах, связанных с тем, что Cisco, в свою очередь, очень мало железок разрабатывает сама. Чаще всего она поглощает другие компании, которые придумывают что-то хорошее, дальше у них что-то получается начинать продавать успешно, Cisco поглощает эту компанию, начинает продавать эти железки под своим брендом. Соответственно, когда идет разовая разработка, а, да, вот, ASA, конечно, да, Cisco ASA, у них своя операционка, когда идет разработка совершенно посторонней компании, которая с Cisco никак не связана, нового железа, никоим образом компания-разработчик не задумывается о том, что ее потом будут покупать, тем более, что ее будет покупать Cisco. Поэтому она не заботится о том, чтобы сделать такую платформу, на которой можно было бы запустить такую операционную систему, которая была бы удобна потом Cisco. Поэтому, да, каждый разработчик
делает свою железку, делает свой софт, потом эту железку покупает Cisco, начинает продавать под своим брендом, и получается, что у них в линейке получается новая операционная система. У Cisco в свое время была замечательная идея сказать следующую вещь, что, да, мы знаем, что у нас много разных железок с многими разными платформами, со многими разными архитектурами, на разных процессорах, на всем разном, но мы хотим, чтобы у нас была единая операционная система, которая работала бы вообще для всего. То есть, была такая гениальная генеральная линия сделать Cisco IOS для всех, всех, всех этих самых, для всех устройств. То есть, даже для тех, где изначально этого IOS вообще не предполагалось, и его там быть не должно было. Эту идею и у них получилось внедрить в некоторые, скажем, продукты, да, им получилось купить компанию разработчика и потом перевести эти устройства на операционную систему IOS. Например, у них получилось сделать это на свечах Catalyst.
Если вы сегодня будете работать с Cisco, вы в первую очередь ее будете знать, потому что Cisco делает свечи. На самом деле, свечи цисковские, если мы говорим про линейку Catalyst, это не цисковские свечи. То есть, Cisco купила компанию, которая разрабатывала эти свечи, это свечи, компания Crescendo, там была операционная система Catalyst, Catalyst, но Cisco сначала сделала переименование, сделала Cisco Catalyst, а потом уже, соответственно, на эти свечи вкорячила криво, косо операционную систему Cisco IOS. То же самое получилось сделать на точках доступа. То есть, изначально точки доступа Cisco не делала, она купила компанию-разработчика и потом на эти точки доступа вкорячила операционную систему Cisco IOS. Она так хотела сделать на все, все свои железки, но в какой-то момент она поняла, что это колоссальный объем работы, который, ну, просто даже она не в состоянии потянуть, потому что в результате, да, может быть, и получится сделать какое-то общее
ядро, которое бы было похожим на всех этих самых железках, но катастрофически сложно сделать действительно единую операционную систему, которая была бы предназначена для абсолютно разных платформ, для абсолютно разных архитектур, ну, и в итоге Cisco сдалась и сказала, все, ладно, забили на эту идею, то есть не будем в соответствии с ней работать, мы будем работать в соответствии с другой логикой, что у нас каждая линейка будет иметь операционную систему, которая предназначена именно для нее. И вот все вот эти EOS XR, NXOS и прочее, это все уже наследие вот этой новой волны, когда Cisco официально отказалась от идеи запускать EOS на всем, всем, всем. В смысле, как дела у конкурентов? Тоже все разное, но многие покупают готовых производителей. Ну, да, но таких компаний, которые на телеком рынке прямо агрессивно поглощали бы все вокруг, что движется и не движется, не так много. То есть, если говорить про железки, которые именно
вот на сетевом-сетевом рынке, ну, кроме Cisco так особо никто не делает. Потому что Cisco, если вы посмотрите на сайт Cisco, Cisco занимается всем, от лаптей до кораблей. То есть, у них есть роутер, у них есть свитчи, у них есть даты-центровые свитчи, которые совсем другие, у них есть провайдерский роутер, которые совсем другие, у них есть видеокамера, у них есть контроль доступа, всякие там дверные замки, у них есть видеоконференц-связь, у них есть... Мне проще сказать, чего у них нет. Я не знаю, вот нереально кораблей у них нет. То есть, это огромный монстр, неповоротливый, который получает деньги на всем. Но, кстати, на самом деле, Циско не так много денег получает, продавая железо. В основном у них, если вы посмотрите структуру выручки, поскольку Циско публичная компания, она свою выручку раскрывает. Они в основном деньги зарабатывают на сервисах. То есть она продает железо, а дальше к этому железу продаются так называемые сервисные контракты. Вот на этих сервисных контрактах она реально делает деньги.
Так, давайте дальше. Мы с вами будем все-таки работать с операционной системой Циско Иос. Это наиболее популярная операционная система для сетей предприятия. То есть каталист уже в свече было сказано, что они работают именно с ней. Те железки, под которые изначально эта операционка разрабатывалась, это роутеры. В основном семейство ISR, Integrated Services Роутеров первого-второго поколения. Это тоже, соответственно, Циско Иос. Сейчас есть новые линейки, и иногда они будут на Иосе, иногда будут на Иос XE. Ну, то есть, да, там в любом случае, если вы научились работать с Иосом, то XE вы получаете как бы в кавычках бесплатно знания. Именно потому, что это они очень похожи, они практически близнецы. Дальше. Есть линейки других устройств, которые тоже работают с этой операционной системой. То есть это коммутатор Метроизорнет, точки доступа. Ну и, пожалуй, все.
То есть, вот Иос по факту из того, что можно встретить, работает только вот на этих линейках. Но это, опять же, это те самые линейки, которые используются в предприятиях. Задачей операционной системы Циск Иос будет, во-первых, получить то, как она должна работать, получить какие-то команды от пользователя. Команды не в смысле, что надо ее каждый раз там адменить, а получить какие-то инструкции, как она должна работать, возможно, эти инструкции сохранить, чтобы каждый раз при перезагрузке не приходилось бы ее перенастраивать заново. Возможно получить какую-то информацию от окружающей среды. То есть, допустим, если у нас есть соседний роутер, который хочет, чтобы мы на него посылали трафик, мы на него будем посылать трафик. Если у нас нет соседнего роутера, мы на него не будем посылать трафик. То есть узнать о том, как устроена сеть, как устроена окружающая среда, и в зависимости от того, что мы нащупали, возможно изменить свое поведение. Ну и самое главное, что, собственно говоря, операционная система должна делать, она обеспечить и должна фарвардинг пользовательских данных. Как уже было сказано, что у нас все сетевые устройства,
это по большому счету чугунная коробка, у которой есть дырки, технологические отверстия, порты, интерфейсы. Мы в эти интерфейсы подключаем каналы связи, и дальше по этим каналам связи у нас на один порт приходит какой-то кусочек данных, мы его перекладываем в другой порт, фарвардинг. И это перекладывание должно происходить именно в той логике, которую администратор задал, которая не противоречит его хотелкам. Этот самый фарвардинг должен происходить безопасно, надежно, устойчиво, масштабируемо, всё хорошо, когда всё хорошо, и всё плохо, когда всё плохо. Именно операционная система отвечает за то, что происходит всё именно так, как надо. Если мы говорим про операционную систему Cisco IOS, то настраивать её нужно многими разными способами, но один и главный способ, который мы будем с вами изучать, это доступ к командной строке Cisco,
когда мы посылаем в сторону Cisco команды, и Cisco возвращает нам какой-то вывод. Это единственный кошерный, правоверный способ настройки. Дело в том, что есть и другие способы, например, через веб-морду. Очень часто начинающие администраторы говорят, что если чего-то нельзя настроить через веб-морду, то это плохое. Я сам просто сталкиваюсь регулярно с таким подходом. У меня есть очень хороший друг, он в своё время был очень хорошим администратором, сейчас он ушёл в бизнес, а он всё ещё хороший администратор, но с точки зрения того, что если ему дать какую-то железку, он разберётся, как с ней работать, даже Cisco разберёт. Но он, конечно, ценит своё время, и он говорит: если бы мне дать веб-морду от этой самой Cisco, я бы там зашёл, кнопочку нажал, и она бы стала работать как мне надо, и я бы на этом успокоился. А эти ваши консоли всякие, надо туда заходить, как-то это всё очень долго, и надо там знать, какие буквы набирать, и непонятно, что она там в ответ возвращает, и вообще это всё неудобно. Да, действительно, это так.
Действительно, через веб-морду можно зайти, нажать одну кнопку, и оно всё будет работать. Проблема в том, что через веб-морду вы таким простым домохозяйским образом не можете настроить какие-то сложные вещи. Когда вам нужно сделать какую-то простую вещь, там интерфейс включить, выключить, это можно сделать одной кнопкой через веб-морду. Но если вам хочется настроить какую-то хитрую политику обработки трафика, то через веб-морду это становится сделать уже очень сложно, потому что такой интерфейс проектировать, который был бы удобен для настройки, становится катастрофически сложно. Поэтому если вы хотите разбираться в сетевом оборудовании на уровне чуть большем, чем домохозяйка, то вам нужно будет работать с командной строкой. Специальные буковки, которые будут обозначать интерфейс командной строки, CLI, Command Line Interface, это интерфейс командной строки. Устроена эта штука будет следующим образом. Вы посылаете Cisco буковки, отдельные символы. В нашем случае, например, у нас есть администратор, который подключился именно к консоли Cisco и посылает буковки S, H, O, W, пробел.
Это всё отдельные символы, отдельные буковки. Он нажимает на клавиатуре эти буковки, они немедленно посылаются в сторону Cisco. И в какой-то момент он нажимает Enter, и когда набор символов, содержащий Enter, приходит на Cisco, приходит один символ за другим, Cisco понимает, что нажатие Enter означает, что всё, что набиралось до этого, надо немедленно выполнить. И как только Enter был нажат, она обрабатывает полученную строку, видит, что там просят показать версию операционной системы, и возвращает какой-то вывод. И она рассказывает, опять же, посимвольно. Сначала букву C, потом I, потом S, K, O, Cisco, I, Software, C870, Advanced API Service, SKA9. Эта штука именно посимвольно работает. Вы посылаете символы, она возвращает вам символы. Если вы хотите, вы можете настроить внешний вид всего этого дела, как вам будет удобно. Если хотите, можете, например, сделать чёрные буквы на белом фоне, или белые буквы на чёрном фоне, или хакерские такие, зелёные буквы на чёрном фоне.
Очень стильно выглядит, как матрица. Но тем не менее это в любом случае всё работает посимвольно, и сама Cisco там особо над цветами не развлекается. Всё это будет выглядеть с её точки зрения именно просто отправкой символов. Как можно получить доступ к командной строке? Самый простой и наиболее правильный способ, правильный в том смысле, что в первую очередь, когда говорят про командную строку, подразумевают именно это — это подключение к консольному порту. У всех Cisco, которые работают с операционной системой Cisco IOS, есть так называемый консольный порт. Там внутри него работает протокол RS-232, который позволяет передавать байты. У него есть обмен на уровне отдельных байтов. И вы подключаетесь к консольному порту специальным проводом, который включаете в COM-порт, запускаете у себя на компьютере приложение, которое умеет работать с этим самым COM-портом, и в COM-порт вы посылаете байты. Эти байты содержат символы.
И Cisco, в свою очередь, обрабатывает байты, в которых лежат символы, и в ответ выплёвывает вывод, который тоже состоит из байтов, из символов. На самом деле, когда вы пишете какие-то буковки на клавиатуре в командную строку, вы, допустим, пишете show version, нажимаете буковку S, и у вас буковка S на экране отображается. Дальше вы пишете H, у вас тоже буковка H на экране отображается. На самом деле происходит это следующим образом. Когда вы буковку S нажимаете, она ничего на экране не отрисовывает. Она посылает символ S в сторону Cisco, а дальше Cisco обратно посылает символ S и показывает, что вы его набрали. Там с обратной связью происходит всё это дело. Это в реальном мире. Это не единственный способ доступа к командной строке. Если вы хотите подключиться с помощью консольки, вы можете это сделать, но вы, естественным образом, будете ограничены по длине консольного провода.
Максимальная длина консольного провода ограничена, пара метров, тройка метров, наверное. Если вы находитесь в одном помещении с этой самой Cisco, вы можете к ней подключиться консолькой. Если вы не находитесь с ней в одном помещении, не знаю, вы сидите в отпуске на пляже, попиваете пиноколаду на Бали, и вам звонят и говорят: ты знаешь, у нас Cisco упала, подключись, пожалуйста, посмотри. Вы не можете быстренько мотнуться в Россию с Бали сказочного, и, бросив свою пиноколаду, подключиться к консольным проводам Cisco через всю планету. Вы должны будете подключаться как-то удалённо. И есть возможность подключаться, сделать так называемое интерактивное подключение с помощью каких-то протоколов удалённого доступа. Это либо Telnet, либо SSH, либо R-Login, либо SCP, как он называется-то? Ну, короче, там уже некрофилия пошла. Telnet и SSH — то, чем пользуются более-менее в реальном мире. Можно и другим способом получить доступ к интерфейсу командной строки. Например, вы можете взять
и отправить Cisco текстовый файлик, содержащий команды, которые вы хотите выполнить. А она их выполнит и вернёт вам тоже каким-нибудь образом вывод. Там с выводом в случае текстового файлика будут некоторые проблемы, но тем не менее это возможно. Можно какие-нибудь ещё экзотические варианты придумать, типа в SNMP запихать команды и отправлять их, а Cisco будет там тоже вам что-то возвращать. Но это, опять же, экзотика. Оно на то экзотика, что этим никто не пользуется. В реальности пользуются либо консолькой, либо Telnet и SSH. Как выглядит консольный порт? На картинке нарисован 2960S switch Cisco. У него есть, соответственно, на морде некоторое количество портов, которые выделены жёлтеньким. Не я выделил жёлтеньким, они так и нарисованы жёлтеньким. Это Ethernet-порты. И есть один блок, который выделен голубеньким цветом. И рядом с этой самой Cisco
в коробку приложен голубой провод. Такой плоский провод, у которого с одной стороны DB9-колодка, а с другой стороны колодка, которая очень похожа на разъёмы Ethernet. Но это не Ethernet. Это провод, специально предназначенный для подключения Cisco к консольному порту компьютера. Давайте сейчас буду рисовать. Я специально планшет подключил. Вот этот порт. Это порт не Ethernet-овский. Это порт RS-232. Давайте напишу прям специально, что это. RS-232. Это консольный порт. Вы в него подключаете эту фишечку провода. И с другой стороны у вас будет DB9-разъём. Если у вас на компьютере есть уже сразу DB9 консольный порт, вы подключаете его прямо сразу в компьютер. Чаще всего в современных компьютерах такого разъёма нету, поэтому вам понадобится переходник с DB9 консольного порта на USB. Но это не совсем переходник. Это полноценное USB-устройство.
Здесь на самом деле встроена микросхема-преобразователь, который будет электрический сигнал RS-232 преобразовывать в виртуальный COM-порт, который появится на компьютере, когда вы по USB эту штуку включаете в компьютер. Смысл именно в том, что вы включаете это всё дело в компьютер, в USB-порт, и у вас появляется виртуальный COM-порт, и вы в виртуальный COM-порт можете посылать байтики. На некоторых железках, в частности на этой, в голубенькой рамочке находится не только разъём RS-232, который я подчеркнул, но и маленькая дырка — это mini-USB, и этот mini-USB-разъём тоже консоль. Соответственно, фактически там точно такой же преобразователь, как здесь, который преобразует консоль в USB, уже встроен, он там распаян и распаян в параллель с этим портом. Вы можете включить туда mini-USB-шнурок и подключить этот шнурок к компьютеру,
и получить тем самым тоже доступ к консоли. Это не два разных порта, это один и тот же порт. Они распаяны в параллель, и вы должны использовать либо один, либо другой. Оба сразу работать не будут. Можно ли ещё раз сказать, что такое RS-232, DB9 и COM? Если вы никогда с этим не сталкивались, то, наверное, мне придётся показать, как это выглядит. Давайте я сейчас попробую показать. Секунду. Я открыл статью в Википедии про протокол RS-232. Это стандарт обмена данными, протокол обмена данными, примерно как Ethernet, но другой, примерно как Fiber Channel, но другой, примерно как, что у нас там еще бывает. Что у нас на физическом уровне там еще есть. 485-й вам тоже ни о чем не скажет. Короче говоря, это стандарт, которым можно обмениваться данными, отдельными байтами.
Если говорить про то, что такое колодка DB9, то вот она вот так выглядит. Эта колодка DB9 называется таким образом: буковка D обозначает форму этого разъема. Если вы видите, она такая трапециевидная, напоминает буковку D. И 9 означает количество штырьков или количество отверстий, которые здесь есть. Посчитать их — как раз тут 9 штук. Бывают DB9, бывают DB25. Там используется некоторое количество сигнальных линий, и эти сигнальные линии позволяют передавать сигнал на достаточно небольшое расстояние. И устроен этот протокол таким образом, что он позволяет передавать отдельные байты. Максимальная скорость этого стандарта не ограничена, но при достаточно небольших расстояниях она может достигать примерно вот таких значений. 115 200 бит в секунду. На расстоянии до 15 метров здесь Вики пишут. Не знаю, насколько этому можно верить, но смысл примерно такой, что вы на небольшом расстоянии
можете передавать байтики, и этот протокол как раз удобно использовать для всяких командных интерфейсов, для ситуации, когда вам надо отдельные байтики передавать, которые будут кодировать какие-то отдельные команды. Протокол сам не специфицирует, что за байтики. Вы будете передавать любые байтики, здесь будут хороши. Есть, соответственно, чаще всего желание отправлять не байтики, а в случае с пакетной передачей какие-то пакеты. RS-232 можно использовать для пакетной передачи, но это будут всякие костыли. А так, чаще всего, он все-таки используется для передачи именно команд. Чем хорош этот интерфейс? Он очень неприхотлив. Он, во-первых, достаточно неплохо переживает всякие ошибки, сбои, в случае с неуверенной какой-то работой все равно достаточно неплохо передает эти самые байты. Даже если вдруг какие-то байтики потеряются, ничего страшного, потеряются. И, во-вторых, он действительно очень просто программируется. Когда вы пишете обработчик для этого протокола,
RS-232, он очень и очень простой. Там не нужно ничего выдумывать, он просто передает вам готовые байты, и все. Так, может, еще какие-то картинки есть? Давайте. Ком-порт. А, картинка. Вот это задняя планка компьютера, и, соответственно, вот это вот — это у нас VGA-разъем, а вот это — это DB9 ком-порт. И вот сюда как раз включается тот самый голубой шнурок. Так, именно из-за простоты RS-232 не используется Ethernet. Дело в том, что Ethernet — это пакетная передача данных. Вы в Ethernet не можете передать просто один байт. Ethernet такое делать не умеет, и он всегда работает на уровне пакетов. У Ethernet есть огромное количество
лишних вещей, которые в случае с командным интерфейсом просто не нужны. Там нужно MAC-адреса иметь, там нужно заботиться о том, чтобы если вдруг там что-то произошло, там коллизия какая-то произошла, ее как-то обрабатывать. Ethernet-чип намного сложнее, чем чип RS-232. Если вам нужно просто обрабатывать байтики, то это удобнее делать с помощью RS-232. Именно поэтому для интерфейсов управления, если нужно просто буковки принимать и буковки отправлять, RS-232 просто удобнее. Он простой, как барабан, он надежный, как барабан, с ним ничего не случится. Используется для управления в цисках именно он по этой причине. Но, конечно, очень часто начинающие администраторы смущаются, когда видят вот такую дырку, которая похожа на Ethernet. Они пытаются совать туда Ethernet-разъем, говорят, ничего не работает. И поэтому в некоторых других железках, не цисках, но в некоторых других железках для интерфейсов управления
все чаще используется именно интерфейс Ethernet-а. И дальше там предполагается, что вы настроите какие-то, IP-адреса, и дальше по IP-шнику будете подключаться либо Telnet-ом, либо по веб-морде. Сразу понимаете, что надо использовать Ethernet с MAC-адресами, со всей фигней, чтобы там работал IP. У этого IP надо адреса настроить, надо там шлюз настроить. Сразу огромное количество настроек требуется для того, чтобы это все работало. Мы с вами на курсе в ближайшее время это все пройдем. А этому протоколу ему ничего не надо для работы. Воткнул, и он сразу работает. Никаких адресов нет, ничего нет. Просто посылает буковки туда-обратно. Для того, чтобы с этим интерфейсом работать, вам потребуется ком-порт на компьютере или USB-разъем, если у вас есть переходник, и вам потребуется какое-то приложение на компьютере, чтобы с этим интерфейсом можно было работать. То самое, которое в ком-порт может отправлять буковки. Если говорить про индустриальный стандарт,
то используется программа, которая называется PuTTY, как-то ее называют PuTTY чаще. Это не единственный выбор. Программ, которые работают с консольным портом, их много. Кому-то, может, гипертерминал нравится, кому-то там SecureCRT или SecureCRT не умеет с ним работать. Не суть важно. Есть много разных программ. Фактически стандартным в индустрии является именно эта программа PuTTY. Далее. Когда вы подключаетесь к консольной, к командной строке, к CLI, вы получаете доступ к буковкам. Вы посылаете буковки, вы принимаете буковки. Есть несколько разных вариантов, как вы можете это сделать. Можете подключиться к консоли, можете подключиться к Telnet-у. Telnet тоже самое позволяет делать. Посылать буковки, отправлять буковки. Можете подключиться к, например,
AUX-порту. AUX-порт — это тоже RS-232, только второй. Он есть не на всех железках. Как правило, на старых роутерах его можно встретить. Он был нужен для резервного управления. На случай, если вы хотели, например, позвонить на вашу циску через телефонную станцию. Это выглядело как то, что у вас есть стойка. В этой стойке смонтированы циски. Эти циски обеспечивают передачу данных, к примеру, из Ethernet-а. И если вдруг у вас сеть передачи данных сдохла, то вы не могли к этим цискам подключиться, потому что у вас Ethernet сдох, но вы хотели каким-то образом подключиться к этим вашим цискам издалека, потому что вы сидите на Бали и пьете пинаколады. Для решения резервного доступа была предусмотрена возможность взять и воткнуть в другой порт AUX модем. Он точно такой же, как консоль, только другой. Если вы опять же помните, как были модемы старого устройства, это там типа Courier, Sportster, это такая хреновина,
которая включалась в телефонную линию, на нее можно было позвонить, и она обеспечивала как раз тот самый байтовый поток. Можно было на модем позвонить и получить доступ к этому самому AUX-порту. Электрически он абсолютно такой же, как консоль, но у него небольшие отличия в части безопасности. Там точно такая же командная строка, но Cisco, зная, что это не консольный порт, а тот самый другой порт AUX, она там немножко пожестче закручивает гайки, в частности, безопасности. Там, например, нельзя зайти без пароля, там нельзя перейти в привилегированный режим без пароля. То, что на консоли можно, там не допускается. Именно потому, что это как раз интерфейс резервного управления издалека. Есть еще интерфейсы TTY. Это интерфейс, который предназначен для подключения модема изначально. Если вдруг вы хотите, например, чтобы ваша Cisco служила модемным пулом, опять же, если вы вдруг знаете, Что такое модем, что такое модемный пул,
если вдруг вы это застали, если вдруг вы настолько же старый, как и я, то вы могли это увидеть. Но сегодня это практически не встречается. То, с чем приходится сегодня работать, это консоль и VTI — виртуальный терминальный интерфейс и консольный терминальный интерфейс. Когда вы работаете с консолью, или с командной строкой, с CLI, вы вводите буковки. Вы вводите буковки, буковки, буковки, и в конце концов вы нажимаете Enter. В тот момент, когда вы нажали Enter, система понимает, что вы ввели цельную команду и пытается её выполнить. Команда выполняется немедленно, как только вы нажали Enter, за редкими исключениями. И когда вы находитесь в режиме выполнения команд, или так называемом exec mode, то вы заставляете устройство выполнить одну команду или одно однократное действие. «Сделай это», в кавычках. Смысл именно такой, что вы заставляете выполнить какое-то однократное действие.
Система делает это действие и забывает о том, что она это действие сделала. Когда вы заставляете железку что-то сделать, она это сделала, и всё, дальше она работает, как ни в чём не бывало. Например, пропинговали соседа. В процессе пингования мы ведём себя как-то иначе, но потом мы возвращаемся в исходное состояние: что мы пинговали соседа, что мы не пинговали соседа — ничего не изменилось. Можно, допустим, показать текущее время. У нас система работает, работает, работает, ничего не происходит. Приходим мы и говорим: покажи время. Она напряглась, отобразила время на экран и расслабилась. Опять ничего не происходит, система не изменила своё состояние. В режиме выполнения команд команды не изменяют состояние устройства. Они заставляют выполнить какое-то однократное действие, и дальше система возвращается в исходное состояние. Команду show clock нам ещё понадобится, просто запомните, что она так выглядит.
Далее. Команды бывают разные. Бывают команды типа «покажи время». Это не страшная команда, её можно разрешать выполнять кому угодно. Бывает команда «пропингуй соседа». Тоже ничего страшного, по большому счёту, но уже какие-то пакеты по сети отправляются, уже нехорошо. Бывают команды, например, «перезагрузись». Это уже совсем криминальная команда, которая заставляет железку перезагрузиться. Пока она перезагружается, сервис, который она обеспечивает, не работает. Поэтому её уже совершенно точно не надо давать выполнять кому попало. Если кто-то подключился к консоли и получил доступ к режиму выполнения команд, то мы не хотим, чтобы этот кто-то получал доступ ко всем функциям железки сразу. Поэтому, для того чтобы дать возможность разграничить разным пользователям доступ к разным командам, в системе есть концепция уровней доступа к командам — уровень привилегий. По умолчанию этих уровней привилегий всего два. Доступ, соответственно,
пользовательский — user mode и доступ привилегированный — privileged mode. Всё неинтересное в user mode, всё интересное, всё ценное и то, что нам может пригодиться, — всё в режиме привилегированном, именно потому, что вся настройка там происходит. И, соответственно, уровней всего два, и вы по умолчанию получаете доступ минимальный — user mode, дальше вводите секретную команду и переходите в привилегированный режим. В принципе, можно потом обратно выйти. Если вы пытаетесь выполнить команду, которой в вашем уровне доступа нет, то система выдаёт ошибку, говорит: нет такой команды. Логично. Разница с sudo как раз в том, что если вдруг вам не хватает доступа в условном Linux, и система говорит «сделай sudo», то система говорит: такая команда есть, просто тебе прав не хватает. А в Cisco просто скажет: нет такой команды. Вы пытаетесь её сконфигурить, она говорит: а я не знаю, что такое меня конфигурить. И вы должны перейти в привилегированный режим, и тогда она поймёт, что вы от неё хотите.
Вы можете настроить больше уровней, чем два, но мы про это будем говорить на курсе по безопасности. Для большинства администраторов двух уровней более чем достаточно. Есть уровень, в котором нельзя делать ничего, и есть уровень, в котором можно делать всё. Как отличить эти самые два уровня? В пользовательском режиме, в user mode, вы будете встречать приглашение к вводу, в командной строке у вас есть приглашение к вводу, которое состоит из названия устройства и дальше одного символа. В Linux очень похожая система. Показывается, соответственно, название железки. У нас, не мудрствуя лукаво, железка называется router. И дальше символ. Символ «птичка» означает, что вы находитесь в пользовательском режиме. Это пользовательский режим. Здесь ничего нельзя сделать, но в этом режиме есть команда enable. И если вы находитесь в консоли, именно в консольный порт подключились вот этим самым голубым шнурком, то если вы железку только что купили и не настраивали пароль, система даже без пароля
переведёт вас в привилегированный режим. Это такой лайфхак, как можно железку настроить, если вы только что её принесли и хотите использовать привилегированный режим. Только на консольном порту, только если пароль не настроен, система вас переведёт в привилегированный режим. Если вы пытаетесь по Telnet подключиться, если вы пытаетесь через AUX-порт зайти, если вы пытаетесь что-то ещё сделать, если вы настроили пароль, система в этот момент скажет: покажи пароль. Но если вы только что свежую ненастроенную железку без пароля пытаетесь перевести в привилегированный режим из консоли, то система просто переходит в привилегированный режим, приглашение к вводу меняется и становится решёточкой. Название железки и решёточка. В решёточке вы можете делать всё, что захотите. Соответственно, если вдруг вам зачем-то понадобится, вы можете перейти обратно в пользовательский режим, команда будет обратная. Enable, disable. Enable — перейти в решётку, disable — выйти из решётки. Если вдруг вы пытаетесь что-то сделать,
а система говорит, что такой команды нет, то в первую очередь смотрите на то, где вы находитесь. Вошли вы в решётку или нет. Это очень частая ошибка. Дальше. Если вы хотите посмотреть, что вам можно сделать в текущем состоянии, есть встроенная справка. Она очень-очень спартанская, но тем не менее она есть. Вы можете вместо ввода команды нажать вопросик. Когда вы находитесь в решётке, здесь у нас приглашение к вводу — router и дальше решётка. Здесь можно набрать команду, например, show clock, и система выполнит эту команду и покажет текущее время. Но если вы хотите посмотреть, что вам в принципе допустимо сделать, есть возможность нажать просто вопросик, и система покажет все команды, которые вам будут доступны, и кратенько их описание. Здесь clock — команда управлять часами системы.
Это вся справка, которая есть. В птичке, в галочке тоже есть такая функция. Она везде работает. Единственное, что в галочке она покажет список всех команд или параметров, которые доступны вам в текущем контексте. И в решётке она покажет список всех команд или параметров, которые доступны в текущем контексте. И в решётке, естественно, этих команд будет сильно больше. Опять же, мы сейчас посмотрим на Cisco, на настоящей, что там есть большая разница в количестве команд, которые она вам показывает. Если вы находитесь в птичке, она вам покажет порядка 50 команд. А если вы находитесь в решётке, она вам покажет порядка 100–150 команд. И для каждого уровня она показывает только то, что вам по факту доступно. Если вы находитесь в птичке, она вам в принципе не покажет команду, допустим, перейти в настройку системы — configure. Просто скажет: такой команды нет, справки не покажет, ничего не знаю, недопустимо даже пытаться думать о том, чтобы настраивать железку из соответствующего режима. Для каждого уровня она показывает только те команды, которые допустимы
в текущем уровне. Описание, как вы видите, очень спартанское, поэтому фактически его можно использовать только в одном режиме — когда вы примерно знаете, какая команда вам нужна, просто вы запамятовали точно её название. В этом случае вы вопросик вводите и дальше отлистываете до тех команд, которые вам кажутся подозрительными на то, что вы собираетесь найти. Читаете описание, понимаете, это про то или не про то. Понять, что делает абсолютно незнакомая вам команда, здесь не получится. Дальше. Если вы просто на пустом месте нажимаете вопросик, показываются все команды или параметры, и показывается по ним справка. Если вы наберете некоторые символы и нажмете вопросик без пробела, то система покажет все команды или параметры, которые начинаются с введенных вами символов, уже без справки. Если вы наберете cl и дальше
нажмете вопросик, то система покажет все команды или параметры, которые начинаются с символов cl в заданном контексте. Можно набрать, допустим, clo или cloc, нажали вопросик, и система покажет все команды или параметры, которые начинаются с введенных вами символов. Набрали clock и без пробела нажали вопросик. Соответственно, система показывает все команды или параметры, начинающиеся с символов clock. Такая команда только одна — это clock. Видите, ключевой момент, что здесь нету пробела. Поэтому система после введенных символов показывает всё, что начинается с введенных символов. Как только вы набрали пробел, система понимает, что вы ввели целиком какое-то командное слово. И дальше, если вы набрали пробел, нажали вопросик, система показывает список всех команд или параметров, которые допустимы в данном контексте, вообще всех. И поскольку здесь никакие символы после пробела не введены, она показывает список всего со справкой. В нашем случае есть только один параметр set.
Опять же, можно набрать одну букву s, или можно набрать две буквы se, или можно набрать все три буквы set. И если мы нажмем вопросик после ввода каких-то букв, то система покажет список всех команд или параметров, начинающихся с введенных нами символов. Если мы ввели символы se, то покажется список всех команд или параметров, начинающихся с se. Это параметр set. Вопрос про табуляцию. Работает табуляция. Сейчас про нее на отдельном слайде будет. Я сейчас хочу просто показать логику этого вопросика. Если вы набрали что-то и нажали вопросик сразу после этого без пробела, то система отфильтровывает вывод, показывает все команды или параметры, которые допустимы в данном контексте и начинаются с введенных вами символов. Но справку не показывает. Если вы после пробела или в самом начале строки нажали вопросик, система покажет вообще всё, что допустимо в данном контексте, и краткую справку. Далее.
Каждая команда может состоять из командного слова и каких-то параметров. Параметров может быть много. Например, есть команда, которая устанавливает текущее время. Кстати, это не настройка. Это именно команда. Дело в том, что время — это немножко контраинтуитивная вещь — время не является настройкой системы. Если вы изменяете текущее время, система не хранит это время нигде в конфигурации. Система в любом случае всегда это время меняет. И когда вы в какой-то момент времени говорите «поменяй, пожалуйста, текущее время», она всё равно ведёт себя как ни в чём не бывало. Просто у неё в какой-то момент изменение времени становится чуть больше. Сказали, что сейчас у нас 2016 год. У неё раньше был 2019 год, а сейчас стал 2016. Она всё равно бы каждую миллисекунду перелистнула бы время на одну миллисекунду. Просто она в какой-то момент перелистывает чуть больше, чем нужно. Это не изменяет состояние системы. Поэтому настройка текущего времени, немножко контраинтуитивная,
она находится именно в режиме выполнения команд. Она не находится в конфиге. И если мы хотим настроить текущее время, то команда будет иметь следующий формат. Начинается всё с ключевого слова clock. Дальше мы уже знаем, что есть только один параметр — clock set. И после clock set мы пишем вопросик через пробел. Это значит, что мы ввели clock, ввели set. Дальше пробел и вопросик говорит: мы хотим узнать, какая команда или параметр здесь будет допустим. И система показывает справку, что в этом контексте допустимо. Она подсказывает, что в этом контексте допустим ввод текущего времени в формате часы, минуты, секунды. Мы вводим, что сейчас у нас 12 часов 50 минут 0 секунд. Именно в таком формате, потому что она от нас требует и часы, и минуты, и секунды. Мы ввели часы, минуты, секунды. Дальше нажали пробел. И система на выбор даёт нам два варианта. Либо можно пойти по пути ввести сначала
число, и тогда будет предполагаться, что вы вводите дату в европейском формате: число, месяц, год. Либо вы можете пойти по второму варианту — не вводить число, а ввести месяц. И это будет дата в американском формате. Потому что американцы, несмотря на то, что они сами делают эти циски, у них ещё формат даты другой. У них сначала вводится месяц, потом число, а потом год. Циска, когда делала свои железки, предполагала, что кто-то будет пользоваться этими железками помимо американцев. И она допускает любой формат даты, который вы захотите: либо число, месяц, год, либо месяц, число, год. И если вы сначала вводите число, то дальше предполагается, что вы вводите месяц. Набрали 26-е. И тогда следующий параметр обязан быть месяц. Если бы мы сначала набрали месяц, следующий параметр обязан был быть числом. Но месяц, здесь показывается month, это обозначение, что вы должны ввести месяц в текстовом формате. Не числом, а именно словом. Допустимый формат здесь будет
либо январь, либо февраль, либо март и так далее. Если ввести clock set и два вопросика, покажет ли полную справку на дальнейший вариант? Нет, всегда один шаг. Более того, когда вы вводите вопросик, система немедленно показывает вам справку. Она не требует нажатия Enter. И два вопроса вы набрать просто не сможете. В нашем случае мы видим, что clock set мы ввели, ввели дату, номер дня. Система спрашивает, что мы дальше хотим вводить. Нам предлагается ввести месяц. И мы должны набрать февраль. Можно сократить, можно набрать februar. Можно feb. Нельзя писать, что это второй месяц. 26.02. Иначе система не сможет понять, что вы имели в виду. Вы имели в виду 26.02 — второй месяц, или вы ввели на самом деле второе число 26-го месяца. Она не сможет догадаться. Она говорит: если ты хочешь ввести число, месяц, год,
то вводи число, потом текстом месяц, потом цифрами год. Год в формате с 1993 по 2035. Опять же, хорошо видно, что это Unix формат. После того как мы ввели число, месяц, год, дальше вопросик. Система показывает, что допустимым вводом будет являться эта штука. CR — это carriage return, возврат каретки. Фактически, это нажать Enter. Вы можете в этот момент нажать Enter, и система обработает вашу команду. По крайней мере, то, что вы ввели, не вызывает у неё каких-то проблем на данный момент. Вы, возможно, набрали что-то неправильно. Вы попытались ввести 30 февраля. Она не парсит логически то, что вы ввели. Она пытается просто это распознать как синтаксически верную конструкцию. 30 февраля — вы хотите ввести. 30 — это число в диапазоне с 1 по 31. Февраль — тоже корректный месяц.
Поэтому она не будет здесь выдавать никаких ошибок. Но после того как вы нажмете Enter, возможно, она будет ругаться. Здесь происходит только базовая синтаксическая проверка. Если вдруг вы набрали что-то с ошибкой, то система будет ругаться. И, как уже было сказано, ругаться она может разными способами. Если вы просто ввели какую-то команду и недостаточно много ввели, может быть такое, что вы ввели какую-то команду, но не до конца. Например, команда clock. Она предполагает, что вы введете параметр set. Если вы просто наберете clock, нажмете Enter, система скажет, что команда не введена полностью. Если вы набрали что-то с ошибкой, например, набрали clok, не clock, а clok, и такой команды нет, система пытается сделать странную вещь. Это невозможно понять, и надо просто запомнить. Она пытается ваш ввод трактовать как имя узла,
к которому надо подключиться по протоколу удалённого управления. По умолчанию там либо telnet, либо LAT, на старой железке протокол LAT, которым можно попытаться подключиться к узлу. Она пытается имя clok распознать как имя узла. Она использует все возможные способы. Например, DNS-сервер. Если он у нас прописан, она пытается эту строку зарезолвить на DNS-сервере. Если у неё это получается, она к нему подключается по протоколу управления LAT. Если у неё это не получается, она пытается ещё что-то сделать. Если всё, что она пыталась сделать, не получилось, она в конце концов говорит, что это не IP-адрес, это не название команды, это не имя узла, поэтому непонятно, что с этим делать. Как правило, это поведение приходится отключать. Отключается оно дурацкими способами. Есть два способа. Первый способ — отключить DNS, вообще убрать DNS, сказать no IP domain lookup, и тогда система, когда вы наберете что-то неправильно,
она будет пытаться резолвить это имя в DNS, но у неё заведомо это не получится, потому что вы запретили это делать. Любые имена резолвить в DNS. И тогда она сразу будет говорить: извините, у меня не получилось это зарезолвить. Это метод из пушки по воробьям, потому что он, помимо того что когда вы опечатываетесь, немножко ускоряет вам жизнь, он ещё и любые DNS-запросы вам отрубит. И второй способ — сказать, что когда вы хотите подключаться по протоколу удалённого управления, надо использовать не LAT, не telnet, не что-либо ещё, а ничего. Вы запрещаете использовать протокол удалённого управления как таковой. Вам очень редко с циски надо залогиниваться куда-то на другую циску, на другую железку с помощью протоколов удалённого управления. И это более мягкий способ сделать так, чтобы когда вы опечатались, система не пыталась подключиться к какой-то другой железке. Это менее деструктивный способ.
Я предпочитаю именно его. Но потом поговорим, как это делать. Если вы ввели команду просто без ничего, то это может быть как название узла, так и название команды. И система знает, что такой команды нет, поэтому пытается пойти по пути, что это может быть имя узла, к которому вы хотите подключиться. Если вы ввели команду и параметры, и ошиблись в названии команды, то система понимает, что уже не надо подключаться к этому узлу, она пытается понять, что это именно название команды, и говорит: извините, такой команды нет. В какой-то момент у нас в строке обнаружен неправильный, некорректный ввод. Если бы вы ввели только некоторые первые символы, например clo, и дальше нажали пробел, система поняла бы, что вы имеете в виду, потому что только одна команда или параметр начинается с введенных вами символов. Вы можете не допечатывать до конца команду или параметр в циске, она поймёт. Но если вы ввели такие символы, с которых не начинается ни одна команда или параметр,
то система в какой-то момент скажет, что эту штуку просто не удалось распарсить. Clo было нормально, а на следующем символе мы споткнулись, возникли проблемы. И эта птичка как раз показывает тот символ, начиная с которого строку распарсить не удалось. Показывает, что там, где этот маркер стоит, возникла проблема. Может быть такой вариант: clock set мы ввели, дальше 12:50:00, и дальше мы ввели формат даты, который привычен при вводе с клавиатуры. Пишем число, месяц, год. Ввели 26 число второго месяца 2015 года. И вместо того чтобы ввести месяц в том виде, в котором циска требует, с буквами, мы ввели его цифрами. И циска здесь споткнулась. Она говорит: я не знаю, что ты имеешь в виду. То ли ты имеешь в виду 26 число второго месяца, то ли ты имеешь в виду второе число 26 месяца. Оба формата, в принципе, допустимы.
Поэтому в какой-то момент здесь должны были быть буквы. Вы либо здесь ошиблись, должны были здесь написать название месяца, февраль, буквами. Либо здесь ошиблись. Вы имели в виду второе число 26, 2 кашкотября 2015 года. С 26 месяцем у нас проблемы есть. Мало ли, вдруг вы что-то имели в виду. И, соответственно, где-то здесь есть ошибка. Система 26 циферку смогла распарсить, а 0,2 уже не смогла. Если вы на самом деле имели в виду 2 кашкотября, то вы неправильно написали 26 как номер месяца, имея в виду 26 месяц года. Я знаю, что их всего 12, но тем не менее. И ошибка на самом деле, она показывает неправильно. Ошибка должна была быть здесь. Но она, ещё раз повторю, эту штуку смогла как-то распарсить. Может быть неправильно, но у неё с этим проблем не возникло. А вот с этим уже показывает, проблема есть. Может быть такое, что вы синтаксически строчку ввели правильную, но есть какая-то проблема с логикой в этой строчке.
Например, вы ввели время, что текущее время — это 12.50.00. Дальше число 30 обозначает день месяца. Дальше февраль — месяц года, и 2015 — это сам год. С точки зрения синтаксиса — всё верно, всё корректно. Но такой даты не существует. И система принимает ваш ввод, но ругается, что дата неправильная, она нелогичная, и поставить её не получается. Если вы хотите, вы можете ввести команду или параметр не полностью. Можете набрать clo, дальше набрать табулятор, и система сама дополнит тот ввод, который вы не набрали. Но это работает только если вы ввели символы, из которых начинается ровно одна команда или параметр. Если вы набрали clo, ничего другого на clo, кроме clock, не начинается. Если вы набрали cl, с cl начинается clear и clock, и тогда табулятор не сработает. Можно вообще не дописывать до конца. Можно не нажимать табулятор.
Можно набрать clo и оставить как есть. Или вы, допустим, clo набрали, дожали табулятор, он написал вам clock. Дальше следующий параметр, мы знаем, это clock set. Можно просто s набрать и оставить это как есть. И это нормально сработает. Система поймёт, что вы имеете в виду. Эта штука работает. Очень сильно упрощает жизнь, если вы хорошо знаете те команды и параметры, с которыми вы работаете. Если вы постоянно работаете с одними и теми же конструкциями, то вы можете их сокращать. И они зачастую будут сокращаться до очень коротких строчек. Но опять же, вы должны быть очень хорошо уверены, с чем вы именно работаете. Если вы работаете с Cisco для того, чтобы научиться сдавать экзамен, я вас призываю все команды и параметры писать целиком до тех пор, пока экзамен вы не сдадите. Чтобы эти команды, чтобы у вас полностью весь синтаксис остался на кончиках пальцев. Чтобы у вас осталась не сокращённая запись на кончиках пальцев, а именно полное их название. На экзамене будут дурацкие вопросы типа того, как полностью выглядит определённая команда.
Вам предлагают conft, стандартная команда, configure terminal. И дальше вас спрашивают: это configure terminal l, configure terminal c, configure terminal что-то ещё. И если вы всегда сокращаете до максимума, до которого это возможно, то вы не знаете, как полностью выглядят команды и параметры, вы тогда не сможете сдать экзамен, по крайней мере, ответить на эти коварные вопросы. Поэтому до экзамена, пожалуйста, пишите полностью все команды и параметры целиком. Не надо пользоваться табулятором, не надо пользоваться сокращённой записью. После того как вы экзамен сдадите, табулятором тоже можно не пользоваться. Зачем тратить калории, когда вы уже набрали, допустим, clo, условно говоря? Зачем вам тратить калории на то, чтобы нажать табулятор, если можно просто нажать пробел? Оно и так сработает. Если вы пытаетесь сократить слишком сильно, вводите параметр, который вы хотите, но набираете не все символы.
Например, есть команда show startup-config. Вы набираете show st, и дальше просто нажимаете enter. Система скажет: я не могу понять, что ты хочешь, ambiguous command, непонятно, что вы вводите. И show st с вопросом вам показывает, что действительно с show st начинается много команд. Show stacks, show standby, show startup-config, show stun control. Вам следует ввести больше символов. В некоторых случаях Cisco работает не совсем корректно, и она всё равно может выполнить какую-то одну команду из списка. Например, с этим startup-config, несмотря на то, что есть show stacks, show standby, если вы введёте show st и нажмёте enter, она всё равно отработает. Поэтому надеяться на то, что вы ввели какую-то команду или параметр, и она всегда отработает правильно на любой модели Cisco, может быть немножко наивно. Я вас призываю писать все незнакомые команды,
в которых вы не уверены точно, что они конкретно на этой модели Cisco сработают корректно, целиком. Так, далее. Как уже было сказано, то, что мы делаем в работе с командной строкой, это мы посылаем буковки в сторону Cisco, и возвращает она нам тоже буковки. Самый простой пример того, как эти буковки выглядят, это команда show version, которая работает всегда и везде, и она показывает текущее описание устройства. Вы видите, достаточно большая простыня. В этом случае красненьким показано то, что мы посылаем в сторону Cisco, а всё остальное — это то, что она посылает нам в ответ. Здесь ещё, помимо того, что она послала тут много всякого, некоторая часть вырезана, потому что, как правило, запрет на экспорт криптографии заставляет Cisco указывать длинную простыню про то, что это устройство содержит криптографию, поэтому бла-бла-бла,
и это всё вырезано. Но всё равно видно, что достаточно много здесь текста, и показывается, что это Cisco, и это всё отдельные буковки. Мы послали буковку S, H, O, W, пробел, V, E, R, S, и так далее, и она в ответ послала все эти буковки одну за одной, и потом снова показала приглашение к вводу, которого здесь не видно, но тем не менее оно после каждой команды снова появляется. Show version — это достаточно интересная команда, которая показывает достаточно много о том, что за устройство попало к нам в руки. Учитывая, что она работает в пользовательском режиме, это очень ценная команда. Что здесь нам будет всегда интересно? Во-первых, нам будет интересно, что за IOS нам попал в руки, для какой платформы этот IOS собран. В нашем случае 800-й роутер, универсальный образ с поддержкой сильного шифрования K9. Дальше показывается версия операционной системы 15.4, показывается время компиляции этого IOS,
насколько он старый, в нашем случае 12 февраля 2014 года, не такой уж он и старый. Показывается аптайм, показывается файл с IOS, из которого произошла загрузка, где он находится. Дальше. Показан точный артикул железки. Это на самом деле важная вещь, потому что тут мы видим только платформу, с которой мы работаем. Это роутеры Cisco 800-й серии. Такие маленькие, младшенькие роутеры. А здесь показана точная модель Cisco 881 с поддержкой аппаратного шифрования K9. Показывается количество памяти, которое на этом роутере есть. Эти две цифры в сумме дают общее количество памяти. Здесь его один гигабайт, но он разбит на две части. 60 килобайт откусано под буферы, и всё остальное доступно операционной системе для своих задач. Показывается ID устройства, показывается список всех интерфейсов,
которые есть на устройстве. В нашем случае Fast Ethernet, 100-мегабитных интерфейсов на нём 5 штук. Показывается, сколько есть так называемого NVRAM. NVRAM — это флешка, по сути своей. И на устройствах есть, как правило, и NVRAM, и другая нормальная флешка. В нашем случае есть 255 килобайт NVRAM и ещё флешка. Нормальный компакт-флеш. Этот нормальный компакт-флеш — это просто флешка, которая распаяна на материнской плате. Иногда можно вставить дополнительную какую-то флешку, и этим местом вы можете распоряжаться под свои задачи. Например, хранить на нём образ операционной системы, хранить на нём логи, хранить на нём что-нибудь ещё. А NVRAM предназначен специально для того, чтобы хранить на нём конфиги. И если в современных устройствах это физически, на самом деле, одна и та же плата, одна и та же флешка, просто она логически разделена на две части, то на старых устройствах это действительно было две разные микросхемы.
И в этом была своя логика. Надо было где-то хранить IOS. И этот IOS либо можно было хранить на флешке, либо можно было хранить на диске, на жёстком диске, либо можно было хранить в NVRAM. У каждого из этих типов памяти были свои плюсы и минусы. Самые неприятные, самые ощутимые проблемы вызывали жёсткие диски, потому что это механическое устройство, которое постоянно двигается, в котором постоянно идёт какое-то движение, и оно не предназначено для аптаймов порядка десятков лет. Действительно, есть устройства Cisco, которые работают годами, десятками лет без выключения, его включили 10 лет назад, а он прямо работает, работает, работает. Ничего с ним не происходит. Жёсткие диски для таких условий не предназначены, поэтому от жёстких дисков Cisco отказалась практически немедленно. Возник вопрос, где хранить IOS? По размеру IOS были достаточно большие, особенно лет 20 назад, они были для NVRAM просто непригодны, сделать флешку NVRAM,
надёжную, удобную, хорошую флешку, которая могла бы вместить IOS, было бы очень дорого. Поэтому для того, чтобы где-то хранить IOS, инженеры Cisco использовали более дешёвую память. Та память, которая называется просто флеш, это более дешёвая память, которой можно было сделать много, и в это много влезал бы образ операционной системы. А NVRAM — это более дорогая память, которая более надёжная. И логика была следующая. Вам где-то нужно будет хранить IOS, и этого IOS много, и для него есть флеш. И где-то нужно будет хранить конфиги, и конфиги не стоит хранить на той же флешке, что и образ операционной системы, потому что эта память ненадёжная. И для конфигов была выделена отдельная, очень надёжная и очень дорогая память, которая называется NVRAM. Поскольку она дорогая, её очень мало. И вы видите, здесь этой самой, хоть и нарисованной, но тем не менее памяти NVRAM — 255 килобайт. При том что всего оперативки на этой железке получается гигабайт. Совсем кот наплакал.
На старых роутерах это были ещё более смешные значения. Там реально можно было встретить флешку для самого IOS 20-летней давности. Флешка была, к примеру, 20 мегабайт или 24 мегабайта. Мегабайта, не гигабайта, а мегабайта. А NVRAM занимал типа 4 килобайта. И вот вы конфиг на этот NVRAM могли положить, там хватало места для того, чтобы текстовый файлик, особенно зазипованный, держать. А что-то больше туда уже просто не влезало, потому что места было совсем мало. Но зато этот NVRAM был очень надёжный. И получалось, что на железке у вас было две флешки. Одна надёжная, другая большая. Если вдруг у вас эта большая флешка, как следствие, менее надёжная, выходила из строя, ничего страшного, вынесли железку в сервис, там вам говорили, окей, мы вам сейчас перепаяем эту флешку. Какой у вас там был IOS? Вы говорили, у меня там был IOS 15.4.1. И вам с сайта Cisco этот же IOS туда и клали. То, что вы потеряли какой-то файл с IOS,
ничего плохого в этом не было. Вам просто восстанавливали тот самый IOS, который у вас был, потому что это не какая-то секретная информация, она есть в открытом доступе. А конфиг — он уникальный. И вы, если вдруг испытывали какие-то проблемы с железкой, вы его не должны были потерять ни в коем случае. Поэтому для конфига была специальная отдельная микросхема памяти, NVRAM, которая является энергонезависимой памятью, и она была дорогая, она была очень надёжная, и поэтому её было очень мало. Вся эта информация о том, сколько памяти, сколько флешки, сколько NVRAM, сколько всего — есть в show version. Поэтому, если вдруг вы работаете с какой-то Cisco и просите советы или просите помощи на форуме, чаще всего первое, что вас спрашивают — покажите show version. Потому что там всё видно, сколько чего есть у вас в распоряжении. Если мы хотим настроить устройство, нам в руки попала какая-то Cisco, мы её купили или нашли, украли, или что-то ещё с ней каким-то образом раздобыли,
чаще всего мы хотим с ней как-то работать. Мы хотим её настроить, чтобы она работала в соответствии с нашими пожеланиями. Очень маловероятно, что мы просто хотим её купить ради того, чтобы купить. Мы хотим, чтобы она работала, и работала не просто как-то из магазина, а по-хитрому. Мы для того её купили. Для того чтобы настроить устройство, нам нужно перейти из режима выполнения команд в режим настройки устройства. Это два разных режима. Либо вы можете выполнить однократное действие «Сделай так, и потом вернись в исходное состояние», либо вы можете настраивать устройство. Соответственно, два разных режима. Есть специальная команда, которая переводит вас из одного режима в другой. Называется configure terminal. Если вы находитесь в решётке, в режиме выполнения команд, или его ещё называют exec mode, то из решётки вы можете выполнить команду configure terminal, и тогда вы перейдёте в режим настройки устройства. Но в режиме настройки уже команды выполнять нельзя. Если, допустим, хотите попингать соседа,
это надо делать как команду, и для этого надо быть в обычной решётке. Если вы хотите, допустим, переименовать своё устройство, дать такую настройку, которая изменит состояние устройства, и оно с этих пор начнёт работать иначе, с другим именем, то это надо делать именно из режима настройки, и пингать из него уже не получится. Пример, который у нас на слайде показан, это как раз переименование. Мы заходим в configure terminal, у нас приглашение к вводу меняется для того, чтобы показать, что вы находитесь в другом режиме. Оно становится: название железки, дальше в скобочках config, и потом решётка. И в этом режиме принятия настроек вы можете дать ту настройку, которая вас интересует. Это будет настройка, например, hostname, дальше новое название, которое у вас будет. Учитывая, что имя устройства есть в приглашении к вводу, как раз эта настройка очень хорошо показывает, что всё, что вы даёте Cisco, оно немедленно выполняется. Вы указываете hostname пробел Router1,
нажимаете Enter, немедленно эта настройка применяется, и следующее приглашение к вводу уже отрисовывается с новым именем. Показывается, что имя устройства изменилось, стало Router1, и дальше в скобочках config, приглашение к вводу показывает, что оно готово принять следующие настройки. Так. Частая ошибка — это то, что вы пытаетесь настройки давать из режима команд и команды из режима настроек. Не путайте, это разные вещи. Там, где просто Router и дальше решётка, или Router1 решётка, это команды. Там, где Router1, в скобочках config, это настройки. Настройки не все даются одинаково. Некоторые настройки применяются ко всей железке целиком, некоторые применяются только к отдельным модулям или отдельным сервисам внутри операционной системы. Соответственно, есть иерархия так называемых контекстов,
в которых вы можете давать настройки. Что-то можно применять ко всей железке целиком, что-то можно делать только в соответствующем дочернем контексте. Например, у нас есть такая штука, как интерфейс. И есть настройки, которые вы можете дать на уровне интерфейса. Например, включить или выключить интерфейс. Включить или выключить всю железку целиком или включить или выключить отдельный интерфейс — это разные вещи. Поэтому вы должны находиться в соответствующем контексте, чтобы команда, которую вы вводите, применилась именно к тому, что нужно. Если вы просто вводите configure terminal, вы попадаете в так называемый глобальный контекст, главный контекст управления, в котором вы настраиваете железку в целом. Если вы хотите настраивать только конкретную подсистему, только конкретный модуль, то вы должны будете ввести некое секретное слово, которое сделает так, чтобы вы перешли в определённый субконтекст. Например, если вы набираете в режиме конфигурации interface
и дальше название интерфейса, нажимаете Enter, то система проваливается в субконтекст настройки интерфейса. Приглашение к вводу при этом меняется. Оно было config в скобочках, становится config-if. И это означает, что вы провалились в субконтекст настройки интерфейса, и все настройки, которые вы можете дать, они теперь будут относиться именно к этому контексту, к интерфейсу FastEthernet 0. Это будет видно даже по вопросику. Вопросик в настройках тоже работает, и он тоже показывает, что вы там можете ввести. Если вы находитесь в глобальном конфиге, то вопросик показывает, что первые три настройки, которые у вас есть, это AAA, access-list или alias. А если вы провалились в субконтекст настройки FastEthernet 0, то вы уже не можете ввести команды глобального контекста, или, по крайней мере, вам справка их не показывает. Вместо них показывается ARP, ASE и auto. Для конкретного интерфейса совершенно другие настройки вам будут даваться.
Дальше. Вы можете встретить такую ситуацию, что контексты будут вкладываться друг в друга. Там действительно получается такое дерево, что контексты вкладываются один в другой, в третий. Есть какой-то глобальный контекст, у него есть интерфейсы. Интерфейс 1, интерфейс 2, интерфейс 3, дальше какая-нибудь подсистема маршрутизации, подсистема чего-нибудь ещё. И каждый из этих контекстов может содержать дополнительные контексты. Получается такое дерево. Пример, который иллюстрирует это — не надо пытаться понять, что он делает, но есть такая штука, ключевая цепочка. И мы говорим key chain test. Мы проваливаемся в субконтекст настройки ключевой цепочки с названием test. Приглашение к вводу меняется, становится config-keychain. Дальше на ключевую цепочку мы можем навесить ключи. Мы говорим, мы хотим навесить ключ номер один. И мы проваливаемся в суб-субконтекст config-keychain-key. И дальше в субконтексте настройки ключевой цепочки
мы уже задаём какой-то параметр. Мы сначала провалились в субконтекст настройки цепочки, потом в субконтекст настройки ключа в цепочке. И здесь мы даём какие-то настройки. Если вы хотите выйти на один контекст вверх, есть команда exit. Если вы хотите немедленно выйти в режим решётки, выйти из конфигурации, есть команда end. Если вам лень печатать end, есть сочетание Ctrl+C. Вы нажимаете Ctrl+C, и она немедленно вываливает вас в решётку. Абсолютно аналогично end. Разница между Ctrl+C и end — в том, что вы экономите калории. Вместо e, n, d и нажатия Enter вы нажимаете только две клавиши — Ctrl и C. Более того, если вдруг вы уже набрали какие-то символы и не хотите их выполнять,
не хотите задавать какую-то настройку, вы просто хотите сказать, что я что-то набрал на клавиатуре, и мне не нравится то, что я набрал, и я хочу сразу выйти в решётку, то Ctrl+C всё равно сработает. Она просто сразу, не задавая никаких вопросов, вывалит вас в решётку, и всё. Даже несмотря на то, что вы там какие-то символы набрали. А end предполагает, что вы сначала сотрёте все символы, которые вы набрали, наберёте end, нажмёте Enter и так далее. Если вдруг вы захотите, вы можете те символы, которые вы набрали, сначала выполнить, а потом уже выйти в решётку. Есть команда Ctrl+Z, которая делает ровно это. Вы какие-то символы набрали, она абсолютно аналогична тому, что вы бы нажали Enter, а потом сделали Ctrl+C. Я вас призываю не пользоваться Ctrl+Z, но при этом я должен вас предупредить, что система подсказывает вам, что Ctrl+Z вы можете нажать для того, чтобы выйти из конфига в решётку. Это плохая рекомендация, не следуйте ей. Это ведёт к проблемам.
Если вы заходите в configure terminal, то система вам говорит, что нажмите Ctrl+Z для выхода из этого терминала. Это враньё, да, оно выйдет из этого режима, но выйдет с оговорками. Просто не надо так делать. Используйте Ctrl+C. Так, дальше. Когда вы вводите какие-то настройки в режиме выполнения настроек, все эти настройки попадают в так называемую текущую конфигурацию. У вас есть какие-то сервисы, какие-то модули в операционной системе, есть интерфейсы, вы набрали какую-то настройку. И у вас немедленно состояние изменилось. Вы, допустим, переименовали железку, и у вас железка начинает с этого момента работать как-то иначе. Фактически вы в конфигурацию операционной системы внесли изменения. Эти изменения попадают в так называемый running-config, в текущую конфигурацию. Эта текущая конфигурация —
это то, как сейчас прямо железка работает. Вы можете посмотреть, какие команды или какие настройки привели железку к её текущему состоянию. Для этого используется команда show running-config. Это не какой-то текстовый файлик. Это система, когда вы вводите такую команду, начинает опрашивать все модули, все сервисы в операционной системе, как они прямо сейчас работают и почему они так работают. Это не файлик, это именно текстовая выдача, которая для вас строится тогда, когда вы её заказываете. Как это можно увидеть глазами, что это именно так? Вы набираете show running-config, нажимаете Enter, и дальше система показывает building configuration, и дальше она через некоторое время, может быть, достаточно маленькое, но всё-таки тут проходит какое-то время, показывает вам этот вывод. Current configuration, здесь между building configuration и current configuration проходит какое-то время, может быть небольшое, но оно есть. На старых железках, которые выпущены 10-20 лет назад,
это время действительно было видно глазками. Вы нажимали enter, оно показывало building configuration, а дальше 2 секунды проходило перед тем, как система действительно показывала config. На новых устройствах, там, где гигагерцовые процессоры стоят, вы этого, конечно, времени не увидите, оно слишком маленькое, но просто поверьте, что оно есть. Система сначала начинает опрашивать все модули, и только потом отрисовывает вашу текущую конфигурацию в виде текстовых строк, которые по факту являются теми настройками, которые привели железо к его текущему состоянию. Некоторые из этих строк вы не вводили сами, они там изначально были. Некоторые вы, соответственно, вводили. Например, в нашем случае есть настройка hostname router. Это то самое указание на то, как железка зовется, и мы действительно в режиме конфигурации писали hostname router или router 1. Это показывается, что железка сейчас называется router, потому что кто-то в какой-то момент ввел настройку hostname router.
Или это, возможно, было дефолтное поведение. Running config — это, еще раз повторяю, не файл. Это текстовая функция, которая динамически строится под вас. Вы можете, если захотите, увидеть там некоторые строчки, которые вы не вводили, но они там все равно есть. Это как раз строчки, которые находятся по умолчанию. Не все строчки по умолчанию там есть, а только самые популярные. Потому что есть еще какие-то вещи, которые вы можете гипотетически настроить, но они прямо сейчас не настроены. И там есть неявная команда, не настраивай какой-то модуль никак. Просто show running config такое не показывает. Он не показывает, что какие-то сервисы вообще не настроены никоим образом, особенно если это само собой разумеющееся поведение. Вы, допустим, не включаете firewall на циске, значит, как следствие у вас в show running config ничего не покажется про то, что есть firewall. Он просто ничего не показывает.
Вы можете заставить ее показать вообще все. Команда show running config all покажет вообще все, все настройки, которые только есть, и явные, и неявные. Но там реально очень много вывода, и вы обычно этого не заказываете. Это просто любопытный факт. Если вы вводите какие-то настройки, в configure terminal зашли, начали что-то вводить, оно попадает именно в running config. Дальше. Особенность IOS заключается в том, что введенные вами настройки попадают в текущую конфигурацию, но они нигде не запоминаются. Если вы, допустим, перезагрузите железку после того, как ее настроили, она ничего не запомнит. Она вернется в состояние по умолчанию после перезагрузки. Все настройки нигде не сохраняются, они попадают в текущую конфигурацию, но нигде в энергонезависимой памяти они не откладываются. Если вы хотите, чтобы железка, которую вы настроили, работала так даже после перезагрузки, вам нужно записать эти настройки
куда-то в энергонезависимую память, чтобы железка после старта прочитала эти настройки и, соответственно, восстановила свое текущее состояние по образу и подобию того, как она работает прямо сейчас, когда вы сохраняете конфиг. Автоматом этого не происходит. Каким образом это можно сделать? Система ожидает, что в NVRAM есть файлик с предсказуемым названием startup-config. И этот файлик текстовый, и в нем содержатся те самые текстовые строчки, которые железка должна применить просто построчно, как будто админ сидит и эти команды вводит одну за одной. Очень удобно туда, в этот самый файлик startup-config складывать содержимое вывода running-config. Running-config показывает вам, какие команды привели железку к текущему состоянию. Когда у вас железка перезагружается, если содержимое вывода running-config записали в startup-config, то система повторно выполняет все те же самые настройки и, как следствие, она неизбежно приходит к тому же самому состоянию, в котором железка работала
в момент, когда вы это самое сохранение running-config в startup-config сделали. Каждая строчка в этом текстовом файлике — это отдельная настройка, которая была в свое время выполнена, и когда мы show running-config делали, она там была, соответственно, железка работала неким хорошо известным эталонным образом. И мы этот вывод сохранили в startup-config, система перезагрузилась, дальше повторно выполнила те же самые настройки и поэтому пришла в то же самое состояние. Так. Дальше. Если у вас есть файлик startup-config, то вы его можете посмотреть командой show startup-config. Startup-config — это именно файл. Текстовый файл, там нет никакой задержки в отображении вывода. Если show running-config вы нажимаете, вам показывается building configuration, дальше он билдится и показывается, то startup-config — это просто файл, который отображается немедленно. Здесь нет строчки building configuration,
зато есть указания на то, сколько места занимает этот файлик и сколько там всего есть места в том месте, где он лежит. В NVRAM у нас ограниченное количество места и показывается, что 4 килобайта занимает startup-config, а всего в NVRAM 32 килобайта места. Show running-config такого не показывает, потому что show running-config, во-первых, не знает заранее, сколько места это будет занимать, а во-вторых, в том месте, где running-config лежит, никакого места вообще нет, потому что running-config — это не файл, он нигде не лежит, он строится под вас. Он отобразился на экране, и все, больше он дальше не существует нигде. Поэтому если вам показывается, сколько места есть, это startup-config. Если вам показывается building configuration, это running-config. На экзамене, возможно, будет вопрос, два вывода, что из этого startup-config, что из этого running-config. Как раз это хорошо понятно, что это какой-то файл, который занимает столько места, и он лежит в месте, где столько свободного места. А building configuration — это, соответственно,
для вас построили текстовую строчку непредсказуемого заранее размера. Но содержимое у этих двух выводов будет очень похоже. Вывод, соответственно, здесь все эти самые текстовые строчки, включая наш любимый hostname router. Да, вот пример. Да, вам на экзамене могут вполне дать эту штуку и эту штуку. И сказать, что из этого running-config, что из этого startup-config. Building configuration однозначно показывает, что это running-config. И да, текстовая строчка построилась, она занимает столько места, но она отработала и дальше все забылось. Если мы через секунду show running-config выполним, возможно, эта текущая конфигурация уже изменится, и следующий вывод show running-config будет уже там 4048 байт. Show startup-config — это просто файл. И он показывает сразу, что он занимает столько места и всего там столько места. А дальше все остальное может быть одинаково. Здесь разницы особо нет.
Если вы хотите сохранить конфигурацию, то вам нужно выполнить команду по копированию вывода RunningConfig в StartupConfig. Команда копирования чего-нибудь куда-нибудь в циске называется предсказуемым словом copy. Дальше вы указываете, чего копируем и куда копируем. Фактически, в тот момент, когда вы вводите команду copy, чего копируем, куда копируем, с указанием параметров copy RunningConfig, StartupConfig, система делает следующее. Она указывает, чего копируем. Вывод функции RunningConfig мы сохраняем как файл и записываем этот файл под именем StartupConfig. И еще здесь есть одно небольшое «но»: StartupConfig — это не точное название файла, которое мы задаем, это мы направление даем, рекомендацию, что куда-то посмотри, где-то в сторону StartupConfig это должно находиться. Несмотря на то, что здесь, казалось бы, достаточно понятно, что мы хотим от циски, система нас будет переспрашивать. Она скажет: ты точно хочешь сохранить RunningConfig именно
в файл StartupConfig, а не какой-нибудь другой, например, файлик StartupConfig 1. У нее есть такая заморочка. Понятно, что строчку Copy, RunningConfig, StartupConfig писать реально долго. У вас пальцы все сотрутся в кровь, если вы это будете делать довольно часто. Поэтому она сокращается до Copy, пробел Run, пробел Start. Там можно даже просто Start написать. И плюс она задает тупой вопрос. Когда вы делаете Copy, Run, Start, система говорит, что мы хотим сохранить файл, укажи, пожалуйста, имя этого файла и дает его в квадратных скобочках — StartupConfig. Она понимает, что мы хотим StartupConfig сохранить, но на всякий случай уточняет. Ты хочешь StartupConfig или ты хочешь, допустим, файл с названием Start использовать. Поэтому мы здесь просто нажимаем Enter, соглашаемся с тем, что это должно быть значение по умолчанию в квадратных скобочках, и система сохраняет текстовый вывод RunningConfig в файле StartupConfig. Показывается Building Configuration, что означает: прямо сейчас под нас
строится текущий вывод RunningConfig, показывается, ок, что у нас произошла запись в текстовый файл, и показывается приглашение к вводу, что мы готовы работать дальше. Если вы только что принесли железку из магазина, то у вас показывается, что ShowStartupConfig возможно отсутствует. Да, не у всех железок из магазина есть StartupConfig, а у тех, у которых он есть, надо удалять, потому что он кривой. Но после того, как вы железку настроили, сохранились, copy RunStart, у вас этот самый файлик появляется. Если такого файла нет, то показывается, что его нет при попытке его отобразить. Если он есть, то ShowStartupConfig показывает сам файл. Есть нюанс. Эту команду copy RunStart надо еще два раза Enter нажимать. Потому что один раз мы выполняем команду Enter, а другой раз мы нажимаем Enter, когда соглашаемся со StartupConfig, это просто неудобно. Есть команда, которой все еще можно пользоваться, но лучше этого не делать на экзамене. Команда называется Write. Она делает ровно то же самое, что Copy RunStart,
и сокращает вам калории, которые требуются на набор этой команды. Особенно учитывая, что она сокращается до просто WR. Этот WR используют все и вся, и в реальном мире, скорее всего, вы будете сохраняться именно так. WR и Enter. Если вы работаете с Unix-овой клавиатурой, с Unix-овыми терминалами, то это, наверное, вам может быть знакомо. Если нет, то нет. Сейчас расскажу, что здесь имеется в виду. В Cisco вы работаете с так называемым терминалом. У этого терминала есть буковки, которые вы можете послать в сторону Cisco, и буковки, которые вы получаете от Cisco. И этот терминал устроен не так, как, например, блокнот. Вы не можете по нему просто так куда угодно перемещаться. Есть сочетания клавиш, которые вы можете использовать для того, чтобы с этим терминалом более-менее удобно работать. Первое — мы уже знаем, табулятор добивает до конца введенный параметр,
который вы поленились до конца вбивать. Он сильно нужен. Если вы впишете какую-то строчку, и она у вас получилась длинная, и вы хотите прыгнуть в начало этой строчки, вы можете зажать кнопочку влево. Переместить курсор вправо-влево — это на клавиатуре клавиши вправо-влево. На современных клавиатурах они всегда есть, что не всегда было в принципе теоретически. Сейчас всегда есть на клавиатуре стрелки. Вы нажимаете стрелку, и у вас курсор сначала на один символ влево, потом на второй, потом на третий, на четвертый, на пятый. Если вы ввели строчку длиной 100 символов, то вы довольно долго будете ждать, пока у вас курсор улетит в начало строки. Есть сочетание клавиш Ctrl+A. Легко запомнить, потому что A — это первая буква алфавита. И, соответственно, Ctrl+A — это быстро прыгнуть в начало строки, быстро переместить курсор. В конец строки тоже можно переместиться быстро, можно медленно, зажав стрелочку вправо, а можно быстро — Ctrl+E. Запомнить тоже просто, хотя немножко посложнее.
E — это End, конец строки. Backspace работает предсказуемым образом, он удаляет символ слева от курсора. Зачем я говорю, что какая-то кнопка работает предсказуемым образом? Потому что есть кнопка Delete, которая работает непредсказуемым образом, она тоже работает как Backspace, удаляет символ тоже слева от курсора. Поэтому Delete пользоваться неудобно. Если вы хотите удалить символ так же, как это делается с Delete, есть сочетание клавиш Ctrl-D. Оно удаляет символ в том месте, где стоит курсор. Можно удалить всю строку слева от курсора Ctrl-U, можно удалить одно слово слева от курсора Ctrl-W, и Ctrl-C, Ctrl-Z, вы уже знаете, что-то выйти из режима настройки. Дальше. Есть полезное сочетание клавиш, это Ctrl-Shift-6, так называемый Escape Character, вы посылаете циске сообщение о том, что вы хотите допустим, прервать или что-то обработать особенным образом. Сочетание
этого Escape Character, например, прерывает вывод пинга. Если вы кого-то решили попингать, сказали, попингай мне, пожалуйста, кого-нибудь миллион раз. Вы набрали команду ping пробел repeat 1000, ping, Яндекс.Ру repeat 1000, нажали Enter, дальше поняли, что тысячу раз пингать, это была плохая идея, потому что это просто долго. А вы видите, что он не пингается, и каждая попытка пинга подвисает на секунду. И вы не хотите тысячу секунд ждать. Вы хотите немедленно прервать вывод и нажимаете Ctrl-Shift-6, и это прерывает вывод, прерывает действия текущей команды. Не с любыми командами это работает, но попытайтесь запомнить это сочетание, кривое, косое, но запоминается почему-то довольно легко в большинстве случаев. И, соответственно, вверх-вниз стрелочками на клавиатуре можно перемещаться по истории команд. Если вы ввели какую-то команду и потом хотите еще раз ее выполнить, то не надо ее перенабирать целиком, вы можете просто нажать вверх, и вам покажут
предыдущую команду. Или два раза вверх, на две команды назад. Система запоминает последние по умолчанию, по-моему, 20 команд. Вы можете, соответственно, изменить это значение, это конфигурируется, если вдруг вам это будет нужно. Настройка в текущей сессии будет производиться командой Terminal History Size. Вы можете сказать, что конкретно в этой сессии вы подключились, допустим, ввели логин, пароль, и вы можете указать, что в вашей сессии вы хотите, чтобы у вас эти команды запоминалось больше. Либо можно изменить значение по умолчанию для вообще всех подключений, для всех сессий, включая новые. И там будет, в контексте Line, потом до этого контекста дойдем, можно будет тоже поменять на уровне всей системы целиком. Можно посмотреть
список всех команд, которые выполнены в пределах вашей сессии, команда Show History. Посмотреть чужие команды нельзя, только свои. И, соответственно, если вы сессию завершили, допустим, отвалилась по неактивности, или ввели команду Logout, завершили сессию, то вернуться в эту историю и посмотреть, что там кто-то когда-то вводил, тоже нельзя. Даже если это были именно вы, то ограниченные возможности, соответственно, у этой команды будут, поэтому сравнительно бесполезная вещь. Но на экзамене может быть. Дальше. Что еще можно с терминалом сделать? Можно будет поменять размеры терминала, по умолчанию терминал 80 на 25 символов. В некоторых случаях у вас терминал может быть больше или меньше, и тогда вы можете поменять ширину или высоту терминала. Можно ли поменять название команд на другие, допустим, show поменять на другое? Нет. Поменять нельзя, но можно прописать алиасы.
Если вы хотите, чтобы у вас, допустим, show version выполнялась по нажатию sv, то вы можете прописать алиас, и когда вы будете набирать sv и enter, у вас будет выполняться show version. Но при этом изменить show version, чтобы оно по show version больше не работало, такое сделать нельзя. Текущие настройки терминала можно посмотреть в show terminal. Давайте посмотрим пример, как это можно настраивать и зачем это может быть полезно. Допустим, если у нас есть какие-то длинные строки, по умолчанию размер терминала 80 символов. В длину каждая строка может поместиться на экране, если она длиной не больше 80 символов. Плюс у нас какое-то место занимает приглашение к вводу. Приглашение к вводу на экране будет в любом случае. А то, что мы вводим, оно может гипотетически оказаться длиннее, чем то место, которое у нас остается. Если мы пытаемся вводить какую-то строку, которая на экране не помещается,
то Cisco будет автоматически скрывать ту часть, которую она считает ненужной. Вот здесь пример. Мы указали, допустим, терминал width 30. Мы, конечно, можем уменьшить или увеличить размер строки. Здесь для наглядности я уменьшил размер строки, чтобы показать, что у нас размер терминала проходит где-то вот здесь. Это количество символов, это примерно 30 символов. Мы указываем терминал width 30. Дальше мы говорим тем самым, что всего на терминале нашем может поместиться 30 символов в одной строке. И дальше мы начинаем писать Copy, Running Config, Startup Config. И в какой-то момент длина строки Copy, Running Config, Startup Config плюс приглашение к вводу становится больше, чем 30 символов. И наш курсор находится в конце строки, поэтому Cisco понимает, что в конце строки нам интересно, что происходит. Скрывать конец строки нельзя, поэтому она скрывает начало строки. И за долларом она скрывает то, что там есть что-то ещё. G-Config, Startup Config — это не означает, что мы набрали G-Config, Startup Config
и где-то там что-то ошиблись. Нет, на самом деле там Copy, Running Config, только Copy, Running скрылась за символом доллара. Очень пугающая, очень непривычная вещь, особенно когда вы начинаете настраивать какую-то длинную вещь, например, NAT. Вы настраиваете, там реально длинные команды получаются иногда, строка действительно конского размера. И вы начинаете писать, пишете, пишете, пишете, потом смотрите на экран и видите — какой ужас, там начала строки нету. Вы, оказывается, писали всё это время с середины, а потом приглядываетесь — нет, там доллар есть. Этот доллар означает, что просто на экране не помещалось. Если вдруг вы набрали эту длинную строчку и видите, что начало строки куда-то съехало, вы можете переместиться в начало строки — можете курсорами, можете Ctrl-A, и тогда начало строки вам будет показано, но, соответственно, конец строки будет скрыт за символом доллара — то, что на экране не поместилось. Не пугайтесь.
Это нормально, если не помещается строчка на экране, то недостающая часть скрывается за долларом. Вы также можете встретить ситуацию, когда подключаетесь с какой-то программы, например, PuTTY, Telnet, и в Telnet-сессии у вас автоматический размер терминала будет подстраиваться под размер окна вашей программы. Та же самая PuTTY умеет отправлять размер терминала автоматически. И тогда все строчки, которые Cisco будет выдавать, они будут автоматически подстраиваться под размер вашего окошка. Если взять и, например, задать terminal width 10, то есть сказать, что у нас на строке помещается не больше 10 символов, то в некоторых случаях, не во всех, но в некоторых, система будет пытаться автоматически делать переносы слов так, чтобы слова не разрывались посреди слова на отдельной строчке.
Здесь мы как раз указали terminal width 10, и дальше 10 символов — примерно столько. И видите — exec. Дальше comments не влезает на одну строчку с exec, поэтому оно показывается на отдельной строке. Дальше 1.99 — это новая строка, дальше session, дальше number two. Видите, что оно действительно старается отформатироваться так, чтобы слова выглядели цельными, при этом они не разрывались бы на отдельной строке. Если вы размер терминала правильно не зададите, в принципе, ничего страшного не случится, просто у вас слова будут разрываться на отдельной строчке, если они по факту в терминале не помещаются. То есть у вас будет там exec, дальше com, и дальше mments. Ничего страшного, в принципе, и так понятно. Не всегда Cisco старается переносить по словам, но иногда это делает. По поводу terminal length — это указание на то, какое количество строк у вас помещается на экране.
Terminal width — это какое количество символов в одной строке, terminal length — это количество строк. По умолчанию предполагается, что у вас строк 25, и, соответственно, система, если вы подключаетесь на консоли, она старается выводить за один раз не больше 25 строк, чтобы она сделала вывод какой-то, и дальше вы могли бы этот вывод прочитать и продолжить вывод уже по вашей команде. Когда вы даёте согласие с тем, что вы прочитали то, что на экране есть, нажимаете кнопку, она дальше отматывает ещё 25 строк, точнее 24. Делается для того, чтобы вы не пропустили что-то важное, потому что на обычном терминале вы не можете просматривать длинные выводы вверх или вниз. Представьте себе, как выглядел терминал 30 лет назад. Это был просто экран, на котором нельзя было взять и колёсиком мышки промотать текст вверх-вниз. Колёсика мышки не было. Поэтому система показывала что-то на экране, вы соглашались с тем, что прочитали всё, что есть, нажимали кнопку, система показывала следующий экран,
и к предыдущему вернуться было уже нельзя. И, соответственно, если вы хотите, чтобы система делала эти паузы между отображениями разных экранов почаще или пореже, то вы можете сказать, сколько строк помещается на одном экране. Если вы подключаетесь с какого-то большого экрана, у вас там Apple iMac с 30-дюймовым экраном, и вы PuTTY запустили на экране с ретиной, у вас там показывается, например, 200 строк на одном экране мелким шрифтом, и для вас это комфортно, вы можете сказать — делай паузу каждые 200 строк, что у меня 200 строк на экране нормально показывается. И в этом случае вы указываете terminal length 200. Если у вас плохое зрение, у вас на экране показывается только 5 строк, потому что вы очень большой шрифт ставите, вы можете поставить terminal length 5, она будет каждый раз паузу делать после 5 строк. Понятное дело, что если вы работаете на экране современном, у вас, скорее всего, есть какой-то терминальный клиент,
у вас, скорее всего, есть та же самая PuTTY, у вас, скорее всего, есть колёсико мышки, и PuTTY позволяет колёсиком мышки прокручивать то, что выводилось раньше. И, в принципе, если вдруг даже вывод PuTTY какой-то длинной команды не поместится на одном экране, ничего страшного, вы колесико-мышки можете это все дело отмотать. И вы можете сказать циске в этом случае, что прекращай пытаться отображать на одном экране вывод длинной команды и делать паузу после каждого экрана. Вот это делается с командой terminal length 0. То есть, что на экране помещается столько строчек, сколько надо, не надо делать паузу после каждого экрана. Если вы видите, что у вас есть вот терминал length 5, и вы пытаетесь выполнить какую-то длинную команду, система, соответственно, вот отображает вам пять строчек. Раз, два, три, четыре, пять. И дальше говорит, есть еще. Вот это вот море, это означает, что есть еще строчки, которые не поместились на экране. Прочитай то, что есть, и дальше дай команду, что делать дальше. Если вы
вот на это вот море дадите команду пробел, вам отобразится еще один экран. Если вы нажмете Enter, вы видите еще одна строка, то есть, одна строка сверху скроется, снизу появится. Ну и любая другая клавиша, кроме Enter или пробела, она прекратит этот процесс, и вот в тот момент, когда вы нажимаете любую другую клавишу, система показывает приглашение к обводу, и все остальные строчки, которые она собиралась вам показать, она вам больше уже никогда не покажет. В некоторых случаях это неудобно, потому что, например, если вы подключаетесь из виндового телнета к консоли, циске, через какой-то преобразователь телнета в RS-232, который некорректно отрабатывает возврат каретки, то вот виндовый телнет, он отправляет, на самом деле, на каждое нажатие кнопки Enter два символа, один с кодом 13, другой с кодом 10. И стандартное кинексовое поведение, это вот то, что символ с кодом 13, он работает, как нажатие Enter, а символ с кодом 10,
это возврат строки в исходное положение. И циска, когда вы пытаетесь подключиться с виндового телнета к консоли через какую-то некорректную работающую прокладку, она ведет себя следующим образом. Вы набираете, например, show running config startup config, или там show running config просто, нажимаете Enter, система отображает длинную простыню, там делает паузу после 24 строк, говорит, есть еще. Она это делает, потому что вы нажали Enter, и система увидела первый символ с кодом 13. А потом она видит символ с кодом 10, но она уже сделала паузу и ожидает от вас либо Enter, либо пробел. А символ с кодом 10 это не Enter и не пробел, и система говорит, окей, я тебя понял, значит, я первый экран тебе показал, а остальные тебе неинтересны. И немедленно выходят из этого процесса. Поэтому, если вдруг вы встречаетесь с поведением, что вы подключаетесь из какого-то телнет-клиента к железке, а она вам из длинных выводов показывает только первую часть и больше ничего, первый экран, и дальше сразу вываливается в приглашение к коду,
то вот это вот как раз терминал-адъяс можно отключить. Ну или, да, альтернативный вариант использовать нормальный клиент. Так, что касается настройки линии управления, того, к чему мы подключаемся. У нас есть два типа линий управления, с которыми мы будем работать. Это консоль, соответственно, будет название линии управления line con консоль, либо есть виртуальные линии управления, это телнет, SSH и прочее. До них есть линия, которая называется VTI. Вот эти вот самые линии управления, это фактически, ну, назовем это порты, с которыми вы можете работать. Так, сейчас была какая-то мысль умная, сейчас соображу. Консольный порт, он всегда один, и, соответственно, ему соответствует одна линия управления. Виртуальных линий управления их несколько,
но не бесконечное количество. То есть, несмотря на то, что у нас как бы гипотетически к нашей железке по IP-шнику может подключиться сколько угодно желающих, да, и пытаться ее продвинить по телнету, на самом деле Cisco не позволит какому угодно количеству желающих подключиться и адменить ее. Каждому админу, каждому подключившемуся к телнету будет выдана одна линия управления, в которой Cisco будет принимать буквки или отправлять буквки. Этих линий ограниченное количество. Если мы говорим про виртуальные линии управления, то есть про те, которые используются для телнет и SSH, их обычно не очень большое количество. То есть, если говорить про, допустим, наши лабораторные железки, там их 5 штук. К нашим лабораторным железкам могут подключиться одновременно до 5 пользователей. Если говорить про популярные железки, которые используются для сетей предприятия, там их, как правило, 16 линий управления, с нулевой по 15. Если, в принципе, теоретически
рассматривать, сколько максимальное количество линий управления может быть на Иосовских железках, то вот на некоторых очень-очень жирных роутерах бывает такое, что там несколько тысяч линий управления может быть, но это действительно исключение, скорее, чем правило. В большинстве случаев вот количество линий управления, оно там будет ограничено. Либо с нулевой по четвертую 5 штук, либо с нулевой по 16, по 15-ю 16 штук. В настройке линий управления для того, чтобы попасть, вы должны из режима настроек, из конфигуры, терминал, набрать команду line, пробел, и дальше указать тип и номер линии управления или диапазон номеров линии управления, с которыми вы хотите работать. То есть, либо если мы настраиваем консоль line, пробел, con, пробел 0, то есть line, консоль 0, вот этот вот primary, терминал line, или мы можем набрать line VTI, то есть нас интересует виртуальная линия управления, и указать диапазон, номеров с нулевого по четвертый. То есть на наших лабораторных железках
это вообще все виртуальные линии управления, которые есть. У нас их всего 5 штук. И дальше в настройке линии управления можно настраивать всякие разные вещи. То есть, во-первых, можно настроить поведение по умолчанию, размер окна терминала, width, length, можно настроить размер истории, history, можно указать поведение с вот этим самым escape character, если вдруг вы захотите, control shift 6, на что-то еще поменять. То есть, допустим, не знаю, escape хотите поставить? Ну, пожалуйста, вы можете escape character сделать на кнопку escape. Но я не рекомендую вам это делать. Мы сейчас с вами не будем тут ничего особого делать, мы с линиями управления будем работать дальше, когда будем говорить про безопасность устройств. Там мы будем настраивать пароли на то, чтобы кто-то, кто захочет подключиться и продвинуть нас, должен был не просто попасть в эту линию управления, а показать какой-то пароль. И вот в модуле про безопасность мы будем как раз про это говорить. А сейчас просто как бы посмотрите,
что вот оно есть, заходите в контекст линии line VTI и попадаете в субконтекст настройки линии управления, в котором можно что-нибудь делать. Так. С пятой по пятнадцатой линии управления выключены ли они по умолчанию или нет? Нет, они не выключены, вы их можете настраивать, пожалуйста. Можно их выключить, если захотите, но только зачем? Так. Далее. Если вы видите какую-то команду, которая возвращает вам большой результат, объемный, ну, например, это show version, вот она действительно дает там простыню текста, или show running config, она тоже дает простыню текста, вы можете этот вывод каким-то образом обрабатывать. То есть в любом случае вы получаете текст. Cisco может с этим текстом определенным образом работать. Например, вы можете заставить Cisco отфильтровать этот вывод некоторым определенным образом.
Делается это с помощью конвейера примерно таким же образом, как вы это делаете в консоли, например, Linux. Символ перенаправления, то, что вы вывод одной команды даете на вход другой, такой же предсказуемый, это вертикальная палка. И, соответственно, вот если вы указываете, что вы вывод перенаправляете на другую команду, то вот этих вот самых команд для перенаправления в Cisco есть не очень большое количество. Возможности по фильтрации достаточно ограничены по, скажем, управлению этим самым текстом, но они, в принципе, закрывают достаточно большое количество задач. Самые популярные способы управления текстом, если у вас есть какой-то большой текст, из которого вы хотите показать не все, а только кое-что, это показать только строчки, которые содержат определенную подстроку. То есть в Linux это команда grep, в Cisco это команда include. Вы указываете, допустим, show version, дальше вертикальная палка, include reload. И вам показываются только те строчки, которые содержат под строку reload.
В нашем случае мы видим, что у нас действительно две такие строки есть. Вот system.retorn.to.rom.by.reload и last.reload.reason.reload.com. Ну, действительно, обе строки содержат слово reload. Очень полезная вещь, потому что, как правило, когда вы выполняете какую-то команду, которая дает достаточно большой вывод, вы примерно ожидаете увидеть какой-то текст. Ну, если вы говорите там про show version или про что-то еще, и вы можете, конечно, там вывести весь текст, а потом глазками найти то, что вас интересует. Ну, иногда просто в целях сохранения драгоценных калорий на мышцах глаз вы можете просто сказать, покажи только сразу те строчки, которые нужны. Очень удобная вещь, рекомендую этим пользоваться. Ипотетически эта штука даже поддерживает regExp. То есть, если вы хотите, вы можете в качестве вот того, чего надо найти, то есть, самые подстроки, указать регулярные выражения и сказать, что вас интересуют, допустим, все строчки, которые содержат либо то, либо другое. Это выходит за рамки нашего курса, но если вдруг вам это понадобится, вот, вы знаете,
оно, в принципе, поддерживается. Есть противоположная команда, то есть, можно перенаправить вывод чего-то большого на команду exclude, и она скроет те строчки, которые содержат определенную подстроку. Ну, используется крайне редко. Другая штука, которая популярна, и которая действительно используется, это begin. Показывает все, то есть, вообще все строчки, но только начиная с самой первой, которая содержит определенную подстрочку. Дело в том, что вывод, например, showrun, он довольно обширный, и у него там все контексты, которые в нем есть, они выстроены в определенную иерархию, и некоторые из них находятся в начале всегда вывода, а некоторые в конце. Например, динамическая маршрутизация, она всегда в конце showrun. Если вы хотите, допустим, показать весь конфиг, который относится к динамической маршрутизации, и в принципе не страшно, если вдруг покажется немножечко чего-нибудь еще, вы можете просто сказать showrun, вертикальная палка,
begin, допустим, роутер, и система покажет все, что относится к динамической маршрутизации, и плюс еще какой-то маленький хвостик, который обычно небольшой и в принципе не доставляет каких-то неудобств. В 15-х иусах появилась еще довольно удобная штука, полезная для showrun особенно. Это шоу, перенаправление, простите, на секшн. Это вам показываются все строчки, которые содержат определенную подстроку, и еще дополнительно рядышком стоящие все эти строчки, у которых пробелов в начале строки больше, чем в той строке, которая вам показывается. Очень удобно для showrun, но я потом буду показывать showrun, покажу секшн. Вот. Такая вот история. Если мы говорим про оборудование CISC для сетевых задач, то наша, скажем, основная хотелка, связанная с этими железками, является не в том, чтобы мы могли их там проадменить как-то,
а в том, чтобы они работали в соответствии с нашими пожеланиями и передавали трафик. Соответственно, у устройств CISC есть интерфейсы, на которых они могут принимать или отправлять какие-то данные. В тех линейках, которые нас будут интересовать, обращаю внимание, именно в этих линейках, не в каких-то других, номенклатура интерфейсов будет следующая. Ethernet — это 10-мегабитные интерфейсы, то есть либо 10-BST, 10-мегабит медный интерфейс, либо, как правило, у CISC не было разъемов для коаксиальных Ethernet, там был разъем так называемый AUI, Auxiliar Interface, то есть в него можно было вставить переходничок, и дальше этот переходничок был либо на 500-метровый коаксиал, либо на 200-метровый коаксиал, в общем, там можно было переходник вставить. Если мы говорим про Fast Ethernet интерфейсы, то это интерфейсы 100-мегабитные, они могут быть совместимы при этом и с 10-мегабитами,
то есть вы можете вставить в одну и ту же дырку либо 100-мегабитный линк, либо 10-мегабитный линк, либо вы можете просто вставить линк, а дальше он там сам решит, на какой скорости ему работать, в каком стандарте более строго. Либо есть еще гигабитные интерфейсы, как правило, это стандарт 1000-BST, и он же, как правило, совместим с 10-BST или 100-BST-X. Если мы говорим про медный порт, про тот, который, фишечка такая, типа RG45, иногда можно встретить гигабитные порты, которые не медные, то есть они могут быть оптические при этом, тогда, как правило, для того, чтобы не делать кучу разных типов интерфейсов под разный зоопарк оптических линков, делается универсальный разъем либо под SFP, Small Factor Plugable, либо под GBIC, гигабит интерфейс карт. Это универсальные переходнички, опять же, с просто абстрактного гигабитного разъема на конкретный стандарт
гигабита по чему-нибудь. То есть есть переходник, допустим, SFP на медные 1000BST, есть переходник SFP на оптические 1000B SX по многомодовой оптике, есть 1000B LX, это гигабит по одномодовой оптике, которые для больших расстояний. То есть учитывая, что в оптических линках там зоопарк, там огромное количество стандартов, чтобы не делать циску, которая работает по многомоду, циску, которая работает по одномоду, делается универсальный разъем, и дальше в этот универсальный разъем вы вставляете дешевый переходничок. Мы про Ethernet будем говорить отдельно, и про переходнички я тоже там расскажу. Дальше. 10-гигабитные линки 10GBST или SFP+, это, соответственно, 10-гигабит Ethernet. Опять же, вы можете сокращать название, то есть Ethernet, там, порт у вас будет, Ethernet 0.0. Вы можете писать целиком, вы можете сокращать, в большинстве случаев сокращения принимаются. Можно писать
ET, можно писать просто E, или, допустим, FAS Ethernet это будет F, гигабит будет G, ну вот 10-гигабит будет TE. В других линейках цисковских обозначений могут быть другие. То есть, допустим, те же самые Nexus-ы, это линейки с быстрыми линками, свечи, коммутаторы для дата-центров, там минимальная скорость, на которой они работают, это 10 гигабит, поэтому там просто все интерфейсы, которые у них есть, они все называются Ethernet без учета скорости. Но для тех линейок, которые мы с вами изучаем, вот обозначения будут указывать на максимально быстрый стандарт, в котором интерфейс может работать. Далее. Вы можете посмотреть список всех интерфейсов, которые есть на вашем устройстве. Делается эта команда showinterfaces summary. Если у вас iOS 15, то эта команда будет. Если у вас старый iOS, например, 12, то этой командой может не быть. Тогда используют для роутеров
и для свечей две разные команды. На свечах используют showinterfaces status, на роутерах используют showipinterface brief. Обе эти команды выводят в табличном виде список всех интерфейсов и какие-то свойства, которые нас могут интересовать. Showinterfaces summary это универсальная команда, которая на новых железках есть у всех. Здесь показано, что у нас есть четыре интерфейса из Rnet 0.0, 0.1, 0.2, 0.3. Сразу мы понимаем, что это 10-мегабитные интерфейсы. Для наших лабораторных задач 10-мегабитные интерфейсы будут более интересны и более предпочтительны, чем быстрые интерфейсы, потому что у нас никогда не будет на самом деле проблем с тем, что слишком много трафика будет проходить через интерфейс. Мы никогда не будем испытывать такую проблему, что нам скорости 10 мегабит не хватает. Более того, нам часто в лабораторных условиях надо будет добиться того, чтобы нам перестало хватать скорости интерфейса, и в этом случае загрузить 10-мегабитный линк так, чтобы у него из ноздрей полезло,
становится проще. Потому что представьте, у нас были бы 10-гигабитные линки. Нам надо было бы для того, чтобы посмотреть, что происходит, когда происходит переполнение буферов, например, или полная загрузка, перегрузка интерфейса, нам пришлось бы налить 10 гигабит какого-то левого мусорного трафика. Это намного сложнее, чем налить 10 мегабит. Поэтому на наших лабораторных железках 10-мегабитные интерфейсы, и они будут называться как раз Ethernet. То, что здесь показывается, эта штука — это табличка про состояние этих интерфейсов. Легенда есть чуть выше. На самом деле тут страшные, ужасные буковки, они означают вполне нормальные предсказуемые вещи. IHQ — это обычная очередь на вход. Там приходят какие-то пакеты, они попадают сначала во входящий буфер, дальше мы из этого буфера эти пакеты разбираем, перекладываем куда-то дальше. Сколько пакетов неразобранных в очереди томится на этом интерфейсе, здесь показывается.
IQD — это сколько пакетов мы дропнули, потому что не хватило места. Дальше OHQ, OQD — это то же самое, только на выход. RXBS — это RX Rate Bit в секунду. С какой скоростью данные бегают по этому интерфейсу? При этом надо будет понимать, что если у вас есть 10-мегабитный интерфейс, он может работать ровно на одной скорости, 10 мегабит в секунду. Если он передает какие-то данные, он передает их ровно на этой скорости, и ни на какой другой. Он физически не может передавать на скорости, например, 9 мегабит в секунду или 7 мегабит в секунду. Он либо передает данные, и тогда он их передает на 10 мегабит в секунду, либо не передает. RXBS — это усредненное значение за последнюю секунду, сколько в абсолютном значении у вас пробежало. Это не означает, что у вас моментальная скорость какая-то другая, моментальная скорость всегда 10 мегабит в секунду по типу интерфейса, он на другой скорости работать в принципе не может. Но он может передавать либо не передавать данные. Если он немножко попередавал, немножко не передавал, немножко передавал, немножко не передавал,
то среднее значение за секунду мы можем сказать, что это 12 килобит в секунду. То же самое на вход, соответственно, TX, точнее, RX — это прием, TX — это отправка. И PS — это пакеты в секунду. Ничего нового, ничего страшного. Дальше. Если вы хотите посмотреть детальное состояние какого-то конкретного интерфейса, есть команда show interface и дальше название интерфейса. Вы указываете его либо полностью, либо сокращенно. Например, show interface FastEthernet 0/0 показывает большую страшную простыню. И человек, который впервые это видит, он, конечно, говорит, да блин, дайте мне уже веб-морду, чтобы я мог одной кнопкой включить-выключить. На самом деле, опять же, здесь ничего страшного. Мы сейчас не будем разбираться с тем, что делает каждая конкретная строчка, каждая конкретная циферка в этом выводе. Но ближе к концу курса, особенно если вы потом решите пойти на CCNP-трек, вы уже будете понимать, что здесь каждая из этих букв и циферок делает.
Для нас будет в основном здесь важна самая первая строчка, которая показывает, что интерфейс, допустим, в up или не в up. Она будет показывать самое важное, самое первое. Дальше здесь есть блок про то, с какими характеристиками этот интерфейс работает, какие-то счетчики показываются и общие счетчики за всю историю. На самом деле здесь все довольно просто. Просто надо знать, куда смотреть. Так, далее. Если у нас есть интерфейс, мы можем его понастраивать. Настраивается интерфейс в своем субконтексте. Если у нас есть глобальный контекст настройки железки, то мы должны будем провалиться в субконтекст настройки чего-нибудь, в конкретном случае интерфейса, допустим, Ethernet 0/0, для того, чтобы с ним чего-то сделать. Самое простое, что можно с интерфейсом сделать — это его включить или выключить. Команда по выключению интерфейса будет иметь очень простой синтаксис, просто shutdown и все.
Не бойтесь, вы не выключите железку в целом. Shutdown — это выключить только интерфейс. Команды в глобальном контексте shutdown нет. Нельзя выключить саму железку целиком. Можно выключить только интерфейс. Даже если вы случайно попытаетесь сделать команду shutdown в глобальном конфиге, она у вас просто не применится. Если вы выключили интерфейс и хотите его включить после этого, то команда будет иметь вид no shutdown. Отменяем действие команды shutdown. Такое немножко странное поведение. На самом деле у Cisco очень часто будет такая логика, что мы даем какую-то команду. Для того, чтобы отменить ее действие, надо ввести ту же самую команду, но только с приставкой no. И когда мы указываем shutdown, у нас через некоторое время показывается, что сначала выключается физический интерфейс, по нему перестают бегать нолики-единички. И потом через секунду из-за того,
что не бегают нолики-единички, система говорит, я не могу отправлять кадры на этом интерфейсе. Эта штука про физику — самая первая. И вторая штука — это про канальный уровень, что у нас из битиков, ноликов, единичек не получается складывать кадрики, потому что битики, нолики, единички не бегают. Если мы указываем no shutdown, то система опять же говорит, что у нас битики, нолики, единички теперь могут ходить, физический уровень поднимается, и спустя секунду система сообщает, что на этом интерфейсе уже целую секунду нормально бегают нолики-единички, и, соответственно, нормально работает канальный уровень. Из ноликов и единичек получается складывать кадры. Первая строчка — это про физику, вторая строчка — это про канальный уровень. Так. Далее. Когда мы видим вывод show interface, мы видим строчку такого типа, что FastEthernet 0/0 is up, line protocol is up. Это нормальная строчка, она показывает как раз состояние интерфейса, и она самая важная во выводе простыни show interface.
Что здесь может быть? Если мы видим, что у нас и там, и там up, значит, все хорошо. Этот интерфейс работает, у него и физика работает, и канальный уровень тоже работает. Первый up — FastEthernet 0/0 is up — это про то, как у нас физика работает, штука про то, что битики, нолики, единички передаются или нет. А второй — line protocol is up — это про то, удается ли из этих ноликов и единичек сложить кадрики или не удается. В случае с Ethernet обычно у нас канальный уровень работает, если работает физика. Очень-очень-очень маловероятно, что вы получите ситуацию в Ethernet, что биты передаются, а кадры из них сложить не удается. Потому что Ethernet устроен таким образом, что если у него есть возможность передавать биты, то и кадры он может передавать тоже. Может быть, не совсем хорошие, не совсем нормальные, кривые, косые, но они все равно будут иметь возможность передаваться. На других типах интерфейсов, например, на serial link, там может быть такая ситуация,
что биты-то у вас работают нормально, а кадры из них не удается складывать, потому что вы отправляете кадры в одном формате, а сосед ловит эти кадры и пытается расшифровать в другом, потому что вы настроили канальный уровень по-разному на двух концах линка. Но да, в Ethernet мы такое не встретим. Что здесь можно будет вообще увидеть, если мы говорим про какие-то ситуации, которые могут реально встретиться в жизни. Первая — нормальная ситуация, up-up, все нормально, все хорошо, все работает. Вторая — up-down. Нам показывают что-то типа FastEthernet 0/0 is up, line protocol is down. У нас проблема на канальном уровне, у нас битики нормально бегают, а кадры из них не складываются. В Ethernet экстремально редкая вещь, но как уже говорилось, например, на том числе serial link, вы такое можете в принципе устроить. Мы на ICND2 даже это будем пробовать. Может быть такое, что у вас физика сдохла, как следствие, естественно, канальный уровень тоже сдох. Down-down, то есть fastEthernet 0.0 is down,
line protocol is down. Все просто, на физике битики не передаются. Если вы выключили интерфейс команды shutdown, показывается fastEthernet 0.0 из административной down, и канальный уровень там тоже down. То есть вот административной down — это вы командой shutdown выключили интерфейс, он у вас сдох. Не просто сдох, а вы его задушили. Так. Далее. Давайте попробуем это все дело помучать. То есть подключаемся к нашим железочкам сейчас и попробуем это все дело понастраивать. Нам сейчас понадобится только одна какая-нибудь железочка. Так, я подключился не той, которую хотел. Так, вот другая железка. Это роутер. То есть у нас у каждого есть один роутер, один свеч. Я подключился сейчас к роутеру. Немножечко иначе у меня выглядит интерфейс терминала по сравнению с вами, но по большому счету, в принципе, все то же самое. То есть буковки, даже цвет буковок,
белые буковки на черном фоне. И, соответственно, эти буковки там формируют какой-то вывод. Я сейчас могу нажать Enter, и система мне в ответ на мой Enter выводит какие-то буковки в ответ. И здесь я вот вижу такую вот фразу «Please enter yes or no. Would you like to enter initial configuration data?» Эта штука означает, что я подключился к роутеру. У этого роутера сейчас нет начальной конфигурации. И без начальной конфигурации роутеру очень тускло живется. Потому что, в отличие, например, от свеча, который может работать без конфигурации вообще, роутер без конфигурации жить не может. Поэтому он говорит, давай ты меня как-нибудь настроишь. Вот этот вот диалог начальной настройки вы можете на досуге как-нибудь пройти, его можно выполнить в любой момент, нажав команду setup. Только имейте в виду, что он вам текущую конфигурацию затрет. Вот он бесполезный и даже, более сказал бы, вредительский. Поэтому я рекомендую вам от него всегда отказываться. Просто напишем no, говорим не хотим диалог начальной настройки, отказываемся от него.
Еще раз повторю, что если вы захотите посмотреть из чистого любопытства, что там внутри происходит, вы можете как-нибудь его вызвать разочек. То есть это делается командой setup. Но ничего интересного там нет. Вот. Вот. Система, соответственно, после того, как я отказался от диалога начальной настройки, показывает мне кучу всякого барахла. И я могу сейчас вот еще раз enter понажимать, и система показывает мне приглашение к ководу. В самом низу показываются две строчки, потому что я два раза нажал enter. Вот роутер. И дальше приглашение к ководу. Вот на фоне зеленого кружка, зеленого прямоугольничка, показывается, где у меня сейчас стоит курсор. Каждое приглашение к ководу состоит из названия железки, в нашем случае роутер, и самого вот этого символа, в нашем случае птичка. Как раскрыть консоль на большой размер? Никак. В том смысл как раз, что у вас размер консоли 80 на 25 символов. Это специально и умышленно сделано для того, чтобы вы понимали,
как эта штука вообще работает. Развернуть его нельзя на весь экран, именно потому, что он все равно будет 80 на 25 символов. Да, это немножко неудобно. Да, в реальном мире вы всегда можете воспользоваться привилегией, подключиться через пути, и, соответственно, сказать терминал lens, терминал width, и дальше вы получите размер окна любого размера. Но вот в образовательных целях я сознательно, да, коварство, ограничил размер терминала 80 на 25 символов. 80 символов в строке, 25 срок на экране. Это то, как устроена циска. Она так отважидает от вас, что вы будете работать на терминале выпуска, там, конца 70-х годов, у которого ровно столько символов и может показывать на экране. То есть, опять же, если вы когда-нибудь пытались программировать под какой-нибудь, не знаю, Pascal или Bessic, старые языки программирования, которые с консолями работали, вот те самые 80 на 25 символов, это вот то, с чем работает циска.
То есть, она не умеет работать с графическим режимом, у нее нет такого понятия, как отмотай-ка мне экранчик назад, она не помнит, что она показывала вам экран назад. И вот вы должны привыкать к тому, что вот она на самом деле работает именно в этом режиме. Она вам показывает буковки, и с этими буковками дальше вот что-то может происходить. Они в лучшем случае помещаются в графической памяти, вот на мониторе, то, что там отображается прямо сейчас. Если с монитора что-то уехало, все, оно потеряно безвозвратно. Понятное дело, что продвинутые клиенты, которые сегодня вы будете использовать, там, условно, тот же самый Путти, да, они могут кэшировать то, что якобы уехало с экрана, да, и показывать это все равно. Но это поведение именно продвинутых клиентов. На экзамене с вас будут спрашивать знания того, что вот такой терминал. Поэтому сознательно, умышленно я вам порчу жизнь. Так. Дальше. Шоу-интерфейс все обрезал.
Подозрительно. Он не должен был обрезаться, он должен был перенести и делать паузы после каждой строчки. Так вот. Роутер. Приглашение к аводу. Птичка и курсор. Мы видим, что птичка у нас показывается. Следовательно, мы находимся в пользовательском режиме. Если мы сейчас возьмем, допустим, нажмем вопросик, система отмотает один экран справки. То есть в этом одном экране нам показывается приблизительно 20 с небольшим, с очень небольшим команд, которые здесь вот поместились на экране. Может быть, их тут 21, может быть, 22, может быть, даже 23, но вряд ли сильно больше. И показывается вот это вот море, что означает, что есть еще команды, которые на экране не поместились. Я здесь могу нажать либо Enter, и у меня покажется еще одна строка, ну, соответственно, одна строка сверху уехала. Либо я могу, соответственно, нажать пробел, и мне покажется еще один экран, еще там 23 или 24 команды. Нажал пробел. Соответственно, 23 команды сначала было,
23 команды сейчас показалось. Я нажал, меня еще один раз пробел, и мне вот столько еще отмоталось. Последняя, которая показывалась, была команда Tunnel. Вот. И вот это вот то, что мне сейчас доступно, 23 плюс 23 плюс там 5. Порядка 50 команд. Справка показывает, что мне в текущем режиме будут доступны. По каждой команде показывается очень краткое описание того, что она делает. Ну, то есть, например, если вы знаете, что делает команда Ping, то Send Echo Messages. Вы поймете, что да, это та самая команда Ping, которая вас интересует. Но если вы не знаете, что она делает, вы никогда по Send Echo Messages не догадаетесь, какое у нее поведение. Поэтому справка есть, но она очень спартанская. Если вы хотите попробовать, поделать чего-нибудь более продвинутое, то вам надо перейти в привилегированный режим, и делается эта команда Enable. Мы сейчас подключаемся как раз к консолям устройств, поэтому мы можем набрать Enable, и пароль у нас не спросит. Я набрал Enable.
Система сразу без ввода пароля перешла в привилегированный режим. Приглашение к ководу изменилось стало решеточкой. Я сейчас могу набрать вопросик. И вот первый экран, второй экран, третий экран, четвертый экран, пятый экран, вплоть до where и шестой экран, то есть пять экранов полностью и шестой еще с пятью командами. Вот. Можно ли как-то экран чистить? Не совсем понимаю вопрос. В смысле чистить. Типа очистить все? Нет, нельзя. Только вен так кучу раз понажимать. Так, дальше. Видно хорошо, что в пользовательском режиме у нас было там порядка 50 команд, а здесь у нас пять экранов по 25 команд, плюс еще там пять штук. То есть их тут больше ста. Действительно, в пользовательском режиме доступно очень сильно не все, в привилегированном режиме
доступно все. Далее. Что еще есть? Можно перейти обратно в пользовательский режим, disable, и мы попадаем обратно в птичку. Ну, соответственно, здесь опять нам доступно будет очень мало команд. Раз, два, три. Так. Если вы находитесь в пользовательском режиме, вы можете сделать какие-то очень ограниченные действия. Ну, например, вы можете посмотреть в текущее время. Show clock. Обратите внимание, я нажимаю сейчас буковку, например, вот я сейчас собираюсь нажать буковку кукка, ну, си от слова clock. Я ее нажму, но на экране у меня ничего сразу не отрисуется. Мое нажатие клавиши посылается на циску. Дальше циска понимает, что я нажал буковку си и отображает этот си обратно мне. И вот уже обратное си, которое идет от циски ко мне, отображается на экране. Вот я нажал си. Обратное, пришедшее от циски, Подтверждение того,
что я набрал буковку C, отразилось у меня на экране. Нажал буковку L. Не моё нажатие символа L отобразилось на экране, а то, что мне циска обратно отрисовала. Clock, K. Каждый раз я набираю какой-то символ, каждый раз оно отображается на экране только после того, как циска мне его обратно в ответ присылает. Я сейчас нажму Enter. Не Enter у меня нарисуется на экране, а всё то, что произойдёт на экране — это всё то, что циска мне нарисует в ответ на моё нажатие Enter. Циска поняла, что я нажал кнопку с символом 13, выполняет всю команду show clock и отрисовывает мне в ответ абсолютно всё, включая переносы строк. В нашем случае она действительно отрисовала, что текущая дата примерно вот такая. Дальше. Если мы хотим настроить текущее время, то это уже команда более продвинутая по сравнению с отображением текущего времени, и кому попало её выполнять нельзя. Если я попытаюсь её сейчас выполнить, система пошлёт меня в баню, скажет,
что этой команды просто нет. Clock set, нажму Enter, она говорит, нет такой команды, на cl начинается только команда clear. Команда clock просто отсутствует. cl вопросик показывает все команды или параметры, которые начинаются с введённых мной символов. В нашем случае на cl в пользовательском режиме есть только команда clear. В то же время, если я переведу систему в привилегированный режим, на cl будет уже начинаться большее количество команд: clear и clock. Я здесь могу нажать clo, и даже могу нажать пробел тут, и система автоматически дополнит введённый мной ввод до полной команды clock. Я сейчас не набирал clo, ck и пробел. Я нажал табулятор, оно само дорисовало ck и пробел. Мог бы не делать этого. Мог бы набрать clo, пробел, и система всё равно поняла бы, что имеется в виду именно команда clock. Дальше вопросик.
Видим, что здесь есть несколько параметров. Set мы уже догадываемся, что это такое. Из слайдов это настройка текущего времени. По поводу двух других пунктов: read-calendar и update-calendar. Дело в том, что текущее время — это штука, которая постоянно меняется. То, что миллисекунду назад время было одно, не означает, что сейчас будет то же самое время. Более того, оно гарантированно будет меняться. Время, которое вы видите, show clock, это время в операционной системе. Система загрузилась, и дальше начинает отсчитывать время. Она каждую миллисекунду пересчитывает время, перелистывает его на миллисекунду вперёд. Но время — это такая штука, которая должна сохраняться даже после того, как вы систему выключили. Если вы выдернули свитч из розетки, а потом снова воткнули и включили его, было бы здорово, если бы у вас это время было консистентным, чтобы оно было хотя бы похоже на правду. Может быть, оно было не совсем абсолютно точно, но чтобы было плюс-минус километр правдивое.
И можно двумя способами решать эту проблему. Первое — это спросить у кого-нибудь, который час. Допустим, при загрузке или периодически спрашивать. Это мы сейчас уйдём в сторону протокола NTP. И второй вариант — это тот, который используется, например, в большинстве бытовых компьютеров — это то, что у вас на материнской плате есть отдельная маленькая микросхемка, которая питается отдельной батарейкой. И эта маленькая микросхемка делает ровно одну вещь. Она нужна для того, чтобы поддерживать актуальное время даже тогда, когда компьютер выключен. Если вы вытащили его из розетки, у вас всё равно в этой микросхемке часики работают, они тикают. И они питаются от этой отдельной батарейки. Иногда называют батарейку BIOS'а. И эта самая батарейка как раз нужна для того, чтобы поддерживать актуальное время на отдельной маленькой микросхемке. Когда у вас операционная система загружается, она опрашивает эту маленькую микросхему, спрашивает, который час. И дальше микросхема возвращает актуальный результат, и операционная система дальше начинает каждую миллисекунду
перелистывать время на одну миллисекунду вперёд. Фактически получается, что если у вас есть эта отдельная маленькая микросхемка, у вас на устройстве есть два источника времени. Одно время в операционной системе, второе — это время в отдельной микросхемке. Они не обязаны быть абсолютно синхронными, потому что гипотетически может быть такое, что вы в операционной системе, например, командой clock время обновите, или с NTP-сервера утащите актуальное время. У вас в операционной системе время в силу каких-то причин может измениться. И если вдруг вы поняли, что у вас действительно время изменилось и оно в операционной системе сейчас более точное стало, чем в этой отдельной микросхемке, может случиться такое, что вы, допустим, перезагрузитесь, и тогда система что сделает при загрузке? Прочитает время из микросхемы, которое, как мы уже знаем, уже чуть менее правильное было, чем когда-то, когда мы его обновили. Часовой пояс опять поменялся, там Вова Диме дал слово кресло посидеть, и какая-то часовая байда случилась.
Надо поменять время. В этом случае, если мы меняем время, мы его меняем в операционной системе. Иногда нужно обновить значение времени в этой самой микросхеме. В этом случае используется как раз функция update-calendar — мы отправляем время из операционной системы в отдельную микросхемку для того, чтобы в ней было более актуальное время. Или если вдруг у вас система загружается — она автоматически делает операцию read-calendar. Но если вдруг у вас почему-то в операционной системе время сильно разошлось и вы хотите его обновить из этой самой аппаратной микросхемы, то вы можете выполнить операцию read-calendar вручную в любое время. Вряд ли вам это сильно понадобится, но просто любопытный факт. Мы сейчас будем работать с параметром set. Указываем clock set, может быть, просто даже clo без буквы ck — это всё равно будет работать. Указываем, что у нас дальше есть время, которое сейчас часов 21:38, ну, 21:40:00. Так, что-то пошло не по плану.
2:40:00. Дальше, следующий параметр: либо день, месяц, год, либо месяц, день, год. Я всё-таки европеец, поэтому я привык указывать дату в европейском формате. Сегодня у нас 12 февраля, и год у нас 2019. Здесь можно нажать Enter — вот это CR, Carriage Return. Нажимаю. Система обновляет текущее время. Раньше время было какое-то непонятное, а после того, как оно обновилось, оно становится ровно точно 18 часов 40 минут 00 секунд 0000 миллисекунд. Обратите внимание: сообщение, которое появляется на консоли, показывает временную метку без учёта часового пояса, то есть это часовой пояс UTC —
универсальное координированное время. Его можно поменять на тот часовой пояс, который вас интересует, но по умолчанию оно именно такое. Ваше текущее время указывается по часовому поясу, который прописан в системе, и это часовой пояс Москва, смещение плюс 3 относительно универсального координированного времени. Метки дебага и всего остального показываются по UTC. Время записывается в операционную систему, аппаратный календарь эта штука не трогает. Если мы хотим обновить аппаратный календарь, мы должны дёрнуть вручную clock update-calendar. Далее. Поскольку эти железки специально для вас предназначены, вы испортить их не можете. Делайте с ними что хотите, мучьте их. Хотите — дёргайте время, хотите — дёргайте аппаратный календарь. По идее это ни на что не должно повлиять. Далее. Если вдруг что-то пойдёт не по плану, система будет ругаться. Допустим, я на слайдах уже показывал:
clock вы пишете, система пытается эту введённую штуку как-то преобразовать в имя узла, который надо проадминить. Поскольку сейчас у нас на наших железках не настроено распознавание имён, она пытается это нащупать где-нибудь, хотя бы как-нибудь. Она пытается прокричать на всю сеть: у кого из вас имя clock? Дважды ей это не удаётся сделать, даже трижды, и она сдаётся. Она говорит: я не знаю, что с этим делать. Это не название команды, это не название компьютера, это не IP-адрес, непонятно, что с ним делать. Короче говоря, ошибка. Если вы введёте команду или параметр — вот эти вверх-вниз можете ещё попробовать — введёте команду или параметр и там опечатаетесь, не знаю, вместо set напишете say, то система покажет, в каком месте вы опечатались скорее всего, начиная с какого места не удаётся распарсить строку. Чаще всего там же есть ошибка. Здесь действительно показывается, что ошибка ровно там, где она и должна быть.
Так, если мы хотим поработать с конфигурацией устройства, нам нужно перейти в режим настройки. В режиме выполнения команд мы можем, например, посмотреть текущее время. В режиме настроек мы не можем посмотреть текущее время, но зато в режиме настроек мы можем переименовать железку. В режиме выполнения команд мы переименовать железку не можем. Это два разных непересекающихся мира. Команды hostname такой нету, он говорит: ругаюсь я. В то же время, если я сейчас перейду в режим настройки железки — configure terminal — здесь я смогу настроить устройство. Я могу его переименовать. И это не одноразовое действие. Измени своё состояние и дальше работай уже в изменённом состоянии. Я переименовываю железку, старое имя она забывает и начинает работать дальше с новым именем. Сейчас устройство называется Router, я его переименовываю, оно становится R1.
Hostname R1. Система немедленно принимает эту настройку и становится R1 вместо просто Router. После того как я чего-нибудь поделал, я могу выйти из режима конфигурации. Выхожу — Ctrl+C показывает, что действительно я немедленно вываливаюсь из конфига. Или я могу набрать end, и это тоже то же самое что Ctrl+C. Либо я могу нажать Ctrl+Z. Система здесь говорит, что вводите команды одну за одной и выходите с помощью Ctrl+Z. Действительно, если вы ничего не набрали другого, вы в чистой строке нажимаете Ctrl+Z — это точно то же самое, что и Ctrl+C. Но если вы чего-нибудь набрали — сейчас пример покажу. Hostname — у нас есть какое-то переименование. хост нейм роутер
если я сейчас просто на control c нажму оно не применит оно просто выйдет из конфига в то же время если я нажму control z пост нейм роутер я вот нажимаю здесь control z я не нажимаю enter система принимает вот она нажимает enter за меня и вываливается из конфига то есть видите да приглашение изменилось вот я здесь вот не нажимал enter оно само нажало enter по этой причине control z я использовать не рекомендую я рекомендую использовать control c для того чтобы немедленно выйти из конфига в крайнем случае пишите end еще есть вариант в глобальном контексте написать exit то есть exit это на один уровень вверх если вы уже в глобальном контексте находитесь exit выводит вас опять же в решетку так давайте переименуем наше устройство смотрите у вас точно так же как у меня есть две вкладочки там может быть даже три вкладочки но вот на той вкладочке где роутер и где switch есть
название большая буква либо r либо s и дальше две цифры это 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 пожалуйста дайте своим устройством название соответствует название этих фладок то есть у меня вот роутер r 0 8 я сейчас его переименую host name а только не здесь configure terminal host name r 0 8 и соответственно выходите из конфига любым удобным способом и дальше если мы чего-то поделали в нашем случае вот мы как раз переименовали железку мы изменили текущее состояние устройства относительно того что это устройство представлялось собой сразу после загрузки как уже говорилось все эти настройки попадают в текущее состояние устройства но при этом после перезагрузки они потеряются
я сейчас покажу пример того как она потеряется есть команда которая перезагружает железку это команда reload можете выполнить можете нет но вот я показываю что да можно такое сделать я указываю reload система говорит ты знаешь ты что-то изменил но при этом не сохранил не хочешь ли ты сохраниться я говорю не надо сохраняться просто перезагрузить система говорит а точно ты уверен что ты хочешь перезагрузиться я говорю да точно хочу перезагрузиться она начинает перезагружаться поскольку у нас это железки виртуальные они перезагружаются довольно быстро настоящее устройство циски они намного дольше грузится поэтому рекомендую вам лишний раз их не перезагружать если вдруг у вас будет такое желание и вот оно сейчас загрузится вот она сейчас загрузится но уже почти вот загрузилась сейчас скажет про диалог начальной настройки я от него откажусь так ты морально готов ли лук начали настройки не готов пока ну так вот и соответственно после того как
железка полностью пройдет процесс загрузки она забудет про то что я поименовал поименовал роутер R08. Она скажет, что меня зовут снова роутер, и все. Если мы хотим, чтобы после перезагрузки железка все-таки запоминала, как она выглядит, то что перезагрузка — это не всегда там релоуд, это кто-то питание случайно дернул, железка зависла, сама перезагрузилась, там, то, что называется синий экран смерти, там, паника какая-то случилась. То есть вот дело от начальной настройки, мы отказываемся от него, это уже намекает на то, что железка не помнит ничего про свою предыдущую жизнь. И мы сейчас увидим действительно, что конфигурации у нее никакой нету, что то, что ее звали R08, она, соответственно, полностью забыла. Приглашение к ководу — просто роутер. Вот если я хочу, чтобы у меня приглашение к ководу, например, было R08 даже после того, как она перезагрузилась, мне надо ее продменить. Конфигуре терминал. Если что, сокращается до
конфт. Указываем хостнейм R08. Дальше. Выходим из режима настройки. И вот сейчас нам нужно сохранить конфигурацию. То есть сделать так, чтобы после перезагрузки система выполнила бы команду хостнейм R08 еще раз. Как будто бы администратор прямо в момент загрузки вот сидит и быстро-быстро-быстро конфигурит эту железку. Для того, чтобы это сделать, мы сейчас возьмем и текущую конфигурацию, сохраним. эту самую текущую конфигурацию можно посмотреть. То есть то, как железка работает прямо сейчас, можно выполнить командой show runningconfig. Сделайте это, пожалуйста. Runningconfig. Система показывает первый экран текста, показывает, что есть еще, но, в принципе, все, что интересно для нас, я уже как бы показал, поэтому я прерываю этот вывод. Вот оно. Хостнейм R08. Это то, как железка работает прямо сейчас. Это построено прямо для меня, прямо сейчас. BuildingConfiguration намекает на это
вполне непрозрачно. И вот прямо сейчас же железка работает с именем R08, потому что кто-то ее проадминил с командой hostname R08. Я догадываюсь, что это был именно я. Если вдруг у меня железка перезагружается, она вот этот вот runningconfig будет строить заново с использованием тех команд, которые ей дали в качестве начальной настройки. Сейчас прямо никакой начальной настройки нет. что show startupconfig, тот самый файлик, из которого она читает конфигурацию, он пустой, но точнее его просто нет. Для того, чтобы он там появился, нам нужно выполнить команду. Copy runningconfig startupconfig. Система спрашивает, как назвать файлик, в который надо сохранить вывод runningconfig. и по умолчанию предлагает вариант startupconfig. То есть это поведение дурацкое,
но тем не менее мы даем направление, что сохрани куда-то в сторону startupconfig, и она дальше спрашивает, в какое именно направление startupconfig сохранить этот файл. Ну, действительно, в startupconfig. Нажимаем enter, то есть еще раз нажимаем enter. Первый раз мы набрали enter вот здесь вот, а второй раз нажимаем вот здесь вот. И система сохраняет конфигурацию. Она быстро-быстро строит под нас текущую конфигурацию, и дальше сохраняет текстовый вывод в файлик. Вот это вот окей показывает на то, что прошла успешная запись файлик. И говорит, давай дальше, что хочешь, что и делай. В настоящий момент у нас появился файлик startupconfig. То есть вот эта вот строчка, обратите внимание, show startupconfig, она выдала нам результат, что такого файлика нету буквально минуту назад. Сейчас эта же строчка, show startupconfig, покажет нам, что такой файлик уже есть, и покажет его содержимое. Вот, опять же, показывается, что у нас есть какой-то вывод. Там его много, но я сейчас прерву, чтобы оно на экране лишнее место не занимало.
И вот она строчка hostname r08, ради которой мы все это дело и затевали. То есть мы заставляем нашу железку после перезагрузки прочитать этот файлик и выполнить его построчно, как будто администратор сидит и в конфигуре терминале быстро-быстро эти команды фигачат. Показываю. Reload. Система уже не ругается на то, что есть какие-то несохраненные изменения. Она просто говорит, точно перезагрузится, а то ведь недоступна железка будет в течение некоторого времени. Мы говорим, да, точно. Дальше она начинает перезагружаться. Перезагружается, перезагружается, перезагружается. И у нее сейчас этот процесс должен пройти существенно быстрее, потому что она не пытается нащупать отсутствующий файлик startupconfig. Она сразу его находит, сразу понимает, где что брать. И вот она вот снова есть. R08, пожалуйста. То есть она после перезагрузки повторно выполнила те самые команды, которые привели ее к состоянию, в котором мы ее сохранили. Не потому, что она прямо как бы
слепок состояния в тот момент сохранила и дальше этот слепок восстановила. Нет, она именно команды повторно выполнила после перезагрузки. Вот. Ну, соответственно, да. Для нас результат одинаковый. Что в одном, что в другом случае, система поняла, что ей надо называться R08. Давайте попробуем что-нибудь повыключать, повключать те же самые интерфейсы, чтобы быть лучше знакомым с тем, как работает контекст и субконтекст настройки железа. Вот то, что мы сейчас сделали переименование устройства, это было в глобальном контексте. Если мы хотим, допустим, включить или выключить какой-то интерфейс, то мы должны будем перейти в субконтекст настройки этого интерфейса. ConfT. Обратите внимание на то, как я сокращаю. Вот confT – это конфигура терминал. Достаточно характерный для отрасли сокращения, то есть это то, как все сокращают этот самый конфигура терминал. Сейчас система ругнулась и сказала, что такой команды нету, что я где-то ошибочку сделал,
судя по всему. Я не сделал нигде ошибочку, кроме того, что я выполнил эту команду там, где ее нету, потому что в пользовательском режиме действительно конфигура терминал выполнить нельзя. Enable. И вот снова теперь confT. И уже система здесь вполне ее принимает и говорит, все в порядке, ты молодец, продолжай. Дальше. У нас есть некоторое количество интерфейсов. Можете выполнить их. Show Interfaces Summary. Она покажет вам список всех интерфейсов, но у меня здесь вот прямо показывается, какие интерфейсы есть. Вот он, интерфейс Ethernet 00. Я могу сразу сделать интерфейс Ethernet 00. Я проваливаюсь в субконтекст настройки интерфейса. Приглашение к поводу меняется. Было просто конфиг, стало конфиг if. И вот здесь, в этом самом интерфейсе Ethernet 00, можно чего-нибудь сделать. Здесь мы встречаем первое различие между роутерами и свечами, с которыми нам придется столкнуться. Ну, мало того, что они называются по-разному. На роутерах цисковских чаще всего интерфейсы
по умолчанию выключены. То есть надо их в явном виде включать, чтобы они заработали. На свечах чаще всего интерфейсы по умолчанию включены. И вам надо их выключать, чтобы они перестали работать. Вот интерфейсы Ethernet 00 в нашем случае выключены. Я это вижу по вот этому вот сообщению. Я здесь вижу секретные слова административный даун. То есть там он выключен. Командой shutdown — это поведение по умолчанию. Мы его должны антивыключить. Командой no shutdown. Мы его антивыключаем. То есть у него строчка shutdown из конфигурации убирается. Она там была по умолчанию, но мы ее оттуда убрали. И, соответственно, вот интерфейс включается. Физика на интерфейсе включается. Начинают обрабатывать битики, отправлять и принимать их. И, соответственно, канальный уровень на этом интерфейсе тоже включается. У нас все хорошо. Соответственно, вот пробегают два сообщения. Первое про физику, второе про канальный уровень. Я сейчас сознательно вам включил этот интерфейс для того, чтобы показать,
как выглядят два разных интерфейса. Один в конфигурации будет выключен, другой включен. Show running config. На первом экране для нас ничего интересного нет. Мы уже видели там этот самый hostname R08. А вот дальше мотаем, мотаем, мотаем. Вот. Домотали до того, где нас будет все интересовать. Вот это вот интерфейс Ethernet 00. Я его только что антивыключил. То есть команду no shutdown на нем принял. Вот это вот поведение интерфейсов по умолчанию. Все остальные интерфейсы имеют сейчас такое же состояние, как ещё недавно имел интерфейс Ethernet 0/0. Там по умолчанию была строчка shutdown. Когда мы указали no shutdown, эта строчка оттуда пропала. А no IP address, например, она там по умолчанию была, и мы её оттуда не убирали, поэтому там до сих пор на этом интерфейсе IP-адреса нет, потому что есть соответствующая строчка в конфигурации. Так. Обратите также внимание на следующий момент. Если у нас есть такая большая простыня,
которую выдаёт show run, или show running config, с ней иногда бывает неудобно работать, потому что у нас железка только-только загрузилась, голая железка без ничего, только переименованная, со включённым одним-единственным интерфейсом без какого-либо конфига, а она уже занимает там 10 экранов текста. В реальности с выводом show run целиком работать реально неудобно. Мы должны будем каким-то образом облегчать себе жизнь. Нет ничего более замечательного, чем экономия калорий, нажитых непосильным трудом. Для того чтобы не сильно напрягаться при чтении running config, есть способы сделать так, чтобы у нас отобразился не весь конфиг, а только часть его, которая нас интересует. Первое, что нас может интересовать — это отобразить только конкретную строчку. Например, у нас есть этот самый вывод конфига, большой, толстый, и мы знаем, что где-то в нём есть строчка по переименованию железки, которая показывает, как железка называется прямо сейчас.
Я, в принципе, могу догадаться, как она называется. Приглашение к вводу на это недвусмысленно намекает. Но если я хочу всё-таки иметь полное доказательство, что железка называется именно так, потому что она поименована так в конфиге, я могу сделать вывод show running config и дальше сказать: покажи мне только строчки, include, содержащие слово hostname. Нажимаю enter, и система мне показывает среди всего вывода только то, что содержит слово hostname, и здесь я сразу вижу, что в конфиге есть строчка hostname r08, которая переименовывает систему и даёт имя r08. Для случая, когда вы хотите найти что-то в глобальном конфиге, только одно, которое вас интересует, этот метод подходит. Для случая, когда вы хотите отфильтровать какую-то другую команду, которая даёт большой вывод, типа того же show ver, show version, он тоже большой, толстый, его тоже не отмотаешь. Нас интересует строчка,
допустим, processor board id, и мы говорим: покажи нам show version include processor board. И она показывает: processor board id вот такой-то. Но если нас интересует, например, show run, и в этом show run нас интересует какой-нибудь интерфейс, тот же самый интерфейс Ethernet 0/0, его с помощью include уже не получится показать. Потому что если я скажу: покажи мне show run и покажи мне интерфейс Ethernet 0/0, эта штука не сработает. Даже если я с большой буквы Ethernet напишу, как он в конфиге есть, она покажет только те строчки в конфиге, которые содержат эту подстроку. Она не покажет мне, как настроен этот интерфейс. Она просто на текстовом уровне скажет: я вижу строчку, в которой есть Ethernet 0/0 с большой буквы, которую ты просил. С маленькой буквы не вижу. А если меня интересует, что находится внутри контекста
Ethernet 0/0, то include не работает. И для того чтобы посмотреть, как настроен определённый интерфейс, мы можем воспользоваться не перенаправлением, а такой штукой, которая появилась в 15-м IOS. show running config interface Ethernet 0/0/0. Здесь можно сокращать, здесь можно с маленькой буквы писать. Оно тогда бежит не по всему конфигу, не по всей железке, не по всем модулям, не по всем сервисам и опрашивает, как они работают. Не строит большой длинный файл, который потом как текст обрабатывается. А оно идёт только в настройку интерфейса и опрашивает, как один-единственный интерфейс, который я заказал, работает прямо сейчас. И здесь видно, что показывается строчка building configuration, прямо под нас строится конфигурация этого интерфейса Ethernet 0/0. И построилась в итоге текстовая колбаса размером 44 байта. И вот она вся колбаса, которая мне построилась.
Ethernet 0/0, новый IP-адрес и всё. Дальше. Если нас интересует, допустим, Ethernet 0/1, то же самое — Ethernet 0/0, Ethernet 0/1, точно так же можно его заказать. Здесь мы видим, что немножко побольше получилось. Не 44 байта, а 54 байта за счёт лишней строчки shutdown. К сожалению, этот метод — покажи мне текущее состояние только одного сервиса, опроси текущее состояние только одного сервиса и покажи те строчки, которые привели текущий сервис к нынешнему состоянию — он работает только с интерфейсами. show running config interface работает. show running config, здесь можно заказать только очень ограниченное количество разных вещей, которые поддерживаются. Там интерфейс, да и практически всё — class map. Если вас интересует,
например, динамическая маршрутизация, то такой способ не прокатит. Вы должны будете заказывать отображение с помощью другого механизма: show running config и дальше перенаправление, но уже не на include, а на section. Здесь interface Ethernet 0/0/0. Обратите внимание, здесь надо с соблюдением регистра и точно так же, как оно в конфиге есть, потому что строчка interface Ethernet 0/0 полностью должна находиться в какой-то подстроке. Это именно подстрока, которую перенаправление будет искать. И когда я заказываю section дальше чего-то там, мне система находит все строчки, которые содержат указанную подстроку, и плюс все строчки, которые относятся к этому же контексту по следующему признаку. У них количество пробелов в начале строки будет больше, чем то количество пробелов,
которое есть в интересующей меня строке. Вот этот интерфейс Ethernet 0/0 и no IP address. Я сейчас смотаю немножко наверх, и вы поймёте, что я имею в виду. Вот он, интерфейс Ethernet 0/0. Та строка, которую я заказывал, она нашлась. Здесь у нас есть совпадение. И у следующей строки есть лишний пробел. Это значит, что она находится внутри контекста. Она увидела этот лишний пробел и говорит: эта строчка нам тоже интересна. А здесь уже восклицательный знак, это как комментарий, он стоит без этого самого пробела. Поэтому он уже не относится к субконтексту интерфейса Ethernet 0/0. Можем заказать Ethernet 0/1, допустим. Тогда у нас тот же самый shutdown должен будет вылезти. Эта штука работает с абсолютно любыми контекстами. Можем посмотреть про интерфейс, можем посмотреть про динамическую маршрутизацию, можем посмотреть про что-нибудь ещё. Где у нас конфиг? Вот у нас line vty 0 4. Эта штука —
тоже можно это заказать. Section line vty 0 4. Оно показывает субконтекст в конфиге, который относится к линии управления. Так. Эти все штуки очень удобны, и ими реально удобно пользоваться. На экзамене, может быть, вас не будут это спрашивать, но в реальном мире вот этим приходится пользоваться очень часто. Поэтому я рекомендую вам с этим быть знакомым. Далее. Че еще здесь можно будет посмотреть? Интерфейсы. Благо, у нас как раз интерфейсы выключены, интерфейсы не выключены. show interface Ethernet 0.0.0. Вот так выглядит включенный интерфейс. Мы его включили. Показывается, что интерфейс у нас находится во включенном состоянии. Интерфейс 0.0 из up, line протокол из up. Мы его включили,
он работает. По нему битики бегают, битики складываются. То есть и физика нормально подожглась, и канальный уровень нормально поджегся. Все прекрасно. Дальше куча всякой диагностической информации, которая нас пока не сильно интересует. То есть вот это все белое, это мы потом научимся читать, а вот сейчас пока нас интересует только верхняя строчка. И здесь видно, что все хорошо. Если вдруг у нас будет все не очень хорошо, например, на интерфейсе Ethernet 0.1 у нас не все хорошо, у нас он выключен. Вот. То у нас будет как раз вот такая вот строчка Ethernet 0.1 из administrative down, line протокол из down. Мы выключили физику ручками, придушили ее, ну, точнее, она по умолчанию была придушена, поэтому и канальный уровень у нас не складывается. Так. Давайте сделаем вместе выключение интерфейса и посмотрим на то, как интерфейс будет выключаться. Так.
Conf.t интерфейс Ethernet 0.0 shutdown. Вот так вот интерфейс выключается и приводится в состояние такое же, как и у всех остальных железок. И вот пробегает два сообщения. Физика упала, потому что мы ее выключили. Канальный уровень упал, потому что не удается складывать кадры из того, что присылается. интерфейсы повыключали. Давайте с терминалом побалуемся. Так. Когда мы работаем с терминалом, мы вводим в него какие-то команды, мы вводим в него те настройки, которые нас будут интересовать, и, соответственно, все это будет храниться временно, храниться, пока живет сессия. И все это можно посмотреть в команде show history. Вот в нашем случае мы видим, что команды, которые я вводил, они были вот такие вот. Здесь настройки
при этом не показываются, здесь показываются только команды. И вот я смотрел show history только что, перед этим входил в конфигуру терминал, перед этим смотрел состояние интерфейса Ethernet-01, Ethernet-00, и всякие разные вот перенаправления делал. И, соответственно, суммарное количество команд, которые здесь может быть, их может быть 20 штук. То есть по умолчанию show history показывает 20 команд. Если вы хотите, вы можете увеличить или уменьшить размер этого буфера под команды, ну, то есть это фактически будет размер того, сколько вот стрелочками вверх-вниз вы можете промотать. Максимум вы можете промотать до самого верха того, что видно show history. если вы завершаете сессию, а это делается, например, командой logout или по неактивности она сама завершается. Вот, завершилось. И дальше я снова вхожу. Enable show history. Оно все теряется. То есть видно, да, что оно привязано
только к конкретной сессии. Посмотреть чужую сессию нельзя. Посмотреть свою сессию, которая была до сброса предыдущей, тоже нельзя. То есть только вот актуальную текущую свою собственную сессию. Далее. Что еще? Что еще у нас есть? По поводу релоуда. Значит, просто перезагрузить железку — это релоуд. Просто выстрелить один раз в железку, чтобы она перезагрузилась. Есть некоторые параметры, которые очень удобны для реальной работы. Релоуд и дальше вопросик вам покажут, что это за параметры. Вот если вы просто указываете reload просто, enter, железка перезагружается. Если вы указываете reload и дальше указываете at, reload at, и дальше вы указываете время, железка перезагрузится в указанное время. Очень удобно, если вы хотите,
чтобы у вас устройство перезагрузилось, но вы не хотите, допустим, сидеть до того времени, когда вам это будет разрешено сделать. Очень часто бывает такое, что вы можете перезагрузить устройство только так, чтобы оно никому не мешало, типа в 3 часа ночи. И вот сидеть до 3 часов караулить, чтобы нажать reload, ну, может быть, не очень эффективно. Вот тогда вы указываете reload at, и дальше вы указываете, в какое время перезагрузиться. Есть, соответственно, reload cancel, это отмена запланированной перезагрузки, и очень удобная вещь reload in. То есть reload at вы указываете в явном виде, в какое время перезагрузиться, а reload in вы указываете относительно время, относительно текущего момента. То есть reload in 5, это перезагрузить через 5 минут. Почему это очень полезная вещь? Дело в том, что если вдруг вы набрали какую-то команду и потеряли управление вашей циской, то вы должны будете для того, чтобы восстановить это управление, сделать следующую вещь.
Либо каким-то образом все-таки зайти на нее и отменить ту команду, которую вы вели плохую. Но если вы уже потеряли управление, то этот сценарий становится маловероятным. Либо вы можете попросить кого-нибудь, чтобы он подошел к железке и дернул ее по питанию. И тогда железка перезагрузится, восстановит конфиг, который у нее был в стартап-конфиге, а там нормальная рабочая конфигурация, которая вас снова пустит, и вы сможете снова продвинуть железку. Если вдруг вы подозреваете, что железка, которую вы настраиваете, может стать недоступной, и вам будет очень сложно ее ребутнуть по питанию самостоятельно после того, как вы потеряете управление ей, вы можете сказать перезагрузись в любом случае через 5 минут. И тогда, если вы действительно потеряете управление, она перезагрузится через 5 минут и восстановит текущую конфигурацию. Если же вы смогли настроить железку и не потеряли управление, и у вас это заняло меньше 5 минут, вы можете сказать reload cancel, и у вас запланированная перезагрузка
отменится. Это такой способ подстелить себе соломки. Очень удобная вещь, очень рекомендую использовать, если вдруг вы настраиваете какие-то устройства, которые находятся далеко от вас. Если вы, сидите в Москве и настраиваете железку в Хабаровске, ехать в Хабаровск может быть очень тяжело. Это долго и дорого, поэтому не надо надеяться на авось, скажите reload in, и пусть лучше железка перезагрузится после того, как она немножко побудет в даунтайме. Это наиболее мягкий вариант по сравнению со всем остальным. Будьте очень аккуратны, потому что если вы указываете не reload и не reload in, а просто reload 5, очень популярная ошибка, если вы указываете reload 5, нажимаете enter, это воспринимается как то, что вы указываете причину, по которой вы хотите
перезагрузиться прямо сейчас. Конкретно этот IOS этому не подвержен, но если вы указываете на старых IOS, то reload 5, просто reload 5, оно воспринималось именно как перезагрузить прямо сейчас с указанием причины 5, текстовая строка с цифрой 5, и железка немедленно уходила в ребут. Малоприятная вещь, так что не надо так делать, имейте, пожалуйста, в виду такую вещь. Так, что еще здесь может быть из полезного — про reload рассказал, про configure рассказал, в принципе, все. На этом знакомство с IOS, базовое знакомство, прямо на уровне просто посмотреть, что в нем есть, закончено. Я предлагаю тогда на сегодня нашу студию закончить, благо у нас как раз до назначенного времени
осталось совсем немного, и завтра с самого начала занятия мы будем изучать протоколы Ethernet. Там очень много чего изучать, Ethernet — это практически необъятная тема, несмотря на то, что протокол очень простой и он может работать практически без какой-либо конфигурации, там есть чего поизучать. Поэтому готовьте мозги, разминайтесь, и завтра в назначенное время встретимся и начнем прямо занятия с Ethernet. На сегодня все. Спасибо за внимание. Пока-пока. Продолжение следует...