Немного введения.
Версия специально для сайта pristixkain.ru Редактируемая версия с возможностью комментирования и предложением правок пока доступна лишь некоторым людям, которые над ней работают и нашим дорогим студентам.
Какие-то важные моменты мы будем выделять жирным шрифтом, чтобы их было проще искать, да и дабы вы обратили на них особое внимание. Ну и в скобках курсивом выделяем то, как иначе могут называть объект обсуждения.
Данный документ существует для того, чтобы структурировать ваши знания, сделать подробный мануал по основам настройки оборудования и более углубленно поработать с Cisco IOS.
Содержание
Глава 1. Настройка базовых параметров
Глава 2. Методы доступа к оборудованию.
Доступ к устройству через консольный телетайп
Доступ к устройству через виртуальный телетайп.
Методы защиты от несанкционированного доступа
Глава 3. Работа с файловой системой Cisco IOS, сброс и восстановление настроек.
Команды взаимодействия с файловой системой
Обзор файловой системы CISCO IOS
Взаимодействие с файлами конфигурации
Глава 5. Настройка интерфейсов
В данном курсе будем подключаться к оборудованию по протоколу удаленного доступа(виртуальный телетайп\уд\удаленка\заочка) Telnet через интерфейс командной строки(CLI\цлайка\терминал). Подробнее об этом уже было рассказано на занятиях, НО если что-то не поняли, то лучше не стесняться и подойти к нам лично. мы все еще раз объясним, ибо это важно понимать и уметь применять, т.к. по сути это буквально ваша будущая профессия и подготовка к части демо экзамена. Это относится не только к подключению, но и ко всем остальным темам и моментам. Не поняли - подходим и спрашиваем. Тем более, что у нас есть время консультаций, в которое мы можем рассмотреть те или иные моменты более детально. То же самое относится и к вопросам, так или иначе относящиеся к оборудованию, которые интересуют лично вас и возникшие в течении прохождения сего курса. Даже если мы чего-то сами не помним(такое тоже случается), мы с вами найдем ответ(в том числе опытным путем, экспериментировать есть где), ну, и, собственно, покажем где и как его искать, ведь поиск инфы по оборудованию и решение каких-то затыков вас ждет уже на работе. И лучше учиться этому сейчас, нежели потом сесть в лужу.
Для начала следует знать, что в лаборатории используется 2 вида оборудования: Маршрутизатор(Router\Роутер\Маршрык\L3) и Коммутатор(Switch\Свич\Комок\L2\Комчатка)
Оборудование уже имеет настройки. Как оно все выглядит в стоковом состоянии - рассмотрим на занятиях, когда будем их взламывать(да-да, и такой навык для работы тоже нужен).
Так вот в наших настройках стоит 24 маска(255.255.255.0), а адрес для подключения по telnet:
(!ВНИМАНИЕ! GE 0/1 и FE 0/1 по умолчанию выключены, их нужно включать ручками и ручками же задавать адрес)
Где находятся порты GE, FE и что такое vlan я вам показывал и мы все равно не раз об этом еще поговорим.
Соответственно у вашего компьютера должна быть 24 маска(255.255.255.0) и адрес 192.168.1.<1-254>, при том нельзя, чтобы адреса совпадали. Для примера будем использовать адрес 192.168.1.1
С протоколом подключения и адресами разобрались. Теперь встает вопрос “А как подключаться и что для этого нужно?”.
Для создания подключения необходимо физически соединить комп и устройство с помощью провода(патч-корд\кабель\Ethernet\волосня)
А затем открыть программу PuTTY.
Думаю, следует сразу пояснить что такое PuTTY. Это приложение-клиент для различных протоколов удалённого доступа, включая SSH, Telnet, rlogin. Также имеется возможность работы через последовательный порт(консоль). В целом, очень гибкий инструмент с кучей настроек и возможностей. Можно, конечно, подключаться и с помощью командной строки, но на windows это вносит ряд ограничений начиная с отсутствия прокручивания терминала(мы можем видеть только несколько строк, а те, которые уходят вверх, уже посмотреть нельзя) и заканчивая отсутствием возможности создания пресетов и файлов истории.
Окно данной программы показано на рисунке 0.1. Здесь нас интересуют только 5 элементов: поле адреса, поле порта(или скорости случае serial), тип соединения telnet, тип ssh, тип serial.
Рисунок 0.1 - Окно настроек PuTTY
Как уже было сказано ранее, в институте в настройках стандартный протокол уд - telnet. Соответственно, выбираем метод telnet, порт по стандарту 23, в поле ввода адреса вводим адрес оборудования и жмем внизу “Соединиться”.
Вот и настал момент, когда мы подключились к оборудованию.
Сначала оно затребует пароль. У учебного оборудования, для удобства, он везде одинаковый: cisco
Вводим пароль и теперь мы можем наблюдать что-то подобное, показанное на рисунке 0.2.
Рисунок 0.2 - Терминал оборудования
Ну, вот теперь, в принципе можно и начинать работать в CLI.
Важно понимать, что все команды применяются не на компьютере, а на оборудовании. Соответственно, если вы подключите другой компьютер к оборудованию, то продолжите работать с теми же настройками, однако в случае удаленного доступа вы вернетесь обратно в пользовательский режим.
Но прежде чем начать работать с командами давайте разберем горячие клавиши. Они не обязательны к запоминанию, но могут помочь в работе.
Таблица 1 - Горячие клавиши редактирования
|
Tab |
Завершает частично введенную команду. |
|
Backspace |
Удаляет один символ слева от курсора. |
|
Ctrl D |
Удаляет символ, на котором стоит курсор. |
|
Ctrl K |
Удаляет все символы от курсора до конца строки. |
|
Esc D
|
Удаляет все символы от курсора до конца слова. (Esc нажимаем, отпускаем, а потом D) |
|
Ctrl U / Ctrl X |
Удаляет все символы от курсора до начала командной строки. |
Таблица 2 - Горячие клавиши режима more
|
Enter |
Показывает следующую строку. |
|
Space |
Показывает следующий экран. |
|
Any key |
Выход из режима. |
Таблица 3 - Горячие клавиши прерывания
|
Ctrl C |
Остановка режима. |
|
Ctrl Z |
Возвращение в # |
|
Ctrl Shift 6 |
Остановка действия, в т.ч. DNS-запросов, трассировки маршрутов и эхо-запросов |
Первой командой, а если быть точнее, функцией, с которой мы познакомимся будет символ ? результат применения которой можно увидеть на рисунке 0.3.
Сия команда называется справка(чё\вопрос\забыл как пишется) и нужна она для того, чтобы увидеть какие команды нам доступны.
Также если вы начнете писать команду и нажмете ?, то оборудование вам выведет команды, которые возможно написать дальше. Если команда только одна, как на примере рисунка 0.3, то можно смело жать энтер, Cisco ios понимает сокращения команд, но если недописанные команды не приносят вам эстетического удовольствия, то нажимаем клавишу Tab и команда допишется сама. Если ни одной команды не выводится, то это значит, что либо вы ошиблись буквой и такой команды не существует, ну либо вы находитесь не в том режиме конфигурации.
Рисунок 0.3 - Пример использования справки.
Давайте рассмотрим ближе командную строку терминала.
На картинке видим в начале строки указано Router>
Router - это имя хоста(хост\имя\название устройства), у вас оно может быть иным(и мы позже будем его менять сами)
Символ > обозначает то, что вы находитесь в пользовательском режиме. Из него нельзя ничего изменять, можно только делать пинги, подключиться через уд к другому устройству и т.п. и т.д.
Но мы же собрались здесь не для того, чтобы просто посмотреть, верно?
Следующая команда, с которой мы познакомимся - enable, она позволяет перейти в привилегированный режим(админский), но при этом оборудование запросит пароль, он уже был указан выше, однако здесь есть небольшой момент: сам пароль во время ввода не отображается, из-за чего по началу кажется, что что-то сломалось.
На рисунке 0.4 можно наблюдать результат выполнения команды.
Рисунок 0.4 - Переход в привилегированный режим
После перехода, нам доступен полный перечень команд и возможность перехода в следующие режимы без пароля. Таким образом, зная пароль на вход на устройство и пароль на привилегированный режим, человек имеет полный доступ к оборудованию, так как дальше уже никаких паролей вводить нам не требуется. Для выхода обратно в пользовательский режим используется команда disable.
Также для перехода из любого последующего режима в привилегированный( по сути, в самое начало) можно нажать сочетание клавиш Ctrl + Z.
Однако в данном режиме можно выполнять только общие настройки устройства по типу даты, времени и т.п. Чтобы перейти к настройкам сети требуется переход в следующий режим.
Далее в тексте символ # будет означать, что команда выполняется в данном режиме. Следующий режим - режим глобальной конфигурации (конфиг\конф тэ).
Далее в тексте (config)# будет означать, что команда выполняется в данном режиме.
Для перехода используется команда #configure terminal
Уже из этого режима мы можем настраивать устройство более гибко и переходить в режимы специфической конфигурации по типу (config-if)#, (config-line)# и тд, о которых мы поговорим немного позже. Для выхода обратно используется команда exit.
С навигацией вроде разобрались. Если нет, то придет с практикой.
Начнем, пожалуй, с сетевого имени(хостнейм\имя устройства\имя)
Оно уже упоминалось ранее. Сетевое имя облегчает администрирование сети, так как позволяет быстро идентифицировать конкретное устройство. Это помогает упростить процесс мониторинга и управления сетью. Также, имя устройства используется при формировании системных сообщений и логов, что помогает в установлении связи между событиями и конкретными устройствами в сети.
Для настройки сетевого имени устройства используется команда (config)# hostname <имя устройства>
Например, нужно настроить сетевое имя коммутатора SW1. После выполнения команды в командной строке появится заданное имя. Команда показана на рисунке 1.1.
Рисунок 1.1 — Настройка имени устройства
Далее рассмотрим доменное имя(домен). Это уникальное имя, которое используется для идентификации компьютеров и ресурсов внутри сети. Например, доменное имя может быть использовано для обращения к серверу, который хранит учетные данные пользователей и устанавливает правила для других компьютеров в сети. В результате, доменное имя помогает упростить управление и масштабирование сети, обеспечивая более удобное взаимодействие пользователей и администраторов.
Настройка доменного имени устройства осуществляется с помощью команды (config)#ip domain name <имя>
Например, требуется настроить доменное имя ekb.ru. Пример показан на рисунке 1.2
Рисунок 1.2 — Конфигурация доменного имени
Теперь давайте проверим настройку доменного и сетевого имени. Для этого нам требуется посмотреть текущую конфигурацию(running-config). В этом нам поможет команда #show running-config. Можно сократить до sh run, а если еще в начале добавить do, то можно использовать из любого режима конфигурации. Смотрим результат на рисунке 1.3
Рисунок 1.3 — Результат настройки доменного имени
Для обеспечения дополнительной защиты межсетевых устройств от несанкционированного доступа ставится пароль для доступа в привилегированный режим. Это делается с помощью команды (config)#enable password <пароль>
Например, требуется пароль для доступа в привилегированный режим 123456. Пример показан на рисунке 1.4.
Рисунок 1.4 — Установка пароля привилегированного режима
Примечательно то, что если не установить пароль на админский режим, то при подключении с удаленки нас не пустит в админку при написании команды enable.
Сам пароль мы можем увидеть в текущей конфигурации. Рисунок 1.5 тому подтверждение.
Рисунок 1.5 — Отображение пароля в конфигурации
По умолчанию все пароли являются незашифрованными. Но если хотите скрыть пароль в админку, то можно либо зашифровать его на моменте установки используя команду (config)#enable secret <пароль> вместо прошлой, либо позже воспользоваться службой шифрования паролей (config)#service password-encryption.
!ВНИМАНИЕ! Пароли до 8 символов, шифрованные сервисом, можно декодировать. Как это делается смотрим в папочке(ссылка, жмяк) файлик “Расшифровываем пароли, зашифрованные с помощью service password-encryption” (Скачиваем папку архивом, распаковываем и открываем) Курс вычтеха вам тут пригодится.
Собственно, как выглядит шифрованный пароль можно посмотреть в конфиге, рисунок 1.6.
Рисунок 1.6 — Результат настройки службы шифрования паролей
Баннер - это сообщение, которое необходимо, чтобы при подключении к маршрутизатору или коммутатору через консольный порт, выводилось сообщение, предупреждающее о правовых последствиях несанкционированного доступа к устройству. Так же баннер может использоваться, как приветственное сообщение.
Для настройки баннера используется команду (config)#banner motd #
После этого можно начинать вбивать текст. Можно в несколько строк(таким образом можно рисовать картинки) а чтобы закончить нужно еше раз указать символ #. Для примера можно сделать что-то подобное, показанному на картинке 1.7.
Рисунок 1.7 - установка баннера с ASCII-артом
После настройки баннера необходимо разлогиниться с коммутатора при помощи команды #exit
В результате, перед входом на оборудование появится баннер, как показано на рисунке 1.8.
Рисунок 1.8 — Результат настройки баннера
В некоторых устройствах может быть ограничение на количество символов в баннере.
Для того чтобы в случае отключения питания межсетевого устройства, конфигурация не удалялась, ее необходимо сделать стартовой(сохранить). Для этого необходимо ввести команду #write memory
В результате текущая конфигурация становиться стартовой, которая будет загружаться при включении оборудования. Это можно проверить перезагрузив оборудование (вручную или командой #reload) или посмотрев стартовую конфигурацию #show startup-config
Существует два основных метода доступа к настройкам оборудования.
Первый - Доступ к устройству через консольный телетайп(последовательный порт/serial/консоль/физический доступ).
Второй - Доступ к устройству через виртуальный телетайп(удаленный доступ\уд\удаленка)
Телетайп(TTY) представляют собой асинхронные линии, используемые для входящих или исходящих модемов и соединений терминала.
Преимущество данного метода в том, что он не требует каких-либо настроек перед подключением. Поэтому консольное подключение используется для первоначальной настройки оборудования после покупки или сброса настроек. Также данный метод позволяет войти в режим восстановления, о котором мы поговорим позже.
Начнем с того, на какие разьемы нам следует обратить внимание.
На рисунке 2.1 показаны 2 порта доступа для консольного подключения. 1 - RJ-45, 2 - USB-Mini. На современном оборудовании может появиться USB-C, а на старом можете увидеть RS-232.
Рисунок 2.1 - Порты доступа для консольного подключения
!ВНИМАНИЕ! RS-232 является холодным подключением. Если вдруг на работе столкнетесь с устройствами с таким разъемом, то перед соединением выключите оба устройства, иначе сожжете порт. В случае переходника выключается только устройство с портом RS-232.
В нашей лаборатории для консольного доступа используется порт RJ-45. Однако обратным концом он вставляется не в сетевой адаптер компьютера а в порт RS-232. Для этого существует специальный кабель, распиновка и внешний вид которого представлен на рисунке 2.2.
Рисунок 2.2 - Распиновка и внешний вид кабеля RS-232 to RJ-45
Если в компьютере отсутствует порт RS-232, то на этот случай существуют кабели USB to RJ45. Вместо коннектора RS-232 там стоит устройство с USB. Как это работает можно почитать здесь в файле “USBRS232”.
!Внимание! Кабели USB to RJ45 и RS-232 to RJ-45 есть двух видов. Один для консольного подключения, второй для передачи данных. Смотрите спецификацию прежде чем подключаться.
Теперь о самом подключении. В программе PuTTY необходимо выбрать тип соединения Serial после чего мы увидим 2 параметра: Последовательная линия и Скорость. Интерфейс показан на рисунке 2.3.
Рисунок 2.3 - Интерфейс подключения
Последовательная линия выбирается та, в которую мы на компьютере подключаем кабель для настройки оборудования.
Скорость по умолчанию для большинства оборудования устанавливается 9600 бод.
После нажатия кнопки “Соединиться” мы попадаем в CLI интерфейс и можем начинать работу.
Чтобы настроить консольный доступ нам потребуется команда (config)#line console 0
С помощью справки можно посмотреть какие команды нам доступны.
На сей момент нам требуется защитить консольный порт от несанкционированного доступа. Для этого зададим пароль командой (config-line)#password <пароль>
Однако просто задать пароль недостаточно, необходимо включить вход по паролю. Для этого нам необходима команда (config-line)#login без модификаторов.
если все сделано правильно, то при просмотре текущей конфигурации будет что-то подобное картинке 2.4.
Рисунок 2.4 - Просмотр конфигурации линии
После этого мы можем убедиться, что при перезаходе на линию от нас будет требоваться пароль, как на картинке 2.5. При вводе пароль не отображается, также как и при вводе пароля от привилегированного режима.
Рисунок 2.5 - Ввод пароля при подключении в консольную линию
Удаленным доступом мы уже пользовались и о нем говорилось в самом начале. Данный метод основывается на интернет протоколах, и, соответственно, требует настроенного адреса и протоколов для использования.
HTTP - протокол прикладного уровня, используемый для передачи гипертекстовых документов (HTML, CSS, JavaScript и другие ресурсы). Когда вы вводите адрес сайта в браузере, браузер отправляет HTTP-запросы на сервер, чтобы получить нужные файлы. Сервер обрабатывает эти запросы и возвращает соответствующие ответы.
У большинства оборудования есть web-интерфейс(морда). Так вот с помощью протокола HTTP мы можем получить доступ к этому интерфейсу, введя в адресной строке браузера IP-адрес устройства. В этом интерфейсе мы можем выполнять настройки, используя GUI, а не CLI как в остальных случаях. При этом функциональность GUI и CLI одного устройства может различаться и в некоторых случаях стоит выполнять настройки только на web-интерфейсе, не трогая CLI, а в других случаях о существовании GUI на устройстве лучше и не знать.
Telnet - был официально введен в эксплуатацию в 1971 году. Это произошло после нескольких лет разработки и тестирования в рамках проекта ARPANET, предшественника современного интернета. Первые версии протокола начали использоваться еще в конце 1960-х годов, но именно в 1971 году Telnet получил официальный статус и начал активно применяться для удаленного доступа к компьютерам. Его разработка началась в рамках ранних попыток создать стандартизированный способ взаимодействия пользователей с удаленными хостами. Telnet быстро стал важным инструментом для работы в сети, позволяя пользователям подключаться к серверам и управлять ими с помощью CLI. В отличие от своих современников Telnet не имеет защиты и передает текст в незашифрованном виде.
Rlogin - данный протокол удаленного доступа был введен в середине 1980-х годов как часть операционной системы UNIX. Этот протокол разрабатывался как альтернативный инструмент для удаленного входа в систему, аналогичный Telnet, но с некоторыми улучшениями, касающимися безопасности и удобства использования. Он также позволяет пользователям подключаться к удалённым хостам и управлять ими через CLI. Изначально задумывался как более безопасный протокол управления. Аутентификация происходит по имени хоста и IP-адресу, что снижает риск несанкционированного доступа, если злоумышленник не имеет контроля над этими параметрами. Однако этого оказалось не достаточно. Rlogin был менее гибким чем его предшественник, а система безопасности далека от совершенства. На сегодняшний день протокол Rlogin похоронен, так как Telnet удобнее и надежнее, а в плане безопасности появился SSH, который в разы безопаснее.
Security Shell(SSH) - Протокол был разработан в 1995 году финским исследователем Тату Ялоненом, чтобы решить проблему безопасности при удаленном доступе к университетскому серверу. Первая версия протокола получила название SSH-1. Однако вскоре были обнаружены уязвимости, и в 1996 году была выпущена вторая версия — SSH-2, которая стала основным стандартом для безопасного удаленного подключения по сей день.
Данный протокол обеспечивает защищённое соединение между двумя устройствами через небезопасную сеть. SSH используется для удаленного управления серверами, передачи файлов и выполнения команд на удаленных машинах. Именно SSH отправил Rlogin, о котором говорилось выше, на музейную полку.
На данный момент повсеместно используется 3 протокола удаленного доступа: HTTP, Telnet, SSH-2.
В данном курсе мы не будем рассматривать GUI устройств, и, соответственно, протокол HTTP как средство удаленного доступа.
Раньше Cisco IOS поддерживала только пять одновременных соединений, 0 - 4, но позже их количество увеличили и теперь у виртуального телетайпа можно настроить до 16 одновременных подключений по линиям от 0 до 15. Однако по старой памяти устройство разделяет эти линии на 2 пула: 0 - 4 и 5 - 15.
Для примера мы настроим Telnet на всех линиях. Для этого заходим в режим настройки линии виртуального телетайпа и указываем весь пул 0 - 15 командой (config)#line vty 0 15
Теперь выдадим доступ протоколу Telnet к выбранным линиям: (config-lone)#transport input telnet
Также необходимо установить пароль на линии. Если его не установить, то IOS не даст вам соединиться из соображений безопасности. (config-line)#password <пароль>
Скриншот настроек приведен на картинке 2.6.
Рисунок 2.6 - настройка протокола Telnet
Теперь, когда протокол включен это можно проверить с помощью просмотра текущей конфигурации. В разделе линий будут видны необходимые нам строчки.
Метод подключения по Telnet с помощью PuTTY был описан в самом начале.
Для windows есть утилита Telnet client. изначально она отключена, ее можно активировать в компонентах Windows и использовать через CMD или PowerShell. На мой субъективный взгляд PowerShell 7 для этого подходит лучше всего. Для Linux утилита скорее всего будет уже предустановлена, но если нет, то можно докачать отдельно. Для подключения из этой утилиты используется команда telnet <адрес>
После подключения мы видим баннер и просьбу ввести пароль, который мы указывали в линии, рисунок 2.7.
Рисунок 2.7 - Ввод пароля при подключении через Telnet
Рассмотрим процесс настройки удаленного доступа по протоколу SSH.
Настройка этого протокола немного сложнее. На устройстве должно быть настроено сетевое имя и доменное имя.
SSH использует криптографические ключи для обеспечения конфиденциальности, целостности и аутентификации данных. Они позволяют коммутатору создать публичный и частный ключи, которые будут использоваться при обмене данными.
Публичный ключ используется для шифрования данных, которые затем могут быть расшифрованы только с помощью соответствующего частного ключа, который хранится на устройстве. Это обеспечивает надежную защиту от перехвата и прослушивания данных в процессе передачи.
Внимание, цыганские фокусы: на некоторых прошивках нельзя генерировать кыф ключи, и, как следствие, настроить SSH. Если что-то не полуается, то смотрите наличие приписки k9 в названии прошивки.(Как это посмотреть рассмотрим в следующей главе)
Внимание! Перед следующим шагом необходимо убедиться, что на оборудовании присутствует доменное имя и не стоковое имя хоста.
Таким образом, необходимо сгенерировать крипто ключи командой (config)#сrypto key generate rsa
После ввода команды, необходимо ввести длину ключа. Оптимальной длиной является 1024.
Также включим протокол командой (config)#ip ssh version 2
Далее переходим в режим настройки линии виртуального телетайпа и выбираем все линии (config)#line vty 0 15
Теперь выдадим доступ протоколу SSH к выбранным линиям: (config-line)#transport input SSH
Также необходимо установить пароль на линии. Если его не установить, то IOS не даст вам соединиться из соображений безопасности. (config-line)#password <пароль>
Скриншот настроек приведен на картинке 2.8.
Рисунок 2.8 - настройка протокола SSH
Для windows есть утилита SHH agent. Для подключения из этой утилиты нужна команда в Shell ssh -l <логин> <адрес>
Если логин не был настроен на устройстве, то можно вводить любой, все равно подключит.
На мой субъективный взгляд, гораздо удобнее использовать PowerShell 7 для подключение через SSH, нежели PuTTY.
Касаемо Linux, написанное в предыдущем разделе актуально и в данном случае.
Для подключения из PuTTY открываем программу, выбираем метод SSH, порт по стандарту 22, в поле ввода адреса вводим адрес оборудования и жмем внизу “Соединиться”. Необходимые настройки показаны на рисунке 2.9.
Рисунок 2.9 - Окно настроек PuTTY
При настройке удаленного доступа мы уже устанавливали пароль на линию vty, таким же образом он ставится и на консольную линию. для включения входа только по установленному паролю(и без пароля, если он не настроен) используется команда (config-line)#login Однако на простой установке пароля методы защиты не заканчиваются.
Чтобы полноценно защитить устройства необходимо создать учетную запись пользователя.
Для настройки учетных записей существует два основных способа:
1) Использование локальной базы пользователей. В этом случае учетные записи создаются непосредственно на устройстве и хранятся в его памяти.
2) Использование AAA-серверов. Все учетные записи хранятся на выделенном сервере. При этом нет необходимости создавать пользователей на сетевом оборудовании.
Данный способ менее безопасен, менее гибок и требует значительного внимания со стороны администратора. Использование локальной базы затрудняет соблюдение парольной политики. Только представьте, что у вас около 30 сетевых устройств. И в компании три администратора с разными правами. Вам придется зайти на каждое устройство и вручную “вбить” учетные записи. Когда придет время менять пароли (а их нужно менять), то данную процедуру придется повторить.
Для начала, чтобы не запутаться в куче паролей необходимо отключить ранее установленный пароль на линии командой (config-line)#no password (не делайте этого, если настраиваете линию через которую подключены)
Теперь рассмотрим процесс создания пользователя в локальной базе. Для этого требуется команда:
(config)#username <имя> privilege <уровень привилегий> password <пароль>
Если с именем и паролем все понятно, то уровень привилегий стоит рассмотреть поподробнее.
В Cisco IOS существует 16 уровней привилегий, от 0 до 15
0 Это самый низкий уровень из которого доступны всего несколько команд: disable, enable, exit, help и logout. этот уровень используется редко.
1 Соответствует пользовательскому режиму (т.е. в качестве приглашения в командной строке switch>). Команды из привилегированного режима недоступны.
15 Привилегированный режим, где доступны все команды (приглашение в командной строке switch#).
2-14 Требуют ручной настройки разрешений.
Такая модель привилегий используется для разграничения пользователей в правах в зависимости от их роли. К примеру, администратору сети провайдера нужен доступ ко всем настройкам, поэтому ему понадобится наивысший уровень привилегий - 15. Специалистам тех. поддержки из первой линии возможно нужны только команды диагностики (вроде ping или show mac-address-table), без доступа к командам конфигурации. В таком случае подходит обычный пользовательский режим - уровень 1.
Остальные уровни 2-14 можно использовать для создания индивидуальных профилей со строго определенным перечнем команд.
В качестве примера мы создадим пользователя Leha с уровнем привилегий 2 (config)#username Leha privilege 2 secret cisco за тем нужно разрешить 2 уровню привилегий использование определенных функций. Для примера включим возможность просмотра текущей конфигурации (config)#privilege exec level 2 show running-config и возможность использования эхо-запросов (config)#privilege exec level 2 ping
Теперь если зайти в систему под пользователем Leha, то для использования будет доступно всего две команды: show running-config и ping.
Ну и использование локальной базы пользователей после настройки необходимо включить на линии командой (config-line)#login local
Начнем с того, что вообще такое AAA. Это модель, состоящая из 3х этапов:
Authentication — Пользователь должен подтвердить, что он тот, за кого себя выдаёт.
Authorization — На основании учетной записи определяется к каким ресурсам пользователю может быть предоставлен доступ и какие действия может выполнять, затем этот доступ предоставляется.
Accounting — Учёт и аудит, осуществляет сбор информации по использованию пользователем сетевого устройства и формирует отчеты.
Как правило AAA-сервер рекомендуется если у в сети больше 10 устройств. Если в сети всего 3 - 5 устройств, то установка AAA-сервера будет бессмысленной тратой времени и ресурсов.
При использовании AAA сервера учетные записи хранятся на нем, а не на оборудовании. Однако для примера бы будем использовать локальную базу AAA для которой требуется созданная локальная база пользователей.
Включение модели (config)#aaa new-model
Создание списка локальной базы (config)#aaa authentication login default local
Для включения доступа через AAA используется команда (config-line)#login authentication default
Однако для выключения доступа через AAA не достаточно ввести (config-line)#login, да и система выдаст ошибку. Чтобы выключить доступ по AAA нужно отключить саму ААА модель командой (config)# no aaa new-model
Работа с файловой системой обычно не затрагивается в процессе обучения, однако на мой взгляд это крайне важная тема, так как это гибкий и полезный инструмент. На полноценное изучение этой темы может уйти достаточно много времени, поэтому здесь будут затронуты только основные моменты, касающиеся конфигурации устройства, которые могут помочь вам в будущем.
Устройства с Cisco IOS это все тот же компьютер, только сильно видоизмененный. И также как у компьютера у cisco есть 3 вида памяти.
ПЗУ - постоянное запоминающее устройство. В нем хранится информация об устройстве и инструкции для процессора каким образом ему следует запускаться и работать. Изменять содержимое ПЗУ как правило не представляется возможным из-за особенностей данного типа памяти, либо запрещено системой.
ОЗУ - оперативное запоминающее устройство. В большинстве случаев энергозависимая часть системы памяти, в которой во время работы устройства хранится исполняемый машинный код, а также входные, выходные и промежуточные данные, обрабатываемые процессором.
ВЗУ - внутреннее запоминающее устройство. Здесь хранятся файлы пользователя и системы, необходимые ей для работы.
В данной теме мы поговорим о ВЗУ, его содержимом и возможностях. Но для начала нам требуется понимать какими командами мы можем с взаимодействовать с файловой системой.
!Внимание! Большая часть того, что будет рассмотрено в данной теме не будет работать в Cisco Packet Tracer, так как он не полностью эмулирует работу устройства.
Начнем с команды #dir <ничего \ каталог> #sh flash:<каталог>. Данная команда позволяет просмотреть содержимое каталога в котором находитесь, либо того, которого указали в качестве аргумента (прим. просмотр содержимого каталога usbflash0 #dir usbflash0:)
Далее команда #cd <каталог> которая используется для перемещения по файловой системе (прим. переместиться в каталог usbflash0 #cd usbflash0:)
Команда #delete <файл \ каталог> удаляет выбранный файл. (прим. #del myfile.txt) Также можно использовать команду #rm <файл \ каталог>
У команд взаимодействия есть 2 аргумента /recursive и /force. Первый применяет действие также к файлам внутри каталога, если действие направлено на него, а второй делает команду принудительной. (прим. удаление каталога с файлами #del /recursive /force myfolder)
Команда #erase <файл> или #format <файл> очищает содержимое файла.
Команда #copy <откуда><что> <куда><во что> (прим. #copy file1.txt file2.txt или #copy flash0:file.txt usbflash0:backupfile.txt)
Команда #rename <где><что> <во что> переименовывает файл или каталог. (прим. #rename file1.txt file2.txt или #rename flash0:file.txt backupfile.txt)
Команда #more <файл> показывает содержимое файла.
Команда #verify <файл> служит для проверки контрольной суммы.
Команда создает каталог. #mkdir <где><имя> (прим. #mkdir usbflash0:myfolder)
Команда #write <модификатор> взаимодействует с конфигурацией устройства. Модификатор erase удаляет стартовую конфигурацию, memory сохраняет, network с указанием адреса передает текущую конфигурацию по протоколу TFTP на удаленный сервер, а terminal показывает текущую конфигурацию.
Порой приходится работать и с архивами, например, для скачивания папки с устройства, ее придется упаковать в архив. Для того что бы закачать образ IOS содержащий web интерфейс через tftp на устройство тоже придется закачать архив, а потом распаковать его на устройстве. Итак, для работы с архивами используется команда #archive tar, в зависимости от того что требуется сделать используются разные аргументы.
Для создания архива используется /create, после ключа указываем имя и путь к архиву и директорию, которую собираемся архивировать. (прим. #archive tar /create flash:myfolder.tar flash:myfolder)
#archive tar /table myfolder.tar)
Для распаковки архива используется аргумент /xtract, после покажет файлы, которые содержатся в архиве и их объем, (прим. Для просмотра содержимого архива используется аргумент /table, Cisco ключа указываем имя и путь к архиву и директорию, куда будем распаковывать. (прим. #archive tar /xtract test.tar flash:)
Если мы введем команду #dir, то система выдаст нам содержимое директории flash: (если предварительно небыло совершено перемещение в другой каталог). Содержимое данной директории может разниться, однако в большинстве случаев наблюдается файлов, на которые стоит обратить внимание.
Файл с расширением .bin (прим. c3560-ipbasek9-mz.122-44.SE3.bin). Это файл прошивки операционной системы. Именно из этого файла происходит загрузка при запуске. Подробнее об этом файле можно почитать здесь в файле “Образы CISCO IOS”.
Файл private-config.text. Является частью startup-config. Здесь хранится информация о шифровании. Например ключи SSH, IPsec, SNMPv3. Данный файл нельзя скопировать, записать в него информацию или просмотреть его содержимое, так как не хватит привилегий. Единственные два действия, которые можно с ним совершить - переименовать и удалить.
Файл vlan.dat. Здесь хранится информация о VLAN. Данный файл существует отдельно от startup-config и при запуске оборудования вланы остаются и начинают работать, даже если конфигурация была сброшена(кроме сброса методом удержания mode)
Примечательно то, что файл необходим системе только для старта оборудования. При изменении конфигурации vlan информация в файле обновляется мгновенно. Иными словами, вланы существуют отдельно от стартовой конфигурации и остаются в системе после перезагрузки даже в том случае, если вы не сохраняли конфигурацию.
Файл config.text. Данный файл является основной частью startup-config. В нем находится сама конфигурация устройства, которую мы записываем при сохранении. Команда #more config.text выводит ту же самую информацию, что и #show startup-config.
Файл multiple-fs. В данный файл является хранилищем для для сертификата x.509. Так же как и в случае с private-config, данный файл нельзя скопировать, записать в него информацию или просмотреть его содержимое. Однако часть его содержимого можно отображается в текущей конфигурации #show running-config.
Теперь, когда с командами и структурой файловой системой мы уже познакомились, можно подробнее поговорить о конфигурации устройств.
Начать стоит с такой штуки как startup-config. Это кластер из нескольких файлов, а если конкретнее, то файлов config.text, private-config.text, vlan.dat, multiple-fs. При том vlan.dat и multiple-fs при взаимодействии с startup-config не подвергаются изменениям, так как заполняются отдельно и передают содержимое только при запуске устройства. Данный кластер передает информацию тоже при запуске устройства, формируя running-config. Удаление кластера равносильно команде #write erase - удаление стартовой конфигурации, но как уже говорилось выше, vlan.dat и multiple-fs не затрагиваются этим процессом и после перезагрузки мы получаем заводские настройки, но уже с созданными VLAN и x.509 сертификатами. Поэтому чтобы полностью вернуть устройство к состоянию “только что из коробки” необходимо удалить и кластер, и файлы vlan.dat и multiple-fs.
Еще одна особенность этого кластера в том, что при попытке скопировать его(в другой файл или на удаленный сервер) мы получим только файл с содержимым config.text. Остальное , как уже говорилось выше, не затрагивается, а private-config.text копировать запрещено системой. Однако при переносе конфигурации на другое устройство это нам не помешает, так как private-config.text и multiple-fs - это уникальные файлы каждого устройства, которые генерируются автоматически. Ну а vlan.dat можно скопировать и отдельно, от нас не убудет.
Из написанного выше можно сделать следующий вывод: Чтобы сделать бекап стартовой конфигурации или перенести ее на другое устройство нам нужно брать всего 2 файла config.text и vlan.dat.
Бекапы можно хранить как на сервере, копируя через TFTP, так и на самом оборудовании, копируя нужные файлы и изменяя их название.
Соответственно, чтобы восстановить конфигурацию из файла нам нужно просто удалить используемый файл и скопировать файл бекапа с изменением названия на изначальное.
Пример:
#copy startup-config myfile
#del startup-config
#copy myfile startup-config
!ВНИМАНИЕ! Не копируйте данные в уже созданный файл, так как содержимое файлов складывается и можно получить вместо бекапа франкенштейна из разных версий конфигурации.
Например: вы сохраните конфигурацию в бекап, за тем удалите имя устройства и добавите адрес интерфейсу, и снова сохраните бекап в тот же файл. Итогом таких действий будет старое имя устройства и новый адрес интерфейса.
!ВНИМАНИЕ! Если вы работали с VLAN, то перед уходом из лаборатории удаляйте vlan.dat и перезагружайте устройство. Данный файл обновляется мгновенно и информация остается даже после сброса и перезапуска устройства. Таким образом вы можете помешать студенту, который придет после вас и пол пары будет искать ошибку, которую породили вы, а он о ней даже не подозревает.
В данной главе мы рассмотрим одну из самых сложных и важнейших тем. Она будет постепенно дополняться и расписываться, и мы еще не раз сюда вернемся.
IP-адресация — это система уникальной идентификации устройств в компьютерных сетях, основанная на протоколе IP(по которому вечно грозятся вычислить вас в интернете).
Следует начать с определения что же такое этот ваш IP. Согласно RFC, а конкретнее RFC 791, IP — это протокол, который обеспечивает передачу блоков данных (датаграмм) между хостами в составных сетях, где хосты могут принадлежать к разным подсетям.
IP (Internet Protocol) — это сетевой протокол (L3 в модели OSI[a]), который обеспечивает логическую адресацию устройств в сети, определение пути от отправителя к получателю, фрагментацию и сборку данных.
А теперь подробнее. IP - это протокол адресации. Он применяется абсолютно во всех сетях, и нужен в основном чтобы определить маршрут сообщения между устройствами. Однако не стоит его путать с протоколами маршрутизации, маршруты он строит в пределах сети / подсети. Поэтому для маршрутизации между сетями / подсетями применяются специальные устройства - маршрутизаторы или L3 коммутаторы, а для сетей побольше вдобавок протоколы маршрутизации такие как RIP, OSPF, BGP или же настраиваются статические маршруты. Но о них позднее, в данной главе рассматривается протокол IP.
На данный момент в сетях используются 2 типа адресов: IPv4 и IPv6.
Начнем с очевидного, и это название. Почему IPv4? Потому что 4 версия этого протокола нашла широкое применение в мире и работает уже на протяжении 40 лет. Хотя работает он хорошо, но столкнулся с проблемой нехватки количества адресов на все устройства в мире. На земле проживает 8 млрд людей, смело умножаем это количество на 2 и получаем примерное, даже приуменьшенное количество устройств в глобальной сети. И IPv4 уже не может дать каждому устройству свой уникальный идентификатор, так как его теоретический максимум - 4 294 967 296 уникальных адресов.
Давайте разбираться откуда взялись эти цифры.
Дело в том, что рассматриваемый протокол IPv4 использует 32-битные(четырех-байтные/четырех-октетные)) адреса, ограничивающие адресное пространство 4 294 967 296 (232) возможными уникальными адресами.
Традиционной формой записи IPv4-адреса является запись в виде четырёх десятичных чисел (от 0 до 255), разделенных точками. Через дробь указывается длина маски сети, например: 192.168.0.0/24.
Однако с завидной периодичностью на оборудовании приходится записывать его в полном виде, например: 192.168.0.0 255.255.255.0
Первоначально IP-адрес имел двоичный вид. Поэтому умения с уроков информатики в школе вам очень пригодятся. Ну, а если вы их прогуливали, то всегда можно вспомнить курс вычтеха(ВТиИТ/ОЭиВТ), который дает неплохую основу для понимания процессов, происходящих при передаче данных. Знание * Понимание = Счастье
Итак, наш IP-адрес, приведенный в примерах выше, в двоичном виде будет выглядеть следующим образом:
11000000.10101000.00000000.00000000
Страшно? На самом деле не очень. Давайте разбираться на примере первого октета(байта), который имеет вид 11000000. Каждый бит имеет разрядность от 0 до 7 справа налево. А единица нам показывает в каком месте двойку нужно возводить в степень. Наглядно показано на рисунке 4.1
Рисунок 4.1 - Перевод первого октета.
Сложив два первых бита получим 192, как раз таки первый байт нашего IP-адреса. С остальными октетами поступаем точно так же и вместо 11000000.10101000.00000000.00000000 получаем 192.168.0.0. Согласитесь, это же элементарно?
Маска сети - битовая маска, позволяющая разделить IP-адрес на адрес подсети и адрес узла (хоста, компьютера, устройства) внутри этой подсети.
Маска у начинающих вызывает много вопросов, однако все просто, следует только запомнить что она показывает какие биты IP-адреса отводятся на сеть а какие на хосты.
Возьмем предыдущий пример IP-адрес 192.168.0.0 имеет маску 24. Что это означает? Это означает что 24 из 32 бит отводится на адрес сети, а оставшиеся 8 бит на адреса хостов. Давайте возьмем эти 8 бит и представим что каждый может быть нулем или единицей, тогда получим 2^8 комбинаций что равняется 256 т.е с 0 по 255 включительно. Таким образом наша сеть теоретически может иметь 256 пользователей (на самом деле чуть меньше, но об этом позже).
Следует отметить что маска сети всегда исчисляет биты подряд. По этому у нас есть всего 33 маски, с 0 по 32. Например, 24 маска в двоичном виде будет выглядеть как:
11111111.11111111.11111111.00000000
Если вы посчитаете единицы, то получите число 24, это и есть наша маска, каждая цифра один показывает, что данный бит отводится для адреса сети, соответственно оставшиеся нули отводятся под адреса хостов.
Было бы странно если бы IP-адрес имел десятичный вид, а маска нет, поэтому переведем её и получим: 255.255.255.0.
К слову 27 маска будет выглядеть так:
11111111.11111111.11111111.11100000
255.255.255.224.
А 12 так:
11111111.11110000.00000000.00000000
255.240.0.0
Чтобы вам было проще понять, на рисунке 4.2 приведены все маски, которые вообще могут существовать у протокола IPv4.
Рисунок 4.2 - Таблица масок IPv4
Этот кошмар вам предстоит изучить прямо сейчас. Суть в том что все пространство IP-адресов делится на классы: A, B, C, D, E. Но как определить класс сети по ее IP-адресу?
Ответ на этот вопрос очень прост. Достаточно взглянуть на его первый байт. Вот список соответствий:
Соответственно, если вы видите IP-адрес начинающийся на 64.X.X.X, то это сеть класса А.
Зачем нужны классы?
Они делят сети в зависимости от того сколько адресов сети и хостов мы планируем использовать. На рисунке 4.3 приведена таблица классов.
Рисунок 4.3 - Таблица классов IPv4
Исходя из этой таблицы и таблицы рисунка 4.2 делаем выводы: Сети класса А соответствует маска /8(255.0.0.0). Сети класса B соответствует маска /16(255.255.0.0). Сети класса C соответствует маска /24(255.255.255.0).
Класс D используется для multicast групп(о которых мы поговорим когда-нибудь позже) и не имеет своей маски.
Класс E изначально зарезервирован для экспериментальных целей.
Данный класс не используется в интернете, маршрутизаторы отбрасывают пакеты с такими адресами.
Но зачем он нужен?
Научные исследования (например, тестирование новых протоколов). Военные сети (в закрытых системах). Защита от ошибочной маршрутизации — если устройство случайно получит такой адрес, оно не сможет выйти в интернет.
И точно так же не имеет своей маски.
Считаем: всего 3 маски. Это неприятное ограничение присуще классовой адресации, но нам нужна гибкость для дальнейшего развития и построения более сложных сетей. Поэтому была создана бесклассовая адресация, о которой мы поговорим чуть позже.
Как можно было заметить по таблице, сеть класса A может иметь аж 16 миллионов пользователей, в то время как сеть класса C всего 254. Как так получается? Обратите внимание на столбец “Назначение октетов” рисунка 4.3. Он показывает какие байты отводятся на сеть, а какие на хосты. В классе C на сеть отводится три байта, а на хосты всего один.
Но если один октет вмещает 256 значений, тогда почему в таблице указано 254 адреса для класса С? Куда делись еще 2 адреса?
Дело в том что есть адреса которые выдавать пользователям нельзя: Самый первый адрес - адрес сети или подсети, и самый последний - широковещательный адрес он нужен для рассылки пакетов всем хостам в данной сети.
Возьмем IP-адрес, который уже фигурировал в примерах ранее: 192.168.0.0. Он является адресом сети, широковещательным адресом для которой будет 192.168.0.255.
Почему третий байт остался нулем? Потому что это сеть класса C и три первых байта отводится под сеть. Таким образом диапазон адресов которые можно дать пользователям этой сети: 192.168.0.1 - 192.168.0.254.
!ВНИПМАНИЕ! Под пользователями сети подразумеваются и оконечные устройства, и сетевые устройства.
В сети работает правило: один адрес - один интерфейс. Т.е. задавать двум устройствам или интерфейсам один и тот же адрес нельзя.
Мы узнали, что в классе А может быть 126 сетей, в классе B 16384 сетей. Но что если нам этого мало, что если адрес сети поменять нельзя, а развести хостов по углам надо? Тут в дело вступает маска подсети.
Маска подсети - битовая маска, позволяющая разделить IP-адрес на адрес подсети и адрес узла (хоста, компьютера, устройства) внутри этой подсети.
Объясню на примере задачи.
Существует сеть класса А 67.0.0.0/8. Необходимо эту сеть разбить на 1024 подсетей. Чтобы это сделать сначала смотрим на количество необходимых подсетей и считаем какая степень двойки вмещает это в себя. 1024 это 2^10. Теперь добавляем к нашей существующей маске эту степень и прибавляем еще 1. Получится следующим образом: 8+10+1=19
Зачем добавлять еще 1? Потому что степень двойки равна необходимому кол-ву подсетей. И если мы добавим ровно такое же кол-во бит в маске, то одной подсети будет не хватать, позже это будет видно.
Итак, изначально маска сети занимала 8 бит. С добавлением маски подсети, которая равна 11 битам, общая маска будет занимать 19 бит. Давайте представим её в двоичном и десятичном виде:
11111111.11111111.11100000.00000000
255.255.224.0
Как вы видите, наша новая маска занимает два октета целиком и три бита в третьем октете, при том, что это сеть класса А, где на сеть отводится всего один байт. Такое было бы невозможно в классовой адресации, но бесклассовая предоставляет нам больше гибкости.
Продолжим решать задачу и определим адрес 27 и 1024 подсети, а также количество адресов хостов каждой подсети.
Сначала переведем 27 и 1024 в двоичный вид:
2710 = 110112
102410 = 100000000002
Мы помним что исходная маска занимала 8 бит и показывала адрес сети, а так как необходимо найти адрес подсети, первый байт трогать не будем. Распишем второй и третий байт подробно, на месте где заканчивается маска проведем линию.
Дальше подставим двоичный вид подсетей. Важно! разряды считаются от линии разделения справа налево. В этом случае разряды будут от 0 до 10 итого 11 бит. Пропуски заполняются нулями
|
27 26 25 24 23 22 21 20. 27 26 25 |24 23 22 21 20
0 0 0 0 0 0 1 1 0 1 1|0 0 0 0
1 0 0 0 0 0 0 0 0 0 0|0 0 0 0
В соответствии с тем под каким разрядом находится единица переведем ее в десятичный вид, не забываем про деление на байты.
По итогу IP-адрес 27 подсети будет выглядеть так:
67.3.96.0 /19
А для 1024 так:
67.128.0.0 /19
Вспоминаем почему мы взяли на один разряд больше для маски подсети.
Если бы наши разряды были только от 0 до 9 то даже если все они будут единицей то максимум что мы получим число 1023,
Другим заданием было найти количество адресов хостов.
Так как на сеть отводится 19 бит, то на узлы 32-19=13 бит. Считаем 2^13-2=4094 адресов хостов.
Теперь попробуем посмотреть как будет выглядеть адресный диапазон, например, 27 подсети. Сделать это можно двумя способами:
Расписать байты в которых есть биты отведенные для хостов. В нашем случае это третий и четвертый байт и подставить туда 4094 в двоичном виде
|
27 26 25 |2423 22 21 20. 27 26 25 24 23 22 21 20
0 1 1 |1 1 1 1 1 1 1 1 1 1 1 0
Теперь снова это перевести в десятичный вид не забывая что в третьем байте биты отведенные на подсеть никуда не исчезали и их тоже нужно учитывать, и получим: 67.3.127.254. Это последний адрес хоста в это подсети, следущий адрес 67.3.127.255 будет широковещательным.
Для поиска первого адреса хоста, возьмем адрес нашей подсети и добавим единицу: получим 67.3.96.1
Таким образом весь адресный диапазон будет записываться так:
67.3.96.1 - 67.3.127.254 /19
2810 = 111002
|
27 26 25 24 23 22 21 20. 27 26 25 |24 23 22 21 20
0 0 0 0 0 0 1 1 1 0 0|0 0 0 0
Переведем адрес снова в десятичный вид: 67.3.128.0
Теперь вычтем единицу. При вычитании из нуля берется единица из более высокого разряда таким образом 128 в третьем байте превратится в 127. Эта единица заполнит весь четвертый байт единицами, переведя их в десятичный вид получим 255, вычтем еще единицу и получим 254.
Итоговый адрес будет выглядеть так: 67.3.127.254/19
Адресный диапазон получится такой же.
CIDR - бесклассовая междоменная маршрутизация.
Рассмотрим еще одну задачу.
Допустим у нас есть какой-то IP-адрес и нам необходимо определить в какой подсети он находится, количество узлов в подсети, широковещательный (broadcost) адрес.
IP-адрес: 200.200.200.157/27
Сначала смотрим на маску, она 27 значит на узлы отводятся 32-27=5 бит. Считаем 2^5=32, вычитаем адрес подсети и широковещательный 32-2=30 и получаем количество узлов в одной подсети.
Чтобы найти адрес подсети в которой находится узел разделим 157 на 32 и получим 4,9 округляем в меньшую сторону 4. Умножаем 32 на 4 получаем 128. Адрес подсети будет 200.200.200.128/27.
Чтобы найти broadcost мы можем либо прибавить к 128 число 31 (потому что от 0 до 31 это ровно 32 бита. А широковещательный является последним) и получим 159. Broadcost адрес будет 200.200.200.159/27.
А также у нас есть VLSM, или IP-адрес с переменной длиной маски подсети.
В предыдущих примерах мы рассматривали случаи когда подсети имеют одинаковое количество адресов узлов, но их можно сделать разными для каждой подсети. (авось где-то пригодится)
Как мы знаем чем больше маска тем меньше у нас хостов в подсети. Поэтому если в условии сказано создать несколько подсетей в одной из которых 128 узлов, а в другой 16, то начинаем идти от большего к меньшему.
Итак задача.
Дан адрес класса С с адресом 200.45.222.0/24 Необходимо разбить сеть на 6 подсетей. С количеством узлов в подсетях:
1) 1,2,3,4 подсетях необходимо создать по 10 узлов в каждой подсети;
2) в 5 подсети количество узлов должно быть равно 36;
3) в 6 подсети количество узлов должно быть равно 62.
Для начала мы занимаем в четвертом байте первый бит равный «0» и «1» в этом случае для идентификации подсети остается 7 бит в 4 байте, которые можно использовать для назначения узлов. Эти «0» и «1» дают нам две подсети с адресами 200.45.222.0/25 и 200.45.222.128/25. В каждой из них 126 узлов (128 -2=126).
У каждой из подсетей может быть 126 узлов. Первый адрес 200.45.222.0/25 оставляем для необходимых 62 узлов по заданию в 6 подсети. Второй адрес 200.45.222.128/25 (прибавляем к адресу 128 т.к. 27 = 128) снова делим на две.
Адрес 200.45.222.192/26 получаем: 128+64=192. Первый адрес оставляем для использования в 5 подсети и 36 узлов необходимых по заданию, а второй снова делим на четыре подсети.
Таким образом, в четырех подсетях по 10 узлов необходимых по заданию, мы создали.
Графическое представление решения задачи показано на рисунке.
Давайте чтобы всем впоследствии было проще, введем более понятное определение этому термину:
Шлюз(Default Gateway/Gateway) - логически ближайший интерфейс устройства, соседствующего с другой сетью/подсетью, находящийся в одной подсети с настраиваемым устройством, служащий для маршрутизации пакетов в другую сеть/подсеть.
Другими словами в графе шлюза мы указываем интерфейс межсетевого устройства, через которую пакеты отправляются в другую сеть.
Рассмотрим сеть на рисунке 4.3
Рисунок 4.3 - Пример сети
В данном случае (и в ваших работах тоже) для компьютеров и коммутаторов шлюзом будет являться ближайший интерфейс маршрутизатора.
Для компьютеров PC0, PC1 и коммутатора Switch0 шлюзом будет интерфейс маршрутизатора Gig0/0.
Для компьютеров PC4, PC5 и коммутатора Switch1 шлюзом будет интерфейс маршрутизатора Gig0/1.
PC0, PC1 и Switch0 находятся в отличной от PC4, PC5 и Switch1 сети. Следовательно если они хотят послать данные в другую сеть или в интернет им обязательно нужно знать IP-адрес шлюза.
Как известно в протоколе IPv4 всего 4 с копейками миллиарда адресов, чего, как мы уже выясняли, мало. NAT это костыль, предполагающий временное решение(но нет ничего более постоянного, чем временное). Поэтому была предпринята попытка увеличить количество адресов в самом протоколе. Может быть когда-нибудь мы расскажем вам про IPv0 - IPv3, IPv5 и остальные интернет протоколы, кои были экспериментальными версиями и все они уже устарели(как бы парадоксально это не звучало, но IPv7 тоже устарел). В общем, IPv6 разрабатывался с упором на количество возможных адресов.
Так вот с расширением количества адресов справились на ура, правда добавили их совсем немного. IPv6 имеет 128-ми битный адрес, следственно 2^128 = 340 282 366 920 938 000 000 000 000 возможных адресов. Это произносится как 340 ундециллионов и примерно 300 дециллионов. Лет на сто должно хватить.
IPv6 по своей сути работает лучше, чем IPv4, поскольку для нормальной работы IPv4 в глобальной сети нужен NAT. Однако благодаря IPv6 отпадает потребность в NAT, что снижает накладные расходы на преобразование адресов. Ниже перечислены еще несколько преимуществ сего протокола. Сейчас может быть много непонятных слов, но позже мы их тоже разберем.
Автоконфигурация
При использовании IPv4 для назначения IP-адресов и обнаружения подключенных к сети компьютеров требуется отдельный DHCP-сервер. В IPv6 используется технология SLAAC (автоконфигурация адресов без сохранения состояния), которая позволяет устройству самостоятельно настраивать для себя адрес без дополнительных посредников и специальных протоколов. Это избавляет от потребности в DHCP, а также приводит к снижению общего объема трафика в сети.
Маршрутизация
IPv6 предлагает ряд функций, которые делают маршрутизацию через Интернет более эффективной, чем при работе с IPv4. Например, отказ от преобразования NAT, упрощение заголовков маршрутизации, протокол обнаружения соседей NDP (Neighborhood Discovery Protocol), иерархическая адресация и создание подсетей, а также агрегирование маршрутов.
Безопасность
IPv6 имеет больше встроенных средств безопасности, чем IPv4. Сюда относятся протокол IPsec по умолчанию, возможность добавить расширения конфиденциальности и другие безопасные протоколы маршрутизации, например OSPFv3.
В IPv4 имена адресов представляются числовым значением, которое состоит из четырех десятичных чисел (в диапазоне от 0 до 255, что соответствует восьми битам), разделенных тремя точками:
197.0.0.1
В IPv6 имена адресов представляются восемью шестнадцатеричными числами (по четыре символа, каждый из которых соответствует четырем битам и может быть цифрой (0-9) или буквой (a-f)), разделенными двоеточиями:
X:X:X:X:X:X:X:X,
где X - 16 бит в 16-ой системе счисления
Если в адресе есть несколько нулей подряд, их можно сжать в пустой блок между двумя двоеточиями.
Например, так выглядит основная форма записи:
1080:0:0:0:8:800:200c:417a
А так сокращенная:
1080::8:800:200c:417a
Сократить нули таким образом можно только один раз, например:
1080::8:0:0:0
По аналогии с маской в IPv6 применяются адресные префиксы, смысл тот же, они показывают сколько бит отводится на адрес сети. Но у них нет какой-то уникальной записи.
Если в IPv4 приходилось записывать либо так 192.168.0.1 255.255.255.0, либо так 192.168.0.1/24
То в IPv6 только так: 2001:DB8:0:2F3B::/64. В основном везде используется этот префикс, если хотите чтоб сеть работала смело втыкайте его.
Виды адресов IPv6
1080::8:800:200c:417a
|
биты |
48 (или больше) |
16 (или меньше) |
64 |
|
поле |
routing prefix |
subnet id |
interface identifier |
Префикс сети (комбинация полей префикс маршрутизации (routing prefix) и идентификатор подсети (subnet id)) содержится в старших 64 битах адреса. Размер префикса маршрутизации может увеличиваться, отнимая биты адреса у поля subnet id. Биты поля subnet id могут использоваться сетевым администратором для создания подсетей.
|
биты |
8 |
4 |
4 |
112 |
|
поле |
prefix |
flg |
sc |
group ID |
Первые 8 бит единиц адреса указывают, что это multicast адрес. У multicast адресов префикс FF00::/8.
flgs — это 4 бита (0RPT), которые устанавливают флаги:
scop — это 4 бита, которые указывают значение границ распространения (scope) multicast группы:
group ID — идентифицирует multicast группу, перманентную или временную, в указанных границах. Дополнительная информация о структуре этого поля в RFC3306.
Нет широковещательных адресов.
Подсети link-local не маршрутизируются: маршрутизаторы не должны отправлять пакеты с адресами link-local в другие сети.
Адреса link-local часто используются для автоматического конфигурирования сетевого адреса, в случаях, когда внешние источники информации об адресах сети недоступны.
Для IPv6 в качестве link-local адресов выделена подсеть FE80::/10.
У IPv6 есть особенность которая позволила ему прижиться в отличии от IPv5 и это совместимость с IPv4.
Шестая версия имеет 8 блоков по 16 бит, а четвертая имеет всего 32 бита. Мы можем объединить два адреса заняв для адреса 4 версии 2 блока по 16 бит. И выглядит это вот так:
Y:Y:Y:Y:Y:Y:X.X.X.X,
где Y - это адрес 6 версии в 16-ой системе счисления,
X - это адрес 4 версии в 10-ой системе
Возьмем к примеру следующий адрес:
ABCD:1234:BA62:89AC:A723:1245:10.20.30.40
В примере весь этот адрес является unicast адресом какого-то хоста. Как видно первые шесть блоков являются частью шестой версии, а оставшиеся два блока заняты адресом 4 версии. (провинившиеся студенты будут переводить этот адрес в двоичный вид[b])
Кроме этого шестую версию улучшили и оптимизировали из-за чего появились следующие особенности:
Контрольную сумму необходимо пересчитывать на каждом маршрутизаторе, отказ от нее освобождает немного вычислительных мощностей на что-то более полезное.
В IPv4 фрагментация происходит, когда размер пакета превышает максимальный размер единицы передачи (MTU) сети, через которую он проходит. В этом случае пакет разбивают на части, которые помещаются в новые пакеты (фрагменты) размером, равным или меньшим нижнего MTU. Когда фрагменты достигают места назначения, данные в них обычно собираются заново.
В IPv6 фрагментация происходит только на хосте-отправителе, то есть пакет можно фрагментировать только один раз. Фрагментацию не выполняют маршрутизаторы или другие сетевые устройства. Отправитель использует метод обнаружения MTU пути, чтобы найти наименьшее значение MTU, поддерживаемое любой сетью на пути, и затем фрагментирует пакет с учётом этих знаний. Это снова позволяет сократить вычислительные расходы маршрутизатора.
При составлении плана IP-адресации необходимо обосновать использование той или иной маски подсети и формирования того или иного адреса.
Например, в сети используется адрес 194.25.100.0/24. В сети будет работать 11 оконечных устройств. В сети необходимо использовать минимальное количество бит для адресации узлов.
Так как адрес начинается с 194, то используется класс С. Значит, сеть адресуется в первых трех байтах, а узлы и подсети адресуются в четвертом байте. Для адресации 11 узлов, необходимо минимум четыре младших бита четвертого байта. Следовательно, старшие четыре бита четвертого байта будут использоваться для адресации подсетей. Тогда в двоичной системе, маска подсети будет иметь вид:
11111111.11111111.11111111.11110000
Это соответствует маске подсети в десятичной системе: 255.255.255.240.
Допустим, для адресации будет использоваться вторая подсеть. Закодируем число два, четырьмя старшими битами четвертого байта:
00100000
Переведем байт в десятичную систему. Получим число: 32. Тогда адрес подсети будет иметь вид: 194.25.100.32/28. Для формирования первого адреса узла, необходимо в четвертом байте, младшими четырьмя битами записать цифру один:
00100001
Тогда первый адрес узла будет иметь вид: 194.25.100.33/28. Все остальные адреса узлов сети сведем в таблицу 1.
Таблица 1 – План IP-адресации
|
№ пункта |
Сетевое имя устройства |
Интерфейс |
IP-адрес |
Маска подсети |
IP-адрес шлюза |
|
1 |
R1 |
G0/0 |
194.25.100.33 |
255.255.255.240 |
- |
|
2 |
SW1 |
Vlan1 |
194.25.100.34 |
194.25.100.33 |
|
|
3 |
PC0 |
fa0 |
194.25.100.35-45 |
194.25.100.33 |
В примере рассматривалась только одна сеть.
Допустим, к маршрутизатору подключен еще один компьютер. По условию нужно чтобы маршрутизатор имел первый адрес в сети, значит второму интерфейсу, к которому подключен ПК, зададим адрес 194.25.100.34, а коммутатору 194.25.100.35, да...? Вообще то НЕТ.
Каждый интерфейс маршрутизатор имеет IP-адрес и эти адреса не должны быть в одной подсети.
Поэтому у нас два варианта развития событий в зависимости от условий задачи:
Рассмотрим сначала второй.
Допустим один ПК находится в сети 194.25.100.0/24, а второй 200.64.0.0/24, количество устройств в каждой сети одинаковое 11.
Тогда для первой сети адресация останется неизменной. А во второй меняем только первые три байта на нужные нам.
Таблица 2 – План IP-адресации
|
№ пункта |
Сетевое имя устройства |
Интерфейс |
IP-адрес |
Маска подсети |
IP-адрес шлюза |
|
1 |
R1 |
G0/0 |
194.25.100.33 |
255.255.255.240 |
- |
|
2 |
SW1 |
Vlan1 |
194.25.100.34 |
194.25.100.33 |
|
|
3 |
PC0 |
fa0 |
194.25.100.35-46 |
194.25.100.33 |
|
|
4 |
R1 |
G0/0 |
200.64.0.33 |
255.255.255.240 |
- |
|
5 |
SW2 |
Vlan1 |
200.64.0.34 |
200.64.0.33 |
|
|
6 |
PC1 |
fa0 |
200.64.0.35-46 |
200.64.0.33 |
Так как в сети необходимо использовать минимальное количество бит для адресации узлов, то будь узлов меньше у нас изменится маска и диапазон доступных адресов. Допустим вторая сеть имеет всего 3 хоста.
Таблица 3 – План IP-адресации
|
№ пункта |
Сетевое имя устройства |
Интерфейс |
IP-адрес |
Маска подсети |
IP-адрес шлюза |
|
1 |
R1 |
G0/0 |
194.25.100.33 |
255.255.255.240 |
- |
|
2 |
SW1 |
Vlan1 |
194.25.100.34 |
194.25.100.33 |
|
|
3 |
PC0 |
fa0 |
194.25.100.35-46 |
194.25.100.33 |
|
|
4 |
R1 |
G0/0 |
200.64.0.33 |
255.255.255.248 |
- |
|
5 |
SW2 |
Vlan1 |
200.64.0.34 |
200.64.0.33 |
|
|
6 |
PC1 |
fa0 |
200.64.0.35-38 |
200.64.0.33 |
Рассмотрим первый вариант при котором все устройства должны находится в одной сети.
Если сеть должна быть одинаковая значит используем разные подсети. В первом случае у нас использовалась вторая подсеть, сейчас задействуем третью.
В случае когда кол-во хостов одинаковое.
Таблица 4 – План IP-адресации
|
№ пункта |
Сетевое имя устройства |
Интерфейс |
IP-адрес |
Маска подсети |
IP-адрес шлюза |
|
1 |
R1 |
G0/0 |
194.25.100.33 |
255.255.255.240 |
- |
|
2 |
SW1 |
Vlan1 |
194.25.100.34 |
194.25.100.33 |
|
|
3 |
PC0 |
fa0 |
194.25.100.35-46 |
194.25.100.33 |
|
|
4 |
R1 |
G0/0 |
194.25.100.49 |
255.255.255.240 |
- |
|
5 |
SW2 |
Vlan1 |
194.25.100.50 |
194.25.100.49 |
|
|
6 |
PC1 |
fa0 |
194.25.100.51-62 |
194.25.100.49 |
В случае когда во второй подсети должно быть 28 хостов.
Таблица 5 – План IP-адресации
|
№ пункта |
Сетевое имя устройства |
Интерфейс |
IP-адрес |
Маска подсети |
IP-адрес шлюза |
|
1 |
R1 |
G0/0 |
194.25.100.33 |
255.255.255.240 |
- |
|
2 |
SW1 |
Vlan1 |
194.25.100.34 |
194.25.100.33 |
|
|
3 |
PC0 |
fa0 |
194.25.100.35-46 |
194.25.100.33 |
|
|
4 |
R1 |
G0/0 |
194.25.100.49 |
255.255.255.224 |
- |
|
5 |
SW2 |
Vlan1 |
194.25.100.50 |
194.25.100.49 |
|
|
6 |
PC1 |
fa0 |
194.25.100.51-78 |
194.25.100.49 |
Настройка интерфейсов - дело хорошее, и казалось бы простое, однако прежде всего необходимо ввести три понятия и узреть между ними разницу: Разъем, Порт и Интерфейс.
Тема крайне неоднозначная, и 90% специалистов, у которых вы это спросите, ответят вам так, что спустя полчаса объяснений у вас появится острое желание прекратить весь этот ад и остаться в неведении. Но раз вы дочитали до сюда, что уже подвиг, мы постараемся разъяснить все простым языком.
Разъем(коннектор/пин/гнездо) — это электромеханическое устройство, предназначенное для механического соединения кабелей, модулей или компонентов обеспечения электрического контакта между проводниками, стандартизированного интерфейса для передачи сигналов, питания, комбинированных линий.
Теперь, когда техническое определение дано, давайте разберем его простым языком.
Разъем - это ощутимый объект, наконечник кабеля или место, куда этот самый кабель вставляется.
Привожу пример: У нас есть смартфон, у которого есть разъем, куда вставляется кабель для зарядки. Дырка, куда мы вставляем кабель - разъем, наконечник кабеля, который вставляем - разъем. В разъем вставляется другой разъем. Вроде должны понять.
У разъемов всегда есть сторона которая вставляется и сторона в которую вставляется. Первую на схемах обозначают как P(plug/штекер/male/папа), а вторую R(Receptacle/гнездо/female/мама). Соответственно, подключение папа-папа не возможно, ровным счетом как и мама-мама.
Мы с вами в основном используем разъемы Rj-45 для подключения устройств между друг-другом.
В нашем деле под портом понимают 2 вещи: порт физический и порт логический.
Физический порт — это аппаратно реализованная точка взаимодействия в электронном устройстве, которая обеспечивает физическое подключение внешних компонентов через стандартизированный интерфейс, организует передачу данных, питания, комбинированных потоков, выполняет согласование параметров между устройством и периферией (напряжение, скорость).
Если по простому, то физический порт - тот же самый разъем, только умный. Он понимает что нужно делать после того, как мы соединили его с парным коннектором.
Порты находятся на самом устройстве, в отличии от разъемов. Т.е. переводим на пример с смартфоном: Разъемы - дырка с местом крепления и наконечник кабеля. Порт - устройство внутри смартфона с коннектором на конце, которое определяет что произошло и начинает действовать инструкциям.
Логический порт — это виртуальная точка доступа в вычислительной системе, которая идентифицирует сервис или приложение через уникальный номер (0–65535), организует передачу данных между процессами или устройствами по сети, управляет сетевым трафиком на основе правил маршрутизации и безопасности.
Сетевые приложения “слушают” назначенный им порт и при появлении данных на порту начинают действовать согласно инструкциям и обмениваться данными с источником. (Принцип схож с физическим, не так ли?)
На рисунке 5.1 представлено распределение логических портов в системе.
Рисунок 5.1 - Распределение портов
Сетевой интерфейс — это программно-аппаратный компонент, обеспечивающий подключение устройства к сети и управляющий физическим соединением обработкой сетевых пакетов и реализацией сетевых протоколов.
Грубо говоря, интерфейс это программа, которая управляет всем процессом передачи данных.
Пример: Есть рабочий(в роли порта), у рабочего есть перчатки(в роли разъема), без которых он не может работать и взаимодействовать с стройкой(в роли остальной архитектуры). Рабочий надел перчатки и пошел помогать своему коллеге перетаскивать материалы, так как видит, что работа есть, указаний сверху небыло, а сидеть без дела запрещено. Спустя какое-то время приходит начальник(в роли интерфейса), смотрит на план и начинает рабочему выдавать указания, куда пойти, что взять, где прикрепить и какими инструментами пользоваться.
А есть еще подинтерфейсы, это как будто у работника несколько начальников и каждый говорит делать что-то свое.
Теперь, когда мы поняли разницу между тремя понятиями, мы осознаем, что интерфейс это не физический порт, а то, что им управляет.
Собственно, интерфейс может управлять не только 1 портом, но и группой, как например, на устройстве L2(устройство, работающее на 2 уровне модели OSI), т.е. в обычном коммутаторе, порты и их интерфейсы принадлежат vlan, соответственно настраивать в таком случае будет необходимо не интерфейс конкретного порта, а интерфейс vlan, так как он владеет портами. Из этого вытекает, что настройки, к примеру IP-адрес, на всех портах коммутатора, принадлежащих одному vlan будет одинаковый, а порт, принадлежащий нескольким vlan может иметь несколько IP-адресов.
У роутера, так как он устройство L3(устройство, работающее на 3 уровне модели OSI), vlan нет, соответственно на нем настраивается интерфейс конкретного порта.
Но есть у нас еще один тип устройства - коммутатор L3. Это коммутатор, который включает в себя функции маршрутизатора(дорогая и очень интересная игрушка. В лаборатории 216 стоят оптические коммутаторы L3). Так вот на этом устройстве есть возможность вывести порт и его интерфейс из интерфейса vlan. И использовать его как на маршрутизаторе.
Исходя из написанного выше, интерфейсы сетевых устройств имеют 2 режима:
Первый - switchport. Он используется на коммутаторах и модульных платах роутеров, при том его нельзя сменить на другой(если только это не L3 коммутатор). При таком режиме интерфейс порта принадлежит влану. Соответственно, при настройке этого интерфейса, конфигурацию должен получать не нумерованный интерфейс, а влан, к которому он принадлежит.
Второй - routed. Он используется на роутерах и L3 коммутаторах, при том смену режима поддерживает только L3 коммутатор.
В зависимости от выполняемых задач коммутаторы могут быть оборудованы различным количеством и типом портов. Наиболее распространенными интерфейсами, реализуемыми в коммутаторах, являются фиксированные интерфейсы с разъемом RJ-45 на основе витой пары, поддерживающие технологию Fast Ethernet или Gigabit Ethernet, автосогласование скоростей, полудуплексного или дуплексного режима работы и автоматического определения полярности витой пары MDI / MDIX.
Основные настройки интерфейсов маршрутизатора связаны с установкой IP-адреса и включением интерфейса.
Для настройки IP адреса на интерфейсе необходимо войти в режим настройки интерфейса, с помощью команды:
interface <название интерфейса>
Результат выполнения команды показан на рисунке 5.33.
Рисунок 5.33 — Режим настройки интерфейса
Для настройки IP-адреса, необходимо ввести команду:
ip address <ip адрес><маска>
Например, необходимо на коммутаторе настроить IP адрес 192.168.1.1/24. IP адрес коммутаторов настраивается на интерфейсе VLAN.
Выполнение показано на рисунке 5.34.
Рисунок 5.34 — Назначение IPv4-адреса для интерфейса
Эта настройка назначает IPv4-адрес для конкретного интерфейса.
Для того, чтобы убедится, что адреса настроены, можно посмотреть текущую конфигурацию, как показано на рисунке 5.35.
Рисунок 5.35 — Настройка IP адреса на порту маршрутизатора.
По умолчанию, интерфейсы VLAN административно выключены. Что бы включить их, необходимо в режиме настройки интерфейса ввести команду:
no shutdown
Существует команда, которая позволяет посмотреть краткие настройки интерфейсов:
show ip interface brief
Она выводит информацию о доступных сетевых интерфейсах, такую как IP-адрес, статус, протокол и метод администрирования интерфейса. (Рисунок 5.35)
Рисунок 5.35 — Результат выполнения команды show ip interface brief.
Таблица 1 – Описание команды show ip interface brief
|
Поле |
Описание |
|
Interface |
Тип интерфейса |
|
IP-Address |
IP-адрес, присвоенный интерфейсу. |
|
OK? |
YES означает, что IP-адрес в настоящее время действителен. NO означает, что IP-адрес в данный момент недействителен. |
|
Method |
Поле метода имеет следующие возможные значения: - RARP или SLARP — запрос протокола разрешения обратного адреса (RARP) или протокола разрешения последовательного адреса (SLARP). - BOOTP — протокол начальной загрузки (Bootstrap). - TFTP — файл конфигурации, полученный с TFTP-сервера. - manual — изменяется вручную командой CLI. - NVRAM — файл конфигурации в NVRAM. - IPCP — команда согласования IP-адреса. - DHCP — IP-адрес, команда DHCP. - неназначенный — нет IP-адреса - не установлено — не установлено - другое — неизвестно |
|
Status |
Указывает состояние интерфейса. Допустимые значения и их значения: - up — интерфейс активирован административно. - down — интерфейс административно отключен. - administratively down— интерфейс административно отключен. |
|
Protocol |
Указывает рабочее состояние протокола маршрутизации на этом интерфейсе. Up означает, что протокол в настоящее время работает. Down означает, что протокол в данный момент не работает. |
Примечание: все приведенные настройки актуальны и для маршрутизаторов.
[a]Надо бы отдельную статейку или главу для этой темы сообразить
[b]А особо провинившиеся будут строить схему для перевода из 16 системы счисления в 2 для 128 битного адреса