- •Методические указания к выполнению лабораторных работ по дисциплине " Организация вычислительных систем и сетей "
- •Введение
- •Лабораторная работа №1. Объединение компьютеров в лвс.
- •1. Цель работы:
- •2. Необходимое оборудование и материалы:
- •3. Сведения из теории
- •3.1 Разъемы rj-45
- •3.2 Последовательность операций при разделке разъема витой пары.
- •Задание 2. Соединить компьютеры между собой с использованием активного сетевого оборудования.
- •4. Порядок выполнения работы Задание 1. Соединить 2 компьютера между собой без использования активного сетевого оборудования типа коммутатора, концентратора.
- •Возможные проблемы при соединении компьютеров:
- •5 Содержание отчета:
- •6 Контрольные вопросы:
- •Лабораторная работа №3. Использование генератора трафика Ostinato
- •Варианты заданий для второго блока лабораторных работ
Лабораторная работа №3. Использование генератора трафика Ostinato
Краткая теоретическая справка
Генераторы трафика являются необходимыми инструментами для проверки работоспособности сетей как на этапе тестовых испытаний, так и при разработке новых услуг и технологий. Генераторы трафика бывают как программно-аппаратными, так и программными. Программно-аппаратные генераторы трафика обычно крайне дороги, являются закрытыми решениями, но при этом обладают специальным функционалом, ориентированным на тип сети. Что касается программных генераторов, то среди них есть достаточно большое количество предложений с открытым кодом, но позволяющих конструировать только пакетный трафик (в этом случае их иногда называют генераторами пакетов). Для ознакомления с принципами генерации трафика в лабораторной работе предлагается использовать одно из таких решений Ostinato [1].
Ostinato представляет собой кроссплатформенный open-source генератор пакетного трафика с графическим пользовательским интерфейсом, построенный на базе клиент-серверной архитектуры. Данный генератор позволяет передавать данные несколькими потоками и имеет широкие возможности для настройки поведения трафика и различных опций используемых сетевых протоколов. Генератор трафика Ostinato предустановлен на компьютере управления mnlin. Для начала работы с генератором, подключитесь к mnlin с помощью KVM-переключателя и запустите Ostinato из терминала с правами суперпользователя:
root@mnlin# ostinato &
Повышенные привилегии необходимы для получения доступа к сетевым устройствам mnlin.
Основной интерфейс программы разделен на три окна (рис.1): порты (ports list), потоки (stream list) и статистика (statistics).
Рис. 1 – Интерфейс Ostinato
В окне портов представлена группа портов [127.0.0.1] и зеленый индикатор напротив нее, что обозначает доступность группы портов. Ostinato является клиентским приложением и может работать с несколькими различными серверами (Drone). В данном случае клиент и сервер расположены на одном компьютере и обмениваются данными через сокет 127.0.0.1:7878.
Открыв группу портов (нажав на +) можно увидеть все доступные на данной машине порты. Выберите порт, с которого будет производиться отправка пакетов в сеть. Нажатием правой кнопки мыши в окне потоков откройте меню и создайте новый поток (new stream). Дважды кликнув на значке созданного потока, вы получите доступ к конфигуратору потока.
На первой вкладке Protocol Selection (рис.2) конструируйте будущий пакет в соответствии с моделью OSI. На рисунке 2 необходимые пункты помечены красным.
Рис. 2 – Вкладка Protocol Selection
Вкладка Protocol Data (рис. 3) позволяет настроить некоторые специфичные поля выбранных протоколов, такие как, например, адреса источника и получателя в протоколе IP, порты в UDP и т.п.
Рис. 3 – Вкладка Protocol Data
Примечание.: При конструировании пакета в реальной сети задавайте реальный MAC-адрес назначения в поле Media Access Protocol!
На вкладке Stream Control (рис. 4) выставляются опции потока. Например, можно настроить генерацию трафика пачками или отдельными пакетами, количество пакетов в секунду/битовую скорость потока, поведение потока и т.д.
Рис. 4 – Вкладка Stream Control
Создав несколько различных потоков для данного порта и выставив для каждого из них опцию Goto Next Stream в поле After this stream, можно организовать последовательную передачу этих потоков в сеть.
Также возможно организовать одновременную смешанную передачу. Для этого необходимо в окне портов выбрать требуемый, правой кнопкой мыши открыть контекстное меню и в пункте Port Configuration изменить режим работы передачи порта на Interleaved Streams (смешанные потоки). Теперь все созданные для данного порта потоки будут передаваться на сетевой интерфейс одновременно (рис. 5).
Рис. 5 – Перевод порта в смешанный режим передачи
Примечание: В смешанном режиме вместо количества передаваемых пакетов указывается скорость передачи пакетов/пачек или битовая скорость потока. Соответственно, передача трафика будет продолжаться до тех пор, пока не будет остановлена нажатием кнопки Stop Tx.
Вкладка Packet View позволяет просмотреть получившийся пакет в «собранном» виде (рис. 6).
Рис. 6 – Вкладка Packet View
После окончания настройки потока нажмите Ok и передайте изменения на сервер кнопкой Apply. Если этого не сделать, генерирующий демон Drone не получит информацию о произошедших изменениях.
Для проверки работы генератора, предварительно запустите анализатор трафика Wireshark, настроив его на прослушивание того порта, на который вы передаете сгенерированный трафик. Теперь можно начинать генерацию (рис.7).
Рис. 7 – Запуск генератора
В окне статистики выберите тот же порт, для которого вы конструировали поток (например, нажмите Port 0-0, если вы настроили Port Group 0 и в ней Port 0) и кнопкой Start Tx запустите генерацию трафика.
Задание на лабораторную работу:
Создайте 3 произвольных потока данных, состоящих из пакетов различных протоколов, заданных общим количеством пакетов и пакетной скоростью потока.
Создайте 3 произвольных потока данных, состоящих из пакетов различных протоколов, заданных числом пачек (bursts).
Запустите анализатор трафика Wireshark и начните захват на том порту, на котором предполагается генерировать трафик с помощью Ostinato.
Организуйте последовательную передачу сконструированных потоков в произвольном порядке. Сохраните полученный трэйс-файл.
Организуйте смешанную передачу (interleaved) сконструированных потоков трафика. Сохраните полученный трэйс-файл.
Изучив содержимое полученных трэйс-файлов, убедитесь в корректной работе генератора трафика. Используйте инструменты из меню Statistics:
IO Graph
Packet Lenghts
Protocol Hierarchy
К защите:
Знать основные принципы конструирования пакетов согласно модели TCP/IP, характеристики трафика пакетных сетей, процессы формирования потоков, принципы инкапсуляции.
Уметь использовать генератор трафика для создания потоков с различными характеристиками.
Представить отчет, содержащий характеристики сконструированных потоков трафика согласно п. 1 и 2 задания на лабораторную работу, примеры полученных пакетов (см. рис. 6), трэйс-файлы, статистику работы согласно меню Statistics.
Рекомендуемая литература:
Ostinato: Packet/Traffic Generator and Analyzer. https://code.google.com/p/ostinato/
Олифер Н. А., Олифер В.Г. Компьютерные сети. Принципы, технологии, протоколы. Издание 4-е. Питер, 2010.
Лабораторная работа №4. Мониторинг в сетях связи
Краткая теоретическая справка
1. Протокол ICMP (Internet Control Message Protocol) является протоколом сообщений об ошибках. Несмотря на то, что ICMP считается протоколом сетевого уровня, его сообщения инкапсулируются в IP. Сообщения ICMP довольно разнообразны [1], но имеют единый формат (рис. 1). На этом протоколе базируются средства мониторинга сетей связи, а также сообщения о недоступности узла в некоторых протоколах прикладного уровня, например, ошибка 404 в HTTP.
Тип сообщения – согласно классификации
Код сообщения – дополнительные сведения об ошибке
Параметры – например, IP– адрес узла
Данные – например, IP– заголовок и первые 64 бита пакета, адресованного на другой узел
Рис. 1 – Формат сообщений ICMP
Протокол ICMP для IPv4 и его сообщения описаны в RFC 792, работа с масками сетей – в RFC 950 [2]. Протокол ICMP для IPv6 описан в RFC 4443 [3].
Инструменты мониторинга утилиты ping и traceroute описаны в RFC 2529 [4].
2. Утилита ping (Packet Internet Groper – одно из возможных прочтений) является одним из главных средств, используемых для отладки сетей, и служит для принудительного вызова ответа конкретной машины. Она позволяет проверять работу приложений TCP/IP (по портам) на удаленных машинах, адреса устройств в локальной сети, адрес удаленного сетевого устройства. В выполнении команды ping участвуют система маршрутизации, схемы разрешения адресов и сетевые шлюзы. Это утилита низкого уровня, которая не требует наличия серверных процессов на зондируемой машине, поэтому успешный результат при прохождении запроса вовсе не означает, что выполняются какие-либо сервисные программы высокого уровня, а говорит о том, что сеть находится в рабочем состоянии, питание зондируемой машины включено, и машина не отказала. Утилита ping входит во все реализации TCP/IP не зависимо от операционной системы.
Получив эхо-запрос ping, программное обеспечение, реализующее протокол IP у адресата, посылает эхо-ответ. Эхо-запросы посылаются заданное количество раз (ключ -n) или по умолчанию до тех пор, пока пользователь не введет команду прерывания (Ctrl+C или Del), после чего выводятся статистические данные. В некоторых реализациях количество посылок эхо-запросов ограничено, например, в Windows их 4. В некоторых случаях можно в целях обеспечения безопасности (защита от DDOS-атак) выставить запрет на эхо-ответы. Список ключей и формат команды можно посмотреть самостоятельно, набрав в командной строке ping.
На практике большинство опций в формате команды можно опустить, тогда в командной строке может быть: ping имя_узла или ping IP-адрес.
Пример:
C:\Users\admin>ping yandex.ru
Обмен пакетами с yandex.ru [77.88.21.11] с 32 байтами данных:
Ответ от 77.88.21.11: число байт=32 время=1651мс TTL=57
Ответ от 77.88.21.11: число байт=32 время=154мс TTL=57
Ответ от 77.88.21.11: число байт=32 время=79мс TTL=57
Ответ от 77.88.21.11: число байт=32 время=77мс TTL=57
Статистика Ping для 77.88.21.11:
Пакетов: отправлено = 4, получено = 4, потеряно = 0
(0% потерь)
Приблизительное время приема-передачи в мс:
Минимальное = 77мсек, Максимальное = 1651 мсек, Среднее = 490 мсек
3. Утилита traceroute (в реализациях Windows используется написание tracert) позволяет выявлять последовательность шлюзов, через которые проходит IP-пакет на пути к пункту своего назначения. У этой команды есть много опций, большинство из которых применяются крайне редко. Традиционно используется формат traceroute имя_узла, которое может быть задано в символической или числовой форме. Выходная информация представляет собой список машин, начиная с первого шлюза и кончая пунктом назначения.
Принцип работы traceroute основан на установке поля времени жизни (TTL) исходящего пакета таким образом, чтобы это время истекало до достижения пакетом пункта назначения. При получении пакета с обнуленным полем TTL текущий шлюз отправит сообщение об ошибке на машину-источник. Каждое приращение поля времени жизни позволяет пакету пройти на один шлюз дальше.
Утилита traceroute посылает для каждого значения поля TTL три пакета. Если промежуточный шлюз распределяет трафик по нескольким маршрутам, то эти пакеты могут возвращаться разными машинами. Некоторые системы не посылают уведомлений о пакетах, время жизни которых истекло, а некоторые посылают уведомления, которые поступают обратно c задержкой, превышающей время ожидания на машине-источнике. Эти шлюзы обозначаются рядом звездочек. Если конкретный шлюз определить нельзя, все равно с помощью traceroute можно увидеть следующие за ним узлы маршрута. Заметим, что в связи с использованием на сетях динамической маршрутизации, в разные моменты времени можно получить различные маршруты прохождения пакетов. Это также относится к зеркалированным узлам.
Пример:
admin@ddd:~$ traceroute lenta.ru
traceroute to lenta.ru (81.19.85.92), 30 hops max, 60 byte packets
1 172.24.255.254 (172.24.255.254) 13.218 ms 14.129 ms 14.019 ms
2 84.204.14.254 (84.204.14.254) 13.848 ms 15.145 ms 15.040 ms
3 46.47.255.33 (46.47.255.33) 13.910 ms 13.815 ms 14.594 ms
4 mx960-spb.peterstar.net (82.196.95.169) 15.117 ms 25.568 ms 26.261 ms
5 ix-j-mx240.m9.ramtel.ru (193.232.244.118) 39.993 ms 39.870 ms 39.750 ms
6 s193-mx240.vr.rambler.ru (81.19.64.93) 39.672 ms 17.704 ms 19.828 ms
7 81.19.94.132 (81.19.94.132) 19.772 ms 19.708 ms 19.590 ms
8 81.19.85.92 (81.19.85.92) 19.529 ms 19.424 ms 28.634 ms
Пример:
C:\Users\admin>tracert yandex.ru
Трассировка маршрута к yandex.ru [87.250.251.11]
с максимальным числом прыжков 30:
1 100 ms 104 ms 106 ms HS2-1-16.xG.SPb.SkyLink.RU [89.253.1.16]
2 119 ms 99 ms 106 ms HS2-0-1.xG.SPb.SkyLink.RU [89.253.0.1]
3 107 ms 106 ms 106 ms 212.129.96.227
4 112 ms 104 ms 106 ms aurora-spb-ix.yandex.net [194.226.100.90]
5 128 ms 198 ms 110 ms 213.180.213.134
6 * * * Превышен интервал ожидания для запроса.
7 124 ms 108 ms 105 ms s650-eto2c1.yandex.net [213.180.213.65]
8 121 ms 132 ms 133 ms l3-s550-s650.yandex.net [213.180.213.28]
9 116 ms 106 ms 133 ms yandex.ru [87.250.251.11]
Трассировка завершена.
4. Существует комбинированная диагностическая утилита mtr (My Traceroute), сочетающая в себе функциональность рассмотренных выше traceroute и ping. Данная утилита основана на библиотеке libncurses (консольная версия) или на базе GTK+ (оконная версия), позволяет в реальном времени отслеживать маршрут до заданного узла и изменяющееся время ответа каждого из промежуточных узлов, а также процент потерянных пакетов. Консольный вывод утилиты mtr представлен на рисунке 2. На данный момент mtr включена практически во все дистрибутивы Linux.
Рис.2 – Пример работы утилиты mtr в консольном режиме
5. Утилита netstat выводит информацию о локальной сети и средствах TCP/IP. Она реализована непосредственно в операционной системе и занимается сбором статистики об ошибках, текущих соединениях, состоянии портов и соединений. Содержание и форма выходной информации зависят от операционной системы, но обычно выводятся следующие данные: список соединений, статистика сетевых интерфейсов, статистика по буферам данных, содержание таблицы маршрутизации, статистика работы протоколов. Характер выводимой информации можно выбирать с помощью опций командной строки. Рассмотрим основные возможности мониторинга с помощью утилиты netstat.
5.1. Список соединений
Утилита netstat обладает набором ключей для отображения портов, находящихся в активном и/или пассивном состоянии. Таким образом, можно получить список всех серверных приложений, работающих на данном компьютере. Отметим, что формат списка соединений для сервера с системой NAT и для клиентской машины будет разным.
Информация выводится столбцами. В первом из них указан протокол, затем размеры очередей приема и передачи для установленного соединения на данной машине (на другом конце соединения размеры очередей могут быть другими), локальный и удаленный адреса и текущее состояние соединения.
Пример:
admin@ddd:~$ netstat -ta
Активные соединения с интернетом (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:29011 *:* LISTEN
tcp 0 0 localhost:ipp *:* LISTEN
tcp 0 0 172.24.0.157:35608 213.199.179.141:40041 ESTABLISHED
tcp 0 0 172.24.0.157:37760 163-247.static.quie:www TIME_WAIT
tcp 0 0 172.24.0.157:36441 95-28-49-237.broa:26647 ESTABLISHED
tcp 0 0 172.24.0.157:38541 172.24.0.170:55554 TIME_WAIT
tcp 0 0 172.24.0.157:54369 bos-w031b-rdr1.bl:https ESTABLISHED
tcp6 0 0 localhost:ipp [::]:* LISTEN
Состояние соединения имеет значение только для протокола TCP. Протокол UDP факта установления соединения не проверяет.
5.2. Содержание таблицы маршрутизации
Каждое соединение машины с сетью называется сетевым интерфейсом. Машина, имеющая более одного интерфейса, может принимать данные по одному интерфейсу и передавать их по другому, осуществляя пересылку данных между сетями. Эта функция называется маршрутизацией, а машина, выполняющая ее – шлюзом.
Данные маршрутизации хранятся в так называемых таблицах маршрутизации, которые могут быть статическими и динамическими в зависимости от уровня сети и протокола маршрутизации. Для направления пакета по конкретному адресу подбирается наилучший маршрут согласно метрике. Если такой маршрут отсутствует, и нет маршрута по умолчанию, то отправителю возвращается сообщение об ошибке.
Утилита netstat -r позволяет отображать таблицу маршрутизации.
Пункты назначения и шлюзы могут показываться в виде имен машин или в виде их IP-адресов. Флаги дают оценку маршрута.
Пример:
admin@ddd:~ > netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags Ifac
ddd.sut.ru * 255.255.255.255 UH eth1
195.19.219.120 * 255.255.255.248 U eth0
195.19.219.128 * 255.255.255.192 U eth1
192.168.1.0 * 255.255.255.0 U eth0
195.19.221.0 lgw.ccs.sut.ru 255.255.255.0 UG eth1
193.125.0.0 lgw.ccs.sut.ru 255.255.0.0 UG eth1
loopback * 255.0.0.0 U lo
default lgw.ccs.sut.ru 0.0.0.0 UG eth1
5.3. Статистика сетевых интерфейсов
При использовании ключа -е на экран будут выведены статистические данные всех используемых Ethernet-интерфейсов. Исходя из них, можно выяснить, исправно ли соединение с сетью.
Пример:
admin@ddd:~ > netstat -е
Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1000 0 844904 0 17 0 1454454 5 0 0 BRU
eth1 1500 0 590844 0 7 0 434438 59 0 0 BRU
lo 3924 0 45754 0 0 0 45754 0 0 0 LRU
Ошибки являются следствием проблем в кабельной системе или следствием неисправности платы сетевого адаптера. В нормально работающей сети количество конфликтов (RX-OVR, TX-OVR) не должно превышать 3% от числа пакетов, а другие ошибки не должны составлять более 0,5% от общего числа пакетов.
5.4. Статистика передачи данных
Использование netstat -s позволяет вывести содержимое счетчиков сетевых программ. В выходной информации есть разделы, относящиеся к различным протоколам: IP, ICMP, TCP, UDP. С ее помощью можно определить место появления ошибки в принятом пакете.
Пример:
admin@ddd:~$ netstat -s
IР:
всего пакетов принято 17058
2 с неверными адресами
0 перенаправлено
0 входящих пакетов отклонено
входящих пакетов доставлено: 4364
запросов отправлено: 3936
Icmp:
ICMP сообщений получено: 306
неудачных входящих ICMP сообщений: 0
Гистограмма входа ICMP
пункт назначения недоступен: 8
потери при прохождении: 263
эхо-ответы: 35
послано сообщений ICMP: 280
неудачные сообщения ICMP: 0
Гистограмма выхода ICMP
пункт назначения недоступен: 8
эхо-запросов: 14
IcmpMsg:
InType0: 35
InType3: 8
InType11: 263
OutType3: 8
OutType8: 14
OutType69: 258
Tcp:
открытия активных соединений: 148
открытия пассивных соединений: 0
неудачные попытки соединения: 4
получено сбросов соединений: 2
соединений установлено: 0
сегментов получено: 3386
отправлено сегментов: 2895
повторно передано сегментов: 39
плохих сегментов получено: 0
сбросов послано: 8
Udp:
пакетов принято: 661
принято пакетов на неизвестный порт: 8
ошибок приема пакетов: 0
пакетов послано: 723
TcpExt:
пакеты, вырезанные из очереди приема по причине переполнения буфера сокета: 1
67 TCP sockets finished time wait in fast timer
задержанных подтверждений послано: 119
Редим быстрого подтверждения приема был активирован 69 раз
11 packets directly queued to recvmsg prequeue.
3635 bytes directly received in process context from prequeue
ожидаемых заголовков пакетов: 1745
ожидаемых заголовков пакетов, непосредственно стоявших в очереди к пользователю: 5
311 acknowledgments not containing data payload received
ожидаемые подтверждения: 299
9 congestion windows recovered without slow start after partial ack
1 timeouts in loss state
19 retransmits in slow start
других TCP тайм-аутов: 19
22 packets collapsed in receive queue due to low socket buffer
получено DSACKs: 9
1 соединения сброшены из-за неожиданных данных
2 connections reset due to early user close
TCPDSACKIgnoredNoUndo: 3
TCPSackShiftFallback: 9
IpExt:
InMcastPkts: 15
OutMcastPkts: 19
InOctets: 4353792
OutOctets: 405434
InMcastOctets: 2714
OutMcastOctets: 2990
Изучаемые в процессе выполнения лабораторной работы средства мониторинга относятся к универсальным в сетях IP. Они являются встроенными во все операционные системы с поддержкой IP, работают как с IPv4, так и с IPv6. Для своей работы утилита netstat использует статистику, собранную при помощи ICMP. Так как ICMP для IPv4 и IPv6 имеет отличия, связанные непосредственно с изменением формата заголовка, то и результат для этих протоколов будет отличаться. Современные операционные системы поддерживают обе версии ICMP.
Задание на лабораторную работу:
Провести трассировку трех узлов по заданию преподавателя. По результатам построить графики зависимости времени прохождения пакета от номера узла. Указать шлюзы перехода из одной сети в другую. Листинги трассировки привести в отчете.
Провести оценку работоспособности узлов: узлов в подсети лаборатории, шлюза подсети, 5 узлов из ранее сделанных трассировок. Оценить TTL для каждого из них.
Запустить несколько сетевых приложений на клиентской машине (например, несколько сайтов, интернет-мессенджер и т.п.). Снять с клиентской машины при помощи утилиты netstat таблицу маршрутизации, список соединений, статистику передачи данных, состояние интерфейса Ethernet. На основании списка соединений построить карту сети (см. лаб.1). На основе таблицы маршрутизации зарисовать архитектуру сети.
К защите:
Знать основные принципы мониторинга сетей, характеристики сетей (TTL, время приема-передачи и т.п.), принципы работы средств мониторинга (всех используемых в лабораторной работе утилит).
Уметь использовать средства мониторинга IP-сетей.
Представить отчет, содержащий листинги работоспособности узлов, результаты трассировки, графики зависимости времени прохождения пакета от номера узла, статистику работы сети согласно netstat, карту сети, архитектуру сети на основе таблицы маршрутизации.
Рекомендуемая литература:
RFC 792 Internet control message protocol. September, 1981.
RFC 950 Internet Standard Subnetting Procedure. August 1985
RFC 4443 Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification. March, 2006
RFC 2925 Definitions of Managed Objects for Remote Ping, Traceroute, and Lookup Operations. September, 2000.
Олифер Н. А., Олифер В.Г. Компьютерные сети. Принципы, технологии, протоколы. Издание 4-е. Питер, 2010.
Лабораторная работа №5.Статическая маршрутизация на базе протокола IPv4
Цель проведения лабораторных работ: получение навыков конфигурации локальной сети на основе протоколов IPv4 и IPv6 с использованием статической маршрутизации.
Краткая теоретическая справка
Б
Рис. 1 – Трехуровневая базовая модель построения сети
азовое иерархическое построение сети предполагает наличие максимум трех уровней иерархии: ядро сети, уровень агрегации и уровень доступа (рисунок 1). В ядре как минимум находятся опорные маршрутизаторы, могут быть расположены граничные маршрутизаторы и серверы услуг.Уровень агрегации обеспечивает возможность агрегации и распределения трафика внутри сети оператора, может выполня-ть роль интегратора отдельных сегментов сети. Уровень доступа организу-ет возможность физическо-го доступа пользователя к сети оператора. Подобный подход не зависит от используемой оператором технологии, но позволяет эффективно выстроить арх-итектуру, повысив устойчи-вость сети, и сделать процессы управления сетью прозрачными.
Отметим, что в небольших сетях может происходить вырождение иерархии до глубины в два уровня: доступ и ядро. Ядро небольшой сети представляет собой один маршрутизатор, выполняющий функции шлюза и, иногда, DNS-сервера. В этом случае чаще всего используется статическая маршрутизация, а управление потоками заключается в задании маршрутного правила.
В обобщенном виде запись маршрутного правила (далее маршрута) можно представить так:
Route network netmask gateway
Например, конкретная запись может быть представлена как:
Route 12.5.7.0 255.255.255.0 78.3.65.1,
Где 12.5.7.0 – это адрес подсети (network), 255.255.255.0 – маска данной подсети (netmask), а 78.3.65.1 – адрес шлюза (gateway). Шлюз представляет собой маршрутизатор, на который посылается весь трафик, удовлетворяющий данному маршруту, т.е. имеющий адрес получателя пакетов входящий в указанную подсеть.
Отметим, что существуют также многие другие способы маршрутизации пакетов, учитывающие различные параметры трафика (policy routing), адаптирующиеся под изменяющуюся топологию сети и т.д., однако они используются в крупных сетях с динамической маршрутизацией и будут рассмотрены позднее.
Для успешного выполнения лабораторной работы ознакомьтесь с методикой выполнения работы на конкретном примере.
Задание на лабораторную работу:
Соберите тестовую схему сети согласно рис. 2.
Подготовьте программные маршрутизаторы, войдите под суперпользователем и установите соединение по ssh.
Сконфигурируйте программные маршрутизаторы согласно заданию (табл. 1). Проверьте взаимную доступность программных маршрутизаторов.
Сконфигурируйте маршрутизатор Cisco. Проверьте взаимную доступность подсетей.
Снимите ARP-таблицы маршрутизаторов.
Методика выполнения лабораторной работы
Ход выполнения работы проиллюстрирован на примере настройки маршрутизации в тестовой сети, приведенной на рисунке 2.
Для успешного выполнения лабораторной работы необходимо подготовить программные маршрутизаторы. На каждом программном маршрутизаторе следует запустить пакет маршрутизации Quagga. Применяемая в Quagga система команд очень близка к системе команд Cisco.
Включите программные маршрутизаторы и с помощью KVM-переключателя подсоединитесь к каждому из них, войдите под суперпользователем:
login: root
passw: simulator
и запустите Quagga:
root@soft-1# service zebra start
Рис. 2 – Схема тестовой сети IPv4
Примечание: Обратите внимание, что при запуске пакета маршрутизации Quagga, он перехватывает управление сетевыми ресурсами и заменяет существующую сетевую конфигурацию своей, хранящейся в файле /etc/quagga/zebra.conf. По умолчанию в данной конфигурации на soft-core1 (программном маршрутизаторе ядра1 1) настроен интерфейс eth0=192.168.24.1/24, а на soft-core2 (программном маршрутизаторе ядра 2) eth0=172.16.0.1/16.
Теперь на программные маршрутизаторы можно зайти посредством протокола SSH из тех локальных сетей, шлюзами которых они являются, т.е. на soft-core1 через интерфейс eth0 с адресом 192.168.24.1, а на soft-core2 – через eth0 с адресом 172.16.0.1.
Примечание: Для того, чтобы осуществить удаленное соединение по протоколу ssh, на машинах с ОС Linux необходимо запустить терминал и набрать команду:
ssh логин@IP-адрес_удаленного_хоста
после чего ввести запрашиваемый пароль. Логин и пароль на программных маршрутизаторах стенда по умолчанию:
login: admin
passw: admin
Важно: необходимо очистить таблицу правил фаейрвола на каждом программном маршрутизаторе. Это действие должно выполняться от суперпользователя:
pc2$ ssh admin@192.168.24.1
admin@192.168.24.1's password:
[admin@localhost ~]$ su
[root@localhost ~]$ iptables –F
[root@localhost ~]$ ip6tables –F
Для получения доступа к консоли управления Quagga, необходимо, установив удаленное подключение по ssh, набрать следующую команду:
telnet localhost 2601
Таким образом, мы подключаемся к процессу, ожидающему соединения на порту 2601 программного маршрутизатора (маршрутизирующий демон zebra).
Примечение: Пароль при подключении к консоли Quagga по умолчанию: softcore.
Процесс конфигурирования программного маршрутизатора может выглядеть следующим образом:
pc2$ ssh admin@192.168.24.1
admin@192.168.24.1's password:
[admin@localhost ~]$ telnet localhost 2601
soft-core1.lab> enable
soft-core1.lab# configure terminal
soft-core1.lab(config)# ip forwarding /включаем маршрутизацию IP
soft-core1.lab(config)# interface eth1 /настраиваем интерфейс eth1
soft-core1.lab(config-if)# ip address 31.1.1.2/30 /присваиваем адрес IPv4
soft-core1.lab(config-if)# description to Cisco /добавляем описание
soft-core1.lab(config-if)# no shutdown /включаем интерфейс
soft-core1.lab(config-if)# exit/выходим из режима конфигурирования интерфейса
soft-core1.lab(config)# interface eth2
soft-core1.lab(config-if)# ip address 33.1.1.1/30
soft-core1.lab(config-if)# description to SC-2
soft-core1.lab(config-if)# no shutdown
soft-core1.lab(config-if)# exit
/Добавляем статические маршруты в формате “dst_network/netmask next-hop”
soft-core1.lab(config)# ip route 10.0.0.0/8 31.1.1.1
soft-core1.lab(config)# ip route 172.16.0.0/16 33.1.1.2
/Просмотреть таблицу маршрутизации можно следующим образом
soft-core1.lab# show ip route
Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF,
I - ISIS, B - BGP, > - selected route, * - FIB route
S>* 10.0.0.0/8 [1/0] via 31.1.1.1, eth1
C>* 31.1.1.0/30 is directly connected, eth1
C>* 33.1.1.0/30 is directly connected, eth2
C>* 127.0.0.0/8 is directly connected, lo
S>* 172.16.0.0/16 [1/0] via 33.1.1.2, eth2
C>* 192.168.24.0/24 is directly connected, eth0
Подобную настройку необходимо произвести для обоих программных маршрутизаторов в соответствии с полученным заданием.
Далее необходимо убедиться, что программные маршрутизаторы «видят» друг друга. Для этого запустите еще один сеанс удаленного доступа по ssh и утилитами ping и traceroute проверьте доступность подключенного порта другого маршрутизатора и путь прохождения пакетов до него.
pc2$ ssh admin@192.168.24.1
admin@192.168.24.1's password:
Last login: Thu Jul 19 20:18:53 2012 from 192.168.24.100
[admin@localhost ~]$ ping 33.1.1.2
PING 33.1.1.2 (33.1.1.2) 56(84) bytes of data.
64 bytes from 33.1.1.2: icmp_seq=1 ttl=64 time=0.323 ms
64 bytes from 33.1.1.2: icmp_seq=2 ttl=64 time=0.095 ms
64 bytes from 33.1.1.2: icmp_seq=3 ttl=64 time=0.110 ms
--- 33.1.1.2 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.09/0.16/0.30/0.10 ms
[admin@localhost ~]$ traceroute 33.1.1.2
traceroute to 33.1.1.2 (33.1.1.2), 30 hops max, 60 byte packets
1 33.1.1.2 (33.1.1.2) 0.262 ms 0.074 ms 0.058 ms
Сконфигурируем маршрутизатор Cisco. С компьютера управления зайдем на консольный порт Cisco:
picocom /dev/ttyS0
и включим маршрутизатор. После загрузки на экране вы увидите приглашение, теперь можно начинать настройку.
cisco-1>enable /переходим в режим exec
cisco-1#configure terminal
cisco-1(config)#ip classless /включаем CIDR
cisco-1(config)#ip routing /включаем IP-маршрутизацию
/Настраиваем сетевые интерфейсы
cisco-1(config)#interface gigabitEthernet 0/0 /выбираем интерфейс для настройки
cisco-1(config-if)#ip address 31.1.1.1 255.255.255.252 /присваиваем интерфейсу IP-адрес и маску подсети
cisco-1(config-if)#description to soft-core1 /добавляем описание интерфейса (необязательно)
cisco-1(config-if)#no shutdown /включаем интерфейс
cisco-1(config-if)#exit /выходим из режима конфигурирования данного интерфейса
cisco-1(config)#interface gigabitEthernet 0/1
cisco-1(config-if)#ip address 32.1.1.1 255.255.255.252
cisco-1(config-if)#description to soft-core2
cisco-1(config-if)#no shutdown
cisco-1(config-if)#end /выходим из режима конфигурации
/Создаем статические маршруты
cisco-1#configure terminal
/В маршруте нужно указать в качестве шлюза next-hop маршрутизатор
cisco-1(config)#ip route 192.168.24.0 255.255.255.0 31.1.1.2
cisco-1(config)#ip route 172.16.0.0 255.255.0.0 32.1.1.2
cisco-1(config)#exit
/Просмотрим состояние интерфейсов и маршрутов
cisco-1#show ip interface brief
cisco-1#show ip route
/Проверим доступность LAN-интерфейсов шлюзов
cisco-1#ping 192.168.24.1
cisco-1#ping 172.16.0.1
Если интерфейсы доступны, значит маршрутизация настроена верно.
После настройки маршрутизаторов ядра нужно проверить взаимную доступность локальных подсетей. Для этого с различных машин, находящихся в разных подсетях произведите несколько проверок доступности подсетей.
pc1#ping 192.168.24.100
pc1#ping 172.16.0.100
pc2#ping 10.0.0.100
pc2#ping 172.16.0.100
pc3#ping 192.168.24.100
pc3#ping 10.10.0.100
Если ping проходит успешно, утилитой traceroute отследите пути продвижения пакетов по сети (рис.3).
Рис. 3 – Прохождение пакетов через сеть.
Снимите ARP-таблицы с маршрутизаторов сети. Для того чтобы просмотреть ARP-таблицу программного маршрутизатора, подключитесь к нему по SSH и введите команду ip neighbor (рис.4).
Рис. 4 – ARP-таблица программного маршрутизатора
Обратите внимание на то, как изменяется статус записи об узле 33.1.1.2 после проверки связи с ним. Просмотр ARP-таблицы в маршрутизаторе Cisco осуществляется командой show arp (рис. 5).
Рис. 5 – ARP-таблица маршрутизатора Cisco
Лабораторная работа №5.Статическая маршрутизация на базе протокола IPv6
Задание на лабораторную работу:
Соберите тестовую схему сети согласно рис. 6.
Выполните действия согласно п. 2-4 л/р №5, но только для IPv6.
Снимите таблицу канального уровня ND-протокола.
Методика выполнения лабораторной работы
Данная лабораторная работа аналогична л/р №4, за исключением сетевого протокола: в данном случае сеть построена на IPv6. Схема тестовой сети приведена на рисунке 6.
Рис. 6 – Схема тестовой сети IPv6
Настройка программных маршрутизаторов для работы в сети с IPv6-адресацией осуществляется аналогично проведенной для сетей IPv4.
1. Осуществляем необходимые подключения.
2. Конфигурируем программные маршрутизаторы. Обратите внимание на то, что интерфейсам eth0 по умолчанию присвоены только IPv4-адреса!
pc2$ ssh admin@192.168.24.1
admin@192.168.24.1's password:
[admin@localhost ~]$ telnet localhost 2601
soft-core1.lab> enable
soft-core1.lab# configure terminal
soft-core1.lab(config)# ipv6 forwarding
soft-core1.lab(config)# interface eth0
soft-core1.lab(config-if)# ipv6 address fc00:2::1/64
soft-core1.lab(config-if)# exit
soft-core1.lab(config)# interface eth1
soft-core1.lab(config-if)# ipv6 address 2001:1:1:100::2/64
soft-core1.lab(config-if)# exit
soft-core1.lab(config)# interface eth2
soft-core1.lab(config-if)# ipv6 address 2001:1:1:300::1/64
soft-core1.lab(config-if)# exit
soft-core1.lab(config)# ipv6 route fc00:1::/64 2001:1:1:100::1
soft-core1.lab(config)# ipv6 route fc00:3::/64 2001:1:1:300::2
soft-core1.lab(config)# exit
Данную настройку необходимо произвести для обоих программных маршрутизаторов в соответствии с заданием.
3. Проверяем взаимную доступность программных роутеров (рис.7).
Рис. 7 – Проверка взаимной доступности
4. Настраиваем маршрутизатор Cisco.
Примечание: Для чистоты эксперимента можно перезагрузить маршрутизатор Cisco, включив и выключив его кнопкой питания (при этом все сделанные в первой части работы изменения сотрутся!)
После загрузки маршрутизатора вы увидите на экране приглашение, и можете начинать настройку.
cisco-1>enable /переходим в режим exec
cisco-1#configure terminal /конфигурирование из терминала
cisco-1(config)#ipv6 unicast-routing /включаем маршрутизацию IPv6
cisco-1(config)#ipv6 cef /включаем поддержку Cisco Express Forwarding для протокола IPv6
/Настраиваем сетевые интерфейсы
cisco-1(config)#interface vlan 2 /LAN-интерфейс нашего маршрутизатора
cisco-1(config-if)#ipv6 address fc00:1::1/64 /Задаем IPv6 адрес типа Unique Local интерфейсу LAN
cisco-1(config-if)#no shutdown /включаем интерфейс
cisco-1(config-if)#exit
cisco-1(config)#interface gigabitEthernet 0/0 /настраиваем интерфейс GE0/0
cisco-1(config-if)#ipv6 address 2001:1:1:100::1/64 /Задаем IPv6 адрес типа Global Unicast интерфейсу GE0/0
cisco-1(config-if)#no shutdown
cisco-1(config-if)#exit
cisco-1(config)#interface gigabitEthernet 0/1
cisco-1(config-if)#ipv6 address 2001:1:1:200::1/64
cisco-1(config-if)#no shutdown
cisco-1(config-if)#^Z
/Посмотрим состояние интерфейсов
cisco-1#sh ipv6 interface brief
/Проверим доступность маршрутизаторов SC-1 и SC-2
cisco-1#ping ipv6 2001:1:1:100::2 /Пингуем интерфейс eth1 маршрутизатора soft-core1
cisco-1#ping ipv6 2001:1:1:200::2 /Пингуем интерфейс eth2 маршрутизатора soft-core2
/Создаем статические маршруты
cisco-1(config)#ipv6 route fc00:2::/64 2001:1:1:100::2 /Маршрут в локальную сеть, находящуюся за soft-core1
cisco-1(config)#ipv6 route fc00:3::/64 2001:1:1:200::2 /Маршрут в локальную сеть, находящуюся за soft-core2
/Просмотрим таблицу маршрутизации для IPv6
cisco-1#show ipv6 route
После настройки маршрутизации в ядре сети необходимо проверить взаимную доступность локальных подсетей. Для этого запустите проверку утилитой ping6 с различных машин, находящихся в разных подсетях.
pc1#ping6 fc00:2::2
pc1#ping6 fc00:3::2
pc2#ping6 fc00:1::2
pc2#ping6 fc00:3::2
pc3#ping6 fc00:1::2
pc3#ping6 fc00:2::2
Если ping6 проходит успешно, утилитой traceroute6 отследите пути продвижения пакетов по сети (рис. 8).
Рис.8 – Путь прохождения пакета
5. Снимите таблицу канального уровня. В случае использования протокола IPv6 нужно снимать таблицу не ARP, а ND-протокола (Neighbour Discovery). Это связано с особенностями протокола IPv6 [2].
На Cisco данная таблица выводится командой show ipv6 neighbors (рис.9).
Рис. 9 – Кэш протокола ND в Cisco
На программных маршрутизаторах посмотреть общую таблицу можно той же командой, что и в первой части работы (рис. 10).
Рис. 10 – Кэш протоколов канального уровня в Linux
